Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aufgaben bei Sicherheitsvorfällen gewährleisten eine umfassende und einheitliche Bearbeitung von Vorfällen im gesamten SOC-Team. Aufgabenlisten werden in der Regel gemäß den Von Senior Analysts oder SOC-Managern getroffenen Festlegungen definiert und mithilfe 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 Incidentdetails anzeigen und diese als abgeschlossen markieren. Analysten können auch ihre eigenen Aufgaben vor Ort manuell und direkt innerhalb des Incidents erstellen.
In diesem Artikel wird erläutert, wie Sie als SOC-Manager den Verlauf von Incidentaufgaben in Microsoft Sentinel überprüfen und die Änderungen nachverfolgen können, die im Laufe ihres gesamten Lebenszyklus an ihnen vorgenommen wurden, um die Wirksamkeit Ihrer Aufgabenzuweisungen und deren Beitrag zur Effizienz und ordnungsgemäßen Funktionsweise Ihres SOC zu bewerten.
Struktur des Tasks-Arrays in der Tabelle "SecurityIncident"
Die SecurityIncident-Tabelle ist eine Überwachungstabelle– sie speichert nicht die Vorfälle selbst, sondern Datensätze über die Lebensdauer eines Incidents: seine Erstellung und alle daran vorgenommenen Änderungen. Jedes Mal, wenn ein Incident erstellt oder eine Änderung an einem Incident vorgenommen wird, wird in dieser Tabelle ein Datensatz generiert, der den aktuellen Status des Incidents anzeigt.
Das Hinzufügen von Aufgabendetailfeldern zum Schema der SecurityIncident-Tabelle ermöglicht es Ihnen, Aufgaben ausführlicher zu prüfen.
Die detaillierten Informationen, die dem Feld Aufgaben hinzugefügt werden, bestehen aus Schlüssel-Wert-Paaren, die die folgende Struktur aufweisen:
| Schlüssel | Wertbeschreibung |
|---|---|
| createdBy | Die Identität, welche die Aufgabe erstellt hat: - email: E-Mail-Adresse der Identität - name: Name der Identität - objectId: GUID der Identität – userPrincipalName: UPN der Identität |
| createdTimeUtc | Zeitpunkt, zu dem die Aufgabe erstellt wurde, in UTC. |
| lastCompletedTimeUtc | Zeitpunkt, zu dem die Aufgabe als abgeschlossen markiert wurde, in UTC. |
| lastModifiedBy | Die Identität, die die Aufgabe zuletzt geändert hat: - email: E-Mail-Adresse der Identität - name: Name der Identität - objectId: GUID der Identität – userPrincipalName: UPN der Identität |
| lastModifiedTimeUtc | Zeitpunkt der letzten Änderung der Aufgabe in UTC. |
| status | Aktuelle status der Aufgabe: Neu, Abgeschlossen, Gelöscht. |
| Taskid | Ressourcen-ID des Vorgangs. |
| title | Benutzerfreundlicher Name, der der Aufgabe von ihrem Ersteller gegeben wurde. |
Zeigen Sie Aufgaben zu Sicherheitsvorfällen in der Tabelle „SecurityIncident“ an
Abgesehen von der Arbeitsmappe für Vorfallaufgaben können Sie Aufgabenaktivitäten auch überprüfen, indem Sie die SecurityIncident-Tabelle in Logs abfragen. Dieser Abschnitt zeigt Ihnen, wie Sie die Tabelle abfragen und die Ergebnisse lesen und verstehen können, um Informationen zur Aufgabenaktivität zu erhalten.
Geben Sie auf der Seite Protokolle die folgende Abfrage in das Abfragefenster ein, und führen Sie sie aus. Diese Abfrage gibt alle Incidents zurück, denen Aufgaben zugewiesen sind.
SecurityIncident | where array_length( Tasks) > 0Sie können der Abfrage eine beliebige Anzahl von Anweisungen hinzufügen, um die Ergebnisse zu filtern und einzugrenzen. Um zu veranschaulichen, wie die Ergebnisse angezeigt und verstanden werden, fügen wir Anweisungen hinzu, um die Ergebnisse so zu filtern, dass nur die Aufgaben für einen einzelnen Incident angezeigt werden. Außerdem fügen wir eine
project-Anweisung hinzu, damit nur die Felder angezeigt werden, die für unsere Zwecke nützlich sind, ohne viel Unübersichtlichkeit.Weitere Informationen finden Sie unter Kusto-Abfragesprache Übersicht.
SecurityIncident | where array_length( Tasks) > 0 | where IncidentNumber == "405211" | sort by LastModifiedTime desc | project IncidentName, Title, LastModifiedTime, TasksSehen wir uns den neuesten Datensatz für diesen Vorfall an und suchen die Liste der Aufgaben, die diesem zugeordnet sind.
Wählen Sie die Erweiterung neben der obersten Zeile in den Abfrageergebnissen aus (die in absteigender Reihenfolge der Aktualität sortiert wurden).
Das Feld Aufgaben ist ein Array des aktuellen Zustands aller Vorgänge in diesem Incident. Wählen Sie die Erweiterung aus, um jedes Element im Array in einer eigenen Zeile anzuzeigen.
Nun sehen Sie, dass dieser Vorfall zwei Aufgaben umfasst. Jede wird wiederum durch ein erweiterbares Array dargestellt. Wählen Sie die Erweiterung eines einzelnen Vorgangs aus, um die zugehörigen Informationen anzuzeigen.
Hier sehen Sie die Details für die erste Aufgabe im Array ("0" ist die Indexposition der Aufgabe im Array). Das Titelfeld zeigt den Namen des Vorgangs an, wie er im Incident angezeigt wird.
Anzeigen von Aufgaben, die der Liste hinzugefügt wurden
Führen Sie die folgenden Schritte durch, um eine Aufgabe zu einem Vorfall hinzuzufügen und beobachten, wie sich der SecurityIncident-Datensatz ändert.
Fügen wir dem Incident eine Aufgabe hinzu. Anschließend kehren wir hierher zurück, führen die Abfrage erneut aus und sehen die Änderungen in den Ergebnissen.
Geben Sie auf der Seite Incidents die Incident-ID in die Suchleiste ein.
Öffnen Sie die Seite mit den Incidentdetails, und wählen Sie auf der Symbolleiste Aufgaben aus.
Fügen Sie eine neue Aufgabe hinzu, geben Sie ihr den Namen "This task is a test task!", und wählen Sie dann Speichern aus. Die letzte unten gezeigte Aufgabe ist das, was Sie am Ende haben sollten:
Kommen wir nun zur Logs-Seite zurück und führen die SecurityIncident-Abfrage erneut aus.
In den Ergebnissen sehen Sie, dass in der Tabelle ein neuer Datensatz für diesen Vorfall vorhanden ist (beachten Sie die Zeitstempel). Erweitern Sie den Datensatz, und Sie werden sehen, dass der Datensatz, den wir zuvor gesehen haben, zwei Aufgaben im Tasks-Array hatte, während der neue drei hat. Die neueste Aufgabe ist die, die wir gerade hinzugefügt haben, wie Sie am Titel sehen können.
Statusänderungen bei Aufgaben anzeigen
Wenn wir nun zurück zur Aufgabe mit dem Titel "Diese Aufgabe ist eine Testaufgabe!" auf der Seite "Vorfalldetails" zurückkehren und sie als abgeschlossen markieren und dann wieder zu "Protokolle " zurückkehren und die Abfrage erneut ausführen, wird ein weiterer neuer Datensatz für denselben Vorfall angezeigt, diesmal wird der neue Status unserer Aufgabe als abgeschlossen angezeigt.
Ansicht zum Löschen von Aufgaben
Kehren wir zur Aufgabenliste auf der Seite "Vorfalldetails" zurück, und löschen Sie die Aufgabe mit dem Titel "Diese Aufgabe ist eine Testaufgabe!".
Wenn wir zu Logs zurückkehren und die Incident-Task-Abfrage erneut ausführen, sehen wir einen weiteren neuen Datensatz, diesmal nur den Status unserer Aufgabe – den mit dem Titel "Diese Aufgabe ist eine Testaufgabe!" —wird gelöscht.
Sobald die Aufgabe jedoch einmal im Array (mit einem gelöschten status) angezeigt wurde, wird sie nicht mehr im Array Tasks in neuen Datensätzen für diesen Incident in der Tabelle SecurityIncident angezeigt. Bestehende frühere Aufzeichnungen des Vorfalls werden weiterhin die Beweise bewahren, dass diese Aufgabe einst existierte.
Anzeigen aktiver Aufgaben, die zu einem geschlossenen Incident gehören
Mit der folgenden Abfrage können Sie sehen, ob ein Incident geschlossen wurde, aber nicht alle ihm zugewiesenen Aufgaben abgeschlossen wurden. Dieses Wissen kann Ihnen helfen, zu ü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. Die Abfrage verwendet die arg_max Aggregationsfunktion, um nur den aktuellsten Datensatz für jeden Vorfall und für jede Aufgabe zurückzugeben, sodass die Ergebnisse den neuesten Zustand widerspiegeln.
Führen Sie folgende Abfrage aus, um den aktuellsten Datensatz für jeden Vorfall abzurufen, filtern Sie auf geschlossene Vorfälle und geben Sie alle Aufgaben zurück, die noch nicht abgeschlossen oder gelöscht sind:
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
Für weitere Informationen zu den Kusto-Operatoren und -Funktionen, die in den Beispielanfragen dieses Artikels verwendet werden, siehe:
Weitere Informationen zu KQL finden Sie unter übersicht über Kusto-Abfragesprache (KQL).
Weitere Ressourcen:
Nächste Schritte
- Erfahren Sie mehr über Aufgaben bei Vorfällen.
- Erfahren Sie, wie Sie Incidents untersuchen.
- Erfahren Sie, wie Sie Gruppen von Vorfällen Aufgaben automatisch mithilfe von Automatisierungsregeln oder Playbooks hinzufügen und wann Automatisierungsregeln oder Playbooks zum Hinzufügen von Aufgaben verwendet werden.
- Erfahren Sie mehr über Automatisierungsregeln und das Erstellen und Verwalten von Automatisierungsregeln.
- Erfahren Sie mehr über Playbooks und wie Sie ein Playbook erstellen, um auf Bedrohungen zu reagieren.