Анализируем трафик с ZUI (Zed User Interface)
В этой статье расскажем о сканере ZUI и как с его помощью можно анализировать трафик.
Что такое ZUI
Работает на движе ZED, который написан на Go и состоит различных элементов. Чаще его сравнивают с Wireshark. И тут есть несколько принципиальных позитивных отличий: скорость работы, поддержка сигнатур и анализ логов.
Но есть и недостатки: не умеет декодировать пакеты и экспортировать найденные в трафике файлы.
Установка 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
Важно: не забудьте изменить версию в команде, чтобы установить самый последний релиз.
Установка ZUI на Windows и macOS
Тут достаточно скачать с официального страницы файл установки.
Как использовать 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, des
Last updated