Ques/Help/Req Большая охота. Практикуемся в Threat Hunting

XakeR

Member
Регистрация
13.05.2006
Сообщения
1 912
Реакции
0
Баллы
16
Местоположение
Ukraine
Первый этап реагирования на ИБ‑инцидент — это обработка событий и поиск в них артефактов. Затем специалист строит таймлайны и определяет вектор и время атаки. В этой статье мы поговорим об инструментах, которые облегчают этот труд и помогают в расследовании, в особенности когда данных очень много.

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

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

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

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

  • DeepBlueCLI;
  • Chainsaw;
  • Yamato Security Tools:
  • Hayabusa;
  • Takajo.



Sigma​


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

git clone

DeepBlueCLI​


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

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

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

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

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

.DeepBlue.ps1 .evtxpsattack-security.evtx | Out-GridView 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_ArtifactswinevtLogs/ —s ……sigma —mapping ….mappingssigma-event-logs-all.yml

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

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

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

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

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

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

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

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

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

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

.chainsaw.exe search —t ‘Event.System.EventID: =4104′ CyberPolygon_Forensic_ArtifactswinevtLogs/ Поиск Event ID 4104

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

.chainsaw.exe search —t ‘Event.System.EventID: =4103′ CyberPolygon_Forensic_ArtifactswinevtLogs/

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

Поиск Event ID 4103

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

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

.chainsaw.exe search —e ‘tmpA7Z2.ps1′ c56-CyberCorpDownloadsCyberPolygon_Forensic_ArtifactswinevtLogs Поиск по ключевому слову

Присоединяйся к сообществу «Xakep.ru»!​


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

-60%

1 год​


9990 рублей 4000 р.


[TD]

1 месяц​


920 р.
[/TD]

Я уже участник «Xakep.ru»
 
198 114Темы
635 085Сообщения
3 618 401Пользователи
EeOneНовый пользователь
Верх