Usare Windows Event Forwarding per semplificare il rilevamento delle intrusioni
Scopri informazioni su un approccio per raccogliere gli eventi dai dispositivi nell’organizzazione. Questo articolo illustra gli eventi che si verificano durante il normale funzionamento e quando si sospetta un tentativo di intrusione.
Windows Event Forwarding (WEF) legge qualsiasi evento operativo o amministrativo connesso a un dispositivo nell'organizzazione e inoltra gli eventi scelti a un server dell'agente di raccolta eventi di Windows (WEC).
Per eseguire questa funzionalità, sono disponibili due sottoscrizioni diverse pubblicate nei dispositivi client: la sottoscrizione baseline e la sottoscrizione sospetta. La sottoscrizione baseline registra tutti i dispositivi nell'organizzazione e una sottoscrizione sospetta include solo i dispositivi che sono stati aggiunti dall'utente. La sottoscrizione Suspect raccoglie più eventi per facilitare la compilazione del contesto per l'attività di sistema e può essere aggiornata rapidamente per supportare nuovi eventi e/o scenari in base alle esigenze senza influire sulle operazioni di base.
Questa implementazione consente di distinguere dove vengono archiviati gli eventi. Gli eventi di base possono essere inviati a dispositivi con funzionalità analitiche online, ad esempio Security Event Manager (SEM), inviando al contempo eventi a un sistema MapReduce, ad esempio HDInsight o Hadoop, per l'archiviazione a lungo termine e un'analisi più approfondita. Gli eventi della sottoscrizione Suspect vengono inviati direttamente a un sistema MapReduce a causa del volume e del rapporto segnale/rumore più basso, vengono in gran parte usati per l'analisi forense dell'host.
Il punto di forza di un SEM risiede nella possibilità di ispezionare, correlare gli eventi e generare avvisi per i modelli noti e avvisare il personale di sicurezza a velocità del computer.
Un sistema MapReduce ha un tempo di conservazione più lungo (anni e mesi per un SEM), una maggiore capacità di ingresso (centinaia di terabyte al giorno) e la possibilità di eseguire operazioni più complesse sui dati, ad esempio l'analisi statistica e delle tendenze, l'analisi dei cluster di modelli o l'applicazione di algoritmi di Machine Learning.
Ecco una guida approssimativa al ridimensionamento per gli eventi WEF:
Eventi/secondo intervallo | Archivio dati |
---|---|
0 - 5,000 | SQL o SEM |
5,000 - 50,000 | SEM |
50,000+ | Hadoop/HDInsight/Data Lake |
La generazione di eventi in un dispositivo deve essere abilitata separatamente o come parte dell'oggetto Criteri di gruppo per l'implementazione WEF di base, inclusa l'abilitazione dei log eventi disabilitati e l'impostazione delle autorizzazioni del canale. Per altre info, vedi Appendice C - Impostazioni del canale eventi (abilitazione e accesso al canale). Questa condizione è dovuta al fatto che WEF è un sistema passivo relativo al registro eventi. Non può modificare le dimensioni dei file del registro eventi, abilitare i canali eventi disabilitati, modificare le autorizzazioni del canale o modificare i criteri di controllo di sicurezza. WEF esegue query solo nei canali eventi per gli eventi esistenti. Inoltre, la generazione di eventi già in corso in un dispositivo consente una raccolta di eventi più completa che compila una cronologia completa dell'attività di sistema. In caso contrario, si sarà limitati alla velocità dei cicli di aggiornamento della sottoscrizione di oggetti Criteri di gruppo e WEF per apportare modifiche a ciò che viene generato nel dispositivo. Nei dispositivi moderni, l'abilitazione di più canali eventi e l'espansione delle dimensioni dei file di log eventi non hanno comportato differenze di prestazioni evidenti.
Per i criteri di controllo minimi consigliati e le impostazioni ACL del sistema del Registro di sistema, vedere Appendice A - Criterio minimo di controllo consigliato e Appendice B - Criteri ACL minimi del registro di sistema consigliati.
Nota
Questi sono solo i valori minimi che devono soddisfare le selezioni della sottoscrizione WEF.
Dal punto di vista della gestione delle sottoscrizioni WEF, le query sugli eventi fornite devono essere usate in due sottoscrizioni separate per semplificare la manutenzione; solo i computer che soddisfano criteri specifici possono accedere alla sottoscrizione di destinazione. Questo accesso sarebbe determinato da un algoritmo o dalla direzione di un analisti. Tutti i dispositivi devono avere accesso alla sottoscrizione Baseline.
Questo sistema di doppia sottoscrizione consente di creare due sottoscrizioni di base:
- Sottoscrizione WEF di base. Eventi raccolti da tutti gli host; questi eventi includono alcuni eventi specifici del ruolo, che verranno generati solo da tali computer.
- Sottoscrizione WEF di destinazione. Eventi raccolti da un set limitato di host a causa di attività insolite e/o maggiore consapevolezza per tali sistemi.
Ognuno di essi usa la rispettiva query sull'evento riportata di seguito. Per la sottoscrizione di destinazione, l'abilitazione dell'opzione "leggi eventi esistenti" deve essere impostata su true per consentire la raccolta di eventi esistenti dai sistemi. Per impostazione predefinita, le sottoscrizioni WEF inoltrano gli eventi generati solo dopo che la sottoscrizione WEF è stata ricevuta dal client.
Nell'Appendice E - Query evento sottoscrizione baseline annotata e Appendice F - Query evento sottoscrizione sospetta con annotazione, il codice XML della query di evento viene incluso durante la creazione di sottoscrizioni WEF. Queste sottoscrizioni vengono annotate per motivi di query e chiarezza. È possibile rimuovere o modificare un singolo <Query>
elemento senza influire sul resto della query.
Domande comuni su WEF
Questa sezione illustra le domande comuni dei professionisti IT e dei clienti.
L'utente noterà se il computer è abilitato per WEF o se wef rileva un errore?
La risposta breve è: No.
La risposta più lunga è: il canale eventi Eventlog-forwardingPlugin/Operational registra gli eventi di esito positivo, di avviso e di errore relativi alle sottoscrizioni WEF presenti nel dispositivo. A meno che l'utente non apra il Visualizzatore eventi e non si sposti su tale canale, non noterà WEF tramite l'utilizzo delle risorse o i popup dell'interfaccia utente grafica. Anche se si verifica un problema con la sottoscrizione WEF, non si verifica alcuna interazione dell'utente o riduzione delle prestazioni. Tutti gli eventi di esito positivo, di avviso e di errore vengono registrati in questo canale di eventi operativi.
Wef Push o Pull?
È possibile configurare una sottoscrizione WEF per il push o il pull, ma non entrambi. La distribuzione IT più semplice e flessibile con la massima scalabilità può essere ottenuta usando una sottoscrizione push o avviata dall'origine. I client WEF vengono configurati usando un oggetto Criteri di gruppo e il client di inoltro predefinito viene attivato. Per il pull avviato dall'agente di raccolta, la sottoscrizione nel server WEC è preconfigurata con i nomi dei dispositivi client WEF da cui devono essere selezionati gli eventi. Tali client devono essere configurati in anticipo per consentire alle credenziali usate nella sottoscrizione di accedere ai log eventi in remoto (in genere aggiungendo le credenziali al gruppo di sicurezza locale predefinito Lettori log eventi ). Uno scenario utile: monitorare attentamente un set specifico di computer.
WEF funzionerà tramite VPN o RAS?
WEF gestisce correttamente gli scenari VPN, RAS e DirectAccess e si riconnette e invia qualsiasi backlog accumulato di eventi quando viene stabilita nuovamente la connessione all'agente di raccolta WEF.
Come viene monitorato lo stato di avanzamento del client?
Il server WEC mantiene nel proprio registro le informazioni sul segnalibro e l'ora dell'ultimo heartbeat per ogni origine evento per ogni sottoscrizione WEF. Quando un'origine eventi si riconnette a un server WEC, l'ultima posizione del segnalibro viene inviata al dispositivo da usare come punto di partenza per riprendere gli eventi di inoltro. Se un client WEF non ha eventi da inviare, il client WEF si connette periodicamente per inviare un heartbeat al server WEC per indicare che è attivo. Questo valore di heartbeat può essere configurato singolarmente per ogni sottoscrizione.
Wef funzionerà in un ambiente IPv4, IPv6 o IPv4/IPv6 misto?
Sì. WEF è indipendente dal trasporto e funzionerà tramite IPv4 o IPv6.
Gli eventi WEF sono crittografati? Viene visualizzata un'opzione HTTP/HTTPS.
In un'impostazione di dominio, la connessione usata per trasmettere gli eventi WEF viene crittografata tramite Kerberos, per impostazione predefinita (con NTLM come opzione di fallback, che può essere disabilitata usando un oggetto Criteri di gruppo). Solo l'agente di raccolta WEF può decrittografare la connessione. Inoltre, la connessione tra il client WEF e il server WEC viene autenticata reciprocamente indipendentemente dal tipo di autenticazione (Kerberos o NTLM). Sono disponibili opzioni dell'oggetto Criteri di gruppo per forzare l'autenticazione a usare solo Kerberos.
L'autenticazione e la crittografia vengono eseguite indipendentemente dall'opzione HTTP o HTTPS selezionata.
L'opzione HTTPS è disponibile se viene usata l'autenticazione basata su certificato, nei casi in cui l'autenticazione reciproca basata su Kerberos non è un'opzione. Il certificato SSL e i certificati client di cui è stato effettuato il provisioning vengono usati per fornire l'autenticazione reciproca.
I client WEF hanno un buffer separato per gli eventi?
Il registro eventi locale dei computer client WEF è il buffer per WEF per quando la connessione al server WEC viene persa. Per aumentare le "dimensioni del buffer", aumentare le dimensioni massime del file del log eventi in cui vengono selezionati gli eventi. Per altre info, vedi Appendice C - Metodi delle impostazioni del canale eventi (abilitazione e accesso al canale).
Quando il registro eventi sovrascrive gli eventi esistenti (con conseguente perdita di dati se il dispositivo non è connesso all'agente di raccolta eventi), non viene inviata alcuna notifica all'agente di raccolta WEF che indica che gli eventi vengono persi dal client. Né esiste un indicatore che indica che si è verificato un gap nel flusso di eventi.
Quale formato viene usato per gli eventi inoltrati?
WEF ha due modalità per gli eventi inoltrati. Il valore predefinito è "Testo sottoposto a rendering" che include la descrizione testuale dell'evento, come si vedrebbe nel Visualizzatore eventi. L'inclusione di questa descrizione significa che le dimensioni dell'evento vengono effettivamente raddoppiate o triplicate a seconda delle dimensioni della descrizione sottoposta a rendering. La modalità alternativa è "Eventi" (talvolta definita anche formato "Binario") che è solo l'xml dell'evento inviato in formato XML binario (come sarebbe scritto nel file evtx). Questo formato è compatto e può superare il doppio del volume di eventi che un singolo server WEC può contenere.
È possibile configurare una sottoscrizione "testSubscription" per l'uso del formato Eventi tramite l'utilità WECUTIL:
@rem required to set the DeliveryMaxItems or DeliveryMaxLatencyTime
Wecutil ss "testSubscription" /cf:Events
Con quale frequenza vengono recapitati gli eventi WEF?
Le opzioni di recapito degli eventi fanno parte dei parametri di configurazione della sottoscrizione WEF: sono disponibili tre opzioni predefinite per il recapito della sottoscrizione: Normale, Riduci al minimo la larghezza di banda e Riduci al minimo la latenza. Un quarto, catch-all denominato "Personalizzato" è disponibile, ma non può essere selezionato o configurato tramite l'interfaccia utente WEF usando Visualizzatore eventi. L'opzione Recapito personalizzato deve essere selezionata e configurata usando l'applicazione da riga di comando WECUTIL.EXE. Tutte le opzioni di sottoscrizione definiscono un numero massimo di eventi e una durata massima degli eventi, se uno dei due limiti viene superato, gli eventi accumulati vengono inviati all'agente di raccolta eventi.
Questa tabella descrive le opzioni di recapito predefinite:
Opzioni di ottimizzazione per il recapito di eventi | Descrizione |
---|---|
Normale | Questa opzione garantisce un recapito affidabile degli eventi e non tenta di risparmiare larghezza di banda. È la scelta appropriata, a meno che non sia necessario un controllo più rigoroso sull'utilizzo della larghezza di banda o che siano necessari eventi inoltrati recapitati il più rapidamente possibile. Usa la modalità di recapito pull, crea in batch 5 elementi alla volta e imposta un timeout batch di 15 minuti. |
Ridurre al minimo la larghezza di banda | Questa opzione garantisce che l'uso della larghezza di banda di rete per il recapito degli eventi sia rigorosamente controllato. Si tratta di una scelta appropriata se si vuole limitare la frequenza delle connessioni di rete effettuate per la distribuzione di eventi. Usa la modalità di recapito push e imposta un timeout batch di 6 ore. Usa inoltre un intervallo di heartbeat di 6 ore. |
Ridurre al minimo la latenza | Questa opzione garantisce che gli eventi vengano recapitati con un ritardo minimo. Si tratta di una scelta appropriata se si raccolgono avvisi o eventi critici. Usa la modalità di recapito push e imposta un timeout batch di 30 secondi. |
Per altre informazioni sulle opzioni di recapito, vedi Configurare impostazioni di sottoscrizione avanzate.
La differenza principale riguarda la latenza degli eventi inviati dal client. Se nessuna delle opzioni predefinite soddisfa i requisiti, è possibile impostare opzioni di recapito eventi personalizzate per una determinata sottoscrizione da un prompt dei comandi con privilegi elevati:
@rem required to set the DeliveryMaxItems or DeliveryMaxLatencyTime
Wecutil ss "SubscriptionNameGoesHere" /cm:Custom
@rem set DeliveryMaxItems to 1 event
Wecutil ss "SubscriptionNameGoesHere" /dmi:1
@rem set DeliveryMaxLatencyTime to 10 ms
Wecutil ss "SubscriptionNameGoesHere" /dmlt:10
Come si controlla quali dispositivi hanno accesso a una sottoscrizione WEF?
Per le sottoscrizioni avviate dall'origine: ogni sottoscrizione WEF in un server WEC ha un proprio ACL per gli account computer o i gruppi di sicurezza contenenti account computer (non account utente) che sono esplicitamente autorizzati a partecipare a tale sottoscrizione o a cui viene esplicitamente negato l'accesso. Questo elenco di controllo di accesso si applica solo a una singola sottoscrizione WEF (poiché possono essere presenti più sottoscrizioni WEF in un determinato server WEC), altre sottoscrizioni WEF hanno un proprio ACL separato.
Per le sottoscrizioni avviate dall'agente di raccolta: la sottoscrizione contiene l'elenco dei computer da cui il server WEC deve raccogliere gli eventi. Questo elenco viene gestito nel server WEC e le credenziali usate per la sottoscrizione devono avere accesso per leggere i log eventi dai client WEF. Le credenziali possono essere l'account computer o un account di dominio.
Un client può comunicare con più agenti di raccolta eventi WEF?
Sì. Se si desidera un ambiente High-Availability, configurare più server WEC con la stessa configurazione di sottoscrizione e pubblicare entrambi gli URI del server WEC nei client WEF. I client WEF inoltrano gli eventi contemporaneamente alle sottoscrizioni configurate nei server WEC, se hanno l'accesso appropriato.
Quali sono le limitazioni del server WEC?
Esistono tre fattori che limitano la scalabilità dei server WEC. La regola generale per un server WEC stabile nell'hardware di base prevede in media 3.000 eventi al secondo per tutte le sottoscrizioni configurate.
I/O su disco. Il server WEC non elabora o convalida l'evento ricevuto, ma memorizza nel buffer l'evento ricevuto e quindi lo registra in un file di registro eventi locale (file EVTX). La velocità di registrazione nel file EVTX è limitata dalla velocità di scrittura del disco. L'isolamento del file EVTX nel proprio array o l'uso di dischi ad alta velocità può aumentare il numero di eventi al secondo che un singolo server WEC può ricevere.
Connessioni di rete. Anche se un'origine WEF non mantiene una connessione permanente e persistente al server WEC, non si disconnette immediatamente dopo l'invio dei relativi eventi. Questa indulgenza significa che il numero di origini WEF che possono connettersi contemporaneamente al server WEC è limitato alle porte TCP aperte disponibili nel server WEC.
Dimensioni del Registro di sistema. Per ogni dispositivo univoco che si connette a una sottoscrizione WEF, è disponibile una chiave del Registro di sistema (corrispondente al nome di dominio completo del client WEF) creata per archiviare le informazioni sul segnalibro e sull'heartbeat di origine. Se queste informazioni non vengono eliminate per rimuovere i client inattivi, questo set di chiavi del Registro di sistema può raggiungere dimensioni ingestibili nel tempo.
- Quando una sottoscrizione ha >1000 origini WEF che si connettono ad essa per tutta la durata operativa, note anche come origini WEF di durata, Il Visualizzatore eventi può non rispondere per alcuni minuti quando si seleziona il nodo Sottoscrizioni nel riquadro di spostamento a sinistra, ma funzionerà normalmente in seguito.
- Con >una durata di 50.000 origini WEF, il Visualizzatore eventi non è più un'opzione e wecutil.exe (incluso in Windows) deve essere usato per configurare e gestire le sottoscrizioni.
- Con >una durata di 100.000 origini WEF, il Registro di sistema non sarà leggibile e il server WEC probabilmente dovrà essere ricompilo.
Informazioni sull'abbonamento
Di seguito sono elencati tutti gli elementi raccolti da ogni sottoscrizione. L'XML effettivo della sottoscrizione è disponibile in un'appendice. Questi elementi sono separati in Baseline e Target. Lo scopo è sottoscrivere tutti gli host a Baseline e quindi registrare (e rimuovere) gli host in base alle esigenze alla sottoscrizione di destinazione.
Sottoscrizione di base
Anche se questa sottoscrizione sembra essere la sottoscrizione più grande, in realtà è il volume più basso per dispositivo. Le eccezioni devono essere consentite per i dispositivi insoliti. È possibile che un dispositivo che esegue attività complesse correlate allo sviluppatore crei un volume insolitamente elevato di eventi di creazione del processo e di AppLocker. Questa sottoscrizione non richiede una configurazione speciale nei dispositivi client per abilitare i canali eventi o modificare le autorizzazioni del canale.
La sottoscrizione è essenzialmente una raccolta di istruzioni di query applicate al registro eventi. Questa sottoscrizione significa che è di natura modulare e una determinata istruzione di query può essere rimossa o modificata senza influire su altre istruzioni di query nella sottoscrizione. Inoltre, eliminare le istruzioni che filtrano eventi specifici, si applicano solo all'interno dell'istruzione di query e non sono all'intera sottoscrizione.
Requisiti di sottoscrizione di base
Per ottenere il massimo valore dalla sottoscrizione di base, è consigliabile impostare i requisiti seguenti nel dispositivo per assicurarsi che i client generino già gli eventi necessari da inoltrare al di fuori del sistema.
Applicare un criterio di controllo di sicurezza che è un super-set dei criteri di controllo minimi consigliati. Per altre info, vedi Appendice A - Criteri minimi di controllo consigliati. Questo criterio garantisce che il registro eventi di sicurezza generi gli eventi necessari.
Applicare almeno un criterio appLocker Audit-Only ai dispositivi.
- Se stai già consentendo o limitando gli eventi usando AppLocker, questo requisito viene soddisfatto.
- Gli eventi di AppLocker contengono informazioni utili, ad esempio l'hash dei file e le informazioni sulla firma digitale per eseguibili e script.
Abilitare i canali eventi disabilitati e impostare le dimensioni minime per i file di eventi moderni.
Attualmente non è disponibile alcun modello di oggetto Criteri di gruppo per abilitare o impostare le dimensioni massime per i file di eventi moderni. Questa soglia deve essere definita usando un oggetto Criteri di gruppo. Per altre info, vedi Appendice C - Metodi delle impostazioni del canale eventi (abilitazione e accesso al canale).
La query sugli eventi con annotazioni è disponibile nel codice seguente. Per altre informazioni, vedere Appendice F - Query sull'evento di sottoscrizione sospetta con annotazioni.
Eventi antimalware da Sicurezza di Windows. Questi eventi possono essere configurati facilmente per qualsiasi prodotto antimalware specifico se scrive nel registro eventi di Windows.
Log eventi di sicurezza Processo Crea eventi.
Eventi di creazione del processo di AppLocker (EXE, script, installazione ed esecuzione di app in pacchetto).
Eventi di modifica del Registro di sistema. Per altre informazioni, vedere Appendice B - Criteri ACL minimi del Registro di sistema consigliati.
Avvio e arresto del sistema operativo
- Gli eventi di avvio includono la versione del sistema operativo, il livello di Service Pack, la versione QFE e la modalità di avvio.
Installazione del servizio
- Include il nome del servizio, il percorso dell'immagine e l'utente che ha installato il servizio.
Eventi di controllo dell'autorità di certificazione
- Questi eventi sono applicabili solo nei sistemi con il ruolo Autorità di certificazione installato.
- Registra le richieste di certificato e le risposte.
Eventi del profilo utente
- L'uso di un profilo temporaneo o l'impossibilità di creare un profilo utente può indicare che un intruso accede in modo interattivo a un dispositivo ma non vuole lasciare indietro un profilo persistente.
Errore di avvio del servizio
- I codici di errore vengono localizzati, quindi è necessario verificare la presenza di valori nella DLL del messaggio.
Eventi di accesso alla condivisione di rete
- Filtrare le condivisioni file IPC$ e /NetLogon, previste e rumorose.
Richieste di avvio dell'arresto del sistema
- Scopri cosa ha avviato il riavvio di un dispositivo.
Evento di disconnessione interattiva avviato dall'utente
Le sessioni di Servizi Desktop remoto si connettono, si riconnettono o si disconnettono.
Eventi EMET, se EMET è installato.
Eventi del plug-in di inoltro eventi
- Per il monitoraggio delle operazioni di sottoscrizione WEF, ad esempio eventi con esito positivo parziale. Questo evento è utile per diagnosticare i problemi di distribuzione.
Creazione ed eliminazione di condivisioni di rete
- Consente il rilevamento della creazione di condivisioni non autorizzate.
Nota
Tutte le condivisioni vengono ricreate all'avvio del dispositivo.
- Consente il rilevamento della creazione di condivisioni non autorizzate.
Sessioni di accesso
- Accesso riuscito per l'accesso interattivo (locale e remoto interattivo/Desktop remoto)
- Accesso riuscito per i servizi per gli account non predefiniti, ad esempio LocalSystem, LocalNetwork e così via.
- Accesso riuscito per le sessioni batch
- Chiusura sessione di accesso, ovvero eventi di disconnessione per sessioni non di rete.
Segnalazione errori Windows (solo eventi di arresto anomalo dell'applicazione)
- Questa sessione consente di rilevare i primi segni di intruso che non hanno familiarità con l'ambiente aziendale usando malware di destinazione.
Eventi del servizio registro eventi
- Errori, eventi di avvio e eventi di arresto per il servizio Registro eventi di Windows.
Registro eventi cancellato (incluso il registro eventi di sicurezza)
- Questo evento potrebbe indicare un intruso che copre le loro tracce.
Privilegi speciali assegnati al nuovo accesso
- Questa assegnazione indica che al momento dell'accesso, un utente è un amministratore o ha l'accesso sufficiente per diventare amministratore.
Tentativi di sessione di Servizi Desktop remoto in uscita
- Visibilità sulla potenziale testa di spiaggia per l'intruso
Tempo di sistema modificato
Client SMB (connessioni alle unità mappate)
Convalida delle credenziali dell'account
- Account locali o account di dominio nei controller di dominio
Un utente è stato aggiunto o rimosso dal gruppo di sicurezza Administrators locale.
Accesso alla chiave privata dell'API Crypto
- Associato agli oggetti di firma usando la chiave privata archiviata localmente.
Creazione ed eliminazione di attività dell'Utilità di pianificazione
- Utilità di pianificazione consente agli intrusi di eseguire il codice in orari specificati come LocalSystem.
Accedere con credenziali esplicite
- Rilevare le credenziali usare le modifiche da parte degli intrusi per accedere a più risorse.
Eventi di verifica del titolare della smart card
- Questo evento rileva quando viene usata una smart card.
Sottoscrizione sospetta
Questa sottoscrizione aggiunge alcune possibili attività correlate agli intrusi per aiutare l'analista a perfezionare ulteriormente le proprie decisioni sullo stato del dispositivo.
Creazione di sessioni di accesso per le sessioni di rete
- Abilita l'analisi delle serie temporali dei grafi di rete.
Eventi RADIUS e VPN
- Utile se si usa un'implementazione RADIUS/VPN di Microsoft IAS. Mostra l'assegnazione dell'indirizzo> IP utente con l'indirizzo IP remoto che si connette all'organizzazione.
Eventi della catena di compilazione e dell'oggetto X509 dell'API Crypto
- Rileva certificato non valido noto, CA o ca secondaria
- Rileva l'uso insolito del processo dell'CAPI
Gruppi assegnati all'accesso locale
- Offre visibilità ai gruppi che abilitano l'accesso a livello di account
- Consente una migliore pianificazione degli sforzi di correzione
- Esclude gli account di sistema predefiniti noti.
Uscita sessione di accesso
- Specifica per le sessioni di accesso alla rete.
Eventi di ricerca DNS client
- Restituisce il processo che ha eseguito una query DNS e i risultati restituiti dal server DNS.
Uscita dal processo
- Consente di verificare la presenza di processi che terminano in modo imprevisto.
Convalida delle credenziali locali o accesso con credenziali esplicite
- Generato quando il SAM locale è autorevole per le credenziali dell'account da autenticare.
- Disturbo nei controller di dominio
- Nei dispositivi client viene generato solo quando gli account locali accedono.
Eventi di controllo delle modifiche del Registro di sistema
- Solo quando viene creato, modificato o eliminato un valore del Registro di sistema.
Autenticazione wireless 802.1x
- Rilevare la connessione wireless con un indirizzo MAC peer
Registrazione di Windows PowerShell
- Illustra Windows PowerShell 2.0 e versioni successive e include i miglioramenti alla registrazione di Windows PowerShell 5.0 per gli attacchi in memoria tramite Windows PowerShell.
- Include la registrazione remota di Windows PowerShell
Evento "Driver Loaded" di Driver Framework in modalità utente
- È possibile rilevare un dispositivo USB che carica più driver di dispositivo. Ad esempio, un dispositivo USB_STOR che carica la tastiera o il driver di rete.
Appendice A - Criteri minimi di controllo consigliati minimi
Se i criteri di controllo dell'organizzazione consentono un maggiore controllo per soddisfare le proprie esigenze, è corretto. I criteri seguenti sono le impostazioni minime dei criteri di controllo necessarie per abilitare gli eventi raccolti sia dalle sottoscrizioni di base che da quella di destinazione.
Categoria | Sottocategoria | Impostazioni di controllo |
---|---|---|
Accesso all'account | Convalida delle credenziali | Esito positivo e negativo |
Gestione account | Gestione dei gruppi di sicurezza | Operazione riuscita |
Gestione account | Gestione account utente | Esito positivo e negativo |
Gestione account | Gestione account computer | Esito positivo e negativo |
Gestione account | Altri eventi di gestione degli account | Esito positivo e negativo |
Rilevamento dettagliato | Creazione di processi | Operazione riuscita |
Rilevamento dettagliato | Terminazione del processo | Operazione riuscita |
Accesso/Disconnessione | Attestazioni utente/dispositivo | Non configurato |
Accesso/Disconnessione | Modalità estesa IPsec | Non configurato |
Accesso/Disconnessione | Modalità rapida IPsec | Non configurato |
Accesso/Disconnessione | Accesso | Esito positivo e negativo |
Accesso/Disconnessione | In Windows 10 | Operazione riuscita |
Accesso/Disconnessione | Altri eventi di accesso/disconnessione | Esito positivo e negativo |
Accesso/Disconnessione | Accesso speciale | Esito positivo e negativo |
Accesso/Disconnessione | Blocco account | Operazione riuscita |
Accesso agli oggetti | Generato dall'applicazione | Non configurato |
Accesso agli oggetti | Condivisione file | Operazione riuscita |
Accesso agli oggetti | File system | Non configurato |
Accesso agli oggetti | Altri eventi di accesso agli oggetti | Non configurato |
Accesso agli oggetti | Registro di sistema | Non configurato |
Accesso agli oggetti | Archivi rimovibili | Operazione riuscita |
Modifica dei criteri | Modifica dei criteri di controllo | Esito positivo e negativo |
Modifica dei criteri | Modifica dei criteri Rule-Level MPSSVC | Esito positivo e negativo |
Modifica dei criteri | Altri eventi di modifica dei criteri | Esito positivo e negativo |
Modifica dei criteri | Modifica dei criteri di autenticazione | Esito positivo e negativo |
Modifica dei criteri | Modifica dei criteri di autorizzazione | Esito positivo e negativo |
Uso dei privilegi | Uso dei privilegi sensibili | Non configurato |
System | Modifica dello stato di sicurezza | Esito positivo e negativo |
System | Estensione del sistema di sicurezza | Esito positivo e negativo |
System | Integrità del sistema | Esito positivo e negativo |
Appendice B - Criteri ACL minimi del sistema del Registro di sistema consigliati
Le chiavi Run e RunOnce sono utili per gli intrusi e la persistenza di malware. Consente l'esecuzione (o l'esecuzione del codice solo una volta, rispettivamente) quando un utente accede al sistema.
Questa implicazione può essere facilmente estesa ad altre chiavi dei punti iniziali di esecuzione automatica nel Registro di sistema.
Usare le figure seguenti per vedere come configurare tali chiavi del Registro di sistema.
Appendice C - Metodi delle impostazioni del canale eventi (abilitazione e accesso al canale)
Alcuni canali sono disabilitati per impostazione predefinita e devono essere abilitati. Altri, ad esempio Microsoft-Windows-CAPI2/Operational, devono avere l'accesso al canale modificato per consentire al gruppo di sicurezza predefinito Lettori log eventi di leggerlo.
Il modo più efficace e consigliato per eseguire questa personalizzazione consiste nel configurare l'oggetto Criteri di gruppo di base per eseguire un'attività pianificata per configurare i canali eventi (abilitare, impostare le dimensioni massime e regolare l'accesso al canale). Questa configurazione avrà effetto al successivo ciclo di aggiornamento dell'oggetto Criteri di gruppo e avrà un impatto minimo sul dispositivo client.
Il frammento di codice dell'oggetto Criteri di gruppo seguente esegue le attività seguenti:
- Abilita il canale dell'evento Microsoft-Windows-Capi2/Operational .
- Imposta le dimensioni massime del file per Microsoft-Windows-Capi2/Operational su 100 MB.
- Imposta le dimensioni massime del file per Microsoft-Windows-AppLocker/EXE e DLL su 100 MB.
- Imposta l'accesso massimo al canale per Microsoft-Windows-Capi2/Operational in modo da includere il gruppo di sicurezza Predefinito Lettori di log eventi.
- Abilita il canale di evento Microsoft-Windows-DriverFrameworks-UserMode/Operational .
- Imposta le dimensioni massime del file per Microsoft-Windows-DriverFrameworks-UserMode/Operational su 50 MB.
La tabella seguente contiene anche le sei azioni da configurare nell'oggetto Criteri di gruppo:
Programma/Script | Argomenti |
---|---|
%SystemRoot%\System32\wevtutil.exe | sl Microsoft-Windows-CAPI2/Operational /e:true |
%SystemRoot%\System32\wevtutil.exe | sl Microsoft-Windows-CAPI2/Operational /ms:102432768 |
%SystemRoot%\System32\wevtutil.exe | sl "Microsoft-Windows-AppLocker/EXE e DLL" /ms:102432768 |
%SystemRoot%\System32\wevtutil.exe | sl Microsoft-Windows-CAPI2/Operational /ca:"O:BAG:SYD:(A;; 0x7;;; BA)(A;; 0x2;; AU)(A;; 0x1;;; S-1-5-32-573)" |
%SystemRoot%\System32\wevtutil.exe | sl "Microsoft-Windows-DriverFrameworks-UserMode/Operational" /e:true |
%SystemRoot%\System32\wevtutil.exe | sl "Microsoft-Windows-DriverFrameworks-UserMode/Operational" /ms:52432896 |
Appendice D - Oggetto Criteri di gruppo minimo per la configurazione del client WEF
Ecco i passaggi minimi per il funzionamento di WEF:
- Configurare gli URI dell'agente di raccolta.
- Avviare il servizio WinRM.
- Aggiungere l'account del servizio di rete al gruppo di sicurezza predefinito Lettori di log eventi. Questa aggiunta consente la lettura dal canale eventi protetto, ad esempio il canale dell'evento di sicurezza.
Appendice E - Query sugli eventi della sottoscrizione di base con annotazioni
<QueryList>
<Query Id="0" Path="System">
<!-- Anti-malware *old* events, but only detect events (cuts down noise) -->
<Select Path="System">*[System[Provider[@Name='Microsoft Antimalware'] and (EventID >= 1116 and EventID <= 1119)]]</Select>
</Query>
<!-- AppLocker EXE events or Script events -->
<Query Id="1" Path="Microsoft-Windows-AppLocker/EXE and DLL">
<Select Path="Microsoft-Windows-AppLocker/EXE and DLL">*[UserData[RuleAndFileData[PolicyName="EXE"]]]</Select>
<Select Path="Microsoft-Windows-AppLocker/MSI and Script">*</Select>
</Query>
<Query Id="2" Path="Security">
<!-- Wireless Lan 802.1x authentication events with Peer MAC address -->
<Select Path="Security">*[System[(EventID=5632)]]</Select>
</Query>
<Query Id="3" Path="Microsoft-Windows-TaskScheduler/Operational">
<!-- Task scheduler Task Registered (106), Task Registration Deleted (141), Task Deleted (142) -->
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106 or EventID=141 or EventID=142 )]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106 or EventID=141 or EventID=142 )]]</Select>
</Query>
<Query Id="4" Path="System">
<!-- System startup (12 - includes OS/SP/Version) and shutdown -->
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (EventID=12 or EventID=13)]]</Select>
</Query>
<Query Id="5" Path="System">
<!-- Service Install (7000), service start failure (7045), new service (4697) -->
<Select Path="System">*[System[Provider[@Name='Service Control Manager'] and (EventID = 7000 or EventID=7045)]]</Select>
<Select Path="Security">*[System[(EventID=4697)]]</Select>
</Query>
<Query Id="6" Path="Security">
<!-- TS Session reconnect (4778), TS Session disconnect (4779) -->
<Select Path="Security">*[System[(EventID=4778 or EventID=4779)]]</Select>
</Query>
<Query Id="7" Path="Security">
<!-- Network share object access without IPC$ and Netlogon shares -->
<Select Path="Security">*[System[(EventID=5140)]] and (*[EventData[Data[@Name="ShareName"]!="\\*\IPC$"]]) and (*[EventData[Data[@Name="ShareName"]!="\\*\NetLogon"]])</Select>
</Query>
<Query Id="8" Path="Security">
<!-- System Time Change (4616) -->
<Select Path="Security">*[System[(EventID=4616)]]</Select>
</Query>
<Query Id="9" Path="System">
<!-- Shutdown initiate requests, with user, process and reason (if supplied) -->
<Select Path="System">*[System[Provider[@Name='USER32'] and (EventID=1074)]]</Select>
</Query>
<!-- AppLocker packaged (Modern UI) app execution -->
<Query Id="10" Path="Microsoft-Windows-AppLocker/Packaged app-Execution">
<Select Path="Microsoft-Windows-AppLocker/Packaged app-Execution">*</Select>
</Query>
<!-- AppLocker packaged (Modern UI) app installation -->
<Query Id="11" Path="Microsoft-Windows-AppLocker/Packaged app-Deployment">
<Select Path="Microsoft-Windows-AppLocker/Packaged app-Deployment">*</Select>
</Query>
<Query Id="12" Path="Application">
<!-- EMET events -->
<Select Path="Application">*[System[Provider[@Name='EMET']]]</Select>
</Query>
<Query Id="13" Path="System">
<!-- Event log service events -->
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Eventlog']]]</Select>
</Query>
<Query Id="14" Path="Security">
<!-- Local logons without network or service events -->
<Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]!="3"]]) and (*[EventData[Data[@Name="LogonType"]!="5"]])</Select>
</Query>
<Query Id="15" Path="Application">
<!-- WER events for application crashes only -->
<Select Path="Application">*[System[Provider[@Name='Windows Error Reporting']]] and (*[EventData[Data[3] ="APPCRASH"]])</Select>
</Query>
<Query Id="16" Path="Security">
<!-- Security Log cleared events (1102), EventLog Service shutdown (1100)-->
<Select Path="Security">*[System[(EventID=1102 or EventID = 1100)]]</Select>
</Query>
<Query Id="17" Path="System">
<!-- Other Log cleared events (104)-->
<Select Path="System">*[System[(EventID=104)]]</Select>
</Query>
<Query Id="18" Path="Security">
<!-- user initiated logoff -->
<Select Path="Security">*[System[(EventID=4647)]]</Select>
</Query>
<Query Id="19" Path="Security">
<!-- user logoff for all non-network logon sessions-->
<Select Path="Security">*[System[(EventID=4634)]] and (*[EventData[Data[@Name="LogonType"] != "3"]])</Select>
</Query>
<Query Id="20" Path="Security">
<!-- Service logon events if the user account isn't LocalSystem, NetworkService, LocalService -->
<Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]="5"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-18"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-19"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-20"]])</Select>
</Query>
<Query Id="21" Path="Security">
<!-- Network Share create (5142), Network Share Delete (5144) -->
<Select Path="Security">*[System[(EventID=5142 or EventID=5144)]]</Select>
</Query>
<Query Id="22" Path="Security">
<!-- Process Create (4688) -->
<Select Path="Security">*[System[EventID=4688]]</Select>
</Query>
<Query Id="23" Path="Security">
<!-- Event log service events specific to Security channel -->
<Select Path="Security">*[System[Provider[@Name='Microsoft-Windows-Eventlog']]]</Select>
</Query>
<Query Id="26" Path="Security">
<!-- Special Privileges (Admin-equivalent Access) assigned to new logon, excluding LocalSystem-->
<Select Path="Security">*[System[(EventID=4672)]]</Select>
<Suppress Path="Security">*[EventData[Data[1]="S-1-5-18"]]</Suppress>
</Query>
<Query Id="27" Path="Security">
<!-- New user added to local security group-->
<Select Path="Security">*[System[(EventID=4732)]]</Select>
</Query>
<Query Id="28" Path="Security">
<!-- New user added to global security group-->
<Select Path="Security">*[System[(EventID=4728)]]</Select>
</Query>
<Query Id="29" Path="Security">
<!-- New user added to universal security group-->
<Select Path="Security">*[System[(EventID=4756)]]</Select>
</Query>
<Query Id="30" Path="Security">
<!-- User removed from local Administrators group-->
<Select Path="Security">*[System[(EventID=4733)]] and (*[EventData[Data[@Name="TargetUserName"]="Administrators"]])</Select>
</Query>
<Query Id="31" Path="Microsoft-Windows-TerminalServices-RDPClient/Operational">
<!-- Log attempted TS connect to remote server -->
<Select Path="Microsoft-Windows-TerminalServices-RDPClient/Operational">*[System[(EventID=1024)]]</Select>
</Query>
<Query Id="32" Path="Security">
<!-- Certificate Services received certificate request (4886), Approved and Certificate issued (4887), Denied request (4888) -->
<Select Path="Security">*[System[(EventID=4886 or EventID=4887 or EventID=4888)]]</Select>
</Query>
<Query Id="34" Path="Security">
<!-- New User Account Created(4720), User Account Enabled (4722), User Account Disabled (4725), User Account Deleted (4726) -->
<Select Path="Security">*[System[(EventID=4720 or EventID=4722 or EventID=4725 or EventID=4726)]]</Select>
</Query>
<Query Id="35" Path="Microsoft-Windows-SmartCard-Audit/Authentication">
<!-- Gets all Smart-card Card-Holder Verification (CHV) events (success and failure) performed on the host. -->
<Select Path="Microsoft-Windows-SmartCard-Audit/Authentication">*</Select>
</Query>
<Query Id="36" Path="Microsoft-Windows-SMBClient/Operational">
<!-- get all UNC/mapped drive successful connection -->
<Select Path="Microsoft-Windows-SMBClient/Operational">*[System[(EventID=30622 or EventID=30624)]]</Select>
</Query>
<Query Id="37" Path="Application">
<!-- User logging on with Temporary profile (1511), cannot create profile, using temporary profile (1518)-->
<Select Path="Application">*[System[Provider[@Name='Microsoft-Windows-User Profiles Service'] and (EventID=1511 or EventID=1518)]]</Select>
</Query>
<Query Id="39" Path="Microsoft-Windows-Sysmon/Operational">
<!-- Modern SysMon event provider-->
<Select Path="Microsoft-Windows-Sysmon/Operational">*</Select>
</Query>
<Query Id="40" Path="Application">
<!-- Application crash/hang events, similar to WER/1001. These include full path to faulting EXE/Module.-->
<Select Path="Application">*[System[Provider[@Name='Application Error'] and (EventID=1000)]]</Select>
<Select Path="Application">*[System[Provider[@Name='Application Hang'] and (EventID=1002)]]</Select>
</Query>
<Query Id="41" Path="Microsoft-Windows-Windows Defender/Operational">
<!-- Modern Windows Defender event provider Detection events (1006-1009) and (1116-1119) -->
<Select Path="Microsoft-Windows-Windows Defender/Operational">*[System[( (EventID >= 1006 and EventID <= 1009) )]]</Select>
<Select Path="Microsoft-Windows-Windows Defender/Operational">*[System[( (EventID >= 1116 and EventID <= 1119) )]]</Select>
</Query>
<Query Id="42" Path="Security">
<!-- An account Failed to Log on events -->
<Select Path="Security">*[System[(EventID=4625)]] and (*[EventData[Data[@Name="LogonType"]!="2"]]) </Select>
</Query>
</QueryList>
Appendice F - Query sull'evento di sottoscrizione sospetta con annotazioni
<QueryList>
<Query Id="0" Path="Security">
<!-- Network logon events-->
<Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]="3"]])</Select>
</Query>
<Query Id="1" Path="System">
<!-- RADIUS authentication events User Assigned IP address (20274), User successfully authenticated (20250), User Disconnected (20275) -->
<Select Path="System">*[System[Provider[@Name='RemoteAccess'] and (EventID=20274 or EventID=20250 or EventID=20275)]]</Select>
</Query>
<Query Id="2" Path="Microsoft-Windows-CAPI2/Operational">
<!-- CAPI events Build Chain (11), Private Key accessed (70), X509 object (90)-->
<Select Path="Microsoft-Windows-CAPI2/Operational">*[System[(EventID=11 or EventID=70 or EventID=90)]]</Select>
</Query>
<Query Id="3" Path="Security">
<!-- CA stop/Start events CA Service Stopped (4880), CA Service Started (4881), CA DB row(s) deleted (4896), CA Template loaded (4898) -->
<Select Path="Security">*[System[(EventID=4880 or EventID = 4881 or EventID = 4896 or EventID = 4898)]]</Select>
</Query>
<Query Id="4" Path="Microsoft-Windows-LSA/Operational">
<!-- Groups assigned to new login (except for well known, built-in accounts)-->
<Select Path="Microsoft-Windows-LSA/Operational">*[System[(EventID=300)]] and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-20"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-18"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-19"]])</Select>
</Query>
<Query Id="5" Path="Security">
<!-- Logoff events - for Network Logon events-->
<Select Path="Security">*[System[(EventID=4634)]] and (*[EventData[Data[@Name="LogonType"] = "3"]])</Select>
</Query>
<Query Id="6" Path="Security">
<!-- RRAS events - only generated on Microsoft IAS server -->
<Select Path="Security">*[System[( (EventID >= 6272 and EventID <= 6280) )]]</Select>
</Query>
<Query Id="7" Path="Microsoft-Windows-DNS-Client/Operational">
<!-- DNS Client events Query Completed (3008) -->
<Select Path="Microsoft-Windows-DNS-Client/Operational">*[System[(EventID=3008)]]</Select>
<!-- suppresses local machine name resolution events -->
<Suppress Path="Microsoft-Windows-DNS-Client/Operational">*[EventData[Data[@Name="QueryOptions"]="140737488355328"]]</Suppress>
<!-- suppresses empty name resolution events -->
<Suppress Path="Microsoft-Windows-DNS-Client/Operational">*[EventData[Data[@Name="QueryResults"]=""]]</Suppress>
</Query>
<Query Id="8" Path="Security">
<!-- Process Terminate (4689) -->
<Select Path="Security">*[System[(EventID = 4689)]]</Select>
</Query>
<Query Id="9" Path="Security">
<!-- Local credential authentication events (4776), Logon with explicit credentials (4648) -->
<Select Path="Security">*[System[(EventID=4776 or EventID=4648)]]</Select>
</Query>
<Query Id="10" Path="Security">
<!-- Registry modified events for Operations: New Registry Value created (%%1904), Existing Registry Value modified (%%1905), Registry Value Deleted (%%1906) -->
<Select Path="Security">*[System[(EventID=4657)]] and ((*[EventData[Data[@Name="OperationType"] = "%%1904"]]) or (*[EventData[Data[@Name="OperationType"] = "%%1905"]]) or (*[EventData[Data[@Name="OperationType"] = "%%1906"]]))</Select>
</Query>
<Query Id="11" Path="Security">
<!-- Request made to authenticate to Wireless network (including Peer MAC (5632) -->
<Select Path="Security">*[System[(EventID=5632)]]</Select>
</Query>
<Query Id="12" Path="Microsoft-Windows-PowerShell/Operational">
<!-- PowerShell execute block activity (4103), Remote Command(4104), Start Command(4105), Stop Command(4106) -->
<Select Path="Microsoft-Windows-PowerShell/Operational">*[System[(EventID=4103 or EventID=4104 or EventID=4105 or EventID=4106)]]</Select>
</Query>
<Query Id="13" Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational">
<!-- Detect User-Mode drivers loaded - for potential BadUSB detection. -->
<Select Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational">*[System[(EventID=2004)]]</Select>
</Query>
<Query Id="14" Path="Windows PowerShell">
<!-- Legacy PowerShell pipeline execution details (800) -->
<Select Path="Windows PowerShell">*[System[(EventID=800)]]</Select>
</Query>
</QueryList>
Appendice G - Risorse online
È possibile ottenere altre informazioni con i collegamenti seguenti: