В предыдущей статье мы говорили про извлечение временных меток и создание таймлайна событий Windows. Сегодня рассмотрим инструменты для быстрой генерации таймлайнов и поиска угроз в событиях.
Еще по теме: Анализ событий Windows
Yamato Security Tools
Правильно и вовремя настроенная политика аудита позволяет получить много полезной информации, сократить время реагирования на инцидент и время расследования. О том, какие события необходимо собирать и какой аудит включить, можно прочитать, например, в репозитории Yamato Security. Там же ты найдешь bat-файл для активации политик аудита.
Генерация таймлайнов и поиск угроз в событиях с Hayabusa
Еще Hayabusa умеет определять геопозицию по IP, для этого добавь флаг -G (—GeoIP), но прежде необходимо создать аккаунт сервиса MaxMind. Такая возможность особенно полезна при определении нестандартных подключений. Утилита также способна анализировать систему в live-режиме.
Как и Chainsaw, Hayabusa использует Sigma-правила (с ней идет более 3500 правил), а также использует для детектирования собственные правила, написанные в виде YAML. Это почти то же самое, что и Sigma-правила, но с доработками, которые не поддерживаются Sigma.
Еще один плюс утилиты — вывод обработанных событий в формате, который прекрасно понимает утилита визуализации Timesketch (о том, что это за утилита и как ее развернуть, можно почитать в статье «Сбор и анализ системных событий с помощью Plaso »).
Чтобы получить такой вывод, используй флаг --RFC-3339, задающий формат вывода временных меток, а также укажи профиль ( -p timesketch-verbose) и вывод времени в формате UTC (флаг -U):
1 |
.\hayabusa-2.9.0-win-x64.exe csv-timeline -d E:\CyberDefenders\c56-CyberCorp\Downloads\CyberPolygon_Forensic_Artifacts\winevt\Logs --RFC-3339 -o timesketch-import_c56.csv -p timesketch-verbose -U -C -F |
На выходе, кроме сработавших кастомных правил (Rule Authors), получаем имена компьютеров и оценку критичности событий.
Если событий много, их можно разделить по компьютерам и уровню критичности событий, а также тегам (теги здесь — тактики по MITRE в духе attack., например attack.persistence). Таким образом работу легко распределить между членами команды реагирования.
Информация о срабатываниях агрегируется в таблицу с уровнями критичности и видом детекта, по которому удобно искать в Timesketch.
Загрузим получившийся отчет в Timesketch. Здесь можно искать по техникам и примененным утилитам, к примеру попробуем найти «PsExec Lateral Movement» (наименование было взято из таблицы после обработки событий в Hyabusa).
Видно таймлайн для событий и сами события. Заглянем внутрь любого из них и увидим скомпрометированный хост, EID, MitreTags и MitreTactics — что очень удобно, к тому же по всем полям можно искать в Timesketch.
Чтобы сократить время поиска вредоносной активности в большом количестве событий, можно воспользоваться флагами --proven-rules, --EID-filter, --enable-unsupported-rules. Флаг --remove-duplicate-data поменяет поля дублирующихся событий на DUP. При этом они будут учитываться, но в вывод не попадут.
Давай выведем в консоли таймлайн с частотой детекта, используя перечисленные флаги:
1 |
.\hayabusa-2.9.0-win-x64.exe csv-timeline -d Y:\Ransomware31012023\KapeEvidences\C\Windows\System32\winevt\logs --proven-rules --EID-filter --enable-unsupported-rules --visualize-timeline --remove-duplicate-data |
Подпавшие под правила события окрашиваются в разные цвета из таблицы Results, а их детали можно найти над графиком.
С таким инструментом скорость обработки событий увеличивается в разы, но не стоит забывать, что выходные данные дают лишь первоначальную картину случившегося и механизм может не обнаруживать некоторые события, оставляя им уровень low.
Поэтому на основе общих правил необходимо писать свои правила детектирования и переходить к более тщательному анализу, сужая временную зону поиска. Для этого используй флаги --timeline-start, --timeline-end, --timeline-offset.
Давай сделаем это и оставим только детекты уровня critical:
1 |
.\hayabusa-2.9.0-win-x64.exe csv-timeline -d Y:\Ransomware31012023\KapeEvidences\C\Windows\System32\winevt\logs --proven-rules --EID-filter --enable-unsupported-rules --visualize-timeline --remove-duplicate-data --timeline-start "2023-02-08 00:00:00 +03:00" --timeline-end "2023-02-08 16:58:51 +03:00" -m critical |
Утилита отработала в разы быстрее (на малом объеме событий будет не слишком заметно) и выдала частотный график за указанный промежуток времени, а из событий остались только те, что помечены как критичные.
Для сужения области поиска можно использовать и другие флаги, например исключить хосты или оставить только один целевой хост (для этого есть флаги —include-computer и —exclude-computer). То же самое можно проделывать и с событиями по их Event ID.
Еще один хороший прием при поиске артефактов в событиях — использовать pivot-keywords-list. На выходе получим список уникальных данных для детектирования подозрительной активности. Поля, которые будут извлекаться при поиске, можно найти по такому пути:
1 |
Hayabusa_dir\rules\config\pivot_keywords.txt |
Среди полей при настройках по умолчанию будут имена пользователей, хостов, IP-адреса, процессы (LOLBINS и так далее) и другие артефакты:
1 |
.\hayabusa-2.9.0-win-x64.exe pivot-keywords-list -d Y:\Ransomware31012023\KapeEvidences\C\Windows\System32\winevt\logs |
На рисунке выше выведен список процессов, которые запускались на хосте.
Еще одна фишка Hayabusa — это наличие интеграции с Velociraptor, что позволяет собирать и сразу анализировать артефакты.
Также есть возможность работать не только с файлами с расширением .evtx, но и с файлами в формате JSON и JSONL. Чтобы найти другие интересные возможности Hayabusa, рекомендую заглянуть в ее богатую документацию. Мы же перейдем к следующему инструменту, созданному в Yamato Security.
Генерация таймлайнов событий угроз с помощью Takajo
Прежде чем использовать Takajo, нужно подготовить таймлайны при помощи Hayabusa:
1 |
.\hayabusa-2.9.0-win-x64.exe json-timeline -d KapeEvidences\C\Windows\System32\winevt\logs -L -o ramsomware_timeline.jsonl |
Теперь можно анализировать события входа в Takajo:
1 |
./takajo.exe timeline-logon -t .\ramsomware_timeline.jsonl -o ransomware_logon.csv |
Забираем все IP-адреса из обработанных Hayabusa данных:
1 |
./takajo.exe list-ip-addresses -t ..\hayabusa-2.9.0-win-64-bit\cybercorp.jsonl -o cybercorp_ipaddr.txt |
По умолчанию берутся только публичные IP-адреса, для включения приватных нужно использовать флаг -p.
Потом можно будет проверить эти IP на VirusTotal:
1 |
./takajo.exe vt-ip-lookup -a -I .\cybercorp_ipaddr.txt -o vt-ip-lookup.csv -r 1000 -j vt-ip-lookup.json |
То же можно сделать и с другими индикаторами компрометации: доменами и хеш‑суммами исполняемых файлов (если событие было получено от Sysmon).
Takajo умеет выводить таймлайны подозрительных процессов (timeline-suspicious-processes) и строить дерево процессов на основе событий Sysmon (необходимо указать processGuid).
Заключение
Описанные в статье утилиты при умелом использовании позволяют существенно сократить время, нужное на реагирование и поиск угроз. Однако нельзя полагаться только на инструментарий и забывать, что техники атакующих постоянно совершенствуются, поэтому для успешного расследования правила обнаружения тоже нужно улучшать.
В идеале специалист по реагированию должен уметь сам готовить и дорабатывать такие правила, а также быть в курсе новейших техник и инструментов, которые применяются атакующими.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Использование Plaso для сбора системных событий
- Использование Hayabusa и ZUI для анализа журналов Windows