Oracle Cloud Infrastructure-Oracle Cloud Guard-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Oracle Cloud Infrastructure Cloud Guard so konfigurieren, dass Logs über Webhooks an Google Security Operations gesendet werden.

Oracle Cloud Guard ist ein cloudnativer Sicherheitsdienst, der den Sicherheitsstatus in der Oracle Cloud Infrastructure (OCI) überwacht, identifiziert und aufrechterhält. Cloud Guard untersucht OCI-Ressourcen auf sicherheitsrelevante Konfigurationsschwächen und erkennt anomale Aktivitäten. Wenn Cloud Guard eine Abweichung von einer Detektorregel erkennt, wird ein Problemereignis erstellt, das ein umfassendes Sicherheitsmonitoring in Ihrem OCI-Mandanten ermöglicht. Bei dieser Integration werden der OCI Events Service und OCI Functions verwendet, um Cloud Guard-Problemereignisse in nahezu Echtzeit an Google SecOps weiterzuleiten.

Hinweis

Folgende Voraussetzungen müssen erfüllt sein:

  • Eine Google SecOps-Instanz
  • Ein aktives Oracle Cloud Infrastructure-Mandant mit aktivierter Cloud Guard-Funktion
  • Administratorzugriff auf die Oracle Cloud Infrastructure Console
  • Berechtigungen zum Erstellen und Verwalten von OCI Functions-Anwendungen
  • Berechtigungen zum Erstellen von OCI Events-Regeln und Notifications-Themen
  • Zugriff auf OCI Cloud Shell oder eine lokale Umgebung mit installierter Fn Project CLI
  • Docker ist installiert (zum lokalen Erstellen von OCI-Funktionen).
  • Zugriff auf die Google Cloud Console (zum Erstellen von API-Schlüsseln)

Webhook-Feed in Google SecOps erstellen

Feed erstellen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. OCI Cloud Guard Problems.
  5. Wählen Sie Webhook als Quelltyp aus.
  6. Wählen Sie Oracle Cloud Infrastructure – Oracle Cloud Guard als Log type (Protokolltyp) aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:
    • Trennzeichen für Aufteilung (optional): Lassen Sie das Feld leer. Bei jedem Funktionsaufruf wird ein einzelnes Ereignis gesendet.
    • Asset-Namespace: Der Asset-Namespace
    • Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll
  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

Nachdem Sie den Feed erstellt haben, müssen Sie einen Secret-Schlüssel für die Authentifizierung generieren:

  1. Klicken Sie auf der Feed-Detailseite auf Geheimen Schlüssel generieren.
  2. Ein Dialogfeld mit dem geheimen Schlüssel wird angezeigt.
  3. Kopieren und speichern Sie den geheimen Schlüssel sicher.

Wichtig: Der geheime Schlüssel wird nur einmal angezeigt und kann später nicht mehr abgerufen werden. Wenn Sie ihn verlieren, müssen Sie einen neuen geheimen Schlüssel generieren.

Feed-Endpunkt-URL abrufen

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

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    

    oder

    https://<REGION>-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 die Authentifizierung in Chronicle ist ein API-Schlüssel erforderlich. Erstellen Sie in der Google Cloud Console einen eingeschränkten API-Schlüssel.

API-Schlüssel erstellen

  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.

API-Schlüssel einschränken

  1. Auf der Seite mit den API-Schlüssel-Einstellungen:
    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. Chronicle Webhook API Key.
  2. 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 API aus.
  3. Klicken Sie auf Speichern.
  4. Kopieren Sie den API-Schlüsselwert aus dem Feld API-Schlüssel oben auf der Seite.
  5. Speichern Sie den API-Schlüssel sicher.

Cloud Guard Cloud Event-Antworttool aktivieren

Cloud Guard verwendet den Cloud Event-Responder, um Problemdetails an den OCI Events Service zu senden. Der Cloud-Event-Responder ist Teil des Responder-Rezepts und muss aktiviert und auf automatische Ausführung eingestellt sein.

Cloud-Ereignisregel im Responder-Rezept aktivieren

  1. Melden Sie sich in der Oracle Cloud Infrastructure Console an.
  2. Öffnen Sie das Navigationsmenü und wählen Sie Identität & Sicherheit > Cloud Guard > Rezepte aus.
  3. Wählen Sie Responder Recipes aus.
  4. Klicken Sie auf das Antwortrezept, das an Ihr Ziel angehängt ist.
  5. Suchen Sie im Bereich Responder-Regeln nach der Regel Cloud-Ereignisse.
  6. Wenn der Status Deaktiviert lautet:
    1. Öffnen Sie das Menü Aktionen (Dreipunkt-Menü) und wählen Sie Bearbeiten aus.
    2. Ändern Sie den Status in Aktiviert.
    3. Klicken Sie auf Speichern.

Automatische Ausführung auf dem Ziel konfigurieren

  1. Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Identity & Security > Cloud Guard > Configuration > Targets aus.
  2. Wählen Sie den Zielbereich aus.
  3. Wählen Sie unter Ressourcen die Option Responder-Rezepte aus.
  4. Klicken Sie auf den Link zum Rezept für die Antwort.
  5. Suchen Sie nach der Responder-Regel Cloud Event.
  6. Öffnen Sie das Menü Aktionen (Dreipunkt-Menü) und wählen Sie Bearbeiten aus.
  7. Stellen Sie Regeltrigger auf Automatisch ausführen ein.
  8. Klicken Sie das Kästchen AUTOMATISCHE AUSFÜHRUNG BESTÄTIGEN an.
  9. Klicken Sie auf Speichern.

OCI Functions-Anwendung erstellen

Erstellen Sie eine OCI Functions-Anwendung, in der die Funktion gehostet wird, die für das Weiterleiten von Cloud Guard-Ereignissen an Google SecOps zuständig ist.

Anwendung erstellen

  1. Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Developer Services > Functions > Applications aus.
  2. Wählen Sie das Compartment aus, in dem Sie die Anwendung erstellen möchten.
  3. Klicken Sie auf Anwendung erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie cloudguard-chronicle-forwarder ein.
    • VCN: Wählen Sie ein VCN mit Internetzugriff aus. Dies ist erforderlich, damit die Funktion den Chronicle-Webhook-Endpunkt erreichen kann.
    • Subnetze: Wählen Sie ein öffentliches Subnetz oder ein privates Subnetz mit einem konfigurierten NAT-Gateway aus.
  5. Klicken Sie auf Erstellen.

Funktion erstellen und bereitstellen

Verwenden Sie OCI Cloud Shell oder eine lokale Umgebung mit der Fn Project CLI, um die Funktion zu erstellen und bereitzustellen.

  1. Öffnen Sie OCI Cloud Shell über die Oracle Cloud Infrastructure Console (klicken Sie in der oberen Navigationsleiste auf das Cloud Shell-Symbol).
  2. Richten Sie den Fn-Kontext für Ihre OCI Functions-Anwendung ein:

    fn list context
    fn use context <your-region-context>
    fn update context oracle.compartment-id <compartment_OCID>
    fn update context registry <region-key>.ocir.io/<tenancy-namespace>/cloudguard-chronicle
    
  3. So initialisieren Sie eine neue Python-Funktion:

    fn init --runtime python cloudguard-to-chronicle
    cd cloudguard-to-chronicle
    
  4. Ersetzen Sie den Inhalt der Datei func.py durch den folgenden Code:

    import io
    import json
    import logging
    import requests
    
    from fdk import response
    
    def handler(ctx, data: io.BytesIO = None):
        """
        OCI Function that receives Cloud Guard events from OCI Events Service
        and forwards them to Google SecOps (Chronicle) webhook endpoint.
        """
        logger = logging.getLogger()
    
        try:
            cfg = ctx.Config()
            chronicle_endpoint = cfg.get("CHRONICLE_ENDPOINT")
            chronicle_api_key = cfg.get("CHRONICLE_API_KEY")
            chronicle_secret = cfg.get("CHRONICLE_SECRET")
    
            if not all([chronicle_endpoint, chronicle_api_key, chronicle_secret]):
                logger.error("Missing required configuration: CHRONICLE_ENDPOINT, CHRONICLE_API_KEY, or CHRONICLE_SECRET")
                return response.Response(
                    ctx, response_data=json.dumps({"error": "Missing configuration"}),
                    headers={"Content-Type": "application/json"}, status_code=500
                )
    
            event_data = json.loads(data.getvalue())
            logger.info(f"Received Cloud Guard event: {event_data.get('eventType', 'unknown')}")
    
            webhook_url = f"{chronicle_endpoint}?key={chronicle_api_key}&secret={chronicle_secret}"
    
            headers = {
                "Content-Type": "application/json"
            }
    
            resp = requests.post(
                webhook_url,
                json=event_data,
                headers=headers,
                timeout=30
            )
    
            if resp.status_code >= 200 and resp.status_code < 300:
                logger.info(f"Successfully forwarded event to Chronicle (HTTP {resp.status_code})")
            else:
                logger.error(f"Failed to forward event to Chronicle (HTTP {resp.status_code}): {resp.text}")
    
            return response.Response(
                ctx, response_data=json.dumps({"status": resp.status_code}),
                headers={"Content-Type": "application/json"}, status_code=200
            )
    
        except Exception as e:
            logger.error(f"Error processing Cloud Guard event: {str(e)}")
            return response.Response(
                ctx, response_data=json.dumps({"error": str(e)}),
                headers={"Content-Type": "application/json"}, status_code=500
            )
    
  5. Ersetzen Sie den Inhalt der Datei requirements.txt:

    fdk>=0.1.0
    requests>=2.25.0
    
  6. Stellen Sie die Funktion in der Anwendung bereit:

    fn -v deploy --app cloudguard-chronicle-forwarder
    
  7. Warten Sie, bis die Bereitstellung abgeschlossen ist.

Umgebungsvariablen für Funktionen konfigurieren

  1. Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Developer Services > Functions > Applications aus.
  2. Klicken Sie auf die Anwendung cloudguard-chronicle-forwarder.
  3. Wählen Sie unter Ressourcen die Option Funktionen aus.
  4. Klicken Sie auf die Funktion cloudguard-to-chronicle.
  5. Wählen Sie unter Ressourcen die Option Konfiguration aus.
  6. Klicken Sie auf Bearbeiten und fügen Sie die folgenden Schlüssel/Wert-Paare hinzu:

    Schlüssel Wert
    CHRONICLE_ENDPOINT Die Chronicle-Webhook-Endpunkt-URL (z. B. https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate)
    CHRONICLE_API_KEY Der Google Cloud-API-Schlüssel, der für den Chronicle-Webhook erstellt wurde
    CHRONICLE_SECRET Der geheime Schlüssel für Chronicle-Webhooks
  7. Klicken Sie auf Speichern.

IAM-Richtlinien für OCI Functions erstellen

Für den OCI Functions-Dienst und den Events-Dienst sind IAM-Richtlinien erforderlich, um die Funktion aufzurufen.

Dynamische Gruppe für die Funktion erstellen

  1. Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Identity & Security > Domains aus.
  2. Wählen Sie die Standarddomain aus.
  3. Wählen Sie unter Ressourcen der Identitätsdomain die Option Dynamische Gruppen aus.
  4. Klicken Sie auf Dynamische Gruppe erstellen.
  5. Geben Sie die folgenden Konfigurationsdetails an:

    • Name: Geben Sie cloudguard-chronicle-functions ein.
    • Beschreibung: Geben Sie Dynamic group for Cloud Guard to Chronicle forwarder function ein.
    • Abgleichsregeln: Geben Sie die folgende Regel ein:
    ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_OCID>'}
    
  6. Klicken Sie auf Erstellen.

