Microsoft Defender for Cloud-Benachrichtigungsprotokolle erfassen

Unterstützt in:

Übersicht

Dieser Parser extrahiert Daten zu Sicherheitswarnungen aus den JSON-formatierten Protokollen von Microsoft Defender for Cloud. Dabei werden die Rohlogfelder in das Google SecOps-UDM umgewandelt und zugeordnet. Dabei werden verschiedene Datentypen und verschachtelte Strukturen verarbeitet und die Daten werden für eine bessere Analyse mit zusätzlichem Kontext und Labels angereichert.

Hinweise

  • Sie benötigen eine Google SecOps-Instanz.
  • Sie benötigen Berechtigungen für Microsoft Defender for Cloud.

Feed in Google SecOps konfigurieren, um Microsoft Defender Cloud-Benachrichtigungsprotokolle zu verarbeiten

  1. Gehen Sie zu SIEM-Einstellungen > Feeds.
  2. Klicken Sie auf Neu hinzufügen.
  3. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Microsoft Defender for Cloud-Benachrichtigungsprotokolle.
  4. Wählen Sie als Quelltyp Webhook aus.
  5. Wählen Sie Microsoft Defender for Cloud als Logtyp aus.
  6. Klicken Sie auf Weiter.
  7. Optional: Geben Sie Werte für die folgenden Eingabeparameter an:
    • Trennzeichen für die Aufteilung: Das Trennzeichen, mit dem Logzeilen getrennt werden, z. B. \n.
    • Asset-Namespace: der Asset-Namespace.
    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
  8. Klicken Sie auf Weiter.
  9. Überprüfen Sie die Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
  10. Klicken Sie auf Secret-Schlüssel generieren, um einen Secret-Schlüssel zur Authentifizierung dieses Feeds zu generieren.
  11. Kopieren und speichern Sie den geheimen Schlüssel. Sie können sich diesen geheimen Schlüssel nicht noch einmal ansehen. Bei Bedarf können Sie einen neuen Secret-Schlüssel generieren. Dadurch wird der vorherige Secret-Schlüssel jedoch ungültig.
  12. Kopieren Sie auf dem Tab Details die Feedendpunkt-URL aus dem Feld Endpunktinformationen. Sie müssen diese Endpunkt-URL in Ihrer Clientanwendung angeben.
  13. Klicken Sie auf Fertig.

API-Schlüssel für den Webhook-Feed erstellen

  1. Rufen Sie die Google Cloud Console > Anmeldedaten auf.

    Zu den Anmeldedaten

  2. Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.

  3. Beschränken Sie den API-Schlüsselzugriff auf die Google Security Operations API.

Endpunkt-URL angeben

  1. Geben Sie in Ihrer Clientanwendung die HTTPS-Endpunkt-URL an, die im Webhook-Feed angegeben ist.
  2. Aktiviere die Authentifizierung, indem du den API-Schlüssel und den geheimen Schlüssel als Teil der benutzerdefinierten Kopfzeile im folgenden Format angibst:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    Empfehlung: Geben Sie den API-Schlüssel als Header an, anstatt ihn in der URL anzugeben. Wenn Ihr Webhook-Client keine benutzerdefinierten Header unterstützt, können Sie den API-Schlüssel und den geheimen Schlüssel mithilfe von Suchparametern im folgenden Format angeben:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

Ersetzen Sie Folgendes:

  • ENDPOINT_URL: die URL des Feedendpunkts.
  • API_KEY: Der API-Schlüssel, mit dem Sie sich bei Google Security Operations authentifizieren.
  • SECRET: der geheime Schlüssel, den Sie zur Authentifizierung des Feeds generiert haben.

