- ETW consente di acquisire eventi del sistema operativo e delle applicazioni, sia nello spazio utente che nel kernel, ed è fondamentale per il debug e l'analisi delle prestazioni.
- Esistono diversi tipi di provider ETW, come MOF, WPP, basati su manifest o TraceLogging, ognuno con la propria struttura e complessità.
- È possibile utilizzare ETW utilizzando strumenti quali logman, wpr e PerfView, ideali per avviare sessioni di tracciamento, acquisire dati e analizzarli.
- ETW è essenziale per le soluzioni EDR/XDR e le indagini forensi, poiché è in grado di estrarre eventi di memoria anche se un aggressore elimina i file.
Tracciamento degli eventi per Windows (ETW) È uno degli strumenti più potenti, ma anche sconosciuto a molti sviluppatori e professionisti della sicurezza in ambienti Microsoft. Questo sistema consente di monitorare, acquisire e analizzare gli eventi generati dal sistema operativo e dalle applicazioni, sia in modalità utente che kernel.
Utilizzato sia per il debug avanzato che per l'analisi forense o il rilevamento delle minacce, ETW offre una visibilità approfondita su ciò che accade a livello di sistema, con un impatto minimo sulle prestazioni. In questo articolo, analizzeremo in dettaglio il funzionamento di ETW, gli strumenti da utilizzare, la sua configurazione, i tipi di dati che è possibile ottenere e come sfruttarlo da diversi ambienti come .NET. PowerShell o addirittura in modo forense, partendo dalla memoria.
Cos'è ETW e perché è così potente?
Event Tracing per Windows è un sistema di tracciamento degli eventi integrato nel kernel di Windows.È stato progettato per consentire a sviluppatori e amministratori di registrare e utilizzare flussi di eventi in tempo reale o da file di log (.etl). ETW è estremamente versatile perché può essere utilizzato da:
- Applicazioni in modalità utente scritte principalmente in C o C++
- Driver del kernel
- Sistemi EDR e antivirus
- Analisti delle prestazioni o della sicurezza
Funziona attraverso un modello basato su tre ruoli chiave: L' fornitori (che generano gli eventi), il controllori (che configurano e controllano le sessioni di tracciamento) e il consumatori (che ha letto gli eventi).
Componenti essenziali dell'ecosistema ETW
Il modello operativo ETW ruota attorno a diversi elementi architettonici che consentono una netta separazione tra il generatore di eventi e il consumatore di eventi:
1. Fornitori o fornitori
Sono i componenti del sistema o delle applicazioni che emettono eventi. Ne esistono diversi tipi:
- Fornitori basati su MOF: Utilizzano il formato Managed Object Format. Hanno una struttura più complessa e non sono più in uso.
- Fornitori WPP: utilizzato principalmente nei driver per il debug.
- Provider basati su manifesti: il più comune oggi. Utilizzano un manifesto XML che definisce la struttura dell'evento.
- Fornitori di TraceLogging: un'alternativa più semplice compatibile con le applicazioni moderne.
2. Titolari del trattamento o titolari del trattamento
Sono responsabili dell'avvio, dell'arresto e della configurazione delle sessioni di tracciamento. Ad esempio, uno strumento come Logman Funziona come un controller, consentendo di configurare quali provider vengono attivati e dove vengono scritti gli eventi.
3. Consumatori
Si tratta di applicazioni o script che leggono gli eventi, in tempo reale o tramite file .etl. Alcuni esempi noti sono:
- Visualizzatore eventi (Visualizzatore eventi di Windows)
- Analizzatore delle prestazioni di Windows (WPA)
- PerfView
- Sistemi EDR come Microsoft Defender per Endpoint
A cosa serve l'ETW?
ETW è ampiamente utilizzato nell'ecosistema Microsoft, dai processi interni alle soluzioni aziendali. Alcuni scenari includono:
- Debug delle applicazioni in tempo reale
- Monitoraggio delle prestazioni (CPU, IO, rete…)
- Debug dei driver in modalità kernel
- Prevenzione e rilevamento delle minacce con EDR/XDR
- Indagine forense digitale
Come interagire con ETW: strumenti pratici
Esistono diversi strumenti che consentono di lavorare con ETW da diverse angolazioni:
Logman.exe
Strumento per riga di comandi Incluso in Windows, non richiede privilegi di amministratore per eseguire molte operazioni. Permette di elencare i provider disponibili, le sessioni attive e di configurare nuove sessioni:
logman query providers
: elenca tutti i provider ETWlogman start miSesion -p {GUID} -o c:\logs\miSesion.etl -ets
: Avvia una sessione di tracciamentologman stop miSesion -ets
: interrompe la sessione
WPR.exe e WPA.exe
Registratore delle prestazioni di Windows (WPR) viene utilizzato per avviare o interrompere le sessioni di tracciamento e Analizzatore delle prestazioni di Windows (WPA) Permette di analizzarli visivamente. Il suo utilizzo è comune in ambienti di sviluppo o debug avanzati:
wpr -start CPU -start FileIO -start DiskIO
wpr -stop resultado.etl
PerfView
Uno strumento sviluppato da Microsoft per l'analisi avanzata delle prestazioni. Genera tracce, raggruppa in base a modelli asincroni e semplifica il debug complesso. Consente inoltre l'acquisizione di sessioni round-robin per evitare il sovraccarico del disco:
perfview -ThreadTime -CircularMB:500 -LogFile:salida.log -Merge:true collect
I file generati (.etl e .etl.ngenpdb) possono essere aperti direttamente in WPA.
Comprendere i manifesti ETW
I provider basati su manifest Definire tutti i loro eventi tramite un file XML. Questo manifesto include informazioni come:
- Provider: nome, GUID e file di risorse
- canali: canale di output (ad esempio Applicazione, Sistema)
- Livelli: livello di gravità dell'evento (critico, errore, dettagliato...)
- Attività e codici operativi: raggruppare gli eventi per attività e tipo di operazione
- parole chiave: filtri per categorie di eventi
- Mappe: mappatura dei codici in testo leggibile
- Modelli: definire la struttura dei dati inclusi negli eventi
- Manifestazioni: definire ogni evento con il suo ID, task, opcode, livello e template
Acquisizione e analisi delle tracce ETW
Una volta catturata una traccia (file .etl), è possibile convertirla in altri formati o analizzarla direttamente:
tracerpt archivo.etl -o archivo.xml
: esporta in XMLtracerpt archivo.etl -o archivo.evtx -of EVTX
: converte nel formato Visualizzatore eventixperf -i archivo.etl -o archivo.csv
: scarica in CSV
È anche possibile effettuare visualizzazioni live con PerfView o definire sessioni automatiche dal Boot utilizzando autologger
:
wpr -boottrace -addboot FileIO
.NET ed ETW
In .NET puoi sfruttare l'API Elaborazione delle tracce per elaborare eventi generati da applicazioni o componenti. È disponibile come pacchetto NuGet ed è utilizzato anche dagli ingegneri Microsoft.
Casi d'uso di sicurezza: EDR/XDR e Threat Hunting
ETW è un pilastro delle soluzioni di rilevamento e risposta precoce (EDR/XDR). Si integra profondamente con il sistema e consente il rilevamento di comportamenti quali:
- Creazione di processi sospetti
- Modifiche al registro
- Traffico di rete insolito
- Accesso alle risorse di sistema critiche
Ad esempio, è possibile identificare tecniche come DCSync utilizzando provider che segnalano la replicazione del controller di dominio.
Analisi forense con ETW
La ricerca avanzata consente addirittura recuperare gli eventi ETW dalla RAM Se sono stati eliminati dal disco da un aggressore. Questo si ottiene accedendo a strutture interne come:
- _WMI_LOGGER_CONTESTO: contiene elenchi come GlobalList o BufferQueue
- _ETW_CONSUMATORE_IN_TEMPO_REALE: fornisce l'accesso a UserBufferListHead
Strumenti come il Plug-in JPCERT Volatility3 Ciò consente di recuperare e analizzare queste tracce direttamente dai dump della RAM. Possono quindi essere elaborate con tracefmt o WPA per identificare l'accesso DNS, il traffico di rete, le minacce bloccate e altro ancora.
Questo sistema offre un visione completa del sistema operativo e dei livelli applicativi, consentendo di anticipare i problemi, ottimizzare le risorse e rilevare anomalie. Sebbene la curva di apprendimento sia ripida, padroneggiare gli strumenti e le strutture che lo compongono offre un vantaggio unico negli ambienti Windows moderni.
Scrittore appassionato del mondo dei byte e della tecnologia in generale. Adoro condividere le mie conoscenze attraverso la scrittura, ed è quello che farò in questo blog, mostrarti tutte le cose più interessanti su gadget, software, hardware, tendenze tecnologiche e altro ancora. Il mio obiettivo è aiutarti a navigare nel mondo digitale in modo semplice e divertente.