
Herramienta que recopila un conjunto personalizable de telemetría ETW y genera detecciones definidas por el usuario.
EventHorizon es una herramienta diseñada para equipar a analistas e investigadores de seguridad con telemetría de Event Tracing for Windows (ETW) que, combinada con reglas tipo sigma, permite capacidades robustas de detección y respuesta en endpoints. Dicho esto, EventHorizon no es en absoluto un reemplazo para soluciones adecuadas. Este proyecto está pensado principalmente para facilitar la recolección de telemetría ETW y la generación de reglas de detección sin necesidad de escribir código. Para aumentar esta facilidad de uso, el proceso de instalación de EventHorizon está diseñado para ser lo más simple posible, con un instalador .msi proporcionado (consulte la pestaña de versiones) e instrucciones básicas de instalación (consulte la wiki).
[!WARNING]
Utilice EventHorizon únicamente en un entorno de pruebas (NO EN PRODUCCIÓN). La instalación requiere deshabilitar ciertas características de seguridad de Windows, y no garantizo que EventHorizon sea un software seguro o profesional.
Para comenzar, visite la Wiki de EventHorizon
Aunque no puedo prometer que mantendré EventHorizon, en el futuro me gustaría agregar/cambiar algunas cosas:
EventHorizon consta de varios componentes distribuidos entre el modo usuario y el modo kernel. Las siguientes secciones tienen como objetivo proporcionar una descripción detallada de los componentes y una idea general de lo que hacen.
En cuanto al modo usuario en EventHorizon, hay un único servicio llamado EventHorizon que sirve para orquestar los otros diversos componentes de modo usuario de EventHorizon. Los archivos relacionados con la funcionalidad del modo usuario se encuentran en C:\Program Files\EventHorizon\, aunque esta ruta puede cambiar durante la instalación.
El componente de modo kernel de EventHorizon consiste en un único controlador Early Launch Antimalware (ELAM) llamado EventHorizonELAM que se encuentra en C:\Windows\System32\drivers\.

EventHorizon también intenta tener la menor sobrecarga posible en el sistema. En reposo, normalmente usará un poco más de 2 MB de RAM. Dicho esto, cuanta más telemetría se reciba y más reglas estén cargadas, más potencia de procesamiento/RAM se utilizará. Si utiliza un proveedor que tiene un alto volumen de eventos, puede aumentar rápidamente el consumo de recursos.

Orquestación de EventHorizon (EventHorizon.exe): orquesta los componentes de modo usuario relacionados con la funcionalidad de EventHorizon. Cuando el servicio se inicia, genera el ejecutable de telemetría y el motor de detección con protecciones PPL AntiMalware y los monitoriza si por alguna razón terminan. También maneja las solicitudes de desinstalación.
Telemetría de EventHorizon (EventHorizonTelemetry.exe): lee la configuración ETW, se suscribe a los proveedores relevantes, filtra los eventos entrantes y los envía a través de una tubería con nombre utilizando una cola al motor de detección.
Motor de detección de EventHorizon (EventHorizonDetectionEngine.exe): carga reglas, recibe telemetría del ejecutable de telemetría y activa detecciones en el Visor de eventos de Windows si se activan las reglas.

Dentro del Visor de eventos de Windows, en Registros de aplicaciones y servicios > EventHorizon, hay 3 canales diferentes utilizados por EventHorizon.
Los eventos relacionados con los nombres de los canales se colocan allí. Consulte la wiki para obtener más información sobre eventos específicos.

Como se mencionó anteriormente, el componente de modo kernel de EventHorizon consiste en un único controlador Early Launch Antimalware (ELAM) llamado EventHorizonELAM que se encuentra en C:\Windows\System32\drivers\. Este controlador ELAM es lo que permite que los componentes de modo usuario de EventHorizon obtengan protecciones PPL AntiMalware. Además, el controlador responde a las solicitudes realizadas por los componentes de modo usuario a través de IOCTLs para:
EventHorizon depende de algunas bibliotecas:
A continuación se muestra una lista de recursos que utilicé durante el desarrollo, pero primero me gustaría agradecer a algunas personas por sus contribuciones directas. En primer lugar, agradezco a Jacob Acuna por sus contribuciones tempranas a la estructura general y funcionalidad del proyecto. Además, agradezco a Eric Esquivel, Julian Peña y Kyle Avery por sus valiosas ideas.