
ETW и WPP инструмент трассировки для исследований в области безопасности. Подписывается на несколько провайдеров, автоматически разбирает события в JSON, и поддерживает расширенную фильтрацию, буферизацию и вывод в stdout, файл или журнал событий Windows для передачи в SIEM.
Я создал этот проект, чтобы помочь не-разработчикам погрузиться в исследование трассировки событий Windows (ETW) и трассировки препроцессора Windows (WPP).

Sealighter использует многофункциональную библиотеку Krabs ETW для детальной фильтрации и сортировки провайдеров и событий ETW и WPP.
Вы можете подписываться и фильтровать несколько провайдеров, включая пользовательские, трассировку ядра и WPP, и выводить события в JSON в stdout, файл или журнал событий Windows (полезно для высокообъёмных трассировок, таких как FileIO). Нет необходимости знать события, которые может генерировать провайдер, или их формат — Sealighter автоматически захватывает и разбирает любые запрошенные события.
Затем события можно разобрать из JSON в Python, PowerShell или переслать в Splunk или ELK для дальнейшего поиска.
Фильтрация может выполняться по различным аспектам события: от его идентификатора или кода операции до сопоставления значения свойства и произвольного поиска строки по всему событию (полезно в трассировках WPP или когда вы не знаете структуру события, но имеете представление о его содержимом). Вы также можете объединять несколько фильтров в цепочку или отрицать фильтр. Можно также фильтровать максимальное количество событий на идентификатор, что полезно для исследования нового провайдера, не перегружая себя похожими событиями.
ETW — невероятно полезная система как для красных, так и для синих команд. Красные команды могут получать сведения о внутренней работе компонентов Windows, а синие — ценную информацию о подозрительной активности.
Типичный цикл исследования выглядит так:
logman query providers или найти WPP-трассировки в бинарникахСделать это с событиями ETW может быть сложно без написания кода для взаимодействия и разбора событий из запутанного API ETW. Если вы не сильный программист (или не хотите возиться с API), ваши единственные альтернативы — использовать комбинацию старых встроенных инструментов Windows для записи на диск в виде двоичных файлов .etl, а затем разбираться с ними. WPP-трассировки усугубляют проблему, предоставляя почти никаких легкодоступных данных о провайдерах и их событиях.
Такие проекты, как JDU2600's Event List и ETWExplorer, дают некоторое статическое понимание, но провайдеры часто содержат запутанные имена событий, такие как Event(1001), что означает, что самые интересные данные становятся видимыми только при динамическом запуске трассировки и наблюдении за выводом.
В некотором смысле, это работает в той же области, что и SilkETW от FuzzySec. Но хотя Silk более готов к производственному использованию для защитников, этот инструмент предназначен для исследователей, таких как я, и поэтому содержит ряд функций, которые я не мог получить с Silk, в основном из-за другой библиотеки, которую они использовали. Пожалуйста, смотрите здесь для получения дополнительной информации.
Вероятно, те, кто понимает основы ETW и действительно хочет погрузиться в поиск данных, которые можно извлечь из него, без необходимости писать код или вручную разбираться, как получать и разбирать события.
Пожалуйста, прочтите следующие страницы:
Установка — Как начать использовать Sealighter, включая простую конфигурацию и настройку журнала событий Windows, если требуется.
Конфигурация — Как настроить Sealighter, включая указание, какие провайдеры логировать и куда.
Фильтрация — Подробное описание всех типов фильтрации, которые предоставляет Sealighter.
Буферизация — Как использовать буферизацию для объединения множества похожих событий в одно
Разбор данных — Как получать и разбирать данные из Sealighter.
Сценарии — Пошаговые примеры сценариев использования Sealighter в моих исследованиях.
Ограничения — То, что Sealighter делает плохо или не делает вовсе.
Название является сокращением от Seafood Highlighter — так в Австралии называют искусственное крабовое мясо. Поскольку инструмент построен на Krabs ETW, я подумал, что название забавное.
Не стесняйтесь создавать issue, хотя, как я указываю в документе сравнения, я всего один человек, и это инструмент, готовый к исследованиям, а не к промышленному использованию.