IAM-Richtlinien erstellen

  1. Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Identity & Security > Policies aus.
  2. Achten Sie darauf, dass Sie sich im Root-Compartment befinden.
  3. Klicken Sie auf Richtlinie erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie cloudguard-chronicle-policy ein.
    • Beschreibung: Geben Sie Allows Events Service to invoke Cloud Guard Chronicle forwarder function ein.
    • Spezifikation: Achten Sie darauf, dass die Stammspezifikation ausgewählt ist.
  5. Aktivieren Sie im Bereich Policy Builder die Option Show manual editor (Manuellen Editor anzeigen).
  6. Geben Sie im Feld Erklärung die folgenden Richtlinienerklärungen ein:

    Allow dynamic-group cloudguard-chronicle-functions to use fn-function in compartment <compartment_name>
    Allow dynamic-group cloudguard-chronicle-functions to use fn-invocation in compartment <compartment_name>
    Allow service cloudguardevents to use fn-function in compartment <compartment_name>
    Allow service cloudguardevents to use fn-invocation in compartment <compartment_name>
    
  7. Klicken Sie auf Erstellen.

OCI-Ereignisregel für Cloud Guard erstellen

Erstellen Sie eine Ereignisregel, die die OCI-Funktion auslöst, wenn Cloud Guard ein Problem erkennt, verwirft oder behebt.

Ereignisregel erstellen

  1. Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Observability & Management > Events Service > Rules aus.

  2. Klicken Sie auf Regel erstellen.

  3. Geben Sie die folgenden Konfigurationsdetails an:

    • Anzeigename: Geben Sie cloudguard-to-chronicle ein.
    • Beschreibung: Geben Sie Forwards Cloud Guard problem events to Google SecOps via OCI Functions ein.
  4. Im Abschnitt Regelbedingungen:

    1. Legen Sie Bedingung auf Ereignistyp fest.
    2. Legen Sie Service Name auf Cloud Guard fest.
    3. Legen Sie Ereignistyp auf Folgendes fest (mehrere Optionen möglich):
      • Erkannt – Problem
      • Abgelehnt – Problem
      • Behoben – Problem
  5. Im Abschnitt Aktionen:

    1. Legen Sie Aktionstyp auf Funktionen fest.
    2. Legen Sie Function Compartment auf das Compartment fest, das die Funktionsanwendung enthält.
    3. Setzen Sie Function Application auf cloudguard-chronicle-forwarder.
    4. Setzen Sie Funktion auf cloudguard-to-chronicle.
  6. Klicken Sie auf Regel erstellen.

Optional: Nach Risikostufe filtern

Wenn Sie nur Probleme mit hoher Schwere weiterleiten möchten, fügen Sie der Ereignisregel einen Attributfilter hinzu:

  1. Klicken Sie im Abschnitt Regelbedingungen auf + Weitere Bedingung.
  2. Setzen Sie Bedingung auf Attribut.
  3. Legen Sie Attributname auf riskLevel fest.
  4. Legen Sie für Attributwerte die gewünschten Risikostufen fest:

    • CRITICAL
    • HIGH

Einbindung prüfen

Funktion manuell testen

  1. Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Developer Services > Functions > Applications aus.
  2. Klicken Sie auf die Anwendung cloudguard-chronicle-forwarder.
  3. Wählen Sie unter Ressourcen die Option Funktionen aus.
  4. Klicken Sie auf die Funktion cloudguard-to-chronicle.
  5. Klicken Sie auf Aufrufen, um die Funktion mit Beispieldaten zu testen, oder verwenden Sie OCI Cloud Shell:

    echo '{"eventType":"com.oraclecloud.cloudguard.problemdetected","cloudEventsVersion":"0.1","eventID":"test-event-001","data":{"compartmentId":"ocid1.compartment.oc1..example","resourceName":"test-problem","additionalDetails":{"riskLevel":"HIGH","problemDescription":"Test problem for integration verification","status":"OPEN","region":"us-ashburn-1"}}}' | fn invoke cloudguard-chronicle-forwarder cloudguard-to-chronicle
    
  6. Prüfen Sie die Funktionslogs, indem Sie zu Developer Services > Functions > Applications > cloudguard-chronicle-forwarder gehen und den Bereich Logs auswählen.

  7. Suchen Sie nach Logeinträgen, die eine erfolgreiche Weiterleitung bestätigen:

    Received Cloud Guard event: com.oraclecloud.cloudguard.problemdetected
    Successfully forwarded event to Chronicle (HTTP 200)
    

