
Strumento che raccoglie un insieme personalizzabile di telemetria ETW e genera rilevamenti definiti dall'utente.
EventHorizon è uno strumento pensato per fornire agli analisti della sicurezza e/o ai ricercatori la telemetria di Event Tracing for Windows (ETW) che, combinata con regole simili a sigma, consente capacità robuste di rilevamento e risposta sugli endpoint. Detto ciò, EventHorizon non è in alcun modo un sostituto di soluzioni professionali. Questo progetto ha principalmente lo scopo di semplificare la raccolta della telemetria ETW e la generazione di regole di rilevamento senza dover scrivere codice. Per aumentare questa facilità d'uso, il processo di configurazione di EventHorizon è pensato per essere il più semplice possibile, con un programma di installazione .msi fornito (vedi scheda delle release) e istruzioni di installazione di base (vedi wiki).
[!WARNING]
Utilizza EventHorizon solo in un ambiente di test (NON IN PRODUZIONE). L'installazione richiede la disabilitazione di alcune funzionalità di sicurezza di Windows e non garantisco che EventHorizon sia un software sicuro o scritto professionalmente.
Per iniziare, vai alla Wiki di EventHorizon
Sebbene non possa promettere di mantenere EventHorizon, in futuro mi piacerebbe aggiungere/modificare alcune cose:
EventHorizon è composto da diversi componenti distribuiti sia in modalità utente che kernel. Le sezioni seguenti forniscono una panoramica dettagliata dei componenti e un'idea generale di ciò che fanno.
Per quanto riguarda la modalità utente in EventHorizon, esiste un singolo servizio chiamato EventHorizon che orchestra gli altri vari componenti in modalità utente di EventHorizon. I file relativi alla funzionalità in modalità utente si trovano in C:\Program Files\EventHorizon\ sebbene questo percorso possa cambiare durante l'installazione.
Il componente in modalità kernel di EventHorizon consiste in un singolo driver Early Launch Antimalware (ELAM) chiamato EventHorizonELAM situato in C:\Windows\System32\drivers\.

EventHorizon cerca anche di avere il minor overhead possibile sul sistema. A riposo, tipicamente utilizza poco più di 2MB di RAM. Detto ciò, maggiore è la telemetria ricevuta e più regole sono caricate, maggiore sarà l'uso di potenza di elaborazione/RAM. Se utilizzi un provider che genera un volume elevato di eventi, il consumo di risorse può aumentare rapidamente.

Orchestrazione di EventHorizon (EventHorizon.exe): orchestra i componenti in modalità utente relativi alla funzionalità di EventHorizon. Quando il servizio viene avviato, genera il componente eseguibile per la telemetria e il motore di rilevamento con protezioni PPL AntiMalware e li monitora se per qualche motivo terminano. Gestisce anche le richieste di disinstallazione.
Telemetria di EventHorizon (EventHorizonTelemetry.exe): legge la configurazione ETW, si sottoscrive ai provider pertinenti, filtra gli eventi in arrivo e li invia attraverso una named pipe utilizzando una coda al motore di rilevamento.
Motore di Rilevamento di EventHorizon (EventHorizonDetectionEngine.exe): carica le regole, riceve la telemetria dal componente eseguibile per la telemetria e attiva i rilevamenti nel Visualizzatore Eventi di Windows se le regole vengono attivate.

All'interno del Visualizzatore Eventi di Windows in Registri applicazioni e servizi > EventHorizon ci sono 3 canali diversi utilizzati da EventHorizon.
Gli eventi relativi ai nomi dei canali vengono inseriti lì. Si prega di fare riferimento alla wiki per ulteriori informazioni su eventi specifici.

Come accennato in precedenza, il componente in modalità kernel di EventHorizon consiste in un singolo driver Early Launch Antimalware (ELAM) chiamato EventHorizonELAM situato in C:\Windows\System32\drivers\. Questo driver ELAM è ciò che consente ai componenti in modalità utente di EventHorizon di ottenere protezioni PPL AntiMalware. Inoltre, il driver risponde alle richieste effettuate dai componenti in modalità utente tramite IOCTL per:
EventHorizon si basa su alcune librerie:
Di seguito è riportato un elenco delle risorse che ho utilizzato durante lo sviluppo, ma prima vorrei ringraziare alcune persone per i loro contributi diretti. Innanzitutto, vorrei ringraziare Jacob Acuna per i suoi primi contributi alla struttura generale e alla funzionalità del progetto. Inoltre, vorrei ringraziare Eric Esquivel, Julian Peña e Kyle Avery per le loro preziose intuizioni.