Logs für den benutzerdefinierten Anwendungszugriff erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Custom Application Access-Logs mit Cloud Storage- oder Streaming-Aufnahmemethoden in Google Security Operations aufnehmen.

In benutzerdefinierten Anwendungszugriffsprotokollen werden Authentifizierungsereignisse, Autorisierungsentscheidungen und Zugriffsmuster von proprietären oder benutzerdefinierten Anwendungen erfasst. Diese Logs sind unerlässlich, um Nutzeraktivitäten zu überwachen, nicht autorisierte Zugriffsversuche zu erkennen und die Einhaltung von Sicherheitsrichtlinien zu gewährleisten.

Hinweise

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Benutzerdefinierte Anwendungszugriffsprotokolle im JSON-, CSV- oder strukturierten Textformat
  • Zugriff auf eine der folgenden Optionen:
    • Google Cloud Storage-Bucket (für die GCS-Aufnahme)
    • Amazon S3-Bucket (für die S3-Aufnahme)
    • Microsoft Azure Storage-Konto (für die Aufnahme von Azure-Blobs)
    • Webhook-Endpunktfunktion (für die Push-basierte Aufnahme)
    • Amazon Kinesis Data Firehose (für die Streaming-Aufnahme)

Benutzerdefinierten Logtyp erstellen

Der Logtyp „CUSTOM_APPLICATION_ACCESS“ ist in Google SecOps nicht als vordefinierter Parser vorhanden. Sie müssen einen benutzerdefinierten Logtyp erstellen, bevor Sie Logs aufnehmen.

  1. Rufen Sie die SIEM-Einstellungen > Verfügbare Log-Typen auf.
  2. Klicken Sie auf Log-Typ anfordern.
  3. Geben Sie unter Benutzerdefinierten Logtyp selbst erstellen die folgenden Details ein:
    • Anbieter/Produkt: Geben Sie Custom Application Access Logs ein.
    • Logtyp: Geben Sie CUSTOM_APPLICATION_ACCESS ein.
  4. Klicken Sie auf Log-Typ erstellen.

  5. Warten Sie 10 Minuten, bis der neue Protokolltyp in allen Komponenten verfügbar ist, bevor Sie Feeds erstellen.

Aufnahmemethode auswählen

Wählen Sie die Aufnahmemethode aus, die am besten zu Ihrer Infrastruktur passt:

  • Google Cloud Storage (GCS): Verwenden Sie diese Option, wenn Ihre Anwendung Logs in GCS-Buckets schreibt oder Sie Logs in GCS exportieren können.
  • Amazon S3: Verwenden Sie diese Option, wenn Ihre Anwendung Protokolle in S3-Buckets schreibt oder Sie Protokolle in S3 exportieren können.
  • Azure Blob Storage: Verwenden Sie diese Option, wenn Ihre Anwendung Protokolle in Azure Storage schreibt oder Sie Protokolle nach Azure exportieren können.
  • Webhook: Verwenden Sie diese Option, wenn Ihre Anwendung HTTP-POST-Anfragen an einen externen Endpunkt senden kann.
  • Amazon Kinesis Data Firehose: Verwenden Sie diese Option, wenn Ihre Anwendung in CloudWatch Logs schreibt oder Sie Echtzeit-Streaming benötigen.

Option 1: Aus Google Cloud Storage aufnehmen

Google Cloud Storage-Bucket erstellen

  1. Gehen Sie zur Google Cloud Console.
  2. Wählen Sie Ihr Projekt aus oder erstellen Sie ein neues.
  3. Rufen Sie im Navigationsmenü Cloud Storage > Buckets auf.
  4. Klicken Sie auf Bucket erstellen.
  5. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Bucket benennen Geben Sie einen global eindeutigen Namen ein, z. B. custom-app-access-logs.
    Standorttyp Wählen Sie je nach Bedarf aus (Region, Dual-Region, Multi-Region).
    Standort Wählen Sie den Speicherort aus, z. B. us-central1.
    Speicherklasse Standard (empfohlen für Logs, auf die häufig zugegriffen wird)
    Zugriffskontrolle Einheitlich (empfohlen)
    Schutzmaßnahmen Optional: Objektversionsverwaltung oder Aufbewahrungsrichtlinie aktivieren
  6. Klicken Sie auf Erstellen.

Anwendung für das Schreiben von Logs in GCS konfigurieren

Konfigurieren Sie Ihre benutzerdefinierte Anwendung so, dass Zugriffslogs in den von Ihnen erstellten GCS-Bucket geschrieben werden. Die Protokolle sollten in einem der folgenden Formate geschrieben werden:

  • JSON-Format (empfohlen):

    {"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success", "source_ip": "203.0.113.45", "application": "custom-app", "resource": "/api/users"}
    
  • CSV-Format:

    timestamp,user,action,result,source_ip,application,resource
    2025-01-15T10:30:00Z,john.doe@example.com,login,success,203.0.113.45,custom-app,/api/users
    
  • Durch Zeilenumbruch getrenntes JSON (NDJSON):

    {"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success"}
    {"timestamp": "2025-01-15T10:30:05Z", "user": "jane.smith@example.com", "action": "access", "result": "denied"}
    

Google SecOps-Dienstkonto abrufen

Google SecOps verwendet ein eindeutiges Dienstkonto, um Daten aus Ihrem GCS-Bucket zu lesen. Sie müssen diesem Dienstkonto Zugriff auf Ihren Bucket gewähren.

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Custom Application Access Logs - GCS.
  5. Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
  6. Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
  7. Klicken Sie auf Dienstkonto abrufen.
  8. Es wird eine eindeutige E-Mail-Adresse für das Dienstkonto angezeigt, z. B.:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. Kopieren Sie diese E-Mail-Adresse für den nächsten Schritt.

Dem Google SecOps-Dienstkonto IAM-Berechtigungen gewähren

Das Google SecOps-Dienstkonto benötigt die Rolle Storage-Objekt-Betrachter für Ihren GCS-Bucket.

  1. Rufen Sie Cloud Storage > Buckets auf.
  2. Klicken Sie auf den Namen Ihres Buckets.
  3. Wechseln Sie zum Tab Berechtigungen.
  4. Klicken Sie auf Zugriff erlauben.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Hauptkonten hinzufügen: Fügen Sie die E‑Mail-Adresse des Google SecOps-Dienstkontos ein.
    • Rollen zuweisen: Wählen Sie Storage-Objekt-Betrachter aus.
  6. Klicken Sie auf Speichern.

Feed in Google SecOps konfigurieren

  1. Kehren Sie zur Seite zum Erstellen von Feeds zurück oder rufen Sie die SIEM-Einstellungen > Feeds > Neuen Feed hinzufügen auf.
  2. Klicken Sie auf Weiter.
  3. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Storage-Bucket-URL: Geben Sie den GCS-Bucket-URI mit dem Präfixpfad ein:

      gs://custom-app-access-logs/
      
    • Option zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus:

      • Nie: Es werden niemals Dateien nach Übertragungen gelöscht (empfohlen für Tests).
      • Übertragene Dateien löschen: Löscht Dateien nach der erfolgreichen Übertragung.
      • Übertragene Dateien und leere Verzeichnisse löschen: Dateien und leere Verzeichnisse werden nach der erfolgreichen Übertragung gelöscht.
    • Höchstalter von Dateien: Dateien einschließen, die in den letzten Tagen geändert wurden (Standardwert: 180 Tage).

    • Asset-Namespace: Der Asset-Namespace.

    • Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll (z. B. custom_app_access).

  4. Klicken Sie auf Weiter.

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

Option 2: Daten aus Amazon S3 aufnehmen

Amazon S3-Bucket erstellen

  1. Öffnen Sie die Amazon S3-Konsole.
  2. Klicken Sie auf Bucket erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Bucket-Name: Geben Sie einen aussagekräftigen Namen für den Bucket ein, z. B. custom-app-access-logs.
    • Region: Wählen Sie die Region aus, in der Ihre Anwendung ausgeführt wird, z. B. us-east-1.
  4. Klicken Sie auf Erstellen.

IAM-Nutzer mit S3-Zugriff erstellen

  1. Öffnen Sie die IAM-Konsole.
  2. Klicken Sie auf Nutzer > Nutzer hinzufügen.
  3. Geben Sie einen Nutzernamen ein, z. B. chronicle-s3-reader.
  4. Wählen Sie Programmatic access (Programmatischer Zugriff) aus.
  5. Klicken Sie auf Next: Permissions.
  6. Wählen Sie Vorhandene Richtlinien direkt anhängen aus.
  7. Suchen Sie nach der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
  8. Klicken Sie auf Weiter: Tags.
  9. Klicken Sie auf Weiter: Überprüfen.
  10. Klicken Sie auf Nutzer erstellen.
  11. Klicken Sie auf CSV-Datei herunterladen, um den Access Key (Zugriffsschlüssel) und den Secret Access Key (geheimer Zugriffsschlüssel) für die zukünftige Verwendung zu speichern.
  12. Klicken Sie auf Schließen.

Anwendung so konfigurieren, dass Logs in S3 geschrieben werden

Konfigurieren Sie Ihre benutzerdefinierte Anwendung so, dass Zugriffslogs in den von Ihnen erstellten S3-Bucket geschrieben werden. Verwenden Sie dieselben Logformate wie im GCS-Abschnitt beschrieben (JSON, CSV oder NDJSON).

Feed in Google SecOps konfigurieren, um Logs aus S3 aufzunehmen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Custom Application Access Logs - S3.
  5. Wählen Sie Amazon S3 V2 als Quelltyp aus.
  6. Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
  7. Klicken Sie auf Weiter und dann auf Senden.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:

    • S3-URI: Geben Sie den Bucket-URI im folgenden Format ein:

      s3://custom-app-access-logs/
      
    • Option zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus.

    • Höchstalter von Dateien: Dateien einschließen, die in den letzten Tagen geändert wurden (Standardwert: 180 Tage).

    • Zugriffsschlüssel-ID: Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket.

    • Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Zugriff auf den S3-Bucket.

    • Asset-Namespace: Der Asset-Namespace.

    • Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll (z. B. custom_app_access).

  9. Klicken Sie auf Weiter und dann auf Senden.

Option 3: Daten aus Azure Blob Storage aufnehmen

Azure Storage-Konto erstellen

  1. Suchen Sie im Azure-Portal nach Speicherkonten.
  2. Klicken Sie auf + Erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Abo Azure-Abo auswählen
    Ressourcengruppe Vorhandene auswählen oder neue erstellen
    Name des Speicherkontos Geben Sie einen eindeutigen Namen ein, z. B. customappaccesslogs.
    Region Wählen Sie die Region aus (z. B. East US).
    Leistung Standard (empfohlen)
    Redundanz LRS (Lokal redundanter Speicher)
  4. Klicken Sie auf Überprüfen + Erstellen.

  5. Sehen Sie sich die Übersicht des Kontos an und klicken Sie auf Erstellen.

  6. Warten Sie, bis die Bereitstellung abgeschlossen ist.

Anmeldedaten für das Speicherkonto abrufen

  1. Rufen Sie das soeben erstellte Storage-Konto auf.
  2. Wählen Sie im linken Navigationsbereich unter Sicherheit + Netzwerk die Option Zugriffsschlüssel aus.
  3. Klicken Sie auf Schlüssel anzeigen.
  4. Kopieren und speichern Sie die folgenden Informationen für die spätere Verwendung:
    • Name des Speicherkontos: customappaccesslogs
    • Schlüssel 1 oder Schlüssel 2: Der gemeinsame Zugriffsschlüssel

Blob-Container erstellen

  1. Wählen Sie im selben Speicherkonto in der linken Navigationsleiste Container aus.
  2. Klicken Sie auf + Container.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie access-logs ein.
    • Öffentliche Zugriffsebene: Wählen Sie Privat (kein anonymer Zugriff) aus.
  4. Klicken Sie auf Erstellen.

Anwendung für das Schreiben von Logs in Azure Blob Storage konfigurieren

Konfigurieren Sie Ihre benutzerdefinierte Anwendung so, dass Zugriffslogs in den von Ihnen erstellten Azure Blob Storage-Container geschrieben werden. Verwenden Sie dieselben Logformate wie im GCS-Abschnitt beschrieben (JSON, CSV oder NDJSON).

Feed in Google SecOps konfigurieren, um Logs aus Azure aufzunehmen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Custom Application Access Logs - Azure.
  5. Wählen Sie Microsoft Azure Blob Storage V2 als Quelltyp aus.
  6. Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Azure-URI: Geben Sie die Blob Service-Endpunkt-URL mit dem Containerpfad ein:

      https://customappaccesslogs.blob.core.windows.net/access-logs/
      
    • Option zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus.

    • Höchstalter für Dateien: Dateien einschließen, die in den letzten Tagen geändert wurden (Standard: 180 Tage)

    • Freigegebener Schlüssel: Geben Sie den Wert des freigegebenen Schlüssels (Zugriffsschlüssel) ein, den Sie aus dem Speicherkonto abgerufen haben.

    • Asset-Namespace: Der Asset-Namespace

    • Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll (z. B. custom_app_access)

  9. Klicken Sie auf Weiter.

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

Option 4: Daten mithilfe eines Webhooks aufnehmen

Webhook-Feed in Google SecOps erstellen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Custom Application Access Logs - Webhook.
  5. Wählen Sie Webhook als Quelltyp aus.
  6. Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:
    • Trennzeichen für Aufteilung: Geben Sie \n ein, um durch Zeilenumbruch getrennte Ereignisse aufzuteilen (wenn mehrere Ereignisse pro Anfrage gesendet werden).
    • Asset-Namespace: Der Asset-Namespace.
    • Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll (z. B. custom_app_access).
  9. Klicken Sie auf Weiter.
  10. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Secret-Schlüssel generieren und speichern

  1. Klicken Sie auf der Seite mit den Feeddetails auf Secret Key generieren.
  2. In einem Dialogfeld wird der geheime Schlüssel angezeigt.
  3. Kopieren Sie den geheimen Schlüssel und speichern Sie ihn sicher.

Feed-Endpunkt-URL abrufen

  1. Rufen Sie den Tab Details des Feeds auf.
  2. Kopieren Sie im Abschnitt Endpunktinformationen die Feed-Endpunkt-URL.
  3. Das URL-Format lautet:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    
  4. Speichern Sie diese URL für die nächsten Schritte.

  5. Klicken Sie auf Fertig.

Google Cloud API-Schlüssel erstellen

Für Google SecOps ist ein API-Schlüssel für die Authentifizierung erforderlich. Erstellen Sie in der Google Cloud Console einen eingeschränkten API-Schlüssel.

  1. Rufen Sie die Seite „Anmeldedaten“ in der Google Cloud Console auf.
  2. Wählen Sie Ihr Projekt aus (das Projekt, das mit Ihrer Chronicle-Instanz verknüpft ist).
  3. Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
  4. Ein API-Schlüssel wird erstellt und in einem Dialogfeld angezeigt.
  5. Klicken Sie auf API-Schlüssel bearbeiten, um den Schlüssel einzuschränken.
  6. Auf der Seite mit den API-Schlüssel-Einstellungen:
    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. Chronicle Webhook API Key.
  7. Gehen Sie unter API-Einschränkungen so vor:
    1. Wählen Sie Schlüssel einschränken aus.
    2. Suchen Sie im Drop-down-Menü APIs auswählen nach Google SecOps API (oder Chronicle API) und wählen Sie die Option aus.
  8. Klicken Sie auf Speichern.
  9. Kopieren Sie den API-Schlüsselwert aus dem Feld API-Schlüssel oben auf der Seite.
  10. Speichern Sie den API-Schlüssel sicher.

Anwendung für das Senden von Logs über Webhook konfigurieren

Konfigurieren Sie Ihre benutzerdefinierte Anwendung so, dass HTTP-POST-Anfragen an den Chronicle-Webhook-Endpunkt gesendet werden.

  • Webhook-URL erstellen:

    1. Hängen Sie den API-Schlüssel an die URL des Feedendpunkts an:

      https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=<API_KEY>
      
    2. Ersetzen Sie <API_KEY> durch den API-Schlüssel, den Sie erstellt haben.

  • Format der HTTP-POST-Anfrage:

    POST https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    x-chronicle-auth: <SECRET_KEY>
    
    {"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success", "source_ip": "203.0.113.45"}
    
  • Für mehrere Ereignisse (durch Zeilenumbruch getrennt):

    POST https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    x-chronicle-auth: <SECRET_KEY>
    
    {"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success"}
    {"timestamp": "2025-01-15T10:30:05Z", "user": "jane.smith@example.com", "action": "access", "result": "denied"}
    
  • Beispiel mit „curl“:

    curl -X POST \
      "https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -H "x-chronicle-auth: YOUR_SECRET_KEY" \
      -d '{"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success", "source_ip": "203.0.113.45"}'
    

Option 5: Daten mit Amazon Kinesis Data Firehose aufnehmen

Feed in Google SecOps erstellen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Custom Application Access Logs - Firehose.
  5. Wählen Sie Amazon Data Firehose als Quelltyp aus.
  6. Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:
    • Trennzeichen für Aufteilung: Geben Sie \n ein, um durch Zeilenumbruch getrennte Logs aufzuteilen.
    • Asset-Namespace: Der Asset-Namespace.
    • Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll (z. B. custom_app_access).
  9. Klicken Sie auf Weiter.
  10. Prüfen Sie die Feedkonfiguration und klicken Sie auf Senden.
  11. Klicken Sie auf Geheimen Schlüssel generieren, um einen geheimen Schlüssel zur Authentifizierung dieses Feeds zu generieren.
  12. Kopieren Sie den geheimen Schlüssel und speichern Sie ihn, da Sie ihn nicht noch einmal aufrufen können.
  13. Wechseln Sie zum Tab Details.
  14. Kopieren Sie die Feed-Endpunkt-URL aus dem Feld Endpoint Information (Endpunktinformationen).
  15. Klicken Sie auf Fertig.

API-Schlüssel für den Amazon Data Firehose-Feed erstellen

  1. Rufen Sie in der Google Cloud Console die Seite Anmeldedaten unter https://console.cloud.google.com/apis/credentials auf.
  2. Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.
  3. Klicken Sie auf API-Schlüssel bearbeiten, um den Schlüssel einzuschränken.
  4. Wählen Sie unter API-Einschränkungen die Option Schlüssel einschränken aus.
  5. Suchen Sie nach Google SecOps API und wählen Sie die Option aus.
  6. Klicken Sie auf Speichern.
  7. Kopieren und speichern Sie den API-Schlüssel.

Endpunkt-URL erstellen

  1. Hängen Sie den API-Schlüssel an die URL des Feed-Endpunkts an. Verwenden Sie dazu das folgende Format:

    <FEED_ENDPOINT_URL>?key=<API_KEY>
    
  2. Ersetzen Sie Folgendes:

    • <FEED_ENDPOINT_URL>: Die Feed-Endpunkt-URL aus einem vorherigen Schritt
    • <API_KEY>: Der API-Schlüssel aus einem vorherigen Schritt

    Beispiel:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...
    
  3. Speichern Sie diese vollständige URL für den nächsten Schritt.

IAM-Richtlinie für Firehose erstellen

  1. Rufen Sie in der AWS Console den Tab IAM > Policies > Create policy > JSON auf.
  2. Fügen Sie den folgenden JSON-Code für die Richtlinie ein:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "firehose:PutRecord",
                    "firehose:PutRecordBatch"
                ],
                "Resource": "arn:aws:firehose:us-east-1:123456789012:deliverystream/CustomAppAccessToChronicle"
            }
        ]
    }
    
  3. Ersetzen Sie Folgendes:

    • us-east-1: Ihre AWS-Region
    • 123456789012: Ihre AWS-Konto-ID (12-stellige Nummer)
    • CustomAppAccessToChronicle: Der Name Ihres Firehose-Übertragungsstreams (diesen erstellen Sie im nächsten Schritt)
  4. Nennen Sie die Richtlinie CustomAppAccessFirehoseWritePolicy.

  5. Klicken Sie auf Richtlinie erstellen.

IAM-Rolle für CloudWatch Logs erstellen

  1. Klicken Sie auf IAM > Rollen > Rolle erstellen.
  2. Wählen Sie Benutzerdefinierte Vertrauensrichtlinie aus und fügen Sie Folgendes ein:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "logs.us-east-1.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    
  3. Ersetzen Sie us-east-1 durch Ihre AWS-Region.

  4. Klicken Sie auf Weiter.

  5. Suchen Sie nach der Richtlinie CustomAppAccessFirehoseWritePolicy, die Sie im vorherigen Schritt erstellt haben, und wählen Sie sie aus.

  6. Klicken Sie auf Weiter.

  7. Geben Sie der Rolle den Namen CloudWatchLogsToFirehoseRole.

  8. Klicken Sie auf Rolle erstellen.

Kinesis Data Firehose-Bereitstellungsstream erstellen

  1. Rufen Sie in der AWS Console Kinesis > Data Firehose > Create delivery stream auf.
  2. Geben Sie die folgenden Konfigurationsdetails an:

    • Quelle und Ziel:

      • Quelle: Wählen Sie Direkter PUT oder andere Quellen aus.
      • Ziel: Wählen Sie HTTP-Endpunkt aus.
    • Name des Bereitstellungsstreams:

      • Name des Bereitstellungsstreams: Geben Sie CustomAppAccessToChronicle ein.
    • HTTP-Endpunktziel:

      • HTTP-Endpunkt-URL: Geben Sie die vollständige Endpunkt-URL ein, die Sie zuvor erstellt haben (Feed-Endpunkt + API-Schlüssel).
      • Contentcodierung: Wählen Sie GZIP aus (empfohlen, um Bandbreite zu sparen).
    • Benutzerdefinierte HTTP-Header:

      • Klicken Sie auf Benutzerdefinierten HTTP-Header hinzufügen.
      • Headername: Geben Sie X-Goog-Chronicle-Auth ein.
      • Header value: Geben Sie den geheimen Schlüssel ein, den Sie in einem vorherigen Schritt gespeichert haben.
    • Sicherungseinstellungen:

      • Sicherung von Quelldatensätzen in Amazon S3: Wählen Sie Nur fehlgeschlagene Daten aus (empfohlen).
      • S3-Bucket: Wählen Sie einen vorhandenen Bucket aus oder erstellen Sie einen neuen für fehlgeschlagene Datensätze.
    • Pufferhinweise:

      • Puffergröße: Geben Sie 1 MiB ein (Mindestwert für HTTP-Endpunkte).
      • Pufferintervall: Geben Sie 60 Sekunden ein.
    • Wiederholungszeitraum:

      • Wiederholungsdauer: Geben Sie 300 Sekunden (5 Minuten) ein.
  3. Klicken Sie auf Lieferstream erstellen.

  4. Warten Sie, bis sich der Status des Bereitstellungsstreams in Aktiv ändert (1–2 Minuten).

Anwendung für das Schreiben in CloudWatch Logs konfigurieren

Konfigurieren Sie Ihre benutzerdefinierte Anwendung so, dass Zugriffslogs in eine CloudWatch-Loggruppe geschrieben werden. Erstellen Sie dann einen Abo-Filter, um Logs an Firehose zu streamen.

  1. Rufen Sie in der AWS Console CloudWatch > Logs > Log groups auf.
  2. Erstellen Sie eine neue Loggruppe oder wählen Sie eine vorhandene aus, in die Ihre Anwendung Logs schreibt.
  3. Klicken Sie auf den Tab Abo-Filter.
  4. Klicken Sie auf Erstellen > Amazon Kinesis Data Firehose-Abo-Filter erstellen.
  5. Geben Sie die folgenden Konfigurationsdetails an:

    • Ziel: Wählen Sie den Auslieferungsstream CustomAppAccessToChronicle aus.
    • Berechtigung erteilen: Wählen Sie die Rolle CloudWatchLogsToFirehoseRole aus.
    • Name des Abo-Filters: Geben Sie CustomAppAccessToChronicle ein.
    • Log format (Logformat): Wählen Sie Other (Sonstige) aus. Das Parsing wird von Google SecOps übernommen.
    • Abo-Filtermuster: Lassen Sie das Feld leer, um alle Ereignisse zu senden.
  6. Klicken Sie auf Streaming starten.

  7. Logs werden über Firehose in Echtzeit an Google SecOps gestreamt.

Benutzerdefinierten Parser erstellen

Nachdem Sie Logs aufgenommen haben, müssen Sie einen benutzerdefinierten Parser erstellen, um die Daten in das UDM-Format zu normalisieren.

  1. Rufen Sie die SIEM-Einstellungen > Parser auf.
  2. Klicken Sie auf Parser erstellen.
  3. Wählen Sie CUSTOM_APPLICATION_ACCESS_CUSTOM als Logtyp aus.
  4. Verwenden Sie den Parser-Editor, um Grok-Muster oder Parser-Erweiterungen zu erstellen, mit denen Ihre Logfelder UDM-Feldern zugeordnet werden.

    Beispiel für die Parserzuordnung:

    Benutzerdefiniertes Logfeld UDM-Feld
    timestamp metadata.event_timestamp
    user principal.user.email_addresses
    action security_result.action
    result security_result.summary
    source_ip principal.ip
    application target.application
    resource target.resource.name
  5. Parser mit Beispiellogs testen

  6. Klicken Sie auf Speichern, um den Parser zu aktivieren.

Eine ausführliche Anleitung zum Erstellen von Parsern finden Sie unter Self-Service-Parseroptionen.

Aufnahme überprüfen

Prüfen Sie nach der Konfiguration des Feeds und des Parsers, ob Logs aufgenommen werden:

  1. Klicken Sie auf Suchen > UDM-Suche.
  2. Führen Sie die folgende Abfrage aus:

    metadata.log_type = "CUSTOM_APPLICATION_ACCESS_CUSTOM"
    
  3. Prüfen Sie, ob Ereignisse in den Suchergebnissen angezeigt werden.

  4. Prüfen Sie, ob die UDM-Felder basierend auf Ihrer Parserkonfiguration korrekt ausgefüllt sind.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
zusätzlich Zusammengeführt mit Labels, die aus service, env, msg.attachment.fileName, msg.attachment.digest, msg.attachment.key, msg.attachment.authorizeId, msg.attachment.contentType, dest.type, type, msg.sortID, msg.refID, state.reported.applications_installed, state.reported.applications_status, state.reported.ota_queue, state.reported.VICMB_Deg_Battery_LimpHome, state.reported.VICMB_Inhibit_Propulsion, state.reported.VICMB_FA_LostComm_BPCM, state.reported.VICMB_FA_LostComm_SFAM1, state.reported.VICMB_Inhibit_HV, state.reported.VICMB_FA_LostComm_RIDM, state.reported.VICMB_FA_LostComm_RWAM1, state.reported.uname, meta.reported.battery_charging_rate_kw.timestamp, state.reported.battery_charging_rate_kw, meta.reported.cell.connected.timestamp, meta.reported.cell.packet_loss.timestamp, meta.reported.cell.average_ping_ms.timestamp, meta.reported.cell.bitrate.timestamp, meta.reported.cell.download_speed_bytes_per_sec.timestamp, meta.reported.cell.signal_strength.timestamp, meta.reported.cell.signal.timestamp, state.reported.cell.connected, state.reported.cell.packet_loss, state.reported.cell.average_ping_ms, state.reported.cell.bitrate, state.reported.cell.download_speed_bytes_per_sec, state.reported.cell.signal_strength, state.reported.cell.signal erstellt wurden
request_time metadata.collected_timestamp Aus „request_time“ im ISO8601-Format geparst
msg_1, msg.body metadata.description Wert aus msg_1, falls nicht leer, andernfalls msg.body
user_id, src_email, otadata.1687965118.initiator metadata.event_type Auf „USER_UNCATEGORIZED“ festgelegt, wenn user_id, src_email oder otadata.1687965118.initiator vorhanden sind, andernfalls „GENERIC_EVENT“
otadata.1687965118.deployment_id metadata.product_deployment_id Wert direkt kopiert
Version metadata.product_version Wert direkt kopiert
response.status network.http.response_code In Ganzzahl konvertiert
request_id principal.resource.product_object_id Wert direkt kopiert
msg.attachment.url, otadata.1687965118.download_url principal.url Wert aus msg.attachment.url, falls nicht leer, andernfalls otadata.1687965118.download_url
src_email, otadata.1687965118.initiator principal.user.email_addresses Wert aus „src_email“, wenn er mit dem regulären Ausdruck für E-Mail-Adressen übereinstimmt, andernfalls aus „otadata.1687965118.initiator“
user_id principal.user.userid Wert direkt kopiert
level security_result.severity Auf „INFORMATIONAL“ festlegen, wenn die Stufe „INFO“ ist
metadata.product_name Auf „Benutzerdefinierter Anwendungszugriff“ festgelegt
metadata.vendor_name Auf „Benutzerdefinierter Anwendungszugriff“ festgelegt

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