In Google SecOps bestätigen

  1. Melden Sie sich in Google SecOps an.
  2. Rufen Sie Suche auf und suchen Sie nach Ereignissen mit dem Protokolltyp OCI_CLOUDGUARD.
  3. Prüfen Sie, ob Cloud Guard-Problemereignisse in den Suchergebnissen angezeigt werden.

Wenn keine Ereignisse angezeigt werden:

  • Überprüfen Sie die Chronicle-Webhook-Endpunkt-URL, den API-Schlüssel und den geheimen Schlüssel in der Funktionskonfiguration.
  • Prüfen Sie, ob sich die Ereignisregel in der richtigen OCI-Region (Cloud Guard-Berichtsregion) befindet.
  • Prüfen, ob der Cloud-Ereignis-Responder aktiviert und auf automatische Ausführung eingestellt ist
  • Funktionslogs auf Fehlermeldungen prüfen

Cloud Guard-Ereignistypen – Referenz

Cloud Guard gibt die folgenden Ereignistypen über den OCI Events Service aus:

Ereignistyp Trigger
com.oraclecloud.cloudguard.problemdetected Ein neues Problem wird erkannt
com.oraclecloud.cloudguard.problemdismissed Ein Problem wird abgewiesen
com.oraclecloud.cloudguard.problemremediated Ein Problem wird behoben
com.oraclecloud.cloudguard.sightingdetected Eine neue Sichtung wird erkannt

Referenz zu Authentifizierungsmethoden

Chronicle-Webhook-Feeds unterstützen mehrere Authentifizierungsmethoden. Wählen Sie die Methode aus, die von Ihrem Anbieter unterstützt wird.

Wenn Ihr Anbieter benutzerdefinierte HTTP-Header unterstützt, sollten Sie diese Methode für eine bessere Sicherheit verwenden.

  • Anfrageformat:

    POST <ENDPOINT_URL> HTTP/1.1
    Content-Type: application/json
    x-goog-chronicle-auth: <API_KEY>
    x-chronicle-auth: <SECRET_KEY>
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

Vorteile:

  • API-Schlüssel und Secret nicht in der URL sichtbar
  • Sicherer (Header werden nicht in Webserver-Zugriffslogs protokolliert)
  • Bevorzugte Methode, wenn der Anbieter sie unterstützt

Methode 2: Abfrageparameter

Wenn Ihr Anbieter keine benutzerdefinierten Headern unterstützt, hängen Sie die Anmeldedaten an die URL an.

  • URL-Format:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
  • Beispiel:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...&secret=abcd1234...
    
  • Anfrageformat:

    POST <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY> HTTP/1.1
    Content-Type: application/json
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

Nachteile:

  • Anmeldedaten in der URL sichtbar
  • Möglicherweise in Webserver-Zugriffsprotokollen protokolliert
  • Weniger sicher als Header

Methode 3: Hybrid (URL + Header)

Bei einigen Konfigurationen wird der API-Schlüssel in der URL und der geheime Schlüssel im Header verwendet.

  • Anfrageformat:

    POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    x-chronicle-auth: <SECRET_KEY>
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

Namen von Authentifizierungsheadern

Chronicle akzeptiert die folgenden Headernamen für die Authentifizierung:

  • Für API-Schlüssel:

    • x-goog-chronicle-auth (empfohlen)
    • X-Goog-Chronicle-Auth (Groß-/Kleinschreibung wird nicht berücksichtigt)
  • Geheimer Schlüssel:

    • x-chronicle-auth (empfohlen)
    • X-Chronicle-Auth (Groß-/Kleinschreibung wird nicht berücksichtigt)

Webhook-Limits und Best Practices

Anfragelimits

Limit Wert
Maximale Anfragengröße 4 MB
Maximale Anzahl von Abfragen pro Sekunde 15.000
Zeitlimit für Anfragen 30 Sekunden
Wiederholungsverhalten Automatisch mit exponentiellem Backoff

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
contentType additional.fields Zusammengeführt aus verschiedenen zusätzlichen Feldern
cloudEventsVersion additional.fields
data.additionalDetails.reason additional.fields
data.additionalDetails.tenantId additional.fields
data.additionalDetails.problemType additional.fields
data.resourceName additional.fields
data.resourceId additional.fields
Status additional.fields
problem_recommendation additional.fields
compartment_id additional.fields
compartment_name additional.fields
product_event extensions.auth.type Auf „AUTHTYPE_UNSPECIFIED“ festlegen, wenn „product_event“ mit „login“ übereinstimmt
data.additionalDetails.problemDescription metadata.description Wert aus data.additionalDetails.problemDescription, falls nicht leer, andernfalls data.additionalDetails.description
data.additionalDetails.description metadata.description
has_user metadata.event_type Auf USER_RESOURCE_ACCESS gesetzt, wenn has_user und has_target_resource, USER_UNCATEGORIZED, wenn has_user, USER_LOGIN, wenn product_event mit der Anmeldung übereinstimmt, STATUS_UPDATE, wenn has_principal, andernfalls GENERIC_EVENT
has_target_resource metadata.event_type
product_event metadata.event_type
has_principal metadata.event_type
eventType metadata.product_event_type Wert aus „eventType“, falls nicht leer, andernfalls „product_event“
product_event metadata.product_event_type
eventID metadata.product_log_id Wert direkt kopiert
Version metadata.product_version Wert direkt kopiert
Beobachter observer.domain.name Mit Grok extrahierte Domain aus dem Beobachter
Beobachter observer.hostname Wert vom Beobachter, wenn nicht IP
Beobachter observer.ip Wert vom Beobachter, falls IP
Prinzipal principal.administrative_domain Mit „grok“ extrahierte Domain aus „principal“ oder „principal_host“
principal_host principal.administrative_domain
data.additionalDetails.problemAdditionalDetails.public_ips principal.asset.ip Wert aus data.additionalDetails.problemAdditionalDetails.public_ips, falls nicht leer, andernfalls vnicDetails.0.vnicPublicIp, falls nicht leer, andernfalls aus dem Prinzipal, falls IP, andernfalls principal_host, falls IP
vnicDetails.0.vnicPublicIp principal.asset.ip
Prinzipal principal.asset.ip
principal_host principal.asset.ip
Prinzipal principal.hostname Wert aus dem Prinzipal, wenn es sich nicht um eine IP-Adresse handelt, andernfalls principal_host, wenn es sich nicht um eine IP-Adresse handelt
principal_host principal.hostname
data.additionalDetails.problemAdditionalDetails.public_ips principal.ip Wert aus data.additionalDetails.problemAdditionalDetails.public_ips, falls nicht leer, andernfalls vnicDetails.0.vnicPublicIp, falls nicht leer, andernfalls aus dem Prinzipal, falls IP, andernfalls principal_host, falls IP
vnicDetails.0.vnicPublicIp principal.ip
Prinzipal principal.ip
principal_host principal.ip
data.additionalDetails.region principal.location.name Wert direkt kopiert
principal_port principal.port Von „principal_port“ in Ganzzahl umgewandelt
data.additionalDetails.resourceName principal.resource.name Wert aus data.additionalDetails.resourceName, falls nicht leer, andernfalls data.additionalDetails.principalResourceName
data.additionalDetails.principalResourceName principal.resource.name
data.additionalDetails.resourceId principal.resource.product_object_id Wert aus „data.additionalDetails.resourceId“, falls nicht leer, andernfalls „data.additionalDetails.principalResourceId“
data.additionalDetails.principalResourceId principal.resource.product_object_id
data.additionalDetails.resourceType principal.resource.resource_subtype Wert aus data.additionalDetails.resourceType, falls nicht leer, andernfalls data.additionalDetails.principalResourceType
data.additionalDetails.principalResourceType principal.resource.resource_subtype
data.additionalDetails.resourceName principal.user.userid Wert aus data.additionalDetails.resourceName, wenn data.additionalDetails.resourceType == „User“, andernfalls aus data.additionalDetails.principalResourceName, wenn data.additionalDetails.principalResourceType == „User“
data.additionalDetails.principalResourceName principal.user.userid
Aktion security_result.action Auf BLOCK gesetzt, wenn die Aktion mit dem Block übereinstimmt, auf ALLOW, wenn sie erfolgreich ist, auf FAIL, wenn sie fehlschlägt, andernfalls auf UNKNOWN.
Aktion security_result.action_details Wert direkt kopiert
data.additionalDetails.tacticName security_result.attack_details.tactics Wert direkt in „tactic_data.name“ kopiert und dann zusammengeführt
data.additionalDetails.techniqueName security_result.attack_details.techniques Wert direkt in „technique_data.name“ kopiert und dann zusammengeführt
data.additionalDetails.confidence security_result.confidence_score Wert direkt kopiert
sightingType security_result.detection_fields Zusammengeführt aus den Labels „sightingType“, „sightingScore“ und „riskScore“
sightingScore security_result.detection_fields
riskScore security_result.detection_fields
data.additionalDetails.detectorRuleId security_result.rule_id Wert direkt kopiert
data.additionalDetails.detectorRuleType security_result.rule_name Wert direkt kopiert
die Ausprägung security_result.severity Auf INFORMATIONAL setzen, wenn der Schweregrad INFO ist, auf LOW, wenn er LOW ist, auf MEDIUM, wenn er WARN ist, auf HIGH, wenn er HIGH ist, und auf CRITICAL, wenn er CRITICAL ist.
die Ausprägung security_result.severity_details Wert direkt kopiert
Ziel target.administrative_domain Mit „grok“ extrahierte Domain aus „target“ oder „target_host“
target_host target.administrative_domain
Ziel target.hostname Wert aus dem Ziel, wenn es sich nicht um eine IP-Adresse handelt, andernfalls target_host, wenn es sich nicht um eine IP-Adresse handelt
target_host target.hostname
Ziel target.ip Wert aus dem Ziel, wenn IP, andernfalls target_host, wenn IP
target_host target.ip
target_port target.port Von „target_port“ in Ganzzahl umgewandelt
targetId target.resource.attribute.labels Aus verschiedenen Label-Feldern zusammengeführt
Labels target.resource.attribute.labels
vnicAttachmentId target.resource.attribute.labels
vnicAttachmentDisplayName target.resource.attribute.labels
subnets target.resource.attribute.labels
instance_ocid target.resource.attribute.labels
route_table_ocids target.resource.attribute.labels
security_list_ocids target.resource.attribute.labels
data.additionalDetails.impactedResourceName target.resource.name Wert aus data.additionalDetails.impactedResourceName, falls nicht leer, andernfalls vnicDetails.0.vnicDisplayName
vnicDetails.0.vnicDisplayName target.resource.name
data.additionalDetails.impactedResourceId target.resource.product_object_id Wert aus „data.additionalDetails.impactedResourceId“, falls nicht leer, andernfalls „vnicDetails.0.vnicId“
vnicDetails.0.vnicId target.resource.product_object_id
data.additionalDetails.impactedResourceType target.resource.resource_subtype Wert direkt kopiert
target_url target.url Wert direkt kopiert
target_user target.user.userid Wert direkt kopiert
Produkt metadata.product_name Wert direkt kopiert
vendor metadata.vendor_name Wert direkt kopiert
data.additionalDetails.tacticName security_result.attack_details.tactics.name Aus dem Änderungsprotokoll zugeordnet
data.additionalDetails.techniqueName security_result.attack_details.techniques.name Aus dem Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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