Controllare e monitorare le modifiche alle attività degli incidenti in Microsoft Sentinel nel portale di Azure

Le attività relative agli incidenti garantiscono una gestione completa e uniforme degli incidenti tra tutto il personale del SOC. Gli elenchi di attività vengono in genere definiti in base alle determinazioni effettuate da analisti senior o manager SOC e messi in pratica usando regole di automazione o playbook.

Gli analisti possono visualizzare l'elenco delle attività che devono eseguire per un evento imprevisto specifico nella pagina dei dettagli dell'evento imprevisto e contrassegnarle come complete. Gli analisti possono anche creare manualmente le proprie attività al momento, direttamente nell'incidente.

Questo articolo illustra in che modo un responsabile del SOC può controllare la cronologia delle attività impreviste Microsoft Sentinel e tenere traccia delle modifiche apportate durante il ciclo di vita, al fine di misurare l'efficacia delle assegnazioni di attività e il loro contributo all'efficienza e al corretto funzionamento del soc.

Struttura della matrice Tasks nella tabella SecurityIncident

La tabella SecurityIncident è una tabella di controllo, che archivia non gli eventi imprevisti stessi, ma piuttosto i record della vita di un evento imprevisto: la sua creazione e le eventuali modifiche apportate. Ogni volta che viene creato un evento imprevisto o viene apportata una modifica a un evento imprevisto, viene generato un record in questa tabella che mostra lo stato corrente dell'evento imprevisto.

L'aggiunta di campi di dettaglio delle attività allo schema della tabella SecurityIncident permette di auditare le attività in modo più approfondito.

Le informazioni dettagliate aggiunte al campo Attività sono costituite da coppie chiave-valore che accettano la struttura seguente:

Chiave Descrizione del valore
createdBy L'identità che ha creato l'attività:
- email: indirizzo di posta elettronica dell'identità
- nome: nome dell'identità
- objectId: GUID dell'identità
- userPrincipalName: UPN dell'identità
createdTimeUtc Ora di creazione dell'attività, in formato UTC.
lastCompletedTimeUtc Ora in cui l'attività è stata contrassegnata come completata, in formato UTC.
lastModifiedBy Identità che ha modificato l'attività per l'ultima volta:
- email: indirizzo di posta elettronica dell'identità
- nome: nome dell'identità
- objectId: GUID dell'identità
- userPrincipalName: UPN dell'identità
lastModifiedTimeUtc Ora in cui l'attività è stata modificata l'ultima volta, in formato UTC.
Stato Stato corrente dell'attività: Nuovo, Completato, Eliminato.
Taskid ID risorsa dell'attività.
Titolo Nome descrittivo assegnato all'attività dal suo creatore.

Visualizza le attività degli incidenti nella tabella SecurityIncident

Oltre alla cartella di lavoro Attività impreviste, è possibile controllare l'attività eseguendo una query sulla tabella SecurityIncident in Log. Questa sezione ti mostra come interrogare la tabella e leggere e comprendere i risultati per ottenere informazioni sull'attività dei compiti.

  1. Nella pagina Logs, immettere la query seguente nella finestra di query ed eseguirla. Questa query restituirà tutti gli incidenti che hanno almeno un'attività assegnata.

    SecurityIncident
    | where array_length( Tasks) > 0
    

    È possibile aggiungere un numero qualsiasi di istruzioni alla query per filtrare e restringere i risultati. Per illustrare come visualizzare e comprendere i risultati, verranno aggiunte istruzioni per filtrare i risultati in modo da visualizzare solo le attività per un singolo evento imprevisto e verrà aggiunta anche un'istruzione project in modo da visualizzare solo i campi che saranno utili per i nostri scopi, senza confusione.

    Per altre informazioni, vedi Panoramica del linguaggio di query Kusto.

    SecurityIncident
    | where array_length( Tasks) > 0
    | where IncidentNumber == "405211"
    | sort by LastModifiedTime desc 
    | project IncidentName, Title, LastModifiedTime, Tasks
    
  2. Esaminiamo il record più recente per questo evento imprevisto e troviamo l'elenco delle attività ad esso associate.

    1. Selezionare la freccia di espansione accanto alla prima riga nei risultati della query (ordinati dal più recente al meno recente).

      Schermata dei risultati della query che mostrano un incidente con le relative attività.

    2. Il campo Attività è una matrice dello stato corrente di tutte le attività in questo evento imprevisto. Selezionare l'espansore per visualizzare ogni elemento della matrice nella relativa riga.

      Screenshot dei risultati della query che mostra un incidente con le relative attività espanse.

    3. Ora vedi che ci sono due attività in questo incidente. Ognuno di essi è rappresentato a sua volta da una matrice espandibile. Selezionare l'espansore di una singola attività per visualizzarne le informazioni.

      Schermata dei risultati della query che mostra un incidente con una singola attività espansa.

    4. Qui vengono visualizzati i dettagli per la prima attività nella matrice ("0" è la posizione di indice dell'attività nella matrice). Il campo titolo mostra il nome dell'attività come visualizzato nell'incidente.

Visualizzare le attività aggiunte all'elenco

Esegui i seguenti passaggi per aggiungere un compito a un incidente e osservare come cambia il record SecurityIncident .

  1. Aggiungiamo un'attività all'incidente, quindi torneremo qui, eseguiremo di nuovo la query e vedremo le modifiche nei risultati.

    1. Nella pagina Eventi imprevisti immettere il numero di ID evento imprevisto nella barra di ricerca.

    2. Aprire la pagina dei dettagli dell'evento imprevisto e selezionare Attività dalla barra degli strumenti.

    3. Aggiungere una nuova attività, assegnarle il nome "Questa attività è un'attività di test!", quindi selezionare Salva. L'ultima attività mostrata di seguito è ciò che dovresti ottenere alla fine:

      La schermata mostra il pannello delle attività degli incidenti.

  2. Ora torniamo alla pagina Log ed eseguiamo di nuovo la query SecurityIncident .

    Nei risultati si noterà che nella tabella è presente un nuovo record per lo stesso evento imprevisto (prendere nota dei timestamp). Espandete il record e vedrete che, mentre il record visto prima aveva due attività nel relativo array Tasks, quello nuovo ne ha tre. L'attività più recente è quella appena aggiunta, come si può vedere dal titolo.

    Screenshot dei risultati della query che mostrano un incidente con l'attività appena creata.

Visualizza i cambiamenti di stato delle attività

A questo punto, se si torna all'attività denominata "Questa attività è un'attività di test!" nella pagina dei dettagli dell'evento imprevisto e la si contrassegna come completata, quindi tornare a Log ed eseguire di nuovo la query, verrà visualizzato un nuovo record per lo stesso evento imprevisto, questa volta viene visualizzato il nuovo stato dell'attività come Completato.

Schermata dei risultati di una query che mostra un'attività di incidente con il nuovo stato.

Visualizzare l'eliminazione delle attività

Tornare all'elenco attività nella pagina dei dettagli dell'evento imprevisto ed eliminare l'attività intitolata "Questa attività è un'attività di test!".

Quando torneremo a Log e rieseguiremo, vedremo un altro nuovo record, solo che questa volta lo stato del nostro compito—quello intitolato "Questo compito è un compito di test!" —sarà eliminato.

Tuttavia, una volta che l'attività è apparsa una di queste volte nella matrice (con stato Eliminato ), non verrà più visualizzata nella matrice Tasks nei nuovi record per l'evento imprevisto nella tabella SecurityIncident . I registri precedenti esistenti sull'incidente continueranno a preservare le prove che questo compito sia esistito un tempo.

Visualizza le attività attive relative a un incidente chiuso

La query seguente consente di verificare se un evento imprevisto è stato chiuso ma non tutte le attività assegnate sono state completate. Queste informazioni possono aiutarti a verificare che tutti gli aspetti ancora in sospeso della tua indagine siano stati conclusi: che tutte le parti interessate siano state informate, che tutti i commenti siano stati inseriti, che tutte le risposte siano state verificate e così via. La query utilizza la arg_max funzione aggregazione per restituire solo il record più recente per ogni incidente e per ogni compito, così i risultati riflettono lo stato più recente.

Esegui la seguente query per recuperare il record più recente di ogni incidente, filtra gli incidenti chiusi e restituisci eventuali compiti non ancora completati o eliminati:

SecurityIncident
| summarize arg_max(TimeGenerated, *) by IncidentNumber
| where Status == 'Closed'
| mv-expand Tasks
| evaluate bag_unpack(Tasks)
| summarize arg_max(lastModifiedTimeUtc, *) by taskId
| where status !in ('Completed', 'Deleted')
| project TaskTitle = ['title'], TaskStatus = ['status'], createdTimeUtc, lastModifiedTimeUtc = column_ifexists("lastModifiedTimeUtc", datetime(null)), TaskCreator = ['createdBy'].name, lastModifiedBy, IncidentNumber, IncidentOwner = Owner.userPrincipalName
| sort by lastModifiedTimeUtc desc

Per maggiori informazioni sugli operatori e le funzioni di Kusto usati nelle query di esempio in questo articolo, vedi:

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

Altre risorse:

Passaggi successivi