Azure Storage-Audit-Logs erfassen
Parserversion:9.0
In diesem Dokument wird erläutert, wie Sie Azure Storage-Audit-Logs über ein Azure Storage-Konto in Google Security Operations exportieren. Der Parser verarbeitet Logs im JSON-Format und wandelt sie in das einheitliche Datenmodell (Unified Data Model, UDM) um. Dabei werden Felder aus dem Rohlog extrahiert, Datentypkonvertierungen durchgeführt, die Daten mit zusätzlichem Kontext angereichert (z. B. durch Parsen des User-Agents und Aufschlüsselung der IP-Adresse) und die extrahierten Felder den entsprechenden UDM-Feldern zugeordnet.
Hinweis
Folgende Voraussetzungen müssen erfüllt sein:
- Google SecOps-Instanz
- Aktiver Azure-Mandant
- Privilegierter Zugriff auf Azure
Azure Storage-Konto konfigurieren
- Suchen Sie in der Azure-Konsole nach Storage-Konten.
- Klicken Sie auf Erstellen.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- Abo: Wählen Sie das Abo aus.
- Ressourcengruppe: Wählen Sie die Ressourcengruppe aus.
- Region: Wählen Sie die Region aus.
- Leistung: Wählen Sie die Leistung aus (Standard empfohlen).
- Redundanz: Wählen Sie die Redundanz aus (GRS oder LRS empfohlen).
- Storage-Kontoname: Geben Sie einen Namen für das neue Storage-Konto ein.
- Klicken Sie auf Überprüfen + erstellen.
- Prüfen Sie die Kontoübersicht und klicken Sie auf Erstellen.
- Wählen Sie auf der Seite Storage-Kontoübersicht im Bereich Sicherheit + Netzwerk das Untermenü Zugriffsschlüssel aus.
- Klicken Sie neben Schlüssel 1 oder Schlüssel 2 auf Anzeigen.
- Klicken Sie auf In die Zwischenablage kopieren , um den Schlüssel zu kopieren.
- Speichern Sie den Schlüssel an einem sicheren Ort, um ihn später zu verwenden.
- Wählen Sie auf der Seite Storage-Kontoübersicht im Bereich Einstellungen das Untermenü Endpunkte aus.
- Klicken Sie auf In die Zwischenablage kopieren , um die Endpunkt-URL des Blob-Dienstes zu kopieren, z. B.
https://<storageaccountname>.blob.core.windows.net. - Speichern Sie die Endpunkt-URL an einem sicheren Ort, um sie später zu verwenden.
Logexport für Azure Storage-Audit-Logs konfigurieren
- Melden Sie sich mit Ihrem privilegierten Konto im Azure-Portal an.
- Rufen Sie Storage-Konten > Diagnoseeinstellungen auf.
- Klicken Sie auf + Diagnoseeinstellung hinzufügen.
- Wählen Sie die Diagnoseeinstellungen für
blob,queue,tableundfileaus.- Wählen Sie für jede Diagnoseeinstellung in Kategoriegruppen die Option allLogs aus.
- Geben Sie für jede Diagnoseeinstellung einen aussagekräftigen Namen ein.
- Wählen Sie das Kästchen In einem Storage-Konto archivieren als Ziel aus.
- Geben Sie das Abo und das Storage-Konto an.
- Klicken Sie auf Speichern.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte, um Feeds in der Google SecOps-Plattform einzurichten:
- SIEM-Einstellungen > Feeds > Neuen Feed hinzufügen
- Content Hub > Content-Pakete > Loslegen
Azure Storage-Audit-Feed einrichten
- Klicken Sie auf das Paket Azure-Plattform.
- Suchen Sie den Logtyp Azure Storage-Audit und klicken Sie auf Neuen Feed hinzufügen.
Geben Sie Werte für die folgenden Felder an:
- Quelltyp: Microsoft Azure Blob Storage V2
- Azure-URI: Die Blob-Endpunkt-URL.
ENDPOINT_URL/BLOB_NAME- Dabei gilt:
ENDPOINT_URL: Die Blob-Endpunkt-URL (https://<storageaccountname>.blob.core.windows.net)BLOB_NAME: Der Name des Blobs (z. B.<logname>-logs)
- Dabei gilt:
Optionen für das Löschen der Quelle: Wählen Sie die Löschoption entsprechend Ihren Aufnahmeeinstellungen aus.
Maximales Alter der Datei: Schließt Dateien ein, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
Gemeinsamer Schlüssel: Der Zugriffsschlüssel für Azure Blob Storage.
Erweiterte Optionen
- Feedname: Ein vorab ausgefüllter Wert, der den Feed identifiziert.
- Asset-Namespace: Der mit dem Feed verknüpfte Namespace.
- Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
Klicken Sie auf Feed erstellen.
Weitere Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen in dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
callerIpAddress |
principal.asset.ip |
Die IP-Adresse wird mit einem Grok-Muster aus dem Feld callerIpAddress extrahiert und principal.asset.ip zugewiesen. |
callerIpAddress |
principal.ip |
Die IP-Adresse wird mit einem Grok-Muster aus dem Feld callerIpAddress extrahiert und principal.ip zugewiesen. |
callerIpAddress |
principal.port |
Die Portnummer wird mit einem Grok-Muster aus dem Feld callerIpAddress extrahiert und principal.port zugewiesen. |
category |
security_result.category_details |
Der Wert des Felds category wird security_result.category_details zugewiesen. |
correlationId |
security_result.detection_fields[0].key |
Der Literalstring correlationId wird dem Schlüsselfeld zugewiesen. |
correlationId |
security_result.detection_fields[0].value |
Der Wert des Felds correlationId wird security_result.detection_fields[0].value zugewiesen. Der Wert des Felds time wird als Zeitstempel geparst und event.idm.read_only_udm.metadata.event_timestamp zugewiesen. Wenn category gleich StorageWrite ist und principal.user.userid vorhanden ist (abgeleitet von properties.accountName), wird der Wert auf USER_RESOURCE_UPDATE_CONTENT gesetzt. Wenn category gleich StorageDelete ist und principal.user.userid vorhanden ist, wird der Wert auf USER_RESOURCE_DELETION gesetzt. Andernfalls wird der Wert auf USER_RESOURCE_ACCESS gesetzt. Der Literalstring AZURE_STORAGE_AUDIT wird event.idm.read_only_udm.metadata.log_type zugewiesen. Der Literalstring AZURE_STORAGE_AUDIT wird event.idm.read_only_udm.metadata.product_name zugewiesen. Der Wert des Felds schemaVersion wird event.idm.read_only_udm.metadata.product_version zugewiesen. Der Literalstring AZURE_STORAGE_AUDIT wird event.idm.read_only_udm.metadata.vendor_name zugewiesen. |
location |
target.location.name |
Der Wert des location Felds wird target.location.name zugewiesen. |
operationName |
additional.fields[x].key |
Der Literalstring operationName wird dem Schlüsselfeld zugewiesen. |
operationName |
additional.fields[x].value.string_value |
Der Wert des Felds operationName wird additional.fields[x].value.string_value zugewiesen. |
operationVersion |
additional.fields[x].key |
Der Literalstring operationVersion wird dem Schlüsselfeld zugewiesen. |
operationVersion |
additional.fields[x].value.string_value |
Der Wert des Felds operationVersion wird additional.fields[x].value.string_value zugewiesen. |
properties.accountName |
principal.user.userid |
Der Wert des Felds properties.accountName wird principal.user.userid zugewiesen. |
properties.clientRequestId |
additional.fields[x].key |
Der Literalstring clientRequestId wird dem Schlüsselfeld zugewiesen. |
properties.clientRequestId |
additional.fields[x].value.string_value |
Der Wert des Felds properties.clientRequestId wird additional.fields[x].value.string_value zugewiesen. |
properties.etag |
additional.fields[x].key |
Der Literalstring etag wird dem Schlüsselfeld zugewiesen. |
properties.etag |
additional.fields[x].value.string_value |
Der Wert des Felds properties.etag wird additional.fields[x].value.string_value zugewiesen. |
properties.objectKey |
additional.fields[x].key |
Der Literalstring objectKey wird dem Schlüsselfeld zugewiesen. |
properties.objectKey |
additional.fields[x].value.string_value |
Der Wert des Felds properties.objectKey wird additional.fields[x].value.string_value zugewiesen. |
properties.requestMd5 |
additional.fields[x].key |
Der Literalstring requestMd5 wird dem Schlüsselfeld zugewiesen. |
properties.requestMd5 |
additional.fields[x].value.string_value |
Der Wert des Felds properties.requestMd5 wird additional.fields[x].value.string_value zugewiesen. |
properties.responseMd5 |
additional.fields[x].key |
Der Literalstring responseMd5 wird dem Schlüsselfeld zugewiesen. |
properties.responseMd5 |
additional.fields[x].value.string_value |
Der Wert des Felds properties.responseMd5 wird additional.fields[x].value.string_value zugewiesen. |
properties.serviceType |
additional.fields[x].key |
Der Literalstring serviceType wird dem Schlüsselfeld zugewiesen. |
properties.serviceType |
additional.fields[x].value.string_value |
Der Wert des Felds properties.serviceType wird additional.fields[x].value.string_value zugewiesen. |
properties.tlsVersion |
network.tls.version |
Der Wert des Felds properties.tlsVersion wird network.tls.version zugewiesen. |
properties.userAgentHeader |
network.http.parsed_user_agent |
Der Wert des Felds properties.userAgentHeader wird als User-Agent-String geparst und network.http.parsed_user_agent zugewiesen. |
properties.userAgentHeader |
network.http.user_agent |
Der Wert des Felds properties.userAgentHeader wird network.http.user_agent zugewiesen. |
protocol |
network.application_protocol |
Der Wert des Felds protocol wird network.application_protocol zugewiesen. |
resourceId |
target.resource.id |
Der Wert des Felds resourceId wird target.resource.id zugewiesen. |
resourceId |
target.resource.product_object_id |
Der Wert des Felds resourceId wird target.resource.product_object_id zugewiesen. Der Literalstring DATABASE wird target.resource.resource_type zugewiesen. |
resourceType |
additional.fields[x].key |
Der Literalstring resourceType wird dem Schlüsselfeld zugewiesen. |
resourceType |
additional.fields[x].value.string_value |
Der Wert des Felds resourceType wird additional.fields[x].value.string_value zugewiesen. Wenn statusText gleich Success ist, wird der Wert auf ALLOW gesetzt. |
statusCode |
network.http.response_code |
Der Wert des Felds statusCode wird in eine Ganzzahl konvertiert und network.http.response_code zugewiesen. Der Literalstring MICROSOFT_AZURE wird target.cloud.environment zugewiesen. |
time |
timestamp |
Der Wert des Felds time wird als Zeitstempel geparst und timestamp zugewiesen. |
uri |
network.http.referral_url |
Der Wert des Felds uri wird network.http.referral_url zugewiesen. |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten