
Инструмент, который собирает настраиваемый набор телеметрии ETW и генерирует определяемые пользователем обнаружения.
EventHorizon — это инструмент, предназначенный для вооружения аналитиков безопасности и/или исследователей телеметрией Event Tracing for Windows (ETW), которая в сочетании с правилами, напоминающими sigma, обеспечивает надежные возможности обнаружения и реагирования на конечных точках. Тем не менее, EventHorizon ни в коей мере не является заменой полноценных решений. Этот проект в первую очередь предназначен для упрощения сбора телеметрии ETW, а также для генерации правил обнаружения без необходимости писать код. Чтобы повысить удобство использования, процесс установки EventHorizon задуман максимально простым: предоставляется установщик .msi (см. вкладку релизов) и базовые инструкции по установке (см. вики).
[!WARNING]
Используйте EventHorizon только в тестовой среде (НЕ В ПРОДАКШЕНЕ). Установка требует отключения определенных функций безопасности Windows, и я не гарантирую, что EventHorizon является безопасным или профессионально написанным программным обеспечением.
Чтобы начать, перейдите на Вики EventHorizon
Хотя я не могу обещать, что буду поддерживать EventHorizon, в будущем я хотел бы добавить/изменить несколько вещей:
EventHorizon состоит из нескольких компонентов, распределенных как в пользовательском, так и в режиме ядра. Следующие разделы предназначены для предоставления подробного обзора компонентов и общего представления о том, что они делают.
Что касается пользовательского режима в EventHorizon, то существует единственная служба с именем EventHorizon, которая служит для оркестровки других различных компонентов пользовательского режима EventHorizon. Файлы, относящиеся к функциональности пользовательского режима, находятся в C:\Program Files\EventHorizon\, хотя этот путь может измениться во время установки.
Компонент режима ядра EventHorizon состоит из одного драйвера Early Launch Antimalware (ELAM) с именем EventHorizonELAM, который находится в C:\Windows\System32\drivers\.

EventHorizon также стремится к минимальной нагрузке на систему. В режиме простоя он обычно использует чуть более 2 МБ ОЗУ. Тем не менее, чем больше телеметрии принимается и чем больше правил загружено, тем больше вычислительной мощности/ОЗУ будет использоваться. Если вы используете провайдера с высоким объемом событий, то потребление ресурсов может быстро возрасти.

Оркестровка EventHorizon (EventHorizon.exe): оркеструет компоненты пользовательского режима, связанные с функциональностью EventHorizon. При запуске службы она порождает исполняемый файл телеметрии и движок обнаружения с защитой PPL AntiMalware и отслеживает их на случай, если они по какой-то причине завершатся. Также обрабатывает запросы на удаление.
Телеметрия EventHorizon (EventHorizonTelemetry.exe): считывает конфигурацию ETW, подписывается на соответствующих провайдеров, фильтрует входящие события и отправляет их через именованный канал с использованием очереди в движок обнаружения.
Движок обнаружения EventHorizon (EventHorizonDetectionEngine.exe): загружает правила, принимает телеметрию от исполняемого файла телеметрии и фиксирует обнаружения в Windows Event Viewer, если правила срабатывают.

В Windows Event Viewer в разделе Applications and Services Logs > EventHorizon находятся 3 различных канала, используемых EventHorizon.
События, относящиеся к именам каналов, помещаются туда. Пожалуйста, обратитесь к вики для получения дополнительной информации о конкретных событиях.

Как упоминалось ранее, компонент режима ядра EventHorizon состоит из одного драйвера Early Launch Antimalware (ELAM) с именем EventHorizonELAM, который находится в C:\Windows\System32\drivers\. Этот драйвер ELAM позволяет компонентам пользовательского режима EventHorizon получить защиту PPL AntiMalware. Кроме того, драйвер отвечает на запросы компонентов пользовательского режима через IOCTL, чтобы:
EventHorizon опирается на несколько библиотек:
Ниже приведен список ресурсов, которые я использовал во время разработки, но сначала я хотел бы поблагодарить несколько человек за их прямой вклад. Прежде всего, я хочу поблагодарить Jacob Acuna за его ранний вклад в общую структуру и функциональность проекта. Также хочу поблагодарить Eric Esquivel, Julian Peña и Kyle Avery за их ценные идеи.