Пер­вый этап реаги­рова­ния на ИБ‑инци­дент — это обра­бот­ка событий и поиск в них арте­фак­тов. Затем спе­циалист стро­ит тай­млай­ны и опре­деля­ет век­тор и вре­мя ата­ки. В этой статье мы погово­рим об инс­тру­мен­тах, которые облегча­ют этот труд и помога­ют в рас­сле­дова­нии, в осо­бен­ности ког­да дан­ных очень мно­го.

Иног­да быс­тро отде­лить зер­на от пле­вел прос­то. Дос­таточ­но вос­поль­зовать­ся под­ручны­ми средс­тва­ми или ути­лита­ми вро­де EvtxECmd и Timeline Explorer.

Но быва­ет, что задача серь­езнее: событий на вхо­де мно­го, и обра­ботать такой объ­ем дан­ных быс­тро или най­ти век­тор (и, что час­то слож­нее, опре­делить вре­мя инци­ден­та) доволь­но труд­но. Боль­но смот­реть на ИБ‑спе­циалис­тов, которые исполь­зуют для таких задач натив­ные инс­тру­мен­ты, нап­ример пре­дус­танов­ленный жур­нал прос­мотра событий Windows.

Вмес­то это­го сто­ит воору­жить­ся чуть более прод­винуты­ми инс­тру­мен­тами. Давай раз­берем нес­коль­ко ути­лит и их осо­бен­ности, а заод­но пос­мотрим на них в дей­ствии — на при­мерах событий жур­налов Windows вер­сий стар­ше 7.

Зна­комить­ся будем со сле­дующи­ми ути­лита­ми для Threat Hunting и Incident Response:

 

Sigma

О Sigma-пра­вилах и их струк­туре уже написа­на не одна статья, поэто­му очень корот­ко: Sigma — опен­сор­сный про­ект, который ведет­ся с 2017 года и поз­воля­ет писать пра­вила (сиг­натуры) для обна­руже­ния вре­донос­ной активнос­ти. Сей­час обще­дос­тупные пра­вила пок­рыва­ют более 3 тысяч тех­ник и так­тик ата­кующих. Обна­руже­ние вре­донос­ной активнос­ти в инс­тру­мен­тах, о которых мы будем говорить (кро­ме DeepBlueCLI), тоже осно­вано на Sigma-пра­вилах. Они поз­воля­ют быс­тро находить ано­малии и вре­донос­ную активность в боль­шом количес­тве событий. Преж­де чем прис­тупать к ути­литам, ска­чаем Sigma-пра­вила:

git clone https://github.com/SigmaHQ/sigma
 

DeepBlueCLI

Нач­нем, пожалуй, с самого прос­того из выб­ранных инс­тру­мен­тов. DeepBlueСLI — модуль PowerShell, раз­работан­ный Эри­ком Кон­радом для поис­ка угроз в жур­налах событий Windows. В отли­чие от дру­гих инс­тру­мен­тов в этой статье, механизм обна­руже­ния здесь осно­ван не на Sigma-пра­вилах, а на обыч­ных про­вер­ках наличия тех или иных арте­фак­тов и количес­тве сра­баты­ваний для опре­делен­ных событий (нап­ример, попыток неус­пешно­го вхо­да).

На осно­ве этих дан­ных мож­но обна­ружи­вать, нап­ример, подоз­ритель­ные манипу­ляции с учет­ной записью (соз­дание, добав­ление в груп­пы, password spraying и про­чее).

.\DeepBlue.ps1 .\evtx\password-spray.evtx
Детектирование password spraying
Де­тек­тирова­ние password spraying

Здесь замет­но, что были попыт­ки вой­ти в 41 уни­каль­ную учет­ную запись с одним паролем. И заод­но мы видим под­робное опи­сание резуль­тата.

Еще можем гля­нуть активность в коман­дной стро­ке и обо­лоч­ке PowerShell (есть поиск обфусци­рован­ных скрипт­бло­ков, запус­ков через PsExec и дру­гие воз­можнос­ти).

.\DeepBlue.ps1 .\evtx\psattack-security.evtx | Out-GridView
Suspicious Command Line
Suspicious Command Line

Так­же DeepBlue поз­воля­ет про­водить аудит служб, то есть искать попыт­ки соз­дания служб и дру­гие подоз­ритель­ные события.

По­лучен­ные пос­ле обра­бот­ки дан­ные мож­но вывес­ти в раз­ных удоб­ных фор­матах для даль­нейше­го ана­лиза: CSV, Out-GridView, Format-Table, HTML, JSON, XML.

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

Сре­ди дос­тоинств DeepBlue — воз­можность добав­лять новые про­вер­ки непос­редс­твен­но в код сце­нария на PowerShell. К при­меру, мож­но с лег­костью дописать детект password spraying в Active Directory (события 4771 и 4768).

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

 

Chainsaw

Chainsaw — инс­тру­мент для пер­вично­го реаги­рова­ния на инци­ден­ты и поис­ка арте­фак­тов в жур­налах событий Windows, таб­лицах Master File Table и System Resource Utilization Monitor. Для авто­мати­зации поис­ка угроз исполь­зуют­ся Sigma-пра­вила, но этим дело не огра­ничи­вает­ся. Мож­но искать отдель­ные сло­ва, исполь­зуя регуляр­ные выраже­ния, про­чесы­вать события при помощи кас­томных пра­вил, исполь­зовать кас­томные пра­вила для агре­гации получен­ных записей о сра­баты­вании. Есть дру­гие инте­рес­ные фичи, которые я покажу даль­ше.

Поп­робу­ем воз­можнос­ти на прак­тике. Пред­ставь, что в рам­ках реаги­рова­ния на инци­дент нам отгру­зили события в количес­тве 333 штук (131 Мбайт). Изу­чать жур­налы по отдель­нос­ти име­ет смысл, толь­ко если мы уже зна­ем, какой век­тор ата­ки и ког­да она была совер­шена. Это не наш слу­чай. Сей­час необ­ходимо взгля­нуть на ситу­ацию с высоты птичь­его полета, поэто­му вос­поль­зуем­ся ути­литой Chainsaw в режиме охо­ты на подоз­ритель­ные активнос­ти.

Что­бы вклю­чить режим охо­ты на угро­зы, зададим аргу­мент hunt, ука­жем пра­вила Sigma (флаг -s) и каталог с пра­вила­ми (мож­но исполь­зовать как дирек­торию, так и ре­пози­торий на GitHub). Так­же нуж­но задать каталог с дан­ными об инци­ден­те (жур­налы событий Windows) и путь к фай­лу YAML для мап­пинга пра­вил Sigma и событий (он нужен для сопос­тавле­ния полей из сырых событий и Sigma-пра­вил):

.\chainsaw.exe hunt CyberPolygon_Forensic_Artifacts\winevt\Logs/ -s ..\..\..\sigma\ --mapping ..\..\mappings\sigma-event-logs-all.yml

Ви­дим в кон­соли PowerShell при­ветс­твие Chainsaw и сооб­щение об успешной заг­рузке жур­налов событий и Sigma-пра­вил. Ути­лита работа­ет быс­тро и выда­ет таб­лицу с такими стол­бца­ми:

  • вре­мен­ная мет­ка;
  • ре­зуль­тат поис­ка на осно­ве пра­вил Sigma;
  • чис­ло най­ден­ных событий (Count);
  • Event.System.Provider;
  • EID;
  • Record ID;
  • Computer;
  • Event Data.
Chainsaw, обнаружение на основе Sigma
Chainsaw, обна­руже­ние на осно­ве Sigma

Са­мое инте­рес­ное здесь — это детект на осно­ве Sigma-пра­вил.

Chainsaw, обнаружение на основе Sigma
Chainsaw, обна­руже­ние на осно­ве Sigma

Нап­ример, на рисун­ке выше вид­но вре­мя, сра­ботав­шие пра­вила детек­та — Sigma Rules для событий PowerShell с EID 4104, а так­же путь, из которо­го был запущен сце­нарий PowerShell, и его началь­ное содер­жимое.

Важ­но пом­нить, что аудит PowerShell (события 4103 и 4104) по умол­чанию отклю­чен, рекомен­дует­ся его вклю­чать. Как это сде­лать, мож­но почитать в до­кумен­тации.

В кон­це таб­лицы получим спи­сок детек­тов по Sigma-пра­вилам и количес­тво про­ана­лизи­рован­ных жур­налов (пус­тые жур­налы были отбро­шены).

Chainsaw — результаты
Chainsaw — резуль­таты

Ес­ли мы зна­ем, что подоз­ритель­ная активность (судя по детек­ту) была свя­зана со сце­нари­ями PowerShell, а имен­но с событи­ями с EID 4104, мы с лег­костью можем взгля­нуть на сырые события и их скрипт­бло­ки, вос­поль­зовав­шись вот такой коман­дой:

.\chainsaw.exe search -t 'Event.System.EventID: =4104' CyberPolygon_Forensic_Artifacts\winevt\Logs/
Поиск Event ID 4104
По­иск Event ID 4104

По­ищем так­же события с EID 4103:

.\chainsaw.exe search -t 'Event.System.EventID: =4103' CyberPolygon_Forensic_Artifacts\winevt\Logs/

По­луча­ем три сов­падения и узна­ём, с какими аргу­мен­тами запус­кались сце­нарии.

Поиск Event ID 4103
По­иск Event ID 4103

А так­же наб­люда­ем начало тела скрипт­бло­ка tmpA7Z2.ps1.

Кро­ме поис­ка по EID, мож­но исполь­зовать регуляр­ные выраже­ния. Давай поп­робу­ем най­ти все события, свя­зан­ные с запус­ком най­ден­ного сце­нария:

.\chainsaw.exe search -e 'tmpA7Z2.ps1' c56-CyberCorp\Downloads\CyberPolygon_Forensic_Artifacts\winevt\Logs
Поиск по ключевому слову
По­иск по клю­чево­му сло­ву

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии