Как анализирвать трафик с помощью ZUI

Как анализирвать трафик с помощью ZUI

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

Пользовательский интерфейс Zed (ранее Brim), впервые выпущенный для сообщества IB в 2018 году, был разработан с использованием Electron и React. Внутри используется движок ZED, который в свою очередь написан на Go и состоит из нескольких компонентов:

  • Zed data model — общее наз­вание для лежащих в осно­ве про­екта типов дан­ных и семан­тики;
  • Zed lake — кол­лекция выбороч­но индекси­рован­ных дан­ных Zed;
  • Zed language — язык для выпол­нения зап­росов, поис­ка, ана­лити­ки;
  • Zed shaper — модуль, который при­водит вход­ные дан­ные к фор­мату Zed data model;
  • Zed formats — семей­ство пос­ледова­тель­ных (ZNG), стол­бцо­вых (ZST) и челове­кочи­таемых (ZSON) фор­матов;
  • Zed query — скрипт, который выпол­няет поиск и ана­лити­ку;
  • Zeek и Suritcata — сиг­натур­ные сис­темы (intrusion detection systems).

Глав­ные отли­чия ZUI от Wireshark — это ско­рость работы, под­дер­жка сиг­натур и ана­лиза логов. Из минусов мож­но отме­тить невоз­можность декоди­ровать пакеты и экспор­тировать най­ден­ные в тра­фике фай­лы.

СКОРОСТЬ

Изначально ZUI назывался Brim и специализировался исключительно на анализе сетевого трафика и логов. Но из-за универсальности движка ZED он стал развиваться и в других направлениях, а именно в направлении аналитики данных.

Идея механизма ZED, который позволяет ZUI обрабатывать файлы PCAP намного быстрее, чем Wireshark, состоит в том, чтобы избавиться от концепции таблиц из базовой модели данных. Они были заменены современной системой типов, в которой каждое значение может иметь свой собственный тип независимо от сложной схемы, как в настоящее время реализовано в более старых моделях. Получается, что ZED не является ни полуструктурированным, ни табличным. Создатели называют эту концепцию дополнением.

Для при­мера мож­но при­вес­ти фор­мат из Zed data model под наз­вани­ем ZSON. Это при­выч­ный нам JSON с собс­твен­ными типами зна­чений.

Этих знаний нам достаточно, чтобы использовать ZUI в самом интересном, на наш взгляд, приложении — анализе трафика.

Как анализирвать трафик с помощью ZUI

Схема работы

УСТАНОВКА

Linux

Для уста­нов­ки ZUI в Linux исполь­зуй сле­дующие коман­ды:

wget "https://github.com/brimdata/brim/releases/download/v0.31.0/Brim-0.31.0.deb"
sudo chmod +x ./Brim-0.31.0.deb; apt install ./Brim-0.31.0.deb

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

Windows и macOS

Для них суть та же: достаточно скачать установщик с официального сайта приложения и запустить его.

ИНТЕРФЕЙС

Во-первых, давайте полюбуемся минималистичным пользовательским интерфейсом и посмотрим, насколько он функционален. Вы можете отправлять файлы  и других форматов в качестве входных данных для программы, но нас больше JSON, CSV, ZSON, ZNG интересует передача файла ZUI PCAP или структурированного журнала, такого как журнал Zeek.

Как анализирвать трафик с помощью ZUI

Главная страница утилиты

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

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

Как анализирвать трафик с помощью ZUI

Небольшая диаграмма взаимодействия хостов

ПРИМЕНЯЕМ ZUI НА ПРАКТИКЕ И ПИШЕМ ЗАПРОСЫ

Начать стоит с того, что писать запросы с помощью ZQL-запроса совсем не сложно. Просто найдите нужные поля в логах и отфильтруйте логи по ним. Строка запроса будет переполнена новыми условиями поиска. Лично я постоянно забываю, как найти ту или иную информацию с помощью фильтров Wireshark.

Как анализирвать трафик с помощью ZUI

Создание фильтрующего правила с помощью выбора полей

Я под­готовил для тебя при­меры зап­росов поис­ка, которые пок­роют основные юзкей­сы при работе с ZUI.

Ко­личес­тво каж­дой катего­рии тегов:

count() by _path | sort -r

Все уни­каль­ные DNS queries:

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

SMB- и RPC-тра­фик в сис­темах Windows:

_path matches smb* OR _path=="dce_rpc"

HTTP-зап­росы и филь­тра­ция самых полез­ных колонок:

_path=="http" | cut id.orig_h, id.resp_h, id.resp_p, method, host, uri | uniq -c

Уни­каль­ные кон­некты и их количес­тво:

_path=="conn" | cut id.orig_h, id.resp_p, id.resp_h | sort | uniq

Ко­личес­тво передан­ных бай­тов на один кон­нект:

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

По­иск переда­ваемых фай­лов:

filename!=null | cut _path, tx_hosts, rx_hosts, conn_uids, mime_type, filename, md5, sha1

Все зап­росы HTTP Post:

method=="POST" | cut ts, uid, id, method, uri, status_code

Все IP-под­сети:

_path=="conn" | put classnet := network_of(id.resp_h) | cut classnet | count() by classnet | sort -r

Ну и в завер­шение парада самые, на мой взгляд, клас­сные.

Де­монс­тра­ция всех сра­баты­ваний сиг­натур Suricata и их количес­тво:

event_type=="alert" | count() by alert.severity,alert.category | sort count

Де­монс­тра­ция всех сра­баты­ваний сиг­натур Suricata, отфиль­тро­ван­ных по Source IP и Destination IP:

event_type=="alert" | alerts := union(alert.category) by src_ip, dest_ip

СПИДРАН ПО ПОИСКУ EMOTET C2

Emotet был впервые обнаружен в 2014 году, когда исследователи безопасности классифицировали его как банковский троян. Emotet вызвал в свое время целую эпидемию и успел серьезно навредить многим пользователям. Однако позже эта тройка мутировала в дроппер и стала продаваться в даркнете по принципу CaaS (Cybercrime as a Service). Новой особенностью зловреда стала загрузка других вредоносных программ в систему жертвы.

Од­ним из рас­простра­няемых Emotet’ом вре­доно­сов был бан­ков­ский тро­ян TrickBot. Эту связ­ку мы сей­час и най­дем с помощью ZUI.

Начинаем

Най­дем все вхож­дения DNS в фай­ле PCAP. Для это­го исполь­зуем один из ранее при­веден­ных зап­росов.

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

Как анализирвать трафик с помощью ZUI

Поиск всех вхождений DNS

Боль­ше все­го выделя­ются два адре­са: 112.146.166.173.zen.spamhaus.org и t-privat.de. Пер­вый отно­сит­ся к плат­форме threat-intelligence под наз­вани­ем Spamhaus. А вот вто­рой нам сто­ит про­верить на VirusTotal. Для это­го вызовем кон­текс­тное меню и выберем VirusTotal Lookup.

Как анализирвать трафик с помощью ZUI

VirusTotal в меню

VirusTotal про­водит про­вер­ку и сооб­щает нам, что домен вре­донос­ный и ранее исполь­зовал­ся для хос­тинга мал­вари.

Результаты проверки на VirusTotal

Давайте найдем запись типа A и используем более старую дату разрешения, которая ближе к дате публикации PCAP. Это будет адрес 81.169.145.161. Попробуем найти совпадения в нашем файле PCAP.

Узнаем адрес, и наше внимание обращает на то, что с него идет передача файла во внутреннюю сеть. Это очень подозрительно и требует дальнейшего расследования.

Охота на адрес

От­кро­ем вклад­ку с этим кон­нектом и дос­танем отту­да MD5-хеш 997d6f2e3879bb725fb4747b0046bb50. Теперь нам надо про­верить его на вре­донос­ность.

Файл на VirusTotal

Что ж, сом­нения отпа­ли, хост 10.9.1.101 — это наш пер­вый заражен­ный.

С2 под прицелом

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

filename!=null | cut _path, tx_hosts, rx_hosts, conn_uids, mime_type, filename, md5, sha1

Мы видим другой IP-адрес. Запускаем его на VirusTotal и убеждаемся, что он вреден.

Новый подозрительный адрес

Что­бы удос­товерить­ся, что это управля­ющий сер­вер, про­верим осталь­ные кон­некты на этот адрес. Сра­зу ста­новит­ся оче­вид­но: име­ют мес­то «маяч­ковые отсту­кива­ния».

Новый подозрительный адрес

Масштаб заражения

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

Общая картина по трафику

 

Можно сказать, что здесь нет ничего, что указывало бы на продолжающееся распространение вредоносных программ. В таких опросах вы обычно ожидаете увидеть активность SMB и DCE/RPC.

Для уве­рен­ности, что зараже­ние не пош­ло даль­ше, мож­но пос­мотреть кон­некты, которые совер­шал пер­вый (и, наде­емся, пос­ледний) инфи­циро­ван­ный хост.

Масштабного заражения нет

Нам инте­рес­ны кон­некты толь­ко из той же под­сети. Ничего подоз­ритель­ного не наб­люда­ется.

Итоги спидрана

Мы наш­ли нес­коль­ко IOC, пер­вый заражен­ный хост, С2-сер­вер, а так­же выяс­нили, что даль­ше хос­та 10.9.1.101 зараже­ние не пош­ло.

ВЫВОДЫ

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Click to rate this post!
[Total: 0 Average: 0]

Leave a reply:

Your email address will not be published.