Monitorare l'integrità e controllare l'integrità delle regole di analisi

Per garantire il rilevamento completo, ininterrotto e senza manomissioni delle minacce nel servizio Microsoft Sentinel, tenere traccia dell'integrità e dell'integrità delle regole di analisi. Mantenerli funzionanti in modo ottimale monitorando le informazioni dettagliate sull'esecuzione, eseguendo query sui log di integrità e controllo e usando la riesecuzione manuale per testare e ottimizzare le regole.

Configurare le notifiche degli eventi di integrità e controllo per gli stakeholder pertinenti, che possono quindi intervenire. Ad esempio, definire e inviare messaggi di posta elettronica o di Microsoft Teams, creare nuovi ticket nel sistema di ticketing e così via.

Questo articolo descrive come usare le funzionalità di controllo e monitoraggio dell'integrità di Microsoft Sentinel per tenere traccia dell'integrità e dell'integrità delle regole di analisi dall'interno di Microsoft Sentinel.

Per informazioni sulle informazioni dettagliate sulle regole e sulla riesecuzione manuale delle regole, vedere Monitorare e ottimizzare l'esecuzione delle regole di analisi pianificate.

Riepilogo

  • Microsoft Sentinel log di integrità delle regole di analisi:

    • Questo log acquisisce gli eventi che registrano l'esecuzione delle regole di analisi e il risultato finale di queste operazioni, se hanno avuto esito positivo o negativo e se hanno avuto esito negativo, perché.
    • Il log registra anche, per ogni esecuzione di una regola di analisi:
      • Numero di eventi acquisiti dalla query della regola.
      • Indica se il numero di eventi ha superato la soglia definita nella regola, causando l'attivazione di un avviso da parte della regola.

    Questi log vengono raccolti nella tabella SentinelHealth in Log Analytics.

  • Microsoft Sentinel log di controllo delle regole di analisi:

    • Questo log acquisisce gli eventi che registrano le modifiche apportate a qualsiasi regola di analisi, inclusi i dettagli seguenti:
      • Nome della regola modificata.
      • Quali proprietà della regola sono state modificate.
      • Stato delle impostazioni della regola prima e dopo la modifica.
      • L'utente o l'identità che ha apportato la modifica.
      • IP di origine e data/ora della modifica.
      • ... e altro ancora.

    Questi log vengono raccolti nella tabella SentinelAudit in Log Analytics.

Usare le tabelle dati SentinelHealth e SentinelAudit

Per ottenere i dati di controllo e integrità dalle tabelle descritte in precedenza, è prima necessario attivare la funzionalità di integrità Microsoft Sentinel per l'area di lavoro. Per altre informazioni, vedere Attivare il controllo e il monitoraggio dell'integrità per Microsoft Sentinel.

Dopo l'attivazione della funzionalità di integrità, la tabella dati SentinelHealth viene creata al primo evento di esito positivo o negativo generato per le regole di automazione e i playbook.

Informazioni sugli eventi della tabella SentinelHealth e SentinelAudit

La tabella SentinelHealth registra i tipi di eventi di integrità delle regole di analisi seguenti:

  • Esecuzione della regola di analisi pianificata.
  • Esecuzione della regola di analisi NRT.

Per altre informazioni, vedere Schema delle colonne della tabella SentinelHealth.

La tabella SentinelAudit registra i tipi seguenti di eventi di controllo delle regole di analisi:

  • Creare o aggiornare la regola di analisi.
  • Regola di analisi eliminata.

Per altre informazioni, vedere Schema delle colonne della tabella SentinelAudit.

Eseguire query per rilevare problemi di integrità e integrità

Per ottenere risultati ottimali, compilare le query sulle funzioni predefinite per queste tabelle, _SentinelHealth() e _SentinelAudit(), anziché eseguire direttamente query sulle tabelle. Queste funzioni mantengono la compatibilità con le versioni precedenti delle query se vengono apportate modifiche allo schema delle tabelle.

Come primo passaggio, filtrare le tabelle per i dati correlati alle regole di analisi. Usare il SentinelResourceType parametro .

_SentinelHealth()
| where SentinelResourceType == "Analytics Rule"

Se si vuole, è possibile filtrare ulteriormente l'elenco per un particolare tipo di regola di analisi. Usare il SentinelResourceKind parametro per questa operazione.

| where SentinelResourceKind == "Scheduled"

# OR

| where SentinelResourceKind == "NRT"

Ecco alcune query di esempio che consentono di iniziare:

  • Trovare le regole "autodisabled":

    _SentinelHealth()
    | where SentinelResourceType == "Analytics Rule"
    | where Reason == "The analytics rule is disabled and was not executed."
    
  • Contare le regole e le running che hanno avuto esito positivo o negativo, per motivo:

    _SentinelHealth()
    | where SentinelResourceType == "Analytics Rule"
    | summarize Occurrence=count(), Unique_rule=dcount(SentinelResourceId) by Status, Reason
    
  • Trovare l'attività di eliminazione delle regole:

    _SentinelAudit()
    | where SentinelResourceType =="Analytic Rule"
    | where Description =="Analytics rule deleted"
    
  • Trovare l'attività nelle regole, in base al nome della regola e al nome dell'attività:

    _SentinelAudit()
    | where SentinelResourceType =="Analytic Rule"
    | summarize Count= count() by RuleName=SentinelResourceName, Activity=Description
    
  • Trovare l'attività nelle regole in base al nome del chiamante (l'identità che ha eseguito l'attività):

    _SentinelAudit()
    | where SentinelResourceType =="Analytic Rule"
    | extend Caller= tostring(ExtendedProperties.CallerName)
    | summarize Count = count() by Caller, Activity=Description
    

Per altre informazioni sugli elementi seguenti usati negli esempi precedenti, vedere la documentazione di Kusto:

Per altre informazioni su KQL, vedere panoramica di Linguaggio di query Kusto (KQL).

Altre risorse:

Regole pianificate

Quando una regola di pianificazione ha esito negativo, viene ritentata altre cinque volte nella stessa finestra. La regola non ignora la finestra e perde un avviso finché uno dei sei tentativi ha esito positivo.

L'errore in uno dei sei tentativi indica un ritardo nell'attivazione dell'avviso. La query seguente calcola il ritardo esatto:

_SentinelHealth()
| where SentinelResourceType == @"Analytics Rule" 
| where SentinelResourceKind == "Scheduled"
| extend startTime = todatetime(ExtendedProperties["QueryStartTimeUTC"]), executionStart = todatetime(ExtendedProperties["executionStart"])
| extend delay = datetime_diff('minute', startTime, executionStart)

Per cercare errori completi, ovvero una finestra ignorata, usare la query seguente:

_SentinelHealth()| where SentinelResourceType == @"Analytics Rule" 
| where SentinelResourceKind == "Scheduled"
| where Status != "Success"
| extend startTime = tostring(ExtendedProperties["QueryStartTimeUTC"])
| summarize failuresByStartTime = count() by startTime, SentinelResourceId
| where failuresByStartTime == 6
| summarize count() by SentinelResourceId

Questa query cerca le esecuzioni pianificate delle regole di analisi in cui nessuno dei sei tentativi ha avuto esito positivo. È possibile identificare un nuovo tentativo esaminando l'ora di inizio della finestra della regola perché i tentativi esaminano sempre l'ora di inizio originale. Questa query offre la quantità di finestre ignorate per ogni regola di analisi. Ci aspettiamo che le finestre ignorate siano rare. Se si notano regole di analisi con finestre ignorate, usare le query per comprendere il motivo dell'errore di queste regole specifiche e la tabella dei motivi degli errori e delle mitigazioni per correggerle.

Regole NRT

Il meccanismo di ripetizione dei tentativi per le regole NRT si comporta in modo diverso rispetto alle regole pianificate. Se l'esecuzione di una regola non riesce, il sistema considera anche la finestra non riuscita nell'esecuzione successiva (un minuto dopo). Questo comportamento continua per un massimo di 60 errori (un'ora).

Poiché un errore di un'esecuzione specifica riflette solo un ritardo di un minuto, non esaminare singoli errori. Usare invece la query seguente per monitorare il ritardo di ogni regola analitica:

_SentinelHealth()
| where SentinelResourceKind == "NRT"
| extend startTime = todatetime(ExtendedProperties["QueryStartTimeUTC"]), endTime = todatetime(ExtendedProperties["QueryEndTimeUTC"]), alertsCreated = toint(ExtendedProperties["AlertsGeneratedAmount"])
| where alertsCreated == 0 
| extend ruleDelay = datetime_diff('minute', endTime, startTime)
| project TimeGenerated, ruleDelay, SentinelResourceId
| render timechart

È anche possibile definire una regola di analisi per attivare avvisi in caso di ritardi significativi, ad esempio se una regola NRT ha un ritardo superiore a 10 minuti.

Stati, errori e passaggi suggeriti

Per l'esecuzione di regole di analisi pianificata o l'esecuzione di regole di analisi NRT, è possibile che vengano visualizzati uno degli stati e delle descrizioni seguenti:

  • Operazione riuscita: regola eseguita correttamente, generando <n> avvisi.

  • Operazione riuscita: la regola è stata eseguita correttamente, ma non ha raggiunto la soglia (<n>) necessaria per generare un avviso.

  • Errore: queste descrizioni illustrano l'errore delle regole e le relative operazioni.

    Descrizione Bonifica
    Si è verificato un errore interno del server durante l'esecuzione della query.
    Timeout dell'esecuzione della query.
    Impossibile trovare una tabella a cui si fa riferimento nella query. Verificare che l'origine dati pertinente sia connessa.
    Si è verificato un errore semantico durante l'esecuzione della query. Provare a reimpostare la regola di analisi modificandola e salvandola (senza modificare alcuna impostazione).
    Una funzione chiamata dalla query viene denominata con una parola riservata. Rimuovere o rinominare la funzione.
    Errore di sintassi durante l'esecuzione della query. Provare a reimpostare la regola di analisi modificandola e salvandola (senza modificare alcuna impostazione).
    L'area di lavoro non esiste.
    Questa query usa troppe risorse di sistema ed è stato impedito l'esecuzione. Esaminare e ottimizzare la regola di analisi. Consultare la panoramica Linguaggio di query Kusto e la documentazione sulle procedure consigliate.
    Non è stata trovata una funzione chiamata dalla query. Verificare l'esistenza nell'area di lavoro di tutte le funzioni chiamate dalla query.
    L'area di lavoro usata nella query non è stata trovata. Verificare che siano presenti tutte le aree di lavoro nella query.
    Non si dispone delle autorizzazioni per eseguire questa query. Provare a reimpostare la regola di analisi modificandola e salvandola (senza modificare alcuna impostazione).
    Non si dispone delle autorizzazioni di accesso per una o più risorse nella query.
    La query fa riferimento a un percorso di archiviazione che non è stato trovato.
    Alla query è stato negato l'accesso a un percorso di archiviazione.
    In questa area di lavoro vengono definite più funzioni con lo stesso nome. Rimuovere o rinominare la funzione ridondante e reimpostare la regola modificandola e salvandola.
    Questa query non ha restituito alcun risultato.
    Non sono consentiti più set di risultati in questa query.
    I risultati della query contengono un numero incoerente di campi per riga.
    L'esecuzione della regola è stata ritardata a causa di lunghi tempi di inserimento dei dati.
    L'esecuzione della regola è stata ritardata a causa di problemi temporanei.
    L'avviso non è stato arricchito a causa di problemi temporanei.
    L'avviso non è stato arricchito a causa di problemi di mapping delle entità.
    < Numero> le entità sono state eliminate nel nome> dell'avviso < a causa del limite di dimensioni degli avvisi di 32 KB.
    < Numero> le entità sono state eliminate nel nome> dell'avviso < a causa di problemi di mapping delle entità.
    La query ha generato < eventi numerici>, che superano il numero massimo di risultati consentiti >< per < le regole del tipo di> regola con la configurazione di raggruppamento di eventi alert-per-row. L'avviso per riga è stato generato per il primo <limite di 1> eventi ed è stato generato un avviso aggregato aggiuntivo per tenere conto di tutti gli eventi.
    - <number> = numero di eventi restituiti dalla query
    - <limite> = attualmente 150 avvisi per le regole pianificate, 30 per le regole NRT
    - <tipo di> regola = Pianificato o NRT

Usare la cartella di lavoro controllo e monitoraggio dell'integrità

  1. Per rendere disponibile la cartella di lavoro nell'area di lavoro, installare la soluzione cartella di lavoro dall'hub del contenuto Microsoft Sentinel:

    1. Nel portale di Microsoft Sentinel selezionare Hub contenuto (anteprima) dal menu Gestione contenuto.

    2. Nell'hub contenuto immettere integrità nella barra di ricerca e selezionare Analisi integrità & Controlla tra le soluzioni Cartella di lavoro in Autonomo nei risultati.

      Screenshot della selezione della cartella di lavoro di integrità dell'analisi dall'hub del contenuto.

    3. Selezionare Installa nel riquadro dei dettagli e quindi selezionare Salva visualizzato al suo posto.

  2. Quando la soluzione indica che è installata, selezionare Cartelle di lavoro dal menu Gestione minacce .

    Screenshot che indica che la soluzione della cartella di lavoro di integrità dell'analisi è installata dall'hub del contenuto.

  3. Nella raccolta Cartelle di lavoro selezionare la scheda Modelli , immettere l'integrità nella barra di ricerca e selezionare Integrità analisi & Controlla tra i risultati.

    Screenshot della selezione della cartella di lavoro di integrità dell'analisi dalla raccolta modelli.

  4. Selezionare Salva nel riquadro dei dettagli per creare una copia modificabile e utilizzabile della cartella di lavoro. Quando viene creata la copia, selezionare Visualizza cartella di lavoro salvata.

  5. Una volta nella cartella di lavoro, selezionare prima di tutto la sottoscrizione e l'area di lavoro da visualizzare (che potrebbero essere già selezionati), quindi definire TimeRange per filtrare i dati in base alle proprie esigenze. Usare l'interruttore Mostra guida per visualizzare la spiegazione sul posto della cartella di lavoro.

    Screenshot della scheda panoramica della cartella di lavoro sull'integrità delle regole di analisi.

Questa cartella di lavoro include tre sezioni a schede:

Scheda Panoramica

La scheda Panoramica mostra i riepiloghi di integrità e controllo:

  • Riepilogi dell'integrità dello stato delle esecuzioni delle regole di analisi nell'area di lavoro selezionata: numero di esecuzioni, operazioni riuscite e errori e dettagli dell'evento di errore.
  • Riepiloghi di controllo delle attività sulle regole di analisi nell'area di lavoro selezionata: numero di attività nel tempo, numero di attività per tipo e numero di attività di tipi diversi per regola.

Scheda Integrità

La scheda Integrità consente di esplorare eventi di integrità specifici.

Screenshot della selezione della scheda integrità nella cartella di lavoro dell'integrità dell'analisi.

  • Filtrare i dati dell'intera pagina in base allo stato (esito positivo o negativo) e al tipo di regola (pianificato o NRT).
  • Vedere le tendenze delle esecuzioni di regole riuscite e non riuscite (a seconda del filtro di stato) nel periodo di tempo selezionato. È possibile "pennello temporale" del grafico di tendenza per visualizzare un subset dell'intervallo di tempo originale. Screenshot delle esecuzioni delle regole di analisi nel tempo nella cartella di lavoro di integrità dell'analisi.
  • Filtrare il resto della pagina in base al motivo.
  • Vedere il numero totale di esecuzioni per tutte le regole di analisi, visualizzate in modo proporzionale in base allo stato in un grafico a torta.
  • Di seguito è riportata una tabella che mostra il numero di regole di analisi univoche eseguite, suddivise per tipo di regola e stato.
    • Selezionare uno stato per filtrare i grafici rimanenti per tale stato.
    • Deselezionare il filtro selezionando l'icona "Cancella selezione" (simile a un'icona "Annulla") nell'angolo superiore destro del grafico. Screenshot del numero di regole eseguite per stato e tipo nella cartella di lavoro di integrità dell'analisi.
  • Vedere ogni stato, con il numero di possibili motivi per tale stato. Vengono visualizzati solo i motivi rappresentati nelle esecuzioni nell'intervallo di tempo selezionato.
    • Selezionare uno stato per filtrare i grafici rimanenti per tale stato.
    • Deselezionare il filtro selezionando l'icona "Cancella selezione" (simile a un'icona "Annulla") nell'angolo superiore destro del grafico. Screenshot del numero di motivi univoci per stato nella cartella di lavoro di integrità dell'analisi.
  • Vedere quindi un elenco di questi motivi, con il numero totale di esecuzioni di regole combinate e il numero di regole univoche eseguite.
    • Selezionare un motivo per filtrare i grafici seguenti per questo motivo.
    • Deselezionare il filtro selezionando l'icona "Cancella selezione" (simile a un'icona "Annulla") nell'angolo superiore destro del grafico. Screenshot delle esecuzioni delle regole per motivo univoco nella cartella di lavoro di integrità dell'analisi.
  • Dopo di che è un elenco delle regole di analisi univoche eseguite, con i risultati più recenti e le linee di tendenza del loro esito positivo e negativo (a seconda dello stato selezionato per filtrare l'elenco).
    • Selezionare una regola per eseguire il drill-down e visualizzare una nuova tabella con tutte le sequenze di tale regola (nell'intervallo di tempo selezionato).
    • Deselezionare la tabella selezionando l'icona "Cancella selezione" (simile a un'icona "Annulla") nell'angolo superiore destro del grafico. Screenshot dell'elenco di regole univoche eseguite, con stato e linee di tendenza, nella cartella di lavoro di integrità dell'analisi.
  • Se si seleziona una regola nell'elenco, viene visualizzata una nuova tabella con i dettagli di integrità per la regola selezionata. Screenshot dell'elenco delle esecuzioni della regola di analisi selezionata nella cartella di lavoro di integrità dell'analisi.

Scheda Controllo

La scheda Controllo consente di eseguire il drill-down di eventi di controllo specifici.

Screenshot della selezione della scheda di controllo nella cartella di lavoro dell'integrità dell'analisi.

  • Filtrare i dati dell'intera pagina in base al tipo di regola di controllo (scheduled/Fusion).
  • Vedere le tendenze delle attività controllate sulle regole di analisi nel periodo di tempo selezionato. È possibile "pennello temporale" del grafico di tendenza per visualizzare un subset dell'intervallo di tempo originale. Screenshot dell'attività di controllo di tendenza nella cartella di lavoro di integrità dell'analisi.
  • Vedere il numero di eventi controllati, suddivisi per attività e tipo di regola.
    • Selezionare un'attività per filtrare i grafici seguenti per tale attività.
    • Deselezionare il filtro selezionando l'icona "Cancella selezione" (simile a un'icona "Annulla") nell'angolo superiore destro del grafico. Screenshot dei conteggi degli eventi di controllo per attività e tipo nella cartella di lavoro di integrità dell'analisi.
  • Vedere il numero di eventi controllati in base al nome della regola.
    • Selezionare un nome di regola per filtrare la tabella seguente per tale regola e per eseguire il drill-down e visualizzare una nuova tabella con tutta l'attività su tale regola (nell'intervallo di tempo selezionato). Vedere dopo lo screenshot seguente.
    • Deselezionare il filtro selezionando l'icona "Cancella selezione" (simile a un'icona "Annulla") nell'angolo superiore destro del grafico. Screenshot degli eventi controllati in base al nome della regola e al chiamante nella cartella di lavoro di integrità dell'analisi.
  • Vedere il numero di eventi controllati dal chiamante (l'identità che ha eseguito l'attività).
  • Se è stato selezionato un nome di regola nel grafico precedente, viene visualizzata un'altra tabella che mostra le attività controllate in tale regola. Selezionare il valore visualizzato come collegamento nella colonna ExtendedProperties per aprire un pannello laterale che visualizza le modifiche apportate alla regola. Screenshot dell'attività di controllo per la regola selezionata nella cartella di lavoro di integrità dell'analisi.

Passaggi successivi