Digital Guardian EDR-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Digital Guardian EDR-Logs mit Google Cloud Storage V2 über eine Cloud Run-Funktion in Google Security Operations aufnehmen.
Digital Guardian von Fortra (früher Digital Guardian) ist eine umfassende Plattform zur Verhinderung von Datenverlust und zur Endpunkterkennung und -reaktion, die Einblick in System-, Nutzer- und Datenereignisse an Endpunkten, in Netzwerken und in Cloud-Anwendungen bietet. Der Dienst Analytics & Reporting Cloud (ARC) bietet erweiterte Analyse-, Workflow- und Berichtsfunktionen für einen ganzheitlichen Datenschutz. Die Cloud Run-Funktion authentifiziert sich mit OAuth 2.0 bei der ARC Export API, ruft Exportdaten ab, bestätigt das Lesezeichen, um zum nächsten Chunk zu gelangen, schreibt die Ergebnisse als NDJSON in einen GCS-Bucket und Google SecOps nimmt sie über einen GCS V2-Feed auf.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Ein Google Cloud-Projekt mit den folgenden aktivierten APIs:
- Cloud Storage
- Cloud Run-Funktionen
- Cloud Scheduler
- Pub/Sub
- Cloud Build
- Berechtigungen zum Erstellen und Verwalten von Cloud Storage-Buckets, Cloud Run Functions-Funktionen, Pub/Sub-Themen und Cloud Scheduler-Jobs
- Privilegierter Zugriff auf die Digital Guardian Management Console (DGMC)
- Zugriff auf die Mandanteneinstellungen von Digital Guardian Analytics & Reporting Cloud (ARC)
- Administratorberechtigungen zum Konfigurieren von Cloud-Diensten in DGMC
- Ein in DGMC erstelltes Exportprofil mit einer gültigen GUID
Google Cloud Storage-Bucket erstellen
- Öffnen Sie die Google Cloud Console.
- Wählen Sie Ihr Projekt aus oder erstellen Sie ein neues.
- Rufen Sie im Navigationsmenü Cloud Storage > Buckets auf.
- Klicken Sie auf Bucket erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Bucket benennen Geben Sie einen global eindeutigen Namen ein, z. B. digitalguardian-edr-logs.Standorttyp Wählen Sie je nach Bedarf aus (Region, Dual-Region, Multi-Region). Standort Wählen Sie den Standort aus, der Ihrer Google SecOps-Instanz am nächsten ist (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 Klicken Sie auf Erstellen.
Digital Guardian API-Anmeldedaten erfassen
Damit die Cloud Run-Funktion Exportdaten aus dem Digital Guardian ARC abrufen kann, müssen Sie API-Anmeldedaten abrufen und ein Exportprofil konfigurieren.
API-Anmeldedaten von DGMC abrufen
- Melden Sie sich in der Digital Guardian Management Console (DGMC) an.
- Gehen Sie zu System > Konfiguration > Cloud-Dienste.
Suchen Sie im Abschnitt API-Zugriff nach den folgenden Werten und notieren Sie sie:
- API-Zugriffs-ID: Dies ist Ihre Client-ID für die OAuth 2.0-Authentifizierung.
- API-Zugriffsschlüssel: Dies ist Ihr Clientschlüssel für die OAuth 2.0-Authentifizierung.
- Basis-URL des Access Gateways: Der API-Gateway-Endpunkt, z. B.
https://accessgw-usw.msp.digitalguardian.com. - URL des Autorisierungsservers: Der OAuth 2.0-Token-Endpunkt (z. B.
https://authsrv.msp.digitalguardian.com/as/token.oauth2).
Exportprofil erstellen und konfigurieren
- Rufen Sie in der Digital Guardian Management Console (DGMC) Admin > Berichte > Exportprofile auf.
- Klicken Sie auf Exportprofil erstellen oder wählen Sie ein vorhandenes Exportprofil aus.
- Konfigurieren Sie das Exportprofil mit den folgenden Einstellungen:
- Profilname: Geben Sie einen aussagekräftigen Namen ein, z. B.
Google SecOps SIEM Integration. - Datenquelle: Wählen Sie je nach den Daten, die Sie exportieren möchten, Ereignisse oder Benachrichtigungen aus.
- Exportformat: Wählen Sie JSON Flattened Table (JSON-Tabelle in Kurzform) aus. Diese Option wird für SIEM-Integrationen empfohlen.
- Felder: Wählen Sie die Felder aus, die Sie in den Export aufnehmen möchten.
- Filter: Konfigurieren Sie optional Filter, um die exportierten Daten einzuschränken.
- Profilname: Geben Sie einen aussagekräftigen Namen ein, z. B.
- Klicken Sie auf Speichern, um das Exportprofil zu erstellen.
Suchen Sie nach dem Speichern das Exportprofil in der Liste und kopieren Sie die GUID aus der URL des Exportprofils oder von der Detailseite.
Zusammenfassung der erfassten Anmeldedaten
Speichern Sie die folgenden Informationen zum Konfigurieren der Umgebungsvariablen der Cloud Run-Funktion:
- Client-ID (API-Zugriffs-ID): Von DGMC Cloud Services
- Clientschlüssel (API-Zugriffsschlüssel): Von DGMC Cloud Services
- Autorisierungsserver-URL: z. B.
https://authsrv.msp.digitalguardian.com/as/token.oauth2 - Access Gateway-Basis-URL: z. B.
https://accessgw-usw.msp.digitalguardian.com - GUID des Exportprofils: Aus dem in DGMC erstellten Exportprofil
API-Zugriff testen
Prüfen Sie mit den folgenden Befehlen, ob Ihre Anmeldedaten gültig sind:
# Step 1: Obtain OAuth 2.0 access token curl -s -X POST \ -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&scope=client" \ "https://authsrv.msp.digitalguardian.com/as/token.oauth2"# Step 2: Test export endpoint with the access token curl -s -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ "https://accessgw-usw.msp.digitalguardian.com/rest/1.0/export/YOUR_EXPORT_PROFILE_GUID"Bei einer erfolgreichen Antwort wird ein JSON-Dokument mit Exportdaten zurückgegeben. Wenn Sie einen Authentifizierungsfehler erhalten, überprüfen Sie die API-Zugriffs-ID und das Secret in DGMC Cloud Services.
Dienstkonto für die Cloud Run-Funktion erstellen
- Wechseln Sie in der Google Cloud Console zu IAM & Verwaltung > Dienstkonten.
- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name des Dienstkontos: Geben Sie
digitalguardian-ingestion(oder einen beschreibenden Namen) ein. - Beschreibung des Dienstkontos: Geben Sie
Service account for Digital Guardian EDR Cloud Run function to write logs to GCSein.
- Name des Dienstkontos: Geben Sie
- Klicken Sie auf Erstellen und fortfahren.
- Fügen Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen die folgenden Rollen hinzu:
- Storage-Objekt-Administrator (zum Lesen/Schreiben von Objekten im Cloud Storage-Bucket)
- Cloud Run Invoker (damit Cloud Scheduler die Funktion aufrufen kann)
- Klicken Sie auf Weiter.
Klicken Sie auf Fertig.
Pub/Sub-Thema erstellen
Cloud Scheduler löst die Cloud Run-Funktion über ein Pub/Sub-Thema aus.
- Rufen Sie in der Google Cloud Console Pub/Sub > Themen auf.
- Klicken Sie auf Thema erstellen.
- Geben Sie im Feld Themen-ID den Wert
digitalguardian-edr-triggerein. - Behalten Sie die Standardeinstellungen bei.
Klicken Sie auf Erstellen.
Cloud Run-Funktion erstellen
Erstellen Sie eine Cloud Run-Funktion, die sich mit OAuth 2.0-Clientanmeldedaten bei Digital Guardian ARC authentifiziert, Exportdaten abruft, das Lesezeichen bestätigt, um zum nächsten Chunk zu gelangen, und Ergebnisse als NDJSON in GCS schreibt.
Funktionsquelldateien vorbereiten
Erstellen Sie die folgenden zwei Dateien für die Bereitstellung der Cloud Run-Funktion.
requirements.txt
functions-framework==3.* google-cloud-storage==2.* urllib3==2.*main.py
"""Cloud Run function to ingest Digital Guardian EDR logs into GCS.""" import json import os import time import urllib.parse from datetime import datetime, timezone import functions_framework import urllib3 from google.cloud import storage GCS_BUCKET = os.environ["GCS_BUCKET"] GCS_PREFIX = os.environ.get("GCS_PREFIX", "digitalguardian_edr") STATE_KEY = os.environ.get("STATE_KEY", "digitalguardian_edr_state.json") AUTH_SERVER_URL = os.environ["AUTH_SERVER_URL"] ARC_SERVER_URL = os.environ["ARC_SERVER_URL"] CLIENT_ID = os.environ["CLIENT_ID"] CLIENT_SECRET = os.environ["CLIENT_SECRET"] EXPORT_PROFILE_GUID = os.environ["EXPORT_PROFILE_GUID"] MAX_RECORDS = int(os.environ.get("MAX_RECORDS", "10000")) http = urllib3.PoolManager() gcs = storage.Client() def _get_access_token() -> str: """Obtain an OAuth 2.0 access token using client credentials grant.""" body = urllib.parse.urlencode({ "grant_type": "client_credentials", "client_id": CLIENT_ID, "client_secret": CLIENT_SECRET, "scope": "client", }) resp = http.request( "POST", AUTH_SERVER_URL, body=body, headers={"Content-Type": "application/x-www-form-urlencoded"}, ) if resp.status != 200: raise RuntimeError( f"OAuth token request failed: {resp.status} — " f"{resp.data.decode('utf-8')}" ) token_data = json.loads(resp.data.decode("utf-8")) return token_data["access_token"] def _arc_get(token: str, path: str, retries: int = 5) -> dict: """Execute a GET request against the ARC API with retry on 429.""" url = f"{ARC_SERVER_URL}{path}" headers = { "Authorization": f"Bearer {token}", "Accept": "application/json", } backoff = 2 for attempt in range(retries): resp = http.request("GET", url, headers=headers) if resp.status == 200: return json.loads(resp.data.decode("utf-8")) if resp.status == 429: wait = backoff * (2 ** attempt) print( f"Rate limited (429). Retrying in {wait}s " f"(attempt {attempt + 1}/{retries})." ) time.sleep(wait) continue raise RuntimeError( f"ARC API error: {resp.status} — {resp.data.decode('utf-8')}" ) raise RuntimeError( "ARC API rate limit exceeded after maximum retries." ) def _arc_acknowledge(token: str) -> None: """POST to the acknowledge endpoint to advance the export bookmark.""" url = ( f"{ARC_SERVER_URL}/rest/1.0/export/" f"{EXPORT_PROFILE_GUID}/acknowledge" ) headers = { "Authorization": f"Bearer {token}", "Accept": "application/json", } resp = http.request("POST", url, headers=headers) if resp.status not in (200, 204): raise RuntimeError( f"ARC acknowledge failed: {resp.status} — " f"{resp.data.decode('utf-8')}" ) print("Export bookmark acknowledged successfully.") def _load_state() -> dict: """Load the last run state from GCS.""" bucket = gcs.bugcs.bucketUCKET) blob = bucket.blob(f"{GCS_PREFIX}/{STATE_KEY}") if blob.exists(): return json.loads(blob.downlodownload_as_text return {} def _save_state(state: dict) -> None: """Persist run state to GCS.""" bucket = gcs.bugcs.bucketUCKET) blob = bucket.blob(f"{GCS_PREFIX}/{STATE_KEY}") blob.uploadupload_from_string json.dumps(state), content_type="application/json" ) def _fetch_export(token: str) -> list: """Fetch export data from the ARC Export API.""" path = f"/rest/1.0/export/{EXPORT_PROFILE_GUID}" data = _arc_get(token, path) records = data if isinstance(data, list) else data.get("data", []) return records[:MAX_RECORDS] def _write_ndjson(records: list, run_ts: str) -> str: """Write records as NDJSON to GCS and return the blob path.""" bucket = gcs.bugcs.bucketUCKET) blob_path = ( f"{GCS_PREFIX}/year={run_ts[:4]}/month={run_ts[5:7]}/" f"day={run_ts[8:10]}/{run_ts}_export.ndjson" ) blob = bucket.blob(blob_path) ndjson = "\n".join( json.dumps(r, separators=(",", ":")) for r in records ) blob.uploadupload_from_stringn, content_type="application/x-ndjson") return blob_path @functions_framework.cloud_event def main(cloud_event): """Entry point triggered by Pub/Sub via Cloud Scheduler.""" state = _load_state() now = datetime.now(timezone.utc) print("Authenticating to Digital Guardian ARC.") token = _get_access_token() print( f"Fetching export data for profile {EXPORT_PROFILE_GUID}." ) records = _fetch_export(token) if not records: print("No new export data found.") return "OK" run_ts = now.strftime("%Y-%m-%dT%H%M%SZ") blob_path = _write_ndjson(records, run_ts) print( f"Wrote {len(records)} records to " f"gs://{GCS_BUCKET}/{blob_path}." ) _arc_acknowledge(token) state["last_run"] = now.isoformat() state["records_written"] = len(records) _save_state(state) print(f"State updated. last_run={now.isoformat()}.") return "OK"
Cloud Run-Funktion bereitstellen
- Speichern Sie beide Dateien (
main.pyundrequirements.txt) in einem lokalen Verzeichnis (z. B.digitalguardian-function/). - Öffnen Sie die Cloud Shell oder ein Terminal mit installiertem
gcloudCLI. Führen Sie den folgenden Befehl aus, um die Funktion bereitzustellen:
gcloud functions deploy digitalguardian-edr-to-gcs \ --gen2 \ --region=us-central1 \ --runtime=python312 \ --trigger-topic=digitalguardian-edr-trigger \ --entry-point=main \ --memory=512MB \ --timeout=540s \ --service-account=digitalguardian-ingestion@PROJECT_ID.iam.gserviceaccount.com \ --set-env-vars=\ "GCS_BUCKET=digitalguardian-edr-logs",\ "GCS_PREFIX=digitalguardian_edr",\ "STATE_KEY=digitalguardian_edr_state.json",\ "AUTH_SERVER_URL=https://authsrv.msp.digitalguardian.com/as/token.oauth2",\ "ARC_SERVER_URL=https://accessgw-usw.msp.digitalguardian.com",\ "CLIENT_ID=YOUR_CLIENT_ID",\ "CLIENT_SECRET=YOUR_CLIENT_SECRET",\ "EXPORT_PROFILE_GUID=YOUR_EXPORT_PROFILE_GUID",\ "MAX_RECORDS=10000"Ersetzen Sie die folgenden Platzhalterwerte:
PROJECT_ID: Ihre Google Cloud-Projekt-ID.digitalguardian-edr-logs: Der Name Ihres GCS-Buckets.YOUR_CLIENT_ID: Ihre Digital Guardian API-Zugriffs-ID.YOUR_CLIENT_SECRET: Ihr Digital Guardian API Access Secret.YOUR_EXPORT_PROFILE_GUID: Die GUID Ihres Exportprofils aus DGMC.
Überprüfen Sie die Bereitstellung, indem Sie den Funktionsstatus prüfen:
gcloud functions describe digitalguardian-edr-to-gcs --region=us-central1 --gen2
Referenz zu Umgebungsvariablen
| Variable | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
GCS_BUCKET |
Ja | GCS-Bucket-Name zum Speichern der NDJSON-Ausgabe | |
GCS_PREFIX |
Nein | digitalguardian_edr |
Objektpräfix (Ordnerpfad) im Bucket |
STATE_KEY |
Nein | digitalguardian_edr_state.json |
Blob-Name für die Statusdatei innerhalb des Präfix |
AUTH_SERVER_URL |
Ja | OAuth 2.0-Autorisierungsserver-URL | |
ARC_SERVER_URL |
Ja | ARC Access Gateway-Basis-URL | |
CLIENT_ID |
Ja | API-Zugriffs-ID von DGMC | |
CLIENT_SECRET |
Ja | API-Zugriffs-Secret aus DGMC | |
EXPORT_PROFILE_GUID |
Ja | Profil-GUID aus DGMC exportieren | |
MAX_RECORDS |
Nein | 10000 |
Maximale Anzahl der Einträge, die pro Ausführung geschrieben werden sollen |
Cloud Scheduler-Job erstellen
Cloud Scheduler löst die Cloud Run-Funktion in regelmäßigen Abständen über das Pub/Sub-Thema aus.
- Rufen Sie in der Google Cloud Console Cloud Scheduler auf.
- Klicken Sie auf Job erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie
digitalguardian-edr-ingestion-scheduleein. - Region: Wählen Sie dieselbe Region wie für Ihre Cloud Run-Funktion aus (z. B.
us-central1). Häufigkeit: Geben Sie
*/5 * * * *(alle 5 Minuten) ein.Zeitzone: Wählen Sie Ihre bevorzugte Zeitzone aus (z. B.
UTC).
- Name: Geben Sie
Klicken Sie auf Weiter.
Im Abschnitt Ausführung konfigurieren:
- Zieltyp: Wählen Sie Pub/Sub aus.
- Thema: Wählen Sie
digitalguardian-edr-triggeraus. - Nachrichtentext: Geben Sie
{"run": true}ein.
Klicken Sie auf Weiter.
Im Abschnitt Optionale Einstellungen konfigurieren:
- Maximale Wiederholungsversuche: Geben Sie
3ein. - Minimale Backoff-Dauer: Geben Sie
5sein. - Maximale Backoff-Dauer: Geben Sie
60sein.
- Maximale Wiederholungsversuche: Geben Sie
Klicken Sie auf Erstellen.
Wenn Sie einen sofortigen Test ausführen möchten, klicken Sie neben dem Jobnamen auf das Dreipunkt-Menü (...) und wählen Sie Ausführung erzwingen aus.
Google SecOps-Dienstkonto abrufen und Feed konfigurieren
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.
E-Mail-Adresse des Dienstkontos abrufen
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf Einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Digital Guardian EDR Logs. - Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
- Wählen Sie Digital Guardian EDR als Logtyp aus.
Klicken Sie auf Dienstkonto abrufen. Es wird eine eindeutige E-Mail-Adresse für das Dienstkonto angezeigt, z. B.:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comKopieren Sie diese E‑Mail-Adresse für den nächsten Schritt.
Klicken Sie auf Weiter.
Geben Sie Werte für die folgenden Eingabeparameter an:
Storage-Bucket-URL: Geben Sie den GCS-Bucket-URI ein:
gs://digitalguardian-edr-logs/digitalguardian_edr/- Ersetzen Sie
digitalguardian-edr-logsdurch den Namen Ihres GCS-Buckets. - Ersetzen Sie
digitalguardian_edrdurch den konfigurierten WertGCS_PREFIX.
- Ersetzen Sie
Option zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus:
- Nie: Es werden niemals Dateien nach Übertragungen gelöscht (empfohlen für Tests).
- Übertragene Dateien löschen: Dateien werden nach der erfolgreichen Übertragung gelöscht.
Übertragene Dateien und leere Verzeichnisse löschen: Löscht Dateien und leere Verzeichnisse nach der erfolgreichen Übertragung.
Höchstalter von Dateien: Dateien einschließen, die in den letzten Tagen geändert wurden (Standardwert: 180 Tage).
Asset-Namespace: Der Asset-Namespace.
Aufnahmelabels: 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.
Dem Google SecOps-Dienstkonto IAM-Berechtigungen gewähren
Das Google SecOps-Dienstkonto benötigt die Rolle Storage-Objekt-Betrachter für Ihren Cloud Storage-Bucket.
- Rufen Sie Cloud Storage > Buckets auf.
- Klicken Sie auf den Namen Ihres Buckets, z. B.
digitalguardian-edr-logs. - Wechseln Sie zum Tab Berechtigungen.
- Klicken Sie auf Zugriff erlauben.
- Geben Sie die folgenden Konfigurationsdetails an:
- Hauptkonten hinzufügen: Fügen Sie die E-Mail-Adresse des Google SecOps-Dienstkontos ein (z. B.
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com). - Rollen zuweisen: Wählen Sie Storage-Objekt-Betrachter aus.
- Hauptkonten hinzufügen: Fügen Sie die E-Mail-Adresse des Google SecOps-Dienstkontos ein (z. B.
Klicken Sie auf Speichern.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| Anwendung | target.application | Wert direkt kopiert |
| Anwendung | target.process.command_line | Auf %{Application} festgelegt, wenn die Regel mit Printer übereinstimmt. |
| Bytes_Written | network.sent_bytes | Wert direkt kopiert und in „uinteger“ konvertiert |
| Category, Computer_Name, Detail | metadata.description | Auf %{Detail} setzen, wenn Category == "Policies" und Computer_Name leer ist; andernfalls auf %{message} bei grok_parse_failure setzen |
| Command_Line, Command_Line1 | principal.process.command_line | Wert aus „Command_Line“ nach dem Entfernen nachgestellter Anführungszeichen, falls nicht leer, andernfalls aus „Command_Line1“ nach dem Entfernen nachgestellter Anführungszeichen |
| Computer_Name, source | principal.hostname | Wert aus „computerName“, falls nicht leer, andernfalls auf %{source} festgelegt |
| Destination_Device_Serial_Number, Destination_Device_Serial_Number1 | Extrahieren mit Grok-Muster für die Verarbeitung von Anführungszeichen | |
| Destination_Directory, Destination_File | target.file.full_path | Verkettung von „Destination_Directory“ und „Destination_File“, wenn beide nicht leer sind |
| Destination_Drive_Type | security_result.detection_fields | Mit „destination_drive_type_label“ zusammengeführt (Schlüssel: Destination_Drive_Type, Wert: %{Destination_Drive_Type}) |
| Destination_File | target.file.names | Zusammengeführt aus Destination_File |
| Destination_File_Extension | target.file.mime_type | Wert direkt kopiert |
| Dll_SHA1_Hash | target.process.file.sha1 | Wert direkt nach der Umwandlung in Kleinbuchstaben kopiert |
| Email_Address | principal.user.email_addresses | Zusammengeführt aus Email_Address |
| Email_Sender, Email_Subject | network.email.from | Wird auf %{Email_Sender} gesetzt, wenn nicht leer. |
| Email_Sender, Email_Subject | network.email.subject | Zusammengeführt aus Betreff (%{Email_Subject}), wenn Email_Sender nicht leer ist |
| File_Extension | principal.process.file.mime_type | Wert direkt kopiert |
| IP_Address, source_ip | principal.ip | Wird aus „source_ip“ zusammengeführt, falls nicht leer, andernfalls aus „IP_Address“ |
| Local_Port, source_port | principal.port | Wert aus „source_port“, sofern nicht leer und in eine Ganzzahl konvertiert, andernfalls aus „Local_Port“ und in eine Ganzzahl konvertiert |
| MD5_Checksum | target.process.file.md5 | Wert direkt nach der Umwandlung in Kleinbuchstaben kopiert |
| Network_Direction | network.direction | Auf INBOUND gesetzt, wenn „True“, andernfalls auf OUTBOUND gesetzt, wenn „False“ |
| Process_PID | principal.process.pid | Wert direkt kopiert |
| Process_SHA256_Hash | target.process.file.sha256 | Wert direkt nach der Umwandlung in Kleinbuchstaben kopiert |
| Product_Version | metadata.product_version | Wert direkt kopiert |
| Protokoll | network.ip_protocol | Auf ICMP setzen, wenn == „1“ |
| Remote_Port | target.port | Wert direkt kopiert und in eine Ganzzahl konvertiert |
| Regel | security_result.rule_name | Wert direkt kopiert |
| Regel | metadata.event_type | Auf PROCESS_UNCATEGORIZED setzen, wenn Übereinstimmungen mit .Printer. vorliegen, andernfalls auf FILE_MOVE, wenn Übereinstimmungen mit DLP.* vorliegen. |
| Schweregrad | security_result.severity | LOW, wenn <=3, MEDIUM, wenn <=6, HIGH, wenn <=8, CRITICAL, wenn <=10 nach der Konvertierung in eine Ganzzahl |
| Schweregrad | security_result.severity_details | Wert direkt kopiert |
| Source_Directory, Source_File | src.file.full_path | Wird aus Source_Directory und Source_File verkettet, wenn beide nicht leer sind |
| Source_Drive_Type | security_result.detection_fields | Zusammengeführt mit source_drive_type_label (Schlüssel: Source_Drive_Type, Wert: %{Source_Drive_Type}) |
| Source_File | src.file.names | Zusammengeführt aus Source_File |
| Source_File_Extension | src.file.mime_type | Wert direkt kopiert |
| URL_Path, http_url | target.url | Wert aus „http_url“, falls nicht leer, andernfalls aus „URL_Path“ |
| User_Name | principal.user.userid | Wert aus „userName“ nach der Grok-Extraktion |
| User_Name | principal.administrative_domain | Wert aus „domainName“ nach der Grok-Extraktion |
| Was_Removable | security_result.detection_fields | Mit „was_removable_label“ zusammengeführt (Schlüssel: Was_Removable, Wert: %{Was_Removable}) |
| Was_Source_Removable | security_result.detection_fields | Mit „was_source_removable_label“ zusammengeführt (Schlüssel: Was_Source_Removable, Wert: %{Was_Source_Removable}) |
| computerName, destination_ip, protocol, source_ip, IP_Address, destination, userName, Process_PID, Category, Computer_Name | metadata.event_type | Anfangs auf GENERIC_EVENT festgelegt; NETWORK_HTTP, wenn protocol == HTTPS und (destination_ip oder computerName); NETWORK_CONNECTION, wenn (source_ip oder IP_Address) und destination_ip; USER_UNCATEGORIZED, wenn userName nicht leer; SCAN_PROCESS, wenn Process_PID nicht leer |
| destination_ip | target.ip | Zusammengeführt aus „destination_ip“ |
| incidents_url, matched_policies_by_severity | security_result | Zusammengeführt mit _sr (rule_name: %{matched_policies_by_severity}, url_back_to_product: %{incidents_url}) |
| Protokoll | network.application_protocol | Auf HTTPS festlegen, wenn protocol == HTTP oder HTTPS |
| security_action | security_result.action | Zusammengeführt aus „security_action“ |
| metadata.product_name | Auf „Enterprise DLP Platform“ festlegen | |
| metadata.vendor_name | Auf „DigitalGuardian“ festgelegt |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten