Azure Storage-Audit-Logs erfassen

Parserversion:9.0

Unterstützt in:

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

  1. Suchen Sie in der Azure-Konsole nach Storage-Konten.
  2. Klicken Sie auf Erstellen.
  3. 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.
  4. Klicken Sie auf Überprüfen + erstellen.
  5. Prüfen Sie die Kontoübersicht und klicken Sie auf Erstellen.
  6. Wählen Sie auf der Seite Storage-Kontoübersicht im Bereich Sicherheit + Netzwerk das Untermenü Zugriffsschlüssel aus.
  7. Klicken Sie neben Schlüssel 1 oder Schlüssel 2 auf Anzeigen.
  8. Klicken Sie auf In die Zwischenablage kopieren , um den Schlüssel zu kopieren.
  9. Speichern Sie den Schlüssel an einem sicheren Ort, um ihn später zu verwenden.
  10. Wählen Sie auf der Seite Storage-Kontoübersicht im Bereich Einstellungen das Untermenü Endpunkte aus.
  11. Klicken Sie auf In die Zwischenablage kopieren , um die Endpunkt-URL des Blob-Dienstes zu kopieren, z. B. https://<storageaccountname>.blob.core.windows.net.
  12. Speichern Sie die Endpunkt-URL an einem sicheren Ort, um sie später zu verwenden.

Logexport für Azure Storage-Audit-Logs konfigurieren

  1. Melden Sie sich mit Ihrem privilegierten Konto im Azure-Portal an.
  2. Rufen Sie Storage-Konten > Diagnoseeinstellungen auf.
  3. Klicken Sie auf + Diagnoseeinstellung hinzufügen.
  4. Wählen Sie die Diagnoseeinstellungen für blob, queue, table und file aus.
    • Wählen Sie für jede Diagnoseeinstellung in Kategoriegruppen die Option allLogs aus.
    • Geben Sie für jede Diagnoseeinstellung einen aussagekräftigen Namen ein.
  5. Wählen Sie das Kästchen In einem Storage-Konto archivieren als Ziel aus.
    • Geben Sie das Abo und das Storage-Konto an.
  6. 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

  1. Klicken Sie auf das Paket Azure-Plattform.
  2. Suchen Sie den Logtyp Azure Storage-Audit und klicken Sie auf Neuen Feed hinzufügen.
  3. 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)
    • 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.
  4. 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