Sonrai Security-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Sonrai Security-Logs mit Google Cloud Storage V2 in Google Security Operations aufnehmen.

Sonrai Security ist eine Cloud-Sicherheitsplattform für Unternehmen, die Identitäts-, Daten- und Zugriffs-Governance in Multi-Cloud-Umgebungen ermöglicht. Es stellt Sicherheitsergebnisse, Tickets und Prüfdaten über eine GraphQL API bereit.

Hinweis

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

  • Eine Google SecOps-Instanz
  • Ein GCP-Projekt mit aktivierter Cloud Storage API
  • Berechtigungen zum Erstellen und Verwalten von GCS-Buckets
  • Berechtigungen zum Verwalten von IAM-Richtlinien für GCS-Buckets
  • Berechtigungen zum Erstellen von Cloud Run-Diensten, Pub/Sub-Themen und Cloud Scheduler-Jobs
  • Privilegierter Zugriff auf Sonrai Security mit Administratorberechtigungen und API-Schlüsselzugriff

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. sonrai-security-logs).
    Standorttyp Wählen Sie die Option, die am besten zu Ihren Anforderungen passt (Region, Dual-Region, Multi-Region).
    Standort Wählen Sie den Standort aus (z. B. us-central1).
    Speicherklasse Standard (empfohlen für Logs, auf die häufig zugegriffen wird)
    Zugriffssteuerung Einheitlich (empfohlen)
    Schutztools Optional: Objektversionsverwaltung oder Aufbewahrungsrichtlinie aktivieren
  6. Klicken Sie auf Erstellen.

Sonrai Security API-Anmeldedaten erfassen

API-Schlüssel generieren

  1. Melden Sie sich als Administrator auf der Sonrai Security-Plattform an.
  2. Gehen Sie zu Einstellungen > API-Schlüssel.
  3. Klicken Sie auf API-Schlüssel erstellen.
  4. Geben Sie einen Namen für den Schlüssel ein (z. B. Google Security Operations Integration).
  5. Kopieren Sie den generierten API-Schlüssel und speichern Sie ihn an einem sicheren Ort.

URL der Organisation ermitteln

Der API-Endpunkt basiert auf Ihrer Sonrai Security-Organisation. Das Format dafür ist:

Komponente Wert
GraphQL-Endpunkt https://YOUR_ORG.sonraisecurity.com/graphql

Berechtigungen prüfen

So prüfen Sie, ob der API-Schlüssel den erforderlichen Zugriff hat:

  1. Melden Sie sich auf der Sonrai Security-Plattform an.
  2. Gehen Sie zu Einstellungen > API-Schlüssel.
  3. Prüfen Sie, ob der API-Schlüssel aufgeführt und aktiv ist.
  4. Prüfen Sie, ob der Schlüssel Berechtigungen zum Abfragen von Tickets, Ergebnissen und Audit-Daten hat.
  5. Wenn die Berechtigungen eingeschränkt sind, wenden Sie sich an Ihren Sonrai Security-Administrator.

API-Zugriff testen

  • Testen Sie Ihre Anmeldedaten, bevor Sie mit der Integration fortfahren:

    # Replace with your actual credentials
    API_KEY="your-api-key"
    ORG_URL="https://YOUR_ORG.sonraisecurity.com"
    
    # Test API access - query tickets
    curl -v -X POST \
      -H "Authorization: Bearer ${API_KEY}" \
      -H "Content-Type: application/json" \
      -d '{"query": "{ Tickets(where: {createdDate: {op: GT, value: \"2024-01-01T00:00:00Z\"}}) { count } }"}' \
      "${ORG_URL}/graphql"
    

Dienstkonto für die Cloud Run-Funktion erstellen

Die Cloud Run-Funktion benötigt ein Dienstkonto mit Berechtigungen zum Schreiben in den GCS-Bucket und zum Aufrufen durch Pub/Sub.

Dienstkonto erstellen

  1. Rufen Sie in der GCP Console die Seite IAM und Verwaltung > Dienstkonten auf.
  2. Klicken Sie auf Dienstkonto erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Dienstkontoname: Geben Sie sonrai-collector-sa ein.
    • Beschreibung des Dienstkontos: Geben Sie Service account for Cloud Run function to collect Sonrai Security logs ein.
  4. Klicken Sie auf Erstellen und fortfahren.
  5. Fügen Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen die folgenden Rollen hinzu:
    1. Klicken Sie auf Rolle auswählen.
    2. Suchen Sie nach Storage Object Admin und wählen Sie die Rolle aus.
    3. Klicken Sie auf + Weitere Rolle hinzufügen.
    4. Suchen Sie nach Cloud Run Invoker und wählen Sie die Rolle aus.
    5. Klicken Sie auf + Weitere Rolle hinzufügen.
    6. Suchen Sie nach Cloud Functions-Aufrufer und wählen Sie die Rolle aus.
  6. Klicken Sie auf Weiter.
  7. Klicken Sie auf Fertig.

Diese Rollen sind erforderlich für:

  • Storage-Objekt-Administrator: Logs in den GCS-Bucket schreiben und Statusdateien verwalten
  • Cloud Run-Aufrufer: Pub/Sub erlauben, die Funktion aufzurufen
  • Cloud Functions-Invoker: Funktionsaufruf zulassen

IAM-Berechtigungen für GCS-Bucket gewähren

Gewähren Sie dem Dienstkonto Schreibberechtigungen für den GCS-Bucket:

  1. Rufen Sie Cloud Storage > Buckets auf.
  2. Klicken Sie auf den Namen Ihres Buckets (z. B. sonrai-security-logs).
  3. Wechseln Sie zum Tab Berechtigungen.
  4. Klicken Sie auf Zugriff erlauben.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Hauptkonten hinzufügen: Geben Sie die E-Mail-Adresse des Dienstkontos ein (z. B. sonrai-collector-sa@your-project.iam.gserviceaccount.com).
    • Rollen zuweisen: Wählen Sie Storage Object Admin aus.
  6. Klicken Sie auf Speichern.

Pub/Sub-Thema erstellen

Erstellen Sie ein Pub/Sub-Thema, in dem Cloud Scheduler Nachrichten veröffentlicht und das die Cloud Run-Funktion abonniert.

  1. Wechseln Sie in der GCP Console zu Pub/Sub > Themen.
  2. Klicken Sie auf Thema erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Themen-ID: Geben Sie sonrai-trigger ein.
    • Übernehmen Sie die anderen Einstellungen.
  4. Klicken Sie auf Erstellen.

Cloud Run-Funktion zum Erfassen von Logs erstellen

Die Cloud Run-Funktion wird durch Pub/Sub-Nachrichten von Cloud Scheduler ausgelöst, um Logs von der Sonrai Security GraphQL API abzurufen und in GCS zu schreiben.

  1. Rufen Sie in der GCP Console Cloud Run auf.
  2. Klicken Sie auf Dienst erstellen.
  3. Wählen Sie Funktion aus (Funktion mit einem Inline-Editor erstellen).
  4. Geben Sie im Abschnitt Konfigurieren die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Dienstname sonrai-collector
    Region Wählen Sie die Region aus, die Ihrem GCS-Bucket entspricht (z. B. us-central1).
    Laufzeit Wählen Sie Python 3.12 oder höher aus.
  5. Im Abschnitt Trigger (optional):

    1. Klicken Sie auf + Trigger hinzufügen.
    2. Wählen Sie Cloud Pub/Sub aus.
    3. Wählen Sie unter Cloud Pub/Sub-Thema auswählen das Thema sonrai-trigger aus.
    4. Klicken Sie auf Speichern.
  6. Im Abschnitt Authentifizierung:

    1. Wählen Sie Authentifizierung erforderlich aus.
    2. Prüfen Sie Identity and Access Management (IAM).
  7. Scrollen Sie nach unten und maximieren Sie Container, Netzwerk, Sicherheit.

  8. Rufen Sie den Tab Sicherheit auf:

    • Dienstkonto: Wählen Sie das Dienstkonto sonrai-collector-sa aus.
  9. Rufen Sie den Tab Container auf:

    1. Klicken Sie auf Variablen und Secrets.
    2. Klicken Sie für jede Umgebungsvariable auf + Variable hinzufügen:
    Variablenname Beispielwert Beschreibung
    GCS_BUCKET sonrai-security-logs Name des GCS-Buckets
    GCS_PREFIX sonrai Präfix für Logdateien
    STATE_KEY sonrai/state.json Pfad der Statusdatei
    API_KEY your-api-key Sonrai Security API-Schlüssel
    ORG_URL https://YOUR_ORG.sonraisecurity.com Sonrai-Organisations-URL
    MAX_RECORDS 10000 Maximale Anzahl von Datensätzen pro Ausführung
    PAGE_SIZE 500 Einträge pro Seite
    LOOKBACK_HOURS 24 Anfänglicher Rückschauzeitraum
  10. Scrollen Sie auf dem Tab Variablen und Secrets nach unten zu Anfragen:

    • Zeitüberschreitung bei Anfrage: Geben Sie 600 Sekunden (10 Minuten) ein.
  11. Rufen Sie unter Container den Tab Einstellungen auf:

    • Im Abschnitt Ressourcen:
      • Arbeitsspeicher: Wählen Sie 512 MiB oder höher aus.
      • CPU: Wählen Sie 1 aus.
  12. Im Abschnitt Versionsskalierung:

    • Mindestanzahl von Instanzen: Geben Sie 0 ein.
    • Maximale Anzahl von Instanzen: Geben Sie 100 ein oder passen Sie den Wert an die erwartete Last an.
  13. Klicken Sie auf Erstellen.

  14. Warten Sie ein bis zwei Minuten, bis der Dienst erstellt wurde.

  15. Nachdem der Dienst erstellt wurde, wird der Inline-Code-Editor automatisch geöffnet.

Funktionscode hinzufügen

  1. Geben Sie main unter Funktionseinstiegspunkt ein.
  2. Erstellen Sie im Inline-Code-Editor zwei Dateien:

    • Erste Datei: main.py:

      import functions_framework
      from google.cloud import storage
      import json
      import os
      import urllib3
      from datetime import datetime, timezone, timedelta
      import time
      
      # Initialize HTTP client with timeouts
      http = urllib3.PoolManager(
        timeout=urllib3.Timeout(connect=5.0, read=30.0),
        retries=False,
      )
      
      # Initialize Storage client
      storage_client = storage.Client()
      
      # Environment variables
      GCS_BUCKET = os.environ.get('GCS_BUCKET')
      GCS_PREFIX = os.environ.get('GCS_PREFIX', 'sonrai')
      STATE_KEY = os.environ.get('STATE_KEY', 'sonrai/state.json')
      API_KEY = os.environ.get('API_KEY', '')
      ORG_URL = os.environ.get('ORG_URL', '').rstrip('/')
      MAX_RECORDS = int(os.environ.get('MAX_RECORDS', '10000'))
      PAGE_SIZE = int(os.environ.get('PAGE_SIZE', '500'))
      LOOKBACK_HOURS = int(os.environ.get('LOOKBACK_HOURS', '24'))
      
      def parse_datetime(value: str) -> datetime:
        """Parse ISO datetime string to datetime object."""
        if value.endswith("Z"):
          value = value[:-1] + "+00:00"
        return datetime.fromisoformat(value)
      
      @functions_framework.cloud_event
      def main(cloud_event):
        """
        Cloud Run function triggered by Pub/Sub to fetch Sonrai Security logs and write to GCS.
      
        Args:
          cloud_event: CloudEvent object containing Pub/Sub message
        """
      
        if not all([GCS_BUCKET, API_KEY, ORG_URL]):
          print('Error: Missing required environment variables')
          return
      
        try:
          bucket = storage_client.bucket(GCS_BUCKET)
      
          # Load state
          state = load_state(bucket, STATE_KEY)
      
          # Determine time window
          now = datetime.now(timezone.utc)
          last_time = None
      
          if isinstance(state, dict) and state.get("last_event_time"):
            try:
              last_time = parse_datetime(state["last_event_time"])
              last_time = last_time - timedelta(minutes=2)
            except Exception as e:
              print(f"Warning: Could not parse last_event_time: {e}")
      
          if last_time is None:
            last_time = now - timedelta(hours=LOOKBACK_HOURS)
      
          print(f"Fetching tickets from {last_time.isoformat()} to {now.isoformat()}")
      
          # Fetch tickets/findings
          records, newest_event_time = fetch_tickets(
            start_time=last_time,
            end_time=now,
            page_size=PAGE_SIZE,
            max_records=MAX_RECORDS,
          )
      
          if not records:
            print("No new records found.")
            save_state(bucket, STATE_KEY, now.isoformat())
            return
      
          # Write to GCS as NDJSON
          timestamp = now.strftime('%Y%m%d_%H%M%S')
          object_key = f"{GCS_PREFIX}/logs_{timestamp}.ndjson"
          blob = bucket.blob(object_key)
      
          ndjson = '\n'.join([json.dumps(record, ensure_ascii=False) for record in records]) + '\n'
          blob.upload_from_string(ndjson, content_type='application/x-ndjson')
      
          print(f"Wrote {len(records)} records to gs://{GCS_BUCKET}/{object_key}")
      
          if newest_event_time:
            save_state(bucket, STATE_KEY, newest_event_time)
          else:
            save_state(bucket, STATE_KEY, now.isoformat())
      
          print(f"Successfully processed {len(records)} records")
      
        except Exception as e:
          print(f'Error processing logs: {str(e)}')
          raise
      
      def load_state(bucket, key):
        """Load state from GCS."""
        try:
          blob = bucket.blob(key)
          if blob.exists():
            state_data = blob.download_as_text()
            return json.loads(state_data)
        except Exception as e:
          print(f"Warning: Could not load state: {e}")
      
        return {}
      
      def save_state(bucket, key, last_event_time_iso: str):
        """Save the last event timestamp to GCS state file."""
        try:
          state = {'last_event_time': last_event_time_iso}
          blob = bucket.blob(key)
          blob.upload_from_string(
            json.dumps(state, indent=2),
            content_type='application/json'
          )
          print(f"Saved state: last_event_time={last_event_time_iso}")
        except Exception as e:
          print(f"Warning: Could not save state: {e}")
      
      def graphql_query(query: str):
        """Execute a GraphQL query against Sonrai Security API with rate limiting."""
        endpoint = f"{ORG_URL}/graphql"
      
        headers = {
          'Authorization': f'Bearer {API_KEY}',
          'Content-Type': 'application/json',
          'Accept': 'application/json',
          'User-Agent': 'GoogleSecOps-SonraiCollector/1.0'
        }
      
        body = json.dumps({'query': query})
      
        backoff = 1.0
        max_retries = 3
      
        for attempt in range(max_retries):
          response = http.request('POST', endpoint, body=body.encode('utf-8'), headers=headers)
      
          if response.status == 429:
            retry_after = int(response.headers.get('Retry-After', str(int(backoff))))
            print(f"Rate limited (429). Retrying after {retry_after}s...")
            time.sleep(retry_after)
            backoff = min(backoff * 2, 30.0)
            continue
      
          if response.status != 200:
            print(f"HTTP Error: {response.status} - {response.data.decode('utf-8')}")
            return None
      
          data = json.loads(response.data.decode('utf-8'))
      
          if 'errors' in data:
            print(f"GraphQL errors: {json.dumps(data['errors'])}")
            return None
      
          return data.get('data')
      
        print(f"Failed after {max_retries} retries due to rate limiting")
        return None
      
      def fetch_tickets(start_time: datetime, end_time: datetime, page_size: int, max_records: int):
        """
        Fetch tickets from Sonrai Security GraphQL API with pagination and rate limiting.
        """
        records = []
        newest_time = None
        page_num = 0
        offset = 0
      
        start_iso = start_time.strftime('%Y-%m-%dT%H:%M:%SZ')
      
        while True:
          page_num += 1
      
          if len(records) >= max_records:
            print(f"Reached max_records limit ({max_records})")
            break
      
          current_limit = min(page_size, max_records - len(records))
      
          query = f"""{{
                    Tickets(
                      where: {{createdDate: {{op: GT, value: \"{start_iso}\"}}}}
              limit: {current_limit}
              offset: {offset}
            ) {{
                      count
                      items {{
                        srn
                        title
                        severity
                        status
                        createdDate
                        updatedDate
                        resourceSrn
                        eventName
                        actionType
                        sourceIp
                        actor {{
                          profile {{
                            srn
                            name
                          }}
                }}
                message
              }}
            }}
          }}"""
      
          data = graphql_query(query)
          if not data:
            break
      
          tickets_data = data.get('Tickets', {})
          page_results = tickets_data.get('items', [])
      
          if not page_results:
            print(f"No more results (empty page)")
            break
      
          print(f"Page {page_num}: Retrieved {len(page_results)} tickets")
          records.extend(page_results)
      
          # Track newest event time
          for ticket in page_results:
            try:
              event_time = ticket.get('createdDate')
              if event_time:
                if newest_time is None or parse_datetime(event_time) > parse_datetime(newest_time):
                  newest_time = event_time
            except Exception as e:
              print(f"Warning: Could not parse event time: {e}")
      
          if len(page_results) < current_limit:
            print(f"Reached last page (size={len(page_results)} < limit={current_limit})")
            break
      
          offset += len(page_results)
      
        print(f"Retrieved {len(records)} total records from {page_num} pages")
        return records, newest_time
      
    • Zweite Datei: requirements.txt:

      functions-framework==3.*
      google-cloud-storage==2.*
      urllib3>=2.0.0
      
  3. Klicken Sie auf Bereitstellen, um die Funktion zu speichern und bereitzustellen.

  4. Warten Sie, bis die Bereitstellung abgeschlossen ist (2–3 Minuten).

Cloud Scheduler-Job erstellen

Cloud Scheduler veröffentlicht in regelmäßigen Abständen Nachrichten im Pub/Sub-Thema und löst so die Cloud Run-Funktion aus.

  1. Rufen Sie in der GCP Console die Option Cloud Scheduler auf.
  2. Klicken Sie auf Job erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Name sonrai-collector-hourly
    Region Wählen Sie dieselbe Region wie für die Cloud Run-Funktion aus.
    Frequenz 0 * * * * (stündlich zur vollen Stunde)
    Zeitzone Zeitzone auswählen (UTC empfohlen)
    Zieltyp Pub/Sub
    Thema Wählen Sie das Thema sonrai-trigger aus.
    Inhalt der Nachricht {} (leeres JSON-Objekt)
  4. Klicken Sie auf Erstellen.

Optionen für die Häufigkeit des Zeitplans

Wählen Sie die Häufigkeit basierend auf dem Logvolumen und den Latenzanforderungen aus:

Häufigkeit Cron-Ausdruck Anwendungsfall
Alle 5 Minuten */5 * * * * Hohes Volumen, niedrige Latenz
Alle 15 Minuten */15 * * * * Mittleres Suchvolumen
Stündlich 0 * * * * Standard (empfohlen)
Alle 6 Stunden 0 */6 * * * Batchverarbeitung mit geringem Volumen
Täglich 0 0 * * * Erhebung von Verlaufsdaten

Integration testen

  1. Suchen Sie in der Cloud Scheduler-Konsole nach Ihrem Job (sonrai-collector-hourly).
  2. Klicken Sie auf Ausführung erzwingen, um die Ausführung manuell auszulösen.
  3. Warten Sie einige Sekunden und rufen Sie Cloud Run > Dienste > sonrai-collector > Logs auf.
  4. Prüfen Sie, ob die Funktion erfolgreich ausgeführt wurde. Achte dabei auf Folgendes:

    Fetching tickets from YYYY-MM-DDTHH:MM:SS+00:00 to YYYY-MM-DDTHH:MM:SS+00:00
    Page 1: Retrieved X tickets
    Wrote X records to gs://sonrai-security-logs/sonrai/logs_YYYYMMDD_HHMMSS.ndjson
    Successfully processed X records
    
  5. Prüfen Sie den GCS-Bucket (sonrai-security-logs), um zu bestätigen, dass Logs geschrieben wurden.

Wenn Sie Fehler in den Logs sehen:

  • HTTP 401: API-Schlüssel in Umgebungsvariablen prüfen
  • HTTP 403: Prüfen Sie, ob der API-Schlüssel die erforderlichen Berechtigungen auf der Sonrai Security-Plattform hat.
  • HTTP 429: Ratenbegrenzung – die Funktion wird automatisch mit Backoff wiederholt.
  • GraphQL-Fehler: Prüfen Sie die Abfragesyntax und die verfügbaren Felder.

Feed in Google SecOps konfigurieren, um Sonrai Security-Logs aufzunehmen

  1. Rufen Sie die Einstellungen > Datenverwaltung > Feeds auf. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die 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. Sonrai Security Logs.
  5. Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
  6. Wählen Sie Sonrai Enterprise Cloud Security Solution als Logtyp aus.
  7. Klicken Sie auf Dienstkonto abrufen. Eine eindeutige E-Mail-Adresse für das Dienstkonto wird angezeigt, z. B.:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Kopieren Sie diese E-Mail-Adresse. Sie verwenden es in der nächsten Aufgabe.

  9. Klicken Sie auf Weiter.

  10. Geben Sie Werte für die folgenden Eingabeparameter an:

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

      gs://sonrai-security-logs/sonrai/
      
      • Ersetzen Sie:
        • sonrai-security-logs: Der Name Ihres GCS-Buckets.
        • sonrai: Optionaler Präfix-/Ordnerpfad, in dem Logs gespeichert werden (leer lassen für Stammverzeichnis).
    • Option zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus:

      • Nie: Nach Übertragungen werden keine Dateien gelöscht (empfohlen für Tests).
      • Übertragene Dateien löschen: Dateien werden nach erfolgreicher Übertragung gelöscht.
      • Übertragene Dateien und leere Verzeichnisse löschen: Dateien und leere Verzeichnisse werden nach erfolgreicher Übertragung gelöscht.

    • Maximales Dateialter: 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.

  11. Klicken Sie auf Weiter.

  12. 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 GCS-Bucket.

  1. Rufen Sie Cloud Storage > Buckets auf.
  2. Klicken Sie auf den Namen Ihres Buckets (sonrai-security-logs).
  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 Object Viewer aus.
  6. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
actor.profile principal.resource.attribute.labels Mit der Ressource verknüpfte Labels
actor.profile.srn target.user.product_object_id Produktspezifische Objekt-ID für den Nutzer
actor.profile.srn target.user.userid Nutzer-ID
actorSrn, variables, gql, type additional.fields Zusätzliche Felder, die an anderer Stelle im UDM-Schema nicht erfasst werden
actionType security_result.action_details Details zur ergriffenen Maßnahme
createdDate metadata.event_timestamp Zeitstempel des Ereignisses
event_type metadata.event_type Ereignistyp (z.B. USER_LOGIN, NETWORK_CONNECTION)
eventName metadata.product_event_type Produktspezifischer Ereignistyp
Nachricht security_result.summary Zusammenfassung des Sicherheitsergebnisses
Metadaten Metadaten Metadaten zum Ereignis
Prinzipal Prinzipal Informationen zum Hauptkonto (Akteur)
resourceSrn principal.resource.name Name der Ressource
security_result security_result Informationen zum Sicherheitsergebnis
sourceIp principal.asset.ip IP-Adresse des Assets
sourceIp principal.ip IP-Adresse, die mit dem Hauptkonto verknüpft ist
Ziel Ziel Informationen zum Ziel
extensions.auth.type Im Ereignis verwendeter Authentifizierungstyp
metadata.product_name Produktname
metadata.vendor_name Name des Anbieters/Unternehmens

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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