Русский
Русский
English
Статистика
Реклама

Использование SIEM в ходе подготовки этичных хакеров открываем цикл практических лабораторных работ

Как мы готовим в наших университетах и учебных центрах этичных хакеров? Как правило, предоставляем им Kali Linux или Сканер-ВС, включающие набор инструментов для тестирования защищенности и машину со множеством уязвимостей. В результате слушатели могут получить довольно поверхностное представление о том, как проводится тестирование на проникновение на самом деле, так как в реальных проектах пентестеры имеют дело с инфраструктурами, включающими средства защиты информации и системы мониторинга событий информационной безопасности (SIEM). Чтобы исправить ситуацию и предоставить начинающим специалистам возможность изучать методы тестирования защищенности и инструменты мониторинга событий информационной безопасности в комплексе, мы начинаем этой статьей публикацию практических лабораторных работ.



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

Кейс


Во время отпуска администратора информационной безопасности были привлечены сторонние разработчики для создания web-приложения, которое планировалось разместить на web-сервере Tomcat. Разработчики для удобства сделали доступной всему внешнему миру веб-консоль управления приложениями сервера и создали нетривиальную учётную запись admin:admin.

Угроза


Злоумышленник, сканируя внешние хосты организации, наталкивается на порт 8080 рассматриваемого веб-сервера, убеждается в доступности административной консоли и после немногочисленных попыток успешно подбирает пароль к учётной записи администратора.

Задача


Необходимо определить, как администратор ИБ мог бы до своего отпуска настроить SIEM, чтобы своевременно зарегистрировать инцидент, связанный с рассматриваемой угрозой. После этого необходимо реализовать данный сценарий атаки и убедиться в корректном срабатывании директив корреляции.

Виртуальная инфраструктура


Ситуация развивается в следующей ИТ-инфраструктуре, развернутой в VirtualBox:



  1. Машина атакующего (Kali Linux, IP: 8.8.8.10, 4GB RAM, kali:kali);
  2. Межсетевой экран с системой обнаружения вторжений (pfSense, IP внешний: 8.8.8.1, IP внутренней сети: 192.168.1.1, IP DMZ: 192.168.2.1, 1GB RAM, admin:pfsense);
  3. Web-сервер (Ubuntu Server 18.04 c Tomcat, IP 192.168.2.15, 2GB RAM, user:user);
  4. Сервер SIEM-системы КОМРАД (Ubuntu 20.04, IP 192.168.1.99, 4GB RAM, user:user).

Если интересно самостоятельно развернуть данную инфраструктуру, то можно воспользоваться инструкцией, если же есть желание сэкономить время, то мы выложили сконфигурированные виртуальные машины в формате OVA. SIEM-систему необходимо будет получить дополнительно, но об этом будет написано ниже.

Решение: настройка SIEM-системы


Для решения задачи мы последовательно выполним действия злоумышленника, проведем анализ того, как они отражаются в журналах межсетевого экрана и веб-сервера, настроим сбор, парсинг и фильтрацию событий, а также создадим необходимые директивы корреляции в SIEM-системе.
В руководстве по нашей лабораторной представлены подробные шаги по решению данной задачи, в статье же мы сконцентрируемся только на ключевых моментах.

1. Отправка событий с межсетевого экрана


Межсетевой экран pfSense позволяет отправлять свои журналы по протоколу Syslog на удаленный сервер, для этого достаточно задать IP-адрес и порт syslog-коллектора SIEM КОМРАД, а также добавить правило, разрешающее отправку логов из сети 192.168.2.0/24 во внутреннюю сеть 192.168.1.0/24.



В SIEM-систему будут поступать события следующего вида:

<134>1 2020-10-18T02:33:40.684089+00:00 pfSense.localdomain filterlog 9761 - 4,,,1000000103,em0,match,block,in,4,0x0,,64,25904,0,DF,6,tcp,60,8.8.8.10,8.8.8.1,35818,1721,0,S,1017288379,,64240,,mss;sackOK;TS;nop;wscale

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

2. Отправка событий с web-сервера


Web-cервер Tomcat регистрирует http-запросы в локальных журналах, которые можно перенаправить через rsyslog в SIEM-систему. Для решения этой задачи можно воспользоваться также и файловым коллектором, который входит в состав SIEM-системы КОМРАД. В записях можно увидеть, что регистрируется IP-адрес хоста, с которого поступил запрос, а также учётная запись пользователя в случае его успешной авторизации:



3. Получение потока событий SIEM-системой КОМРАД


Рассмотренные события автоматически регистрируется SIEM-системой КОМРАД:



Упомянутых двух типов событий достаточно, чтобы выявлять следующие ситуации:

  • Блокировка соединения по признаку block;
  • Сканирование портов в случае нескольких блокировок попыток соединений, инициированных одним и тем же хостом;
  • Подозрение на несанкционированный доступ сканирование портов с последующим получением административного доступа.

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

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

4. Разбор событий SIEM-системой КОМРАД (парсинг)


Для парсинга событий источника в SIEM-системе необходимо создать плагин, включающий в себя набор регулярных выражений. Для самых популярных источников в составе КОМРАД уже имеются готовые плагины. В случае отсутствия плагина для пользователя доступна возможность его создания.

