Watchlists in Microsoft Sentinel

Gli watchlist in Microsoft Sentinel aiutano gli analisti della sicurezza a correlare e arricchire in modo efficiente i dati degli eventi. Offrono un modo flessibile per gestire i dati di riferimento, ad esempio elenchi di asset di alto valore o dipendenti terminati. Integrare watchlist nelle regole di rilevamento, nella ricerca delle minacce e nei flussi di lavoro di risposta per ridurre l'affaticamento degli avvisi e rispondere più rapidamente alle minacce. Questo articolo illustra come usare gli elenchi di controllo in Microsoft Sentinel, descrive gli scenari e le limitazioni principali e fornisce indicazioni sulla creazione e l'esecuzione di query sugli elenchi di controllo per migliorare le operazioni di sicurezza.

Usa le watchlist nelle query di ricerca, nelle regole di rilevamento, nel threat hunting e nei playbook di risposta. Le watchlist vengono archiviate nell'area di lavoro Microsoft Sentinel nella Watchlist tabella come coppie nome-valore e memorizzate nella cache per ottenere prestazioni ottimali delle query.

Importante

Le funzionalità per i modelli watchlist e la possibilità di creare una watchlist da un file in Archiviazione di Azure sono attualmente disponibili in ANTEPRIMA. Le condizioni aggiuntive per l'anteprima Azure includono termini legali aggiuntivi che si applicano alle funzionalità Azure in versione beta, in anteprima o in altro modo non ancora rilasciate nella disponibilità generale.

Quando usare watchlist

Usare gli elenchi di controllo in questi scenari:

  • Esaminare le minacce importando indirizzi IP, hash di file e altri dati da file con valori separati da virgole (CSV), quindi usare le coppie nome-valore della watchlist per eseguire join e filtri nelle regole di avviso, nella caccia alle minacce, nelle cartelle di lavoro, nei notebook e nelle query.

  • Importa i dati aziendali come lista di controllo. Ad esempio, importare elenchi di utenti con accesso di sistema con privilegi o elenchi di dipendenti terminati. Usare quindi l'elenco di controllo per creare elenchi consentiti e blocklist per rilevare o impedire a tali utenti di accedere alla rete.

  • Ridurre il sovraccarico da avvisi. Creare elenchi consentiti per eliminare gli avvisi da un gruppo di utenti, ad esempio gli utenti di indirizzi IP autorizzati che eseguono attività che normalmente attivano l'avviso. Impedire che gli eventi non dannosi diventino avvisi.

  • Arricchire i dati dell'evento con combinazioni nome-valore da origini dati esterne.

Limitazioni dell'elenco di controllo

Esaminare le limitazioni seguenti prima di creare watchlist:

Limitazione Dettagli
Nome della watchlist e lunghezza dell'alias I nomi e gli alias dell'elenco di controllo devono essere compresi tra 3 e 64 caratteri. Il primo e l'ultimo carattere devono essere alfanumerici; spazi, trattini e caratteri di sottolineatura consentiti tra.
Uso previsto Usare gli elenchi di controllo solo per i dati di riferimento. Gli elenchi di controllo non sono progettati per volumi di dati di grandi dimensioni.
Numero massimo di elementi watchlist attivi È possibile avere un massimo di 10 milioni di elementi watchlist attivi in tutte le watchlist in un'area di lavoro. Gli elementi eliminati non vengono conteggiati. Per volumi di dimensioni maggiori, usare i log personalizzati.
Conservazione dei dati I dati nella tabella Log Analytics Watchlist vengono conservati per 28 giorni.
Intervallo di aggiornamento Gli elenchi di controllo vengono aggiornati ogni 12 giorni, aggiornando il TimeGenerated campo.
Gestione tra aree di lavoro La gestione degli elenchi di controllo nelle aree di lavoro con Azure Lighthouse non è supportata.
Dimensioni di caricamento dei file locali I caricamenti di file locali sono limitati a file fino a 3,8 MB.
Dimensioni di caricamento dei file di Archiviazione di Azure (anteprima) Azure i caricamenti di archiviazione sono limitati a file fino a 500 MB.
Restrizioni relative a colonne e tabelle Gli elenchi di controllo devono seguire le restrizioni di denominazione delle entità KQL (Kusto Query Language) per colonne e nomi.

Metodi di creazione dell'elenco di controllo in Microsoft Sentinel

Per creare watchlist in Microsoft Sentinel, utilizzare uno dei metodi seguenti:

  • Caricare un file da una cartella locale o dall'account Archiviazione di Azure.
  • Scaricare un modello watchlist da Microsoft Sentinel, aggiungere i dati e caricare il file.

Per creare una watchlist da un file di grandi dimensioni (fino a 500 MB), caricare il file nell'account di archiviazione Azure. Creare un URL di firma di accesso condiviso (SAS) in modo che Microsoft Sentinel possa recuperare i dati dell'elenco di controllo. Un SAS URL include sia l'URI della risorsa sia il token SAS per una risorsa, ad esempio un file CSV nel tuo account di archiviazione. Aggiungi la watchlist all'area di lavoro in Microsoft Sentinel.

Per altre informazioni, vedere:

Elenchi di controllo all'interno delle query per le ricerche e le regole di rilevamento

Per correlare i dati della watchlist con altri dati di Microsoft Sentinel, usa gli operatori tabulari di Kusto, ad esempio join e lookup, con la tabella Watchlist. Microsoft Sentinel fornisce le seguenti funzioni predefinite per facilitare l'interrogazione delle watchlist:

  • _GetWatchlistAlias - restituisce gli alias di tutte le watchlist
  • _GetWatchlist - esegue una query sulle coppie nome-valore dell'elenco di controllo specificato

Quando si crea un elenco di controllo, si definisce SearchKey. La chiave di ricerca è il nome di una colonna nella watchlist che prevedi di usare per unire altri dati o come oggetto di ricerche frequenti. Si supponga, ad esempio, di avere una watchlist del server che contiene i nomi di paesi/aree geografiche e i rispettivi codici paese di due lettere. Si prevede di usare spesso i codici paese per le ricerche o i join. Si usa quindi la colonna del codice paese come chiave di ricerca.

Heartbeat
| lookup kind=leftouter _GetWatchlist('mywatchlist') 
  on $left.RemoteIPCountry == $right.SearchKey

Verranno ora esaminate altre query di esempio.

Supponiamo di voler utilizzare una watchlist in una regola di analisi. Si crea un watchlist denominato ipwatchlist con colonne per IPAddress e Location. Imposti IPAddress come SearchKey.

IPAddress,Location
10.0.100.11,Home
172.16.107.23,Work
10.0.150.39,Home
172.20.32.117,Work

Per includere solo gli eventi provenienti dagli indirizzi IP presenti nella watchlist, è possibile usare una query in cui watchlist è usato come variabile o in linea.

Questa query di esempio usa l'elenco di controllo come variabile:

  //Watchlist as a variable
  let watchlist = (_GetWatchlist('ipwatchlist') | project IPAddress);
  Heartbeat
  | where ComputerIP in (watchlist)

Questa query di esempio utilizza la watchlist direttamente nella query e la chiave di ricerca definita per la watchlist.

  //Watchlist inline with the query
  //Use SearchKey for the best performance
  Heartbeat
  | where ComputerIP in ( 
      (_GetWatchlist('ipwatchlist')
      | project SearchKey)
  )

Per ulteriori informazioni su come creare query e regole di rilevamento con watchlist, vedere Creare query e regole di rilevamento con watchlist in Microsoft Sentinel; per gli operatori e le istruzioni di Kusto, vedere gli articoli seguenti:

Per altre informazioni su KQL, vedi panoramica di Kusto Query Language (KQL).

Altre risorse:

Risolvere i problemi di watchlist durante gli eventi imprevisti e i problemi di query

Risolvere i problemi di disponibilità del portale o dell'API

Se la pagina Watchlists è vuota, continua ad aggiornarsi oppure le operazioni della watchlist restituiscono risposte 502 Bad Gateway o altre risposte 5XX, stabilire innanzitutto se il problema dipende probabilmente dal servizio prima di modificare la configurazione della watchlist.

Usare i controlli seguenti:

  • Confermare se il problema riguarda tutte le watchlist o più watchlist.

  • Verificare se il problema interessa più utenti.

  • Verificare se il problema influisce sia sul portale Azure che sulle operazioni basate su API o sull'automazione.

  • Verificare se i dati dell'elenco di controllo sono ancora querybili dai log:

    _GetWatchlistAlias
    

    Se si conosce l'alias della watchlist, verificare anche:

    _GetWatchlist('watchlist-alias')
    | take 10
    
  • Controllare integrità dei servizi di Azure e le comunicazioni attive sugli incidenti per verificare eventuali impatti correlati a Microsoft Sentinel.

  • Evitare tentativi ripetuti di eliminazione e nuova creazione mentre l'incidente è attivo. Un errore del portale o dell'API non indica necessariamente la perdita di dati watchlist.

  • Considerare un portale vuoto oppure operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD) delle watchlist che restituiscono 502 o altri errori 5XX per più utenti o aree di lavoro come un potenziale incidente del servizio, finché non si esclude un impatto più ampio sulla piattaforma.

  • Se un flusso di lavoro di Logic Apps che richiama operazioni della watchlist inizia a restituire 502 Bad Gateway o errori temporanei simili, verifica l'integrità del servizio di Microsoft Sentinel prima di presumere che il problema sia causato dalle autorizzazioni del connettore o dalla configurazione del flusso di lavoro. Gli errori di automazione possono verificarsi come errori di accesso generico o di gateway durante un evento imprevisto del servizio watchlist anche quando l'identità e la configurazione del flusso di lavoro sono invariate.

Durante un incidente del servizio, la verifica iniziale più sicura consiste nel confermare se le watchlist sono ancora interrogabili. Se anche l'accesso alle query non riesce, acquisire il timestamp, l'operazione e il codice di stato HTTP prima di aprire una richiesta di supporto.

Comprendere il comportamento di conservazione e aggiornamento

Il valore di conservazione di 28 giorni non significa che un watchlist diventa inutilizzabile dopo 28 giorni.

Le watchlist rimangono disponibili fino a quando non vengono eliminate. Il valore di conservazione si applica ai record nella tabella watchlist sottostante Log Analytics, mentre il servizio watchlist aggiorna i dati watchlist in un intervallo ricorrente. Poiché la watchlist viene aggiornata regolarmente, rimane interrogabile nel tempo, a meno che non venga eliminata o che un altro problema ne comprometta la disponibilità.

Questa distinzione è importante quando si pianificano analisi a lungo termine o si verifica se una watchlist debba ancora comparire nei risultati della query.

Risolvere i problemi relativi agli watchlist che mostrano zero righe dopo la creazione

Se un elenco di controllo viene creato con successo ma il portale o _GetWatchlist() non restituisce alcuna riga, esaminare i vincoli di inserimento dei dati nell'area di lavoro nell'ambito della risoluzione dei problemi.

  • Verificare che l'elenco di controllo sia stato creato nell'area di lavoro prevista.

  • Eseguire una query nell'elenco di controllo per alias:

    _GetWatchlist('watchlist-alias')
    | take 10
    
  • Esaminare la configurazione dell'area di lavoro Log Analytics per i limiti di inserimento, incluso il limite giornaliero.

  • Se l'area di lavoro ha raggiunto il limite giornaliero, consentire all'acquisizione di riprendere e quindi convalidare nuovamente la watchlist.

Un risultato di zero righe non indica sempre che la definizione dell'elenco di controllo non è presente. I limiti dell'area di lavoro relativi all'acquisizione possono influire sul momento in cui i dati della watchlist diventano visibili nell'area di lavoro.

Risolvere i problemi relativi alle divergenze del piano di gestione e nel comportamento delle query

L'accesso alle query e l'accesso alla gestione possono comportarsi in modo diverso durante un problema di servizio temporaneo.

In alcuni casi, è comunque possibile eseguire query sugli watchlist con _GetWatchlistAlias o _GetWatchlist() anche quando l'esperienza del portale, le operazioni di modifica o altre azioni del piano di gestione non sono temporaneamente disponibili. Se i risultati delle query vengono restituiti ma il portale è vuoto o gli aggiornamenti dell'elenco di controllo hanno esito negativo, convalidare l'integrità del servizio prima di presupporre che l'elenco di controllo sia stato eliminato o modificato il relativo schema.

Una query KQL eseguita correttamente indica che i dati della watchlist potrebbero essere ancora disponibili nell'area di lavoro, anche se l'esperienza di gestione è degradata.

Risolvere i problemi relativi ai risultati di query vuoti o parziali

Importante

I risultati della query della watchlist possono essere influenzati dall'intervallo di tempo della query e dai filtri applicati nella query di contesto.

Le watchlist vengono aggiornate a intervalli regolari e le funzioni di interrogazione restituiscono lo stato corrente della watchlist in base ai dati watchlist sottostanti. Se si applica un ambito datetime globale ristretto o altri filtri restrittivi durante la risoluzione dei problemi, la query può escludere i record necessari per restituire il contenuto dell'elenco di controllo previsto. In tal caso, _GetWatchlist() può sembrare restituire risultati vuoti o parziali anche se l'elenco di controllo esiste ancora.

Quando si riscontrano risultati vuoti inattesi:

  • Verificare che si stia interrogando l'alias corretto della watchlist.
  • Rimuovere o ampliare l'ambito di tempo a livello di query.
  • Eseguire nuovamente la query e confrontare i risultati.

Negli scenari che dipendono dall'intervallo di date e ore a livello di query, utilizzare un intervallo di tempo sufficientemente ampio da includere il ciclo di aggiornamento della watchlist.