В процессе расследования инцидентов в сетевой области традиционно применяют такие инструменты как Wireshark, Zeek, Suricata. Каждый из указанных инструментов обладает своими достоинствами и недостатками, соответственно было бы целесообразно использовать их в связке из единого интерфейса. Такую возможность предоставляет анализатор трафика ZUI (Brim), о котором пойдет речь в данной статье.

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

Zeek обладает мощным DPI, возможностью анализировать протоколы Windows (SMB, DCE RPC, NTLM, Kerberos), предоставляет обширные метаданные сессий, обеспечивает поддержку обнаружения сложных сетевых атак за счет собственного скриптового языка. Из недостатков — отсутствие удобного графического интерфейса.

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

ZUI несет под капотом движки Zeek и Suricata и в отличие от Wireshark обладает высокой производительностью, т.к. работает на уровне сетевых сессий, а не отдельных пакетов данных. Производительность обеспечивается также собственной дата моделью, заточенной под высокую скорость обработки данных.

Рисунок 1. Архитектура ZUI
Рисунок 1. Архитектура ZUI

Рассмотрим возможности ZUI на примере трафика вредоносного семпла Formbook.

Первое, что стоит отметить, — это удобство и быстрота выполнения агрегированных запросов, сбора статистической информации, которые важны для первичного анализа трафика. Разработчик подготовил TOP наиболее частых и полезных запросов в виде json файла, который легко импортируется в интерфейсе ZUI методом drug and drop.

Рисунок 2. Наиболее популярные запросы
Рисунок 2. Наиболее популярные запросы

Первичный анализ семпла

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

Сформируем перечень уникальных DNS запросов в порядке убывания количества.

_path=="dns" | count() by query | sort -r

Выдает список уникальных DNS запросов в порядке убывания количества.

Рисунок 3. DNS запросы в порядке убывания количества
Рисунок 3. DNS запросы в порядке убывания количества

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

Далее выведем статистику переданных и полученных байт по IP адресам.

_path=="conn" | put total_bytes := orig_bytes + resp_bytes | sort -r total_bytes | cut id, orig_bytes, resp_bytes, total_bytes

Из данной статистики видно, что из внутренних адресов был задействован единственный IP адрес 10.7.11.101. Больше всего данных было получено с внешнего IP 104.21.18.206.

Рисунок 4. Статистика по полученным данным
Рисунок 4. Статистика по полученным данным

Отфильтровав вывод по данному IP адресу, видим, что на нем припаркован домен kyliansuperm92139124.shop.

Рисунок 5. Метаданные TLS сессии с фильтром по IP адресу
Рисунок 5. Метаданные TLS сессии с фильтром по IP адресу

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

Углубленный анализ

Далее проанализируем факты обнаружения файлов в трафике, выполнив запрос file| cut _path, tx_hosts, rx_hosts, mime_type, filename, md5 | not http | fuse

Рисунок 6. Фильтр по загруженным файлам
Рисунок 6. Фильтр по загруженным файлам

Сразу бросается в глаза передача exe файла (md5 хэш c0e88be9b83acf26d8269f07fe927f5c) на фоне многочисленных plain-text, html файлов и x509 сертификатов.

Из контекстного меню вызываем анализ данного exe посредством virustotal и убеждаемся, что это троян formbook.

Рисунок 7. Обнаружение трояна Formbook через VirusTotal
Рисунок 7. Обнаружение трояна Formbook через VirusTotal

Таким, образом мы зафиксировали факт загрузки трояна. Теперь необходимо понять, в результате чего это произошло. Проанализируем два файла, которые по времени предшествовали загрузке трояна. Снова призываем на помощь virustotal и видим, что первый из них (md5 хэш de36330f5ecc55cc90226af3db4a8992) — эксплойт CVE-2017-11882 в формате RTF. Это критическая RCE уязвимость в Microsoft Office, которая по сей день активно эксплуатируется «в дикой природе» в фишинговых атаках.

Рисунок 8. Обнаружение эксплуатации CVE-2017-11882 через VirusTotal
Рисунок 8. Обнаружение эксплуатации CVE-2017-11882 через VirusTotal

Эксплуатация данной уязвимости приводит к загрузке OLE объекта в виде вредоносного hta файла с powershell содержимым, в чем мы можем убедиться, проанализировав следующий файл (md5 хэш d78521f4011c505c5d57d1ef39221969).

Рисунок 9. Обнаружение вредоносной powershell нагрузки через VirusTotal
Рисунок 9. Обнаружение вредоносной powershell нагрузки через VirusTotal

Выполнив запрос md5=="d78521f4011c505c5d57d1ef39221969" и нажав на иконку загрузки пакетов, мы можем провалиться в Wireshark, открыв соответствующий pcap c содержимым hta файла, что является еще одной удобной особенностью ZUI.

Видно, что внутри содержимого hta файла находится закодированный powershell код, который, судя по отчету virustotal и алертам Suricata, является загрузчиком первой ступени трояна Formbook (файл win.exe).

Рисунок 10. VirusTotal, загрузка первой ступени трояна Formbook
Рисунок 10. VirusTotal, загрузка первой ступени трояна Formbook

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

Для пущей наглядности мы можем отфильтровать вывод по HTTP трафику запросом http | method!=null | fuse, из которого подтверждаются сделанные нами выводы относительно цепочки компрометации жертвы: запуск эксплойта CVE-2017-11882 –> загрузка вредоносного hta пейлода с powershell кодом —> загрузка первой ступени Formbook трояна в виде exe файла.

Далее мы наблюдаем многочисленные запросы к C&C доменам с отличительным паттерном /qm18 в URL запроса.

Рисунок 11. Обнаружение многочисленных запросов к C&C доменам
Рисунок 11. Обнаружение многочисленных запросов к C&C доменам

Приведенный выше перечень HTTP позволяет выстроить нам таймлайн атаки:

1. 2023-07-11T16:24:54 Запуск rtf файла с эксплойтом CVE-2017-11882
2. 2023-07-11T16:24:56 Загрузка вредоносного hta пейлода IE_NET.hta с powershell кодом
3. 2023-07-11T16:31:53 Загрузка и запуск первой ступени трояна Formbook в виде exe файла win.exe
4. 2023-07-11T16:32:09 Загрузка и запуск тела трояна Formbook с вредоносного домена kyliansuperm92139124.shop
5. 2023-07-11T16:35:19 - 2023-07-11T16:58:58 Многочисленные C&C отстуки к вредоносным доменам Formbook

Аналитика Suricata

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

Рисунок 12. Обнаружение трояна Formbook посредством алертов Suricata
Рисунок 12. Обнаружение трояна Formbook посредством алертов Suricata

Заключение

За счет высокой производительности, достигаемой вследствие работы с метаданными сетевых сессий вместо отдельно взятых пакетов, ZUI продемонстрировал себя как эффективный инструмент сетевой форензики, который способен покрыть многие слепые зоны Wireshark. В первую очередь это достигается интеграцией с Zeek, обладающим мощнейшим DPI, а также связкой с аналитическими сервисами (Virustotal, whois). Приятным бонусом идет интеграция с Suricata, что позволяет обнаруживать атаки и аномалии из единого интерфейса.

Комментарии (2)


  1. olegtsss
    04.04.2024 15:59

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


    1. Kriks87 Автор
      04.04.2024 15:59
      +1

      На горячую, к сожалению, не получится. Предварительно Вам нужно будет записать pcap, который далее подать на вход brimcap, сконвертировать его в формат zng, понятный для ZUI, и далее с помощью командной утилиты zq выполнять запросы, аналогичные Desktop версии.
      https://github.com/brimdata/brimcap?tab=readme-ov-file