Как начать хантинг
- Проверьте, что у вас лицензия Complete
- Проверьте, что для нужных хостов в политике включена опция Deep Visibility и нужные типы данных. По желанию включите опцию браузерных расширений для хантинга по активностям в браузерах
- Скачайте шпаргалку по языку запросов SentinelOne Query Language (S1QL) по этой ссылке (PDF)
- Перейдите в раздел консоли Visibility и начните хантинг!
- Установите расширение Hunter для Google Chrome (скачать)
- Scraper: Собирайте индикаторы угроз и DV-запросы со страниц Интернета и запускайте поиск по ним в консоли SentinelOne нажатием одной кнопки
- Library: Запускайте поиск по запросам, разработанным аналитиками SentinelOne нажатием одной кнопки
- Signal: Активируйте платную опцию, чтобы получить доступ к премиальной библиотеке продвинутых Threat Hunting-запросов
- Создайте STAR-правила для тех запросов, появление которых вы хотите отслеживать в реальном времени (раздел Visibility > Custom Rules)
Официальная документация
Документация по Deep Visibility доступна здесь https://support.sentinelone.com/hc/en-us/sections/360010935934-Deep-Visibility-Query-Syntax.
Два типа запросов
Event
Событие. События статичны — они произошли, это свершившийся факт и они больше не меняются.
Здесь же можно искать количество различных случившихся событий, например, количество открытых сетевых соединений у процесса. Для этого используются операторы, оканчивающиеся на термин “Count”, например, NetConnInCount > «1000». При таком запросе количество случившихся событий выводится в деталях каждого события по состоянию на момент соответствующего события.
Примеры:
- “показать все процессы, которые были запущены”
- “показать события удаления файла”
- “показать события открытия сетевых соединений”
- «показать процессы, у которых больше 1000 сетевых подключений»
Process State
Состояния процесса. Состояние является динамичным и меняется со временем. Соответственно, запрос на поиск состояния процесса отражает соответствующее состояние процесса на указанный промежуток времени.
Примеры:
- “показать процессы, которые открыли три сетевых соединения в указанный промежуток времени”
- “показать процессы, которые модифицировали файлы А и Б, но не трогали файл В в указанный промежуток времени”
- “показать процессы, которые модифицировали ветки реестра А и Б, и у которых материнским процессом был процесс Х в указанный промежуток времени”
Каждое найденное событие принадлежит тому или иному Storyline ID, по которому можно посмотреть всю цепочку связанных событий.
Что можно поискать. Базовые примеры
Это только примеры. Постарайтесь поискать что-то, что может свидетельствовать об угрозе конкретно для вашей среды. Это требует знания того, что нормально для вашей среды, и генерации гипотез о том, какие отклонения можно поискать.
Тип запроса | Описание | Текст запроса |
Events | Кто-то зашел по RDP, запустил CMD или PowerShell, а оттуда редактор реестра, планировщик заданий или утилиту net.exe | SrcProcParentName Contains Anycase «mstsc.exe» AND SrcProcName In Contains Anycase ( «cmd.exe» , «powershell.exe» ) AND ChildProcNames In Contains Anycase ( «net.exe» , «reg.exe» , «net.exe» , «schtasks.exe» ) |
Events | Поиск техники MITRE “Инъекция в процесс” (T1055) | IndicatorDescription Contains «T1055» |
Events | Выявление средств удаленного доступа | SrcProcName In Contains Anycase ( «teamviewer» , «rutserv» , «rfusclient» , «screenconnect» , «anydesk» ) |
Events | Установка нового ПО на Windows | RegistryKeyPath Contains Anycase «Uninstall» AND EventType = «Registry Key Create» |
Events | Утечка данных из командной строки | SrcProcName = «powershell.exe» AND NetProtocolName In AnyCase ( «ftp» ) |
Events | Запуск whoami из командной строки | ProcessCmd ContainsCIS «whoami» |
Events | Разведка среды AD из командной строки | ProcessCmd ContainsCIS «dsquery» |
Events | Создание пользователя Win из командной строки | SrcProcCmdLine RegExp «net\s+user(?:(?!\s+/add)(?:.|\n))*\s+/add» |
Events | Небезопасные протоколы | NetProtocolName In AnyCase ( «ftp» , «telnet» ) |
Events | Удаление логов с хоста | EventType = «Process Creation» AND TgtProcName Contains Anycase «fsutil» AND TgtProcCmdLine Contains Anycase «usn» AND TgtProcCmdLine Contains Anycase «deletejournal» |
Поиск по техникам MITRE
Необходимо помнить, что поиск по именам и хэшам (даже подписанных) файлов — это только базовый способ хантинга для не самых продвинутых атак. Эти артефакты находятся в самом низу «пирамиды боли» хантинга и расследований, а, значит, их легко изменить. И если строковый хантинг по фактам запуска reg.exe или net.exe еще может быть полезным, то скрытное использование продвинутыми злоумышленниками teamviewer или, например, запуск mimikatz, вряд ли можно обнаружить по имени файла. Такие запросы больше подходят для расследования и реагирование на инциденты, когда мы точно знаем, какие артефакты использовались злоумышленником.
В большинстве случаев, чтобы выявить ранее неизвестную атаку продвинутого злоумышленника необходимо искать техники, тактики и процедуры (TTP). TTP — это то, как злоумышленник выполняет свою миссию, от первоначальной разведки до эксфильтрации данных и на каждом промежуточном этапе Kill Chain. Важно помнить, что здесь не имеются в виду конкретные инструменты, и тем более хэши или имена файлов, а именно поведение и методы работы злоумышленников в процессе хакерской деятельности.
Примеры интересных техник:
- T1003 Выявлено действие чтения конфиденциальной информации из LSASS.
- T1003 Запрошена конфиденциальная информация о пользователе.
- T1003 База данных SAM была экспортирована.
- T1003 Заблокирован доступ к LSASS.
- T1113 Сделан скриншот
- T1130 Добавлен новый корневой сертификат.
- T1136 Добавлена новая учетная запись пользователя.
- T1139 подозрительные изменения в журналах истории shell
- T1145 ведет себя как Mimikatz.
Ищем по запросу вида IndicatorDescription Contains «Tx», где x — номер техники.
Полный список техник, которые поддерживаются в S1, доступен здесь https://support.sentinelone.com/hc/en-us/articles/360044509433-Mitre-Techniques
Хотите узнать больше о SentinelOne?
Закажите демо, расчет цен или тест SentinelOne по этой ссылке.