Azure Logic App erstellen

  1. Melden Sie sich im Azure-Portal an (https://portal.azure.com).
  2. Klicken Sie auf Ressource erstellen und suchen Sie nach Logic App.
  3. Klicken Sie auf Erstellen, um den Bereitstellungsprozess zu starten.
  4. Logic App konfigurieren:
    • Name: Geben Sie einen aussagekräftigen Namen für die Logik-App ein (z. B. GoogleSecOpsWebhook).
    • Abo: Wählen Sie das entsprechende Abo aus.
    • Ressourcengruppe: Wählen Sie eine vorhandene Ressourcengruppe aus oder erstellen Sie eine neue.
    • Standort: Wählen Sie den Standort aus, der Ihrer Umgebung am nächsten ist.
    • Log Analytics: Aktivieren Sie diese Option, wenn Sie Diagnosedaten für die Logik-App erfassen möchten.
  5. Klicken Sie auf Prüfen und erstellen, um die Logik-App zu erstellen.
  6. Klicken Sie auf Erstellen, um die Logik-App bereitzustellen.

Azure Logic App-Webhook-Verbindung konfigurieren

  1. Rufen Sie die im vorherigen Schritt erstellte Logik-App auf.
  2. Klicken Sie auf Entwicklertools > Logic App Designer.
  3. Klicken Sie auf Trigger hinzufügen.
  4. Suchen Sie nach Microsoft Defender for Cloud > Wenn eine Microsoft Defender for Cloud-Benachrichtigung erstellt oder ausgelöst wird als Trigger.

  5. Klicken Sie auf Neu erstellen und folgen Sie der Anleitung, um sich zu authentifizieren.

  6. Klicken Sie auf Neuen Schritt einfügen, um dem Workflow einen neuen Schritt hinzuzufügen.

  7. Klicken Sie auf Aktion hinzufügen.

  8. Suche nach HTT.

  9. Wählen Sie als Aktion HTTP aus.

  10. Konfigurieren Sie die HTTP-Aktion:

    • URI: Hier geben Sie die Endpunkt-URL der Google SecOps API ein.
    • Methode: POST
    • Content-Type-Header hinzufügen: Lege Content-Type als Header-Schlüssel und application/json als Header-Wert fest. So wird Google SecOps das Format der gesendeten Daten mitgeteilt.
    • API-Schlüssel zu Abfragen hinzufügen: Legen Sie key als ersten Abfrageschlüssel und <API_KEY> als Abfragewert fest. API_KEY ist der generierte API-Schlüsselwert, der bei der Konfiguration des Google SecOps-Feeds erstellt wurde.
    • Abfragen einen geheimen Schlüssel hinzufügen: Legen Sie secret als zweiten Abfrageschlüssel und <SECRET_KEY> als Abfragewert fest. SECRET_KEY ist der bei der Konfiguration des Google SecOps-Feeds generierte geheime Schlüssel.
    • Body aus vorherigem Schritt festlegen: Klicken Sie auf Anfrageinhalt eingeben > Daten aus vorherigen Schritten eingeben (Schaltfläche mit Blitzsymbol links neben dem Eingabefeld).
  11. Klicken Sie auf Speichern.

Webhook für Microsoft Defender-Cloud-Benachrichtigungen konfigurieren

  1. Rufen Sie Microsoft Defender for Cloud auf.
  2. Klicken Sie auf Verwaltung > Workflow-Automatisierung.
  3. Klicken Sie auf Workflow-Automatisierung hinzufügen.
    • Name: Geben Sie einen aussagekräftigen Namen für die Automatisierungsregel an, z. B. ForwardAlertsToGoogleSecOps.
    • Ressourcengruppe: Wählen Sie eine vorhandene Ressourcengruppe aus.
    • Defender for Cloud-Datentyp: Wählen Sie Sicherheitswarnung aus.
    • Schweregrad der Benachrichtigung: Wählen Sie Alle auswählen aus.
    • Logik-App-Instanzen aus den folgenden Abos anzeigen: Wählen Sie das Abo aus, in dem die Logik-App erstellt wurde.
    • Logic App auswählen: Wählen Sie die in den vorherigen Schritten erstellte Logic App aus.
  4. Klicken Sie auf Erstellen, um die Workflow-Automatisierung zu speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
AlertLink principal.resource.attribute.labels.AlertLink.value Direkt zugeordnet.
AlertName security_result.rule_name Direkt zugeordnet.
AlertSeverity security_result.severity Direkte Zuordnung, wenn der Wert einer der folgenden Optionen ist: HOCH, MITTEL, NIEDRIG, KRITISCH, UNKNOWN_SEVERITY. Andernfalls wird security_result.severity_details zugewiesen. Der Wert wird vor dem Vergleich in Großbuchstaben umgewandelt.
AlertType security_result.threat_name Direkt zugeordnet.
CompromisedEntity principal.resource.attribute.labels.CompromisedEntity.value Direkt zugeordnet.
Description security_result.description Direkt zugeordnet.
DisplayName security_result.summary Direkt zugeordnet.
EndTime about.resource.attribute.labels.EndTime.value Direkt zugeordnet.
Entities[].Location.City principal.location.city Direkt zugeordnet.
Entities[].Location.CountryName principal.location.country_or_region Direkt zugeordnet.
ExtendedLinks[].Category about.resource.attribute.labels.extendedLink_Category.value Direkt zugeordnet.
ExtendedLinks[].Href about.resource.attribute.labels.extendedLink_Href.value Direkt zugeordnet.
ExtendedLinks[].Label about.resource.attribute.labels.extendedLink_Label.value Direkt zugeordnet.
ExtendedLinks[].Type about.resource.attribute.labels.extendedLink_Type.value Direkt zugeordnet.
ExtendedProperties.Account Session Id network.session_id Nach der Umbenennung in accountSessionId direkt zugeordnet.
ExtendedProperties.Alert Id metadata.product_log_id Nach der Umbenennung in alertId direkt zugeordnet.
ExtendedProperties.Authentication type extensions.auth.auth_details Nach der Umbenennung in authenticationType direkt zugeordnet.
ExtendedProperties.Client Application principal.application Nach der Umbenennung in clientApplication direkt zugeordnet.
ExtendedProperties.Client Hostname principal.asset.hostname, principal.hostname Nach der Umbenennung in clientHostName direkt zugeordnet.
ExtendedProperties.Client IP address principal.asset.ip, principal.ip Nach der Umbenennung in clientIpAddress direkt zugeordnet.
ExtendedProperties.Client IP location principal.location.country_or_region Nach der Umbenennung in clientIpLocation direkt zugeordnet.
ExtendedProperties.Client Location principal.location.country_or_region Nach der Umbenennung in clientLocation direkt zugeordnet.
ExtendedProperties.Client Principal Name principal.user.userid Nach der Umbenennung in clientPrincipalName direkt zugeordnet.
ExtendedProperties.Compromised Host principal.asset.hostname, principal.hostname Nach der Umbenennung in compromisedHost direkt zugeordnet.
ExtendedProperties.Suspicious Command Line target.process.command_line Nach der Umbenennung in suspiciousCommandLine direkt zugeordnet.
ExtendedProperties.Suspicious Process target.process.file.full_path Nach der Umbenennung in suspiciousProcess direkt zugeordnet.
ExtendedProperties.Suspicious Process Id target.process.pid Nach der Umbenennung in suspiciousProcessId direkt zugeordnet.
ExtendedProperties.User agent network.http.user_agent Nach der Umbenennung in userAgent direkt zugeordnet.
ExtendedProperties.User Name principal.user.user_display_name Nach der Umbenennung in userName direkt zugeordnet.
ExtendedProperties.resourceType principal.resource.name Direkt zugeordnet.
IsIncident security_result.detection_fields.IsIncident.value Direkt zugeordnet. In String umgewandelt.
ProcessingEndTime about.resource.attribute.labels.ProcessingEndTime.value Direkt zugeordnet.
ProductName metadata.product_name Direkt zugeordnet.
ResourceId principal.resource.product_object_id Direkt zugeordnet.
SourceSystem security_result.detection_fields.SourceSystem.value Direkt zugeordnet.
StartTime about.resource.attribute.labels.StartTime.value Direkt zugeordnet.
Status security_result.detection_fields.Status.value Direkt zugeordnet.
SystemAlertId metadata.product_log_id Direkt zugeordnet.
Tactics security_result.attack_details.tactics.name Direkt zugeordnet.
TenantId additional.fields.TenantId.string_value Direkt zugeordnet.
TimeGenerated about.resource.attribute.labels.TimeGenerated.value Direkt zugeordnet.
VendorName metadata.vendor_name Direkt zugeordnet.
WorkspaceResourceGroup target.resource.attribute.labels.WorkspaceResourceGroup.value Direkt zugeordnet.
WorkspaceSubscriptionId target.resource.attribute.labels.WorkspaceSubscriptionId.value Direkt zugeordnet.
_Internal_WorkspaceResourceId target.resource.product_object_id Direkt zugeordnet.
properties.alertDisplayName security_result.rule_name Direkt zugeordnet.
properties.alertType security_result.threat_name Direkt zugeordnet.
properties.alertUri principal.resource.attribute.labels.AlertUri.value Direkt zugeordnet.
properties.correlationKey principal.resource.attribute.labels.correlationKey.value Direkt zugeordnet.
properties.description security_result.description Direkt zugeordnet.
properties.endTimeUtc additional.fields.EndTime.string_value Direkt zugeordnet.
properties.entities[].location.city principal.location.city Direkt zugeordnet.
properties.entities[].location.countryName principal.location.country_or_region Direkt zugeordnet.
properties.entities[].location.latitude principal.location.region_coordinates.latitude Direkt zugeordnet. In Gleitkommazahl umgewandelt.
properties.entities[].location.longitude principal.location.region_coordinates.longitude Direkt zugeordnet. In Gleitkommazahl umgewandelt.
properties.extendedProperties.alert_Id metadata.product_log_id Direkt zugeordnet.
properties.extendedProperties.clientApplication principal.application Direkt zugeordnet.
properties.extendedProperties.clientIpAddress principal.asset.ip, principal.ip Direkt zugeordnet. Wird als IP-Adresse geparst.
properties.extendedProperties.clientLocation principal.location.country_or_region Direkt zugeordnet.
properties.extendedProperties.clientPrincipalName principal.user.userid Direkt zugeordnet.
properties.extendedProperties.compromisedEntity principal.resource.attribute.labels.CompromisedEntity.value Direkt zugeordnet.
properties.extendedProperties.resourceType principal.resource.name Direkt zugeordnet.
properties.IsIncident security_result.detection_fields.isIncident.value Direkt zugeordnet. In String umgewandelt.
properties.productName metadata.product_name Direkt zugeordnet.
properties.resourceIdentifiers[].<key> additional.fields.<key>_<index>.string_value Direkt zugeordnet. Den Schlüsseln $id und type wird der Index des Elements im Array angehängt.
properties.severity security_result.severity Direkte Zuordnung, wenn der Wert einer der folgenden Optionen ist: HOCH, MITTEL, NIEDRIG, KRITISCH, UNKNOWN_SEVERITY. Andernfalls wird security_result.severity_details zugewiesen. Der Wert wird vor dem Vergleich in Großbuchstaben umgewandelt.
properties.startTimeUtc additional.fields.StartTime.string_value Direkt zugeordnet.
properties.status security_result.detection_fields.Status.value Direkt zugeordnet.
properties.timeGeneratedUtc additional.fields.TimeGenerated.string_value Direkt zugeordnet. Wenn im Log kein Wert angegeben ist, wird „MICROSOFT_DEFENDER_CLOUD_ALERTS“ verwendet. Legen Sie diesen Wert auf „MICROSOFT_DEFENDER_CLOUD_ALERTS“ fest. Legen Sie „USER_RESOURCE_ACCESS“ fest, wenn „principal“ oder „target“ vorhanden sind, andernfalls „GENERIC_EVENT“.

Änderungen

2024-07-05

  • „isInteractive“ wurde „security_result.detection_fields“ zugeordnet.

2024-04-02

  • „properties.createdDateTime“ wurde in „metadata.event_timestamp“ umgewandelt.
  • „properties.resourceServicePrincipalId“ und „resourceServicePrincipalId“ wurden auf „target.resource.attribute.labels“ zugeordnet.
  • „properties.authenticationProcessingDetails“, „authenticationProcessingDetails“ und „properties.networkLocationDetails“ wurden in „additional.fields“ überführt.
  • „properties.userAgent“ wurde in „network.http.user_agent“ und „network.http.parsed_user_agent“ umgewandelt.
  • „properties.authenticationRequirement“ wurde „additional.fields“ zugeordnet.