Microsoft Defender for Cloud-Benachrichtigungsprotokolle erfassen
Ü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
- Gehen Sie zu SIEM-Einstellungen > Feeds.
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Microsoft Defender for Cloud-Benachrichtigungsprotokolle.
- Wählen Sie als Quelltyp Webhook aus.
- Wählen Sie Microsoft Defender for Cloud als Logtyp aus.
- Klicken Sie auf Weiter.
- 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.
- Trennzeichen für die Aufteilung: Das Trennzeichen, mit dem Logzeilen getrennt werden, z. B.
- Klicken Sie auf Weiter.
- Überprüfen Sie die Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
- Klicken Sie auf Secret-Schlüssel generieren, um einen Secret-Schlüssel zur Authentifizierung dieses Feeds zu generieren.
- 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.
- Kopieren Sie auf dem Tab Details die Feedendpunkt-URL aus dem Feld Endpunktinformationen. Sie müssen diese Endpunkt-URL in Ihrer Clientanwendung angeben.
- Klicken Sie auf Fertig.
API-Schlüssel für den Webhook-Feed erstellen
Rufen Sie die Google Cloud Console > Anmeldedaten auf.
Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.
Beschränken Sie den API-Schlüsselzugriff auf die Google Security Operations API.
Endpunkt-URL angeben
- Geben Sie in Ihrer Clientanwendung die HTTPS-Endpunkt-URL an, die im Webhook-Feed angegeben ist.
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
- Melden Sie sich im Azure-Portal an (https://portal.azure.com).
- Klicken Sie auf Ressource erstellen und suchen Sie nach Logic App.
- Klicken Sie auf Erstellen, um den Bereitstellungsprozess zu starten.
- 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.
- Klicken Sie auf Prüfen und erstellen, um die Logik-App zu erstellen.
- Klicken Sie auf Erstellen, um die Logik-App bereitzustellen.
Azure Logic App-Webhook-Verbindung konfigurieren
- Rufen Sie die im vorherigen Schritt erstellte Logik-App auf.
- Klicken Sie auf Entwicklertools > Logic App Designer.
- Klicken Sie auf Trigger hinzufügen.
Suchen Sie nach Microsoft Defender for Cloud > Wenn eine Microsoft Defender for Cloud-Benachrichtigung erstellt oder ausgelöst wird als Trigger.
Klicken Sie auf Neu erstellen und folgen Sie der Anleitung, um sich zu authentifizieren.
Klicken Sie auf Neuen Schritt einfügen, um dem Workflow einen neuen Schritt hinzuzufügen.
Klicken Sie auf Aktion hinzufügen.
Suche nach HTT.
Wählen Sie als Aktion HTTP aus.
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 undapplication/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).
Klicken Sie auf Speichern.
Webhook für Microsoft Defender-Cloud-Benachrichtigungen konfigurieren
- Rufen Sie Microsoft Defender for Cloud auf.
- Klicken Sie auf Verwaltung > Workflow-Automatisierung.
- 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.
- 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.