Инструменты для генера­ции тай­млай­нов событий угроз

Инструменты генера­ции тай­млай­нов событий угроз

В предыдущей статье мы говорили про извлечение временных меток и создание таймлайна событий 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):

Ре­зуль­тат работы Hayabusa
Ре­зуль­тат работы Hayabusa

На выходе, кро­ме сра­ботав­ших кас­томных пра­вил (Rule Authors), получа­ем име­на компь­юте­ров и оцен­ку кри­тич­ности событий.

Ес­ли событий мно­го, их мож­но раз­делить по компь­юте­рам и уров­ню кри­тич­ности событий, а так­же тегам (теги здесь — так­тики по MITRE в духе attack., нап­ример attack.persistence). Таким обра­зом работу лег­ко рас­пре­делить меж­ду чле­нами коман­ды реаги­рова­ния.

Ин­форма­ция о сра­баты­вани­ях агре­гиру­ется в таб­лицу с уров­нями кри­тич­ности и видом детек­та, по которо­му удоб­но искать в Timesketch.

Об­щая таб­лица пра­вил обна­руже­ний и кри­тич­ности алер­тов
Об­щая таб­лица пра­вил обна­руже­ний и кри­тич­ности алер­тов

Заг­рузим получив­ший­ся отчет в Timesketch. Здесь мож­но искать по тех­никам и при­менен­ным ути­литам, к при­меру поп­робу­ем най­ти «PsExec Lateral Movement» (наиме­нова­ние было взя­то из таб­лицы пос­ле обра­бот­ки событий в Hyabusa).

По­иск по тех­нике PsExec Lateral Movement в Timesketch
По­иск по тех­нике PsExec Lateral Movement в Timesketch

Вид­но тай­млайн для событий и сами события. Заг­лянем внутрь любого из них и уви­дим ском­про­мети­рован­ный хост, EID, MitreTags и MitreTactics — что очень удоб­но, к тому же по всем полям мож­но искать в Timesketch.

Инструменты для генера­ции тай­млай­нов событий угроз

Что­бы сок­ратить вре­мя поис­ка вре­донос­ной активнос­ти в боль­шом количес­тве событий, мож­но вос­поль­зовать­ся фла­гами --proven-rules, --EID-filter, --enable-unsupported-rules. Флаг --remove-duplicate-data поменя­ет поля дуб­лиру­ющих­ся событий на DUP. При этом они будут учи­тывать­ся, но в вывод не попадут.

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

Пос­тро­ение Timeline обна­руже­ний в кон­соли
Пос­тро­ение Timeline обна­руже­ний в кон­соли

Под­павшие под пра­вила события окра­шива­ются в раз­ные цве­та из таб­лицы Results, а их детали мож­но най­ти над гра­фиком.

Мар­киров­ка обна­руже­ний по уров­ням кри­тич­ности (high и critical)
Мар­киров­ка обна­руже­ний по уров­ням кри­тич­ности (high и critical)

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

Про­пущен­ные обна­руже­ния (помече­но как low)
Про­пущен­ные обна­руже­ния (помече­но как low)

По­это­му на осно­ве общих пра­вил необ­ходимо писать свои пра­вила детек­тирова­ния и перехо­дить к более тща­тель­ному ана­лизу, сужая вре­мен­ную зону поис­ка. Для это­го исполь­зуй фла­ги --timeline-start, --timeline-end, --timeline-offset.

Да­вай сде­лаем это и оста­вим толь­ко детек­ты уров­ня critical:

Ути­лита отра­бота­ла в разы быс­трее (на малом объ­еме событий будет не слиш­ком замет­но) и выдала час­тотный гра­фик за ука­зан­ный про­межу­ток вре­мени, а из событий оста­лись толь­ко те, что помече­ны как кри­тич­ные.

Сок­ращение зоны поис­ка
Сок­ращение зоны поис­ка

Для сужения области поис­ка мож­но исполь­зовать и дру­гие фла­ги, нап­ример исклю­чить хос­ты или оста­вить толь­ко один целевой хост (для это­го есть фла­ги —include-computer и —exclude-computer). То же самое мож­но про­делы­вать и с событи­ями по их Event ID.

Еще один хороший при­ем при поис­ке арте­фак­тов в событи­ях — исполь­зовать pivot-keywords-list. На выходе получим спи­сок уни­каль­ных дан­ных для детек­тирова­ния подоз­ритель­ной активнос­ти. Поля, которые будут извле­кать­ся при поис­ке, мож­но най­ти по такому пути:

Сре­ди полей при нас­трой­ках по умол­чанию будут име­на поль­зовате­лей, хос­тов, IP-адре­са, про­цес­сы (LOLBINS и так далее) и дру­гие арте­фак­ты:

По­иск с исполь­зовани­ем pivot-keywords-list
По­иск с исполь­зовани­ем pivot-keywords-list

На рисун­ке выше выведен спи­сок про­цес­сов, которые запус­кались на хос­те.

Еще одна фиш­ка Hayabusa — это наличие интегра­ции с Velociraptor, что поз­воля­ет собирать и сра­зу ана­лизи­ровать арте­фак­ты.

Так­же есть воз­можность работать не толь­ко с фай­лами с рас­ширени­ем .evtx, но и с фай­лами в фор­мате JSON и JSONL. Что­бы най­ти дру­гие инте­рес­ные воз­можнос­ти Hayabusa, рекомен­дую заг­лянуть в ее богатую докумен­тацию. Мы же перей­дем к сле­дующе­му инс­тру­мен­ту, соз­данно­му в Yamato Security.

Генера­ция тай­млай­нов событий угроз с помощью Takajo

Преж­де чем исполь­зовать Takajo, нуж­но под­готовить тай­млай­ны при помощи Hayabusa:

Те­перь мож­но ана­лизи­ровать события вхо­да в Takajo:

Ана­лиз событий вхо­да с помощью Takajo
Ана­лиз событий вхо­да с помощью Takajo

За­бира­ем все IP-адре­са из обра­ботан­ных Hayabusa дан­ных:

Из­вле­чение пуб­личных IP-адре­сов из событий
Из­вле­чение пуб­личных IP-адре­сов из событий

По умол­чанию берут­ся толь­ко пуб­личные IP-адре­са, для вклю­чения при­ват­ных нуж­но исполь­зовать флаг -p.

По­том мож­но будет про­верить эти IP на VirusTotal:

Ав­томати­зиро­ван­ная про­вер­ка извле­чен­ных IP на VirusTotal
Ав­томати­зиро­ван­ная про­вер­ка извле­чен­ных IP на VirusTotal

То же мож­но сде­лать и с дру­гими инди­като­рами ком­про­мета­ции: домена­ми и хеш‑сум­мами исполня­емых фай­лов (если событие было получе­но от Sysmon).

Takajo уме­ет выводить тай­млай­ны подоз­ритель­ных про­цес­сов (timeline-suspicious-processes) и стро­ить дерево про­цес­сов на осно­ве событий Sysmon (необ­ходимо ука­зать processGuid).

Заключение

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

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

ПОЛЕЗНЫЕ ССЫЛКИ:

Дима (Kozhuh)

Эксперт в кибербезопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз.

Добавить комментарий