Ниже представлен пример разработки регулярного выражения для извлечения полей из рассмотренного выше события межсетевого экрана. В качестве инструмента отладки мы воспользовались порталом https://regex101.com/



После создания плагина данные из событий извлекаются в отдельные поля, как это видно из следующей карточки события:



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


Для того, чтобы в потоке событий, поступающих в SIEM-систему выявлять интересующие нас события, нам понадобится настроить фильтры. В SIEM-системе КОМРАД фильтры формируются с использованием популярного скриптового языка Lua (ИБ-специалистам он уже знаком по Nmap и Suricata).

Для выбора событий межсетевого экрана, связанных с блокировкой соединения, мы создадим следующий фильтр:

-- функция filter принимает событиеfunction filter(event)-- из события извлекается действие, которое было предпринято и IP-адрес машины, инициировавшей подключение    action = event:getString ('Action')    ip = event:getString ('IpSrc')-- в случае блокировки возвращается IP-адрес, который можно использовать в директиве корреляции    if action == 'block' then        return {IP=ip}    endend

Ненамного сложнее выглядит фильтр для события Tomcat, в котором мы проверяем соответствует ли извлечённая из события учётная запись значению admin. В этом случае также возвращаем IP-адрес.

function filter(event)    journal = event:getString ('Journal')    login = event:getString ('Username')    ip = event:getString ('IpSrc')        if journal == 'tomcat-access' and login == 'admin' then        return {IP=ip}    endend

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

6. Создание директив корреляции


Создадим директивы корреляции для рассматриваемых ситуаций со следующими уровнями важности:

  1. Блокировка соединения несущественная;
  2. Сканирование портов низкая;
  3. Отправка http-запросов с использованием учетной записи admin высокая.

Для создания инцидента в случае блокировки соединения достаточно в директиве корреляции указать на единственный применяемый фильтр:

filter 5

Вторая директива, которая должна создавать инцидент в случае трехкратного срабатывания блокировки соединения, инициированного одним и тем же хостом, будет выглядеть следующим образом:

/*Объявляем переменную ip, которой присваиваем значение, получаемое при первом срабатывании фильтра на блокировку соединения.*/var ipfilter 5 export ip = ep.IP/*Ожидаем в течение одной минуты аналогичного события с совпадающим IP.С помощью ключевого слова notforking, обозначаем необходимость остановки шага при первом срабатывании.*/filter 5 +1m where ep.IP==ip notforking//повторяем для третьего события.filter 5 +1m where ep.IP==ip notforking

В третьей директиве мы добавляем еще одну строку, в которой задействуем фильтр с идентификатором 6, созданный для выборки запросов к веб-серверу с учетной записью admin.

var ipfilter 5 export ip = ep.IPfilter 5 +1m where ep.IP==ip notforkingfilter 5 +1m where ep.IP==ip notforkingfilter 6 +1m where ep.IP==ip notforking

В учебном примере временное окно оставили равным 1 минуте, в реальной жизни имеет смысл его увеличить до нескольких минут.

Решение: проведение атаки и ее выявление


После конфигурации источников событий и SIEM-системы настало время провести учебную атаку. Сначала просканируем порты:



Затем заходим на порт 8080 и проходим авторизацию с учётной записью admin:admin:



Указанные действия фиксируются SIEM-системой КОМРАД: срабатывают все три директивы корреляции:



Заключение


Таким образом, в этой лабораторной работе мы увидели последовательность действий по сбору и анализу событий информационной безопасности в случае получения административного доступа к веб-серверу. В следующей лабораторной работе нападающая сторона будет развивать атаку и использовать полученный административный доступ для сбора информации о целевой инфраструктуре.

Как получить демо-версию SIEM-системы КОМРАД


Сейчас проходит бета-тестирование нашего продукта, в котором может принять участие любой желающий. Для этого мы предоставляем текущую версию SIEM-системы в виде Docker-контейнера. В демо-версии всего два ограничения: скорость обработки событий урезана до 1000 EPS и отсутствует система авторизации и управления доступом.

Для того, чтобы получить архив с демо-версией напишите нам на адрес электронной почты getkomrad@npo-echelon.ru c почтового ящика вашей организации (нам интересно, кто примет участие). Также приглашаем вас в нашу группу в Telegram, где можно получить помощь в случае каких-либо затруднений: https://t.me/komrad4

Ссылки


  1. Виртуальные машины для организации учебной инфраструктуры в VirtualBox: https://yadi.sk/d/GQ4BFn_soDJj0A
  2. Инструкция по развертыванию инфраструктуры с нуля, если не хочется пользоваться готовыми машинами: https://yadi.sk/i/tD8nxckjYwr_6Q
  3. Решение лабораторной 1: https://yadi.sk/i/ffztj2XQMPD-xw
Источник: habr.com
К списку статей
Опубликовано: 19.10.2020 00:12:27
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании эшелон

Информационная безопасность

Тестирование на проникновение

Лабораторные работы

Siem

Хакинг

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru