Condividi tramite


Controllare e tenere traccia delle modifiche alle attività degli eventi imprevisti in Microsoft Sentinel

Le attività degli eventi imprevisti garantiscono un trattamento completo e uniforme degli eventi imprevisti in tutto il personale SOC. Gli elenchi di attività vengono in genere definiti in base alle decisioni effettuate dagli analisti senior o dai responsabili SOC e messi in pratica usando regole di automazione o playbook.

Gli analisti possono visualizzare l'elenco delle attività che devono eseguire per un determinato evento imprevisto nella pagina dei dettagli dell'evento imprevisto e contrassegnarli completati man mano che vanno. Gli analisti possono anche creare attività personalizzate sul posto, manualmente, direttamente dall'interno dell'evento imprevisto.

Questo articolo illustra in che modo, come responsabile SOC, può controllare la cronologia delle attività degli eventi imprevisti di 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, ma piuttosto i record della vita di un evento imprevisto: la creazione e le modifiche apportate. Ogni volta che viene creato un evento imprevisto o viene apportata una modifica a un evento imprevisto, in questa tabella viene generato un record che mostra lo stato corrente dell'evento imprevisto.

L'aggiunta di dettagli delle attività allo schema di questa tabella 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 valore
createdBy Identità che ha creato l'attività:
- email: indirizzo di posta elettronica dell'identità
- name: 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'ultima volta l'attività:
- email: indirizzo di posta elettronica dell'identità
- name: nome dell'identità
- objectId: GUID dell'identità
- userPrincipalName: UPN dell'identità
lastModifiedTimeUtc Ora dell'ultima modifica dell'attività, in formato UTC.
status Stato corrente dell'attività: Nuovo, Completato, Eliminato.
Taskid ID risorsa dell'attività.
title Nome descrittivo assegnato all'attività dal relativo creatore.

Visualizzare le attività degli eventi imprevisti nella tabella SecurityIncident

Oltre alla cartella di lavoro Attività evento imprevisto, è possibile controllare l'attività eseguendo una query sulla tabella SecurityIncident in Log. Nella parte restante di questo articolo viene illustrato come eseguire questa operazione, nonché come leggere e comprendere i risultati della query per ottenere informazioni sulle attività dell'attività.

  1. Nella pagina Log immettere la query seguente nella finestra di query ed eseguirla. Questa query restituirà tutti gli eventi imprevisti a cui sono assegnate attività.

    SecurityIncident
    | where array_length( Tasks) > 0
    

    È possibile aggiungere un numero qualsiasi di istruzioni alla query per filtrare e limitare i risultati. Per illustrare come visualizzare e comprendere i risultati, si aggiungeranno istruzioni per filtrare i risultati in modo da visualizzare solo le attività per un singolo evento imprevisto e si aggiungerà anche un'istruzione project in modo che vengano visualizzati solo i campi che saranno utili per i nostri scopi, senza un sacco di confusione.

    Altre informazioni sull'uso di 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à associate.

    1. Selezionare l'espansore accanto alla riga superiore nei risultati della query, ordinati in ordine decrescente di recency.

      Screenshot of query results showing an incident with its tasks.

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

      Screenshot of query results showing an incident with its tasks expanded.

    3. Si noterà ora che sono presenti due attività in questo evento imprevisto. Ognuno di essi è rappresentato a sua volta da una matrice espandibile. Selezionare l'espansore di una singola attività per visualizzarne le informazioni.

      Screenshot of query results showing an incident with a single task expanded.

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

Visualizzare le attività aggiunte all'elenco

  1. Aggiungere un'attività all'evento imprevisto e quindi tornare qui, eseguire di nuovo la query e visualizzare le modifiche nei risultati.

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

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

    3. Aggiungere una nuova attività, assegnargli il nome "Questa attività è un'attività di test!" e quindi selezionare Salva. L'ultima attività illustrata di seguito è la seguente:

      Screenshot shows incident tasks panel.

  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 (si notino i timestamp). Espandere il record e si noterà che, mentre il record visto prima aveva due attività nella matrice Tasks , la nuova ha tre. L'attività più recente è quella appena aggiunta, come si può vedere dal titolo.

    Screenshot of query results showing an incident with its newly created task.

Visualizzare le modifiche dello stato alle attività

A questo punto, se si torna a questa nuova attività 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 mostrando il nuovo stato dell'attività come Completato.

Screenshot of query results showing an incident task with its new status.

Visualizzare l'eliminazione delle attività

Tornare all'elenco attività nella pagina dei dettagli dell'evento imprevisto ed eliminare l'attività aggiunta in precedenza.

Quando torniamo a Log ed eseguiamo di nuovo la query, verrà visualizzato un altro nuovo record, solo questa volta lo stato dell'attività, ovvero quello intitolato "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 Attività nei nuovi record per tale evento imprevisto nella tabella SecurityIncident . I record esistenti, come quelli illustrati in precedenza, continueranno a conservare l'evidenza che questa attività è stata creata una volta.

Visualizzare le attività attive appartenenti a un evento imprevisto 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 eventuali estremità sciolte rimanenti nell'indagine siano state portate a una conclusione: tutte le parti pertinenti sono state notificate, tutti i commenti sono stati immessi, tutte le risposte sono 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
| order by lastModifiedTimeUtc desc

Passaggi successivi