Azure Storage-Audit-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Azure Storage Audit-Logs mithilfe eines Azure Storage-Kontos in Google Security Operations exportieren. Der Parser verarbeitet Protokolle im JSON-Format und wandelt sie in das Unified Data Model (UDM) um. Dabei werden Felder aus dem Rohprotokoll extrahiert, Datentypkonvertierungen durchgeführt, die Daten mit zusätzlichem Kontext angereichert (z. B. User-Agent-Parsing und IP-Adressaufschlüsselung) und die extrahierten Felder den entsprechenden UDM-Feldern zugeordnet.

Vorbereitung

  • Sie benötigen eine Google SecOps-Instanz.
  • Sie benötigen einen aktiven Azure-Mandanten.
  • Sie benötigen Berechtigungen für den Zugriff auf Azure.

Azure-Speicherkonto konfigurieren

  1. Suchen Sie in der Azure-Konsole nach Speicherkonten.
  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. Wir empfehlen „Standard“.
    • Redundanz: Wählen Sie die Redundanz aus (GRS oder LRS empfohlen).
    • Speicherkontoname: Geben Sie einen Namen für das neue Speicherkonto ein.
  4. Klicken Sie auf Überprüfen + Erstellen.
  5. Sehen Sie sich die Kontoübersicht an und klicken Sie auf Erstellen.
  6. Wählen Sie auf der Seite Speicherkontoübersicht unter Sicherheit & Netzwerk das Untermenü Zugriffsschlüssel aus.
  7. Klicken Sie neben key1 oder key2 auf Anzeigen.
  8. Klicke 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 Speicherkontoübersicht unter Einstellungen das Untermenü Endpunkte aus.
  11. Klicken Sie auf In 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 für die spätere Verwendung.

Logexport für Azure Storage-Audit-Logs konfigurieren

  1. Melden Sie sich mit Ihrem Konto mit Berechtigungen im Azure-Portal an.
  2. Gehen Sie zu Speicherkonten > Diagnoseeinstellungen.
  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 die Option allLogs unter Kategoriegruppen aus.
    • Geben Sie für jede Diagnoseeinstellung einen aussagekräftigen Namen ein.
  5. Wählen Sie das Kästchen In einem Speicherkonto archivieren als Ziel aus.
    • Geben Sie das Abo und das Speicherkonto an.
  6. Klicken Sie auf Speichern.

Feed in Google SecOps für die Aufnahme der Azure Storage-Audit-Logs konfigurieren

  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. Azure Storage Audit Logs.
  4. Wählen Sie Microsoft Azure Blob Storage als Quelltyp aus.
  5. Wählen Sie Azure Storage Audit als Logtyp aus.
  6. Klicken Sie auf Weiter.
  7. Geben Sie Werte für die folgenden Eingabeparameter an:

    • 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)
    • URI ist: Wählen Sie den URI-TYP gemäß der Logstream-Konfiguration aus (Einzeldatei | Verzeichnis | Verzeichnis mit Unterverzeichnissen).
    • Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus.

    • Freigegebener Schlüssel: Der Zugriffsschlüssel für Azure Blob Storage.

    • Asset-Namespace: der Asset-Namespace.

    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.

  8. Klicken Sie auf Weiter.

  9. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

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 mithilfe eines Grok-Musters 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 Dem Schlüsselfeld wird der Literalstring correlationId 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 den Wert StorageWrite hat und principal.user.userid vorhanden ist (aus properties.accountName abgeleitet), wird der Wert auf USER_RESOURCE_UPDATE_CONTENT gesetzt. Wenn category den Wert StorageDelete hat und principal.user.userid vorhanden ist, wird der Wert auf USER_RESOURCE_DELETION gesetzt. Andernfalls wird der Wert auf USER_RESOURCE_ACCESS gesetzt. event.idm.read_only_udm.metadata.log_type wird das Literalstring AZURE_STORAGE_AUDIT zugewiesen. event.idm.read_only_udm.metadata.product_name wird das Literalstring AZURE_STORAGE_AUDIT zugewiesen. Der Wert des Felds schemaVersion wird event.idm.read_only_udm.metadata.product_version zugewiesen. event.idm.read_only_udm.metadata.vendor_name wird das Literalstring AZURE_STORAGE_AUDIT zugewiesen.
location target.location.name Der Wert des Felds location wird target.location.name zugewiesen.
operationName additional.fields[x].key Dem Schlüsselfeld wird der Literalstring operationName 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 Dem Schlüsselfeld wird der Literalstring operationVersion 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 Dem Schlüsselfeld wird der Literalstring clientRequestId 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 Dem Schlüsselfeld wird der Literalstring etag 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 Dem Schlüsselfeld wird der Literalstring objectKey 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 Dem Schlüsselfeld wird der Literalstring requestMd5 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 Dem Schlüsselfeld wird der Literalstring responseMd5 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 Dem Schlüsselfeld wird der Literalstring serviceType 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. target.resource.resource_type wird das Literalstring DATABASE zugewiesen.
resourceType additional.fields[x].key Dem Schlüsselfeld wird der Literalstring resourceType zugewiesen.
resourceType additional.fields[x].value.string_value Der Wert des Felds resourceType wird additional.fields[x].value.string_value zugewiesen. Wenn statusText den Wert Success hat, 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. target.cloud.environment wird das Literalstring MICROSOFT_AZURE 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.

Änderungen

2024-12-12

  • identity.tokenHash, identity.type, identity.requester.appId, identity.requester.tenantId, identity.requester.tokenIssuer, properties.sourceAccessTier, principal.type, auth.action, auth.roleAssignmentId und auth.roleDefinitionId auf additional.fields
  • identity.requester.upn wurde src.user.userid zugeordnet.
  • identity.requester.objectId wurde src.user.product_object_id zugeordnet.

2024-12-06

  • smbCommandMinor wurde security_result.action_details zugeordnet.

2024-07-31

  • statusText und correlationId wurden auf null initialisiert.

2024-04-08

  • Neu erstellter Parser.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten