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 dettagli delle attività allo schema della tabella SecurityIncident consente di controllare 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 Logs. Il resto di questo articolo illustra come eseguire questa operazione, nonché come leggere e comprendere i risultati della query per ottenere informazioni sull'attività.

  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.

      Schermata 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

  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. Tornare ora alla pagina Log ed eseguire di nuovo la query.

    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.

    Schermata 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 si torna a Log ed si esegue ancora una volta la query, verrà visualizzato un altro nuovo record, solo questa volta lo stato dell'attività, ovvero quello denominato "Questa attività è un'attività di test!" — verrà 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 record esistenti, come quelli illustrati in precedenza, continueranno a mantenere l'evidenza che questa attività esisteva una volta.

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.

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 ulteriori informazioni sui seguenti operatori e funzioni di Kusto utilizzati nelle query di esempio di questo articolo:

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

Altre risorse:

Passaggi successivi