Teilen über


Überwachen und Nachverfolgen von Änderungen an Vorfallsaufgaben in Microsoft Sentinel

Vorfallsaufgaben gewährleisten eine umfassende und einheitliche Behandlung von Vorfällen über das gesamte SOC-Personal hinweg. Aufgabenlisten werden in der Regel nach den Vorgaben von leitenden Analysten oder SOC-Managern definiert und mit Hilfe von Automatisierungsregeln oder Playbooks in die Praxis umgesetzt.

Ihre Analysten können die Liste der Aufgaben, die Sie für einen bestimmten Vorfall ausführen müssen, auf der Seite mit den Vorfalldetails anzeigen und Sie nach und nach als abgeschlossen markieren. Die Analysten können auch ihre eigenen Aufgaben direkt vor Ort, manuell und direkt aus dem Vorfall heraus erstellen.

In diesem Artikel wird erläutert, wie Sie als SOC-Vorgesetzter den Verlauf von Microsoft Sentinel-Vorfallsaufgaben überwachen und die an ihnen vorgenommenen Änderungen während ihres gesamten Lebenszyklus nachverfolgen können, um die Wirksamkeit Ihrer Aufgabenzuweisungen und deren Beitrag zur Effizienz und ordnungsgemäßen Funktionsweise Ihres SOC zu messen.

Struktur des Aufgabenarrays in der Tabelle „SecurityIncident“

Die Tabelle SecurityIncident (Sicherheitsvorfall) ist eine Überwachungstabelle – sie speichert nicht die Vorfälle selbst, sondern Datensätze entlang die Lebensdauer eines Vorfalls: seine Erstellung und alle daran vorgenommenen Änderungen. Jedes Mal, wenn ein Vorfall erstellt oder eine Änderung an einem Vorfall vorgenommen wird, wird in dieser Tabelle ein Datensatz generiert, der den nun aktuellen Status des Vorfalls anzeigt.

Das Hinzufügen von Aufgabendetails zum Schema dieser Tabelle ermöglicht es Ihnen, Aufgaben ausführlicher zu überwachen.

Die detaillierten Informationen, die dem Feld Aufgaben hinzugefügt werden, bestehen aus Schlüssel/Wert-Paaren, welche die folgende Struktur aufweisen:

Schlüssel Wertbeschreibung
createdBy Die Identität, welche die Aufgabe erstellt hat:
– email: Die E-Mail-Adresse der Identität
– name: Der Name der Identität
– objectId: Die GUID der Identität
– userPrincipalName: Der UPN der Identität
createdTimeUtc Zeitpunkt der Erstellung der Aufgabe, in UTC.
lastCompletedTimeUtc Zeitpunkt, zu dem die Aufgabe als erledigt markiert wurde, in UTC.
lastModifiedBy Die Identität, welche die Aufgabe zuletzt geändert hat:
– email: Die E-Mail-Adresse der Identität
– name: Der Name der Identität
– objectId: Die GUID der Identität
– userPrincipalName: Der UPN der Identität
lastModifiedTimeUtc Zeitpunkt der letzten Änderung des Vorgangs, in UTC.
status Aktueller Status der Aufgabe: Neu, Abgeschlossen, Gelöscht.
taskId Ressourcen-ID der Aufgabe.
title Anzeigename, welcher der Aufgabe vom Ersteller zugewiesen wurde.

Anzeigen von Vorfallsaufgaben in der Tabelle „SecurityIncident“

Abgesehen von der Arbeitsmappe Vorfallsaufgaben können Sie die Aufgabenaktivität überwachen, indem Sie die Tabelle SecurityIncident unter Protokolle abfragen. Der Rest dieses Artikels zeigt Ihnen, wie Sie dies tun, und wie Sie die Abfrageergebnisse lesen und verstehen, um Informationen zur Vorgangsaktivität abzurufen.

  1. Geben Sie auf der Seite Protokolle die folgende Abfrage in das Abfragefenster ein, und führen Sie diese aus. Diese Abfrage wird alle Vorfälle zurückgeben, denen Aufgaben zugewiesen sind.

    SecurityIncident
    | where array_length( Tasks) > 0
    

    Sie können der Abfrage eine beliebige Anzahl von Anweisungen hinzufügen, um die Ergebnisse zu filtern und einzugrenzen. Um zu demonstrieren, wie die Ergebnisse angezeigt und verstanden werden können, werden wir Anweisungen hinzufügen, um die Ergebnisse zu filtern, so dass wir nur die Aufgaben für einen einzelnen Vorfall sehen, und wir fügen auch eine project-Anweisung hinzu, damit wir nur diejenigen Felder sehen, die für unsere Zwecke nützlich sind, und viel Unwichtiges weglassen können.

    Erfahren Sie mehr über die Verwendung der Kusto-Abfragesprache.

    SecurityIncident
    | where array_length( Tasks) > 0
    | where IncidentNumber == "405211"
    | sort by LastModifiedTime desc 
    | project IncidentName, Title, LastModifiedTime, Tasks
    
  2. Sehen wir uns den neuesten Datensatz für diesen Vorfall an und suchen die Liste der Aufgaben, die diesem zugeordnet sind.

    1. Wählen Sie die Erweiterungsoption neben der obersten Zeile in den Abfrageergebnissen aus (die in absteigender Reihenfolge der Aktualität sortiert wurden).

      Screenshot of query results showing an incident with its tasks.

    2. Das Feld Aufgaben ist ein Array des aktuellen Zustands aller Aufgaben in diesem Vorfall. Wählen Sie die Erweiterungsoption aus, um jedes Element im Array in einer eigenen Zeile anzuzeigen.

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

    3. Nun sehen Sie, dass es zwei Aufgaben in diesem Vorfall gibt. Jede wird wiederum durch ein erweiterbares Array dargestellt. Wählen Sie die Erweiterungsoption für einen einzelnen Vorgang aus, um seine Informationen anzuzeigen.

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

    4. Hier sehen Sie die Details für die erste Aufgabe im Array („0“ ist die Indexposition der Aufgabe im Array). Das Feld Titel zeigt den Namen des Vorgangs an, wie er im Vorfall angezeigt wird.

