[Информационная безопасность] Использование SIEM в ходе подготовки этичных хакеров: открываем цикл практических лабораторных работ
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Как мы готовим в наших университетах и учебных центрах этичных хакеров? Как правило, предоставляем им Kali Linux или «Сканер-ВС», включающие набор инструментов для тестирования защищенности и машину со множеством уязвимостей. В результате слушатели могут получить довольно поверхностное представление о том, как проводится тестирование на проникновение на самом деле, так как в реальных проектах пентестеры имеют дело с инфраструктурами, включающими средства защиты информации и системы мониторинга событий информационной безопасности (SIEM). Чтобы исправить ситуацию и предоставить начинающим специалистам возможность изучать методы тестирования защищенности и инструменты мониторинга событий информационной безопасности в комплексе, мы начинаем этой статьей публикацию практических лабораторных работ.
Наша вводная лабораторная работа посвящена выявлению инцидента, связанного с получением доступа к административной панели web-сервера.
Кейс
Во время отпуска администратора информационной безопасности были привлечены сторонние разработчики для создания web-приложения, которое планировалось разместить на web-сервере Tomcat. Разработчики для удобства сделали доступной всему внешнему миру веб-консоль управления приложениями сервера и создали «нетривиальную» учётную запись admin:admin.
Угроза
Злоумышленник, сканируя внешние хосты организации, наталкивается на порт 8080 рассматриваемого веб-сервера, убеждается в доступности административной консоли и после немногочисленных попыток успешно подбирает пароль к учётной записи администратора.
Задача
Необходимо определить, как администратор ИБ мог бы до своего отпуска настроить SIEM, чтобы своевременно зарегистрировать инцидент, связанный с рассматриваемой угрозой. После этого необходимо реализовать данный сценарий атаки и убедиться в корректном срабатывании директив корреляции.
Виртуальная инфраструктура
Ситуация развивается в следующей ИТ-инфраструктуре, развернутой в VirtualBox:
- Машина атакующего (Kali Linux, IP: 8.8.8.10, 4GB RAM, kali:kali);
- Межсетевой экран с системой обнаружения вторжений (pfSense, IP внешний: 8.8.8.1, IP внутренней сети: 192.168.1.1, IP DMZ: 192.168.2.1, 1GB RAM, admin:pfsense);
- Web-сервер (Ubuntu Server 18.04 c Tomcat, IP 192.168.2.15, 2GB RAM, user:user);
- Сервер 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}
end
end
Ненамного сложнее выглядит фильтр для события 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}
end
end
При использовании в продуктивной среде для повышения производительности системы в начале каждого фильтра может потребоваться поставить проверку на определенный идентификатор коллектора для ограничения области действия фильтра.
6. Создание директив корреляции
Создадим директивы корреляции для рассматриваемых ситуаций со следующими уровнями важности:
- Блокировка соединения – «несущественная»;
- Сканирование портов – «низкая»;
- Отправка http-запросов с использованием учетной записи admin – «высокая».
Для создания инцидента в случае блокировки соединения достаточно в директиве корреляции указать на единственный применяемый фильтр:
filter 5
Вторая директива, которая должна создавать инцидент в случае трехкратного срабатывания блокировки соединения, инициированного одним и тем же хостом, будет выглядеть следующим образом:
/*Объявляем переменную ip, которой присваиваем значение, получаемое при первом срабатывании фильтра на блокировку соединения.*/
var ip
filter 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 ip
filter 5 export ip = ep.IP
filter 5 +1m where ep.IP==ip notforking
filter 5 +1m where ep.IP==ip notforking
filter 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
Ссылки
- Виртуальные машины для организации учебной инфраструктуры в VirtualBox: https://yadi.sk/d/GQ4BFn_soDJj0A
- Инструкция по развертыванию инфраструктуры с нуля, если не хочется пользоваться готовыми машинами: https://yadi.sk/i/tD8nxckjYwr_6Q
- Решение лабораторной №1: https://yadi.sk/i/ffztj2XQMPD-xw
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, Криптография, Софт] Вышел пакет Sequoia 0.20.0, реализация OpenPGP на Rust
- [Информационная безопасность, Open source, Расширения для браузеров, Браузеры] Расширение Nano Defender нужно срочно удалить из браузера
- [Информационная безопасность] [Восстановленная статья] Уязвимость в Pixelknot
- [Беспроводные технологии, Информационная безопасность, Разработка под Linux] В Linux выявили уязвимость стека Bluetooth, которая позволяет выполнить код на уровне ядра
- [Информационная безопасность] Как мы нашли уязвимость в почтовом сервере банка и чем она грозила
- [Информационная безопасность] Заменит ли автоматизация пентестеров?
- [Информационная безопасность, Социальные сети и сообщества, Видеоконференцсвязь] Сквозное шифрование в Zoom появится и на бесплатных тарифах
- [Информационная безопасность] Android Guards. История создания, развития и первый meetup
- [Информационная безопасность] Приглашение к обсуждению методики составления индекса HTTPS-защищенности сайтов
- [Игры и игровые приставки, Информационная безопасность] PlayStation 5 разрешит записывать голосовые чаты и «стучать» на игроков
Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_testirovanie_na_proniknovenie (тестирование на проникновение), #_laboratornye_raboty (лабораторные работы), #_siem, #_haking (хакинг), #_blog_kompanii_eshelon (
Блог компании Эшелон
), #_informatsionnaja_bezopasnost (
Информационная безопасность
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 21:03
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Как мы готовим в наших университетах и учебных центрах этичных хакеров? Как правило, предоставляем им Kali Linux или «Сканер-ВС», включающие набор инструментов для тестирования защищенности и машину со множеством уязвимостей. В результате слушатели могут получить довольно поверхностное представление о том, как проводится тестирование на проникновение на самом деле, так как в реальных проектах пентестеры имеют дело с инфраструктурами, включающими средства защиты информации и системы мониторинга событий информационной безопасности (SIEM). Чтобы исправить ситуацию и предоставить начинающим специалистам возможность изучать методы тестирования защищенности и инструменты мониторинга событий информационной безопасности в комплексе, мы начинаем этой статьей публикацию практических лабораторных работ. Наша вводная лабораторная работа посвящена выявлению инцидента, связанного с получением доступа к административной панели web-сервера. Кейс Во время отпуска администратора информационной безопасности были привлечены сторонние разработчики для создания web-приложения, которое планировалось разместить на web-сервере Tomcat. Разработчики для удобства сделали доступной всему внешнему миру веб-консоль управления приложениями сервера и создали «нетривиальную» учётную запись admin:admin. Угроза Злоумышленник, сканируя внешние хосты организации, наталкивается на порт 8080 рассматриваемого веб-сервера, убеждается в доступности административной консоли и после немногочисленных попыток успешно подбирает пароль к учётной записи администратора. Задача Необходимо определить, как администратор ИБ мог бы до своего отпуска настроить SIEM, чтобы своевременно зарегистрировать инцидент, связанный с рассматриваемой угрозой. После этого необходимо реализовать данный сценарий атаки и убедиться в корректном срабатывании директив корреляции. Виртуальная инфраструктура Ситуация развивается в следующей ИТ-инфраструктуре, развернутой в VirtualBox:
Если интересно самостоятельно развернуть данную инфраструктуру, то можно воспользоваться инструкцией, если же есть желание сэкономить время, то мы выложили сконфигурированные виртуальные машины в формате 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-системой «КОМРАД»: Упомянутых двух типов событий достаточно, чтобы выявлять следующие ситуации:
Все три ситуации могут быть инцидентами информационной безопасности, но, конечно, с разными уровнями важности. Перед тем, как регистрировать инциденты нам необходимо научиться извлекать указанную выше полезную информацию из событий. 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} end end Ненамного сложнее выглядит фильтр для события 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} end end При использовании в продуктивной среде для повышения производительности системы в начале каждого фильтра может потребоваться поставить проверку на определенный идентификатор коллектора для ограничения области действия фильтра. 6. Создание директив корреляции Создадим директивы корреляции для рассматриваемых ситуаций со следующими уровнями важности:
Для создания инцидента в случае блокировки соединения достаточно в директиве корреляции указать на единственный применяемый фильтр: filter 5
Вторая директива, которая должна создавать инцидент в случае трехкратного срабатывания блокировки соединения, инициированного одним и тем же хостом, будет выглядеть следующим образом: /*Объявляем переменную ip, которой присваиваем значение, получаемое при первом срабатывании фильтра на блокировку соединения.*/
var ip filter 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 ip
filter 5 export ip = ep.IP filter 5 +1m where ep.IP==ip notforking filter 5 +1m where ep.IP==ip notforking filter 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 Ссылки
=========== Источник: habr.com =========== Похожие новости:
Блог компании Эшелон ), #_informatsionnaja_bezopasnost ( Информационная безопасность ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 21:03
Часовой пояс: UTC + 5