Архив метки: security

Усиление защиты EMET

На самом деле общесистемный масштаб имеют лишь некоторые функции EMET, а гораздо больших спектр фич применим к процессам конкретных приложений.

Для приложения можно включить следующие функции:

DEP — реализуется за счет вызова kernel32!SetProcessDEPPolicy в контексте контролируемого процесса

BottomUpASLR — в некотором роде представляет собой ASLR для выделяемых регионов памяти на стеке и в куче (по мере выделения памяти и в старших адресах)

NullPage — защита от эксплуатации MS13-031

MandatoryASLR — принудительно включает ASLR для динамически загружаемых библиотек процесса. Реализуется за счет перехвата функции ntdll!NtMapViewOfSection

HeapSpray — позволяет фиксировать попытки операций выделения большого количества участков памяти с размещением там кода эксплойта

LoadLib — отслеживание операций LoadLibrary с целью предотвращения загрузки библиотеки в память по пути UNC

MemProt — запрет изменения статуса страниц стека на executable

Caller — контроль за тем, чтобы функция была вызвана с помощью call, а не ret, что широко применяется в эксплойтах

SimExecFlow — позволяет обнаруживать ROP-гаджеты после вызова контролируемой EMET функции

StackPivot — позволяет обнаруживать ситуации перемещения регистра стека ESP на нужный для эксплойта адрес

SEHOP — отслеживает попытки эксплуатирования обработчиков SEH

EAF (Export Address Table Access Filtering) — запрещает какие-либо операции обращения к странице памяти, на которой расположена таблица экспорта модуля, кроме доступа легитимного кода

Все эти функции можно настроить в окне Mitigations графического интерфейса. Кроме того, в окне Application Configuration есть еще три дополнительных функции:

Deep Hooks — для защиты критических API EMET будет перехватывать не только сами функции, но и те функции (другие API), которые из них будут вызываться

Anti Detours — блокирует действия эксплойтов, которые пропускают первые байты API (обычно пролог) и передают управление на инструкции, следующие за ними

Banned Functions — запрещает вызов API-функций из специального списка

Каждое отдельно взятое приложение может быть несовместимо с некоторыми защитами EMET, поэтому перед его включением требуется тестирование (или гуглинг данных от тех, кто уже протестировал). Однако в административных шаблонах EMET поставляются уже готовые проверенные политики для ряда приложений.

Включаются они следующими групповыми политиками:

– Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsEMETDefault Protections for Internet Explorer

– Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsEMETDefault Protections for Recommended Software (включает Adobe Reader, Adobe Acrobat, Java, Microsoft Office, блокнот)

– Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsEMETDefault Protections for Popular Software (включает Media Pleer, Skype, Lync, Windows Live, Google Talk, Chrome, Firefox, Thunderbird, Adobe Photoshop, Winamp, Opera, WinRAR, WinZip, VLC, 7-Zip, Safari, iTunes и еще немного)

Источник : https://t.me/informhardening



2018-02-02T12:33:01
Закрытие уязвимостей

Рандомизация распределения виртуальной памяти (ASLR)

В Linux есть возможность включить рандомизацию распределения виртуальной памяти (ASLR).

Это одновременно защищает от эксплуатации всех уязвимостей, связанных с манипуляцией памятью, и не защищает ни от каких.

То есть защищает от не очень продвинутых эксплойтов.

Ну что ж, есть не просит – не помешает. Читать

Шаблоны MSS описание

Ну раз уж мы установили шаблоны MSS, посмотрим, что еще в них есть полезного.

Неспроста же это дополнительный пак шаблонов для безопасности.

AutoAdminLogon – позволяет включить функцию автологона по сохраненным в реестре учетным данным при запуске системы. По умолчанию (если политика не задана) выключено, как и рекомендуется.AutoReboot – просто определяет, будет ли система автоматически перезагружаться после сбоя. Если ничего не менять – то будет. Читать

Усиление сетевых настроек Windows

Windows как и другие операционные системы конечно, тоже требует настройки всех сетевых параметров, про которые мы говорили в прошлых публикациях. Но у нее почему то не предусмотрено простого и шаблонного решения и многие настройки даже отсутствуют в стандартных административных шаблонах. Читать

Как реализовать защиту по SSL в Apache Tomcat👨⚕️

Одной из важных задач защиты Tomcat является настройка SSL-сертификата, потому что веб-приложение доступно через HTTPS.

Есть много способов добиться этого.

  • Вы можете ограничить SSL при балансировке нагрузки
  • Внедрить SSL на уровне CDN
  • Используйте веб-серверы, такие как Apache, Nginx и т. д., И внедряйте SSL там

Однако, если вы не используете ни одно из указанных выше методов, или вам необходимо установить SSL непосредственно в Tomcat, то вам поможет следующая статья.

В этой статье мы сделаем, как показано ниже.

  • Сгенерировать CSR (запрос подписи сертификата)
  • Импорт сертификата в файл хранилища ключей
  • Включить SSL в Tomcat
  • Настройка протокола TLS
  • Изменение Tomcat для прослушивания на 443-порте
  • Тест Tomcat для уязвимости SSL

Давайте начнем…

Подготовка сертификата SSL / TLS

Первым шагом необходимо создать CSR и получить его, подписанный центром сертификации.

Мы будем использовать утилиту keytool для управления сертификатами.

  • Вход на сервер Tomcat
  • Перейдите к пути установки tomcat
  • Создайте папку с именем ssl
  • Выполнить команду для создания хранилища ключей:

 # keytool -genkey -alias domainname -keyalg RSA -keysize 2048 -keystore filename.jks 

В приведенных выше командах есть две переменные, которые вы можете изменить.

Alias – лучше сохранить его значимым, поэтому в будущем вы сможете быстро распознать. Я предпочитаю хранить его как доменное имя.

Filename- опять же, полезно сохранить доменное имя.

Пример:

 [root@itsecforu.ru ssl]# keytool -genkey -alias itsecforu.ru -keyalg RSA -keysize 2048 -keystore itsecforu.ru .jks

Enter keystore password:

Re-enter new password:

What is your first and last name?

[Unknown]: itsecforu.ru

What is the name of your organizational unit?

[Unknown]: itsecf

What is the name of your organization?

[Unknown]: itsecforu

What is the name of your City or Locality?

[Unknown]:

What is the name of your State or Province?

[Unknown]:

What is the two-letter country code for this unit?

[Unknown]:

Is CN=itsecforu.ru , OU=itsecforu.ru , O=itsecforu.ru , L=Unknown, ST=Unknown, C=Unknown correct?

[no]: yes



Enter key password for <itsecforu.ru >

(RETURN if same as keystore password):



[root@itsecforu.ru ssl]# 

Обратите внимание на первый и последний вопрос. Думаю, это немного обманчиво. Это не ваше имя, а имя домена, которое вы хотите защитить.

После того, как вы предоставите всю информацию, он создаст файл хранилища ключей в текущем рабочем каталоге.

Далее следует создать новый CSR с вновь созданным хранилищем ключей с помощью команды, представленной ниже.

 # keytool -certreq -alias itsecforu -keyalg RSA -file itsecforu.csr -keystore itsecforu.jks 

Это действие создаст CSR, который необходимо отправить в центр сертификации, чтобы получить его.

Если вы тренеруетесь или пробуете, вы можете подумать о том, что можете использовать БЕСПЛАТНЫЙ провайдер сертификатов, чтобы дальше в случае серьезности перейти на премиальный.

Я получил подписанный сертификат и перейду к импорту в хранилище ключей с помощью команды ниже.

Импорт корневого сертификата предоставленного поставщиком:

 # keytool -importcert -alias root -file root -keystore itsecforu.jks  

Импортировать промежуточный сертификат:

 # keytool -importcert -alias intermediate -file intermediate -keystore itsecforu.jks 

Примечание: без импорта корневого и промежуточного, вы не сможете импортировать сертификат домена в хранилище ключей.

Если у вас более одного промежуточного уровня, вы должны импортировать их все.

Импортировать сертификат домена

 # keytool -importcert -file itsecforu.cer -keystore itsecforu.jks -alias itsecforu 

и вы получите подтверждение, что он был установлен.

Certificate reply was installed in keystore

Отлично, мы видим что хранилище сертификатов уже готово.

Перейдем к следующему шагу.

Включить SSL в Tomcat

Предполагая, что вы все еще зарегистрированы на сервере Tomcat, перейдите в папку conf

  1. Сделайте резервную копию файла server.xml
  2. Перейдите в раздел <Connector port = “8080” protocol = “HTTP / 1.1” и добавьте строку:

 SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"

3. Не забудьте изменить имя и пароль файла хранилища ключей на свои

4. Перезапустите tomcat, и вы увидите, что Tomcat доступен через HTTPS

Стандартный порт HTTPS

Зачем?

Ну, если вы посмотрите на скриншот выше, я обращаюсь к Tomcat с портом 8080 по https, который не является стандартным и еще несколько причин.

Вы не хотите спрашивать пользователей использовать ли пользовательский порт

Браузер будет выдавать предупреждение, поскольку сертификат выдается на имя домена без порта

Поэтому идея состоит в том, чтобы заставить Tomcat прослушивать порт 443, чтобы он был доступен только через https: // без номера порта.

Для этого отредактируйте файл server.xml вашим любимым тестовым редактором

  • Перейдите к <Connector port = “8080”

  • Изменить порт с 8080 до 443

  • Это должно выглядеть так

 <Connector port="443" protocol="HTTP/1.1"

connectionTimeout="20000"

SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"

redirectPort="8443" /> 

Перезапустите Tomcat и получите доступ к вашему приложению с помощью https без номера порта

Впечатляет, это успех!

Проверка уязвимости SSL / TLS

Наконец, мы проведем тест, чтобы убедиться, что он не уязвим для онлайн-угроз.

Существует множество онлайн-инструментов, которые я обсуждал здесь, и здесь я буду использовать SSL Labs.

Перейдите в SSL Labs и введите URL-адрес, чтобы начать тест

Как видно, наш рейтинг зеленый

Тем не менее, всегда будет не лишним прокрутить вниз отчет и посмотреть, обнаружите ли вы какую-либо уязвимость и исправьте ее при наличии.

Надеюсь, это поможет вам узнать о процедуре обеспечения безопасности Tomcat с сертификатом SSL / TLS. 

 



2018-01-25T17:42:14
Закрытие уязвимостей

Усиление сетевых настроек Linux

Как это так вышло, что мы до сих пор не подкрутили сетевые настроечки Linux?! Срочно, срочно…

Править будем файл модифицируемых в процессе работы настроек ядра /etc/sysctl.conf. Читать