Anzeigen von Aufgaben, die der Liste hinzugefügt wurden

  1. Lassen Sie uns dem Vorfall eine Aufgabe hinzufügen, und dann kehren wir hierher zurück, führen die Abfrage erneut aus und sehen uns die Änderungen in den Ergebnissen an.

    1. Geben Sie auf der Seite Vorfälle die Vorfall-ID-Nummer in die Suchleiste ein.

    2. Öffnen Sie die Seite mit den Vorfalldetails, und wählen Sie auf der Symbolleiste Aufgaben aus.

    3. Fügen Sie eine neue Aufgabe hinzu, geben Sie ihr den Namen „Diese Aufgabe ist eine Testaufgabe!“, und wählen Sie dann Speichern aus. Die letzte unten gezeigte Aufgabe ist diejenige, die Sie am Ende haben sollten:

      Screenshot shows incident tasks panel.

  2. Kehren wir nun zur Seite Protokolle zurück und führen unsere Abfrage erneut aus.

    In den Ergebnissen sehen Sie, dass es einen neuen Datensatz in der Tabelle für diesen gleichen Vorfall gibt (beachten Sie die Zeitstempel). Erweitern Sie den Datensatz, und Sie werden sehen, dass der Datensatz, den wir zuvor gesehen haben, zwei Aufgaben in seinem Aufgaben-Array hatte, der neue jedoch drei Aufgaben enthält. Die neueste Aufgabe ist diejenige, die wir gerade hinzugefügt haben, wie Sie anhand des Titels sehen können.

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

Anzeigen von Statusänderungen an Aufgaben

Wenn wir nun zu dieser neuen Aufgabe auf der Seite mit den Vorfalldetails zurückkehren und sie als abgeschlossen markieren und dann zu Protokollen zurückkehren und die Abfrage erneut ausführen, werden wir einen weiteren neuen Datensatz für denselben Vorfall sehen, der dieses Mal den neuen Status unserer Aufgabe als Abgeschlossen anzeigt.

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

Anzeigen des Löschens von Aufgaben

Kehren wir zur Aufgabenliste auf der Seite mit den Vorfalldetails zurück und löschen die zuvor hinzugefügte Aufgabe.

Wenn wir zu Protokollen zurückkehren und die Abfrage erneut ausführen, sehen wir einen weiteren neuen Datensatz, nur dieses Mal wird der Status unserer Aufgabe – diejenige mit dem Titel "Diese Aufgabe ist eine Testaufgabe!" – als gelöscht angezeigt.

Achtung – Sobald die Aufgabe einmal im Array (mit einem Status Gelöscht) angezeigt wurde, wird sie nicht mehr im Aufgaben-Array in neuen Datensätzen für diesen Vorfall in der Tabelle SecurityIncident angezeigt. Die vorhandenen Datensätze, wie die oben erwähnten, werden weiterhin den Beweis dafür bewahren, dass diese Aufgabe einmal existierte.

Anzeigen aktiver Aufgaben, die zu einem geschlossenen Vorfall gehören

Mit der folgenden Abfrage können Sie sehen, ob ein Vorfall geschlossen wurde, aber nicht alle ihm zugewiesenen Aufgaben abgeschlossen wurden. Mit diesem Wissen können Sie überprüfen, ob alle verbleibenden losen Enden Ihrer Untersuchung zu einem Abschluss gebracht wurden – alle relevanten Parteien wurden benachrichtigt, alle Kommentare wurden eingegeben, alle Antworten wurden überprüft usw.

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

Nächste Schritte