Oracle Cloud Infrastructure-Oracle Cloud Guard-Logs erfassen
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
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
OCI Cloud Guard Problems. - Wählen Sie Webhook als Quelltyp aus.
- Wählen Sie Oracle Cloud Infrastructure – Oracle Cloud Guard als Log type (Protokolltyp) aus.
- Klicken Sie auf Weiter.
- 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
- Klicken Sie auf Weiter.
- 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:
- Klicken Sie auf der Feed-Detailseite auf Geheimen Schlüssel generieren.
- Ein Dialogfeld mit dem geheimen Schlüssel wird angezeigt.
- 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
- Rufen Sie den Tab Details des Feeds auf.
- Kopieren Sie im Bereich Endpunktinformationen die Feed-Endpunkt-URL.
Das URL-Format lautet:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreateoder
https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreateSpeichern Sie diese URL für die nächsten Schritte.
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
- Rufen Sie die Seite „Anmeldedaten“ in der Google Cloud Console auf.
- Wählen Sie Ihr Projekt aus (das Projekt, das mit Ihrer Chronicle-Instanz verknüpft ist).
- Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
- Ein API-Schlüssel wird erstellt und in einem Dialogfeld angezeigt.
- Klicken Sie auf API-Schlüssel bearbeiten, um den Schlüssel einzuschränken.
API-Schlüssel einschränken
- Auf der Seite mit den API-Schlüssel-Einstellungen:
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
Chronicle Webhook API Key.
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
- Gehen Sie unter API-Einschränkungen so vor:
- Wählen Sie Schlüssel einschränken aus.
- Suchen Sie im Drop-down-Menü APIs auswählen nach Google SecOps API (oder Chronicle API) und wählen Sie die API aus.
- Klicken Sie auf Speichern.
- Kopieren Sie den API-Schlüsselwert aus dem Feld API-Schlüssel oben auf der Seite.
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
- Melden Sie sich in der Oracle Cloud Infrastructure Console an.
- Öffnen Sie das Navigationsmenü und wählen Sie Identität & Sicherheit > Cloud Guard > Rezepte aus.
- Wählen Sie Responder Recipes aus.
- Klicken Sie auf das Antwortrezept, das an Ihr Ziel angehängt ist.
- Suchen Sie im Bereich Responder-Regeln nach der Regel Cloud-Ereignisse.
- Wenn der Status Deaktiviert lautet:
- Öffnen Sie das Menü Aktionen (Dreipunkt-Menü) und wählen Sie Bearbeiten aus.
- Ändern Sie den Status in Aktiviert.
- Klicken Sie auf Speichern.
Automatische Ausführung auf dem Ziel konfigurieren
- Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Identity & Security > Cloud Guard > Configuration > Targets aus.
- Wählen Sie den Zielbereich aus.
- Wählen Sie unter Ressourcen die Option Responder-Rezepte aus.
- Klicken Sie auf den Link zum Rezept für die Antwort.
- Suchen Sie nach der Responder-Regel Cloud Event.
- Öffnen Sie das Menü Aktionen (Dreipunkt-Menü) und wählen Sie Bearbeiten aus.
- Stellen Sie Regeltrigger auf Automatisch ausführen ein.
- Klicken Sie das Kästchen AUTOMATISCHE AUSFÜHRUNG BESTÄTIGEN an.
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
- Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Developer Services > Functions > Applications aus.
- Wählen Sie das Compartment aus, in dem Sie die Anwendung erstellen möchten.
- Klicken Sie auf Anwendung erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie
cloudguard-chronicle-forwarderein. - 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.
- Name: Geben Sie
- 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.
- Öffnen Sie OCI Cloud Shell über die Oracle Cloud Infrastructure Console (klicken Sie in der oberen Navigationsleiste auf das Cloud Shell-Symbol).
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-chronicleSo initialisieren Sie eine neue Python-Funktion:
fn init --runtime python cloudguard-to-chronicle cd cloudguard-to-chronicleErsetzen Sie den Inhalt der Datei
func.pydurch 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 )Ersetzen Sie den Inhalt der Datei
requirements.txt:fdk>=0.1.0 requests>=2.25.0Stellen Sie die Funktion in der Anwendung bereit:
fn -v deploy --app cloudguard-chronicle-forwarderWarten Sie, bis die Bereitstellung abgeschlossen ist.
Umgebungsvariablen für Funktionen konfigurieren
- Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Developer Services > Functions > Applications aus.
- Klicken Sie auf die Anwendung cloudguard-chronicle-forwarder.
- Wählen Sie unter Ressourcen die Option Funktionen aus.
- Klicken Sie auf die Funktion cloudguard-to-chronicle.
- Wählen Sie unter Ressourcen die Option Konfiguration aus.
Klicken Sie auf Bearbeiten und fügen Sie die folgenden Schlüssel/Wert-Paare hinzu:
Schlüssel Wert CHRONICLE_ENDPOINTDie Chronicle-Webhook-Endpunkt-URL (z. B. https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate)CHRONICLE_API_KEYDer Google Cloud-API-Schlüssel, der für den Chronicle-Webhook erstellt wurde CHRONICLE_SECRETDer geheime Schlüssel für Chronicle-Webhooks 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
- Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Identity & Security > Domains aus.
- Wählen Sie die Standarddomain aus.
- Wählen Sie unter Ressourcen der Identitätsdomain die Option Dynamische Gruppen aus.
- Klicken Sie auf Dynamische Gruppe erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie
cloudguard-chronicle-functionsein. - Beschreibung: Geben Sie
Dynamic group for Cloud Guard to Chronicle forwarder functionein. - Abgleichsregeln: Geben Sie die folgende Regel ein:
ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_OCID>'}- Name: Geben Sie
Klicken Sie auf Erstellen.
IAM-Richtlinien erstellen
- Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Identity & Security > Policies aus.
- Achten Sie darauf, dass Sie sich im Root-Compartment befinden.
- Klicken Sie auf Richtlinie erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie
cloudguard-chronicle-policyein. - Beschreibung: Geben Sie
Allows Events Service to invoke Cloud Guard Chronicle forwarder functionein. - Spezifikation: Achten Sie darauf, dass die Stammspezifikation ausgewählt ist.
- Name: Geben Sie
- Aktivieren Sie im Bereich Policy Builder die Option Show manual editor (Manuellen Editor anzeigen).
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>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
Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Observability & Management > Events Service > Rules aus.
Klicken Sie auf Regel erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
- Anzeigename: Geben Sie
cloudguard-to-chronicleein. - Beschreibung: Geben Sie
Forwards Cloud Guard problem events to Google SecOps via OCI Functionsein.
- Anzeigename: Geben Sie
Im Abschnitt Regelbedingungen:
- Legen Sie Bedingung auf Ereignistyp fest.
- Legen Sie Service Name auf Cloud Guard fest.
- Legen Sie Ereignistyp auf Folgendes fest (mehrere Optionen möglich):
- Erkannt – Problem
- Abgelehnt – Problem
- Behoben – Problem
Im Abschnitt Aktionen:
- Legen Sie Aktionstyp auf Funktionen fest.
- Legen Sie Function Compartment auf das Compartment fest, das die Funktionsanwendung enthält.
- Setzen Sie Function Application auf cloudguard-chronicle-forwarder.
- Setzen Sie Funktion auf cloudguard-to-chronicle.
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:
- Klicken Sie im Abschnitt Regelbedingungen auf + Weitere Bedingung.
- Setzen Sie Bedingung auf Attribut.
- Legen Sie Attributname auf
riskLevelfest. Legen Sie für Attributwerte die gewünschten Risikostufen fest:
CRITICALHIGH
Einbindung prüfen
Funktion manuell testen
- Öffnen Sie in der Oracle Cloud Infrastructure Console das Navigationsmenü und wählen Sie Developer Services > Functions > Applications aus.
- Klicken Sie auf die Anwendung cloudguard-chronicle-forwarder.
- Wählen Sie unter Ressourcen die Option Funktionen aus.
- Klicken Sie auf die Funktion cloudguard-to-chronicle.
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-chroniclePrüfen Sie die Funktionslogs, indem Sie zu Developer Services > Functions > Applications > cloudguard-chronicle-forwarder gehen und den Bereich Logs auswählen.
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
- Melden Sie sich in Google SecOps an.
- Rufen Sie Suche auf und suchen Sie nach Ereignissen mit dem Protokolltyp
OCI_CLOUDGUARD. - 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.
Methode 1: Benutzerdefinierte Header (empfohlen)
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