Parser-Erweiterungen mit Gemini erstellen

Unterstützt in:

In diesem Leitfaden wird erläutert, wie Sicherheitsanalysten und Erkennungstechniker Standard-Logparser mit Prompts in natürlicher Sprache erweitern können. Mit dem Feature „AI Parser Extension“ können Sie schnell zusätzliche Felder extrahieren, bedingte Logik anwenden und Rohlogs dem einheitlichen Datenmodell (Unified Data Model, UDM) zuordnen, ohne komplexe Parser-Syntax oder reguläre Ausdrücke schreiben zu müssen.

Wenn ein Standard-Protokollparser in Google SecOps Ihre Protokollquelle parst, werden möglicherweise kundenspezifische benutzerdefinierte Attribute, optionale Felder oder spezielle Telemetriedaten ausgelassen. Mit dem Feature „AI Parser Extension“ können Sie Folgendes tun:

  • Zusätzliche Felder aus Rohlogs extrahieren und sie Standard-UDM-Feldern oder benutzerdefinierten additional.fields zuordnen.
  • Bedingte Logik und Werttransformationen anwenden, z. B. String-Aktionen UDM-Aufzählungstypen zuordnen.
  • Generierte Erweiterungen interaktiv in mehreren Chat-Sitzungen verfeinern, ohne bei null anfangen zu müssen.

Schlüsselterminologie

  • Einheitliches Datenmodell (Unified Data Model, UDM): Die Standarddatenstruktur, die in Google SecOps zum Speichern und Analysieren von Logdaten verwendet wird.

Hinweis

Bevor Sie beginnen, prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:

  • Nutzungskontingente:Sie können maximal 10 Sitzungen zur Generierung von AI Parser Extensions pro 24-Stunden-Zeitraum mit bis zu 5 Nachrichten pro Sitzung ausführen.

Best Practices für das Erstellen von Prompts

Damit Sie beim ersten Versuch genaue Parser-Erweiterungen erhalten, beachten Sie diese Richtlinien für Prompts:

  1. Quelle und Ziel explizit angeben:Geben Sie genau an, welcher Teil des Rohlogs extrahiert werden soll und welcher UDM-Feldpfad genau damit gefüllt wird, z. B. principal.ip, target.user.email_addresses oder security_result.action.
  2. Anführungszeichen für Literale mit genauer Übereinstimmung verwenden:Wenn Sie auf Literal-Strings, Trennzeichen oder Beispielwerte in unstrukturierten Logs verweisen, setzen Sie sie in Anführungszeichen, z. B. "198.51.100.0" oder "allow".
  3. Benutzerdefinierte Felder mit „additional.fields“ verarbeiten:Für proprietäre oder anbieterspezifische Attribute, für die kein eigenes UDM-Feld vorhanden ist, weisen Sie die KI an, sie mit einem eindeutigen Schlüsselnamen in additional.fields zuzuordnen, z. B. additional.fields["application"].

Parser-Erweiterung generieren

Sie können den Workflow für die Parser-Erweiterung an einer der folgenden Stellen in Google SecOps starten:

  • Seite „Parser-Einstellungen“:Rufen Sie die Seite Parser auf, um einen vorhandenen Logparser auszuwählen und zu erweitern.
  • Seite „Suche“:Wenn Sie Logs auf der Seite Suche untersuchen, können Sie den Workflow zur Erstellung von Erweiterungen direkt über ein Ereignis mit nicht geparsten Feldern öffnen.

So generieren Sie eine Parser-Erweiterung auf der Seite Parser-Einstellungen:

  1. Rufen Sie in Google SecOps die Seite Parser-Einstellungen auf.
  2. Suchen Sie nach dem Logtyp, den Sie erweitern möchten.
  3. Klicken Sie auf das Menü neben dem Parser und wählen Sie die Option zum Erweitern aus.
  4. Fügen Sie im Feld ROHLOG ein Beispiel des Logs ein, das Sie parsen möchten.
  5. Wählen Sie im Bereich Erweiterungsmethode den Tab Mit KI generieren aus.
  6. Geben Sie im Promptfeld eine Beschreibung der Extraktion in natürlicher Sprache ein.
  7. Klicken Sie auf Bestätigen.

    Das System generiert den Erweiterungscode und aktualisiert die UDM-Ausgabe.

Parser-Erweiterung verfeinern

Sie können Ihre Parser-Erweiterung iterativ in mehreren Chat-Sitzungen erstellen und verfeinern. Wenn Sie einen weiterführenden Prompt senden, wendet die KI Ihre neuen Anweisungen auf die zuvor generierte Erweiterung an. Vorhandene Zuordnungen und bedingte Logik aus früheren Sitzungen bleiben automatisch erhalten, es sei denn, Sie fordern ausdrücklich an, sie zu überschreiben oder zu entfernen.

  1. Geben Sie im Promptfeld eine weiterführende Anweisung ein, um den generierten Code anzupassen.
  2. Klicken Sie auf Bestätigen.
  3. Sehen Sie sich nach jedem Prompt eine Vorschau des generierten Erweiterungscodes an, prüfen Sie die UDM-Beispielausgaben und bestätigen oder passen Sie die Logik an.

Der folgende Beispielworkflow zeigt, wie eine Parser-Erweiterung in mehreren Schritten iterativ verfeinert wird:

  1. Schritt 1 (Erste Extraktion):
    • Prompt des Nutzers: "Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip."
    • Ergebnis:Die KI generiert eine Erweiterung, die principal.ip und target.ip zuordnet.
  2. Schritt 2 (Additive Zuordnung):
    • Prompt des Nutzers: "Also map virtual system string 'vsys1' to observer.administrative_domain."
    • Ergebnis:Die KI aktualisiert die Erweiterung, um observer.administrative_domain zuzuordnen, während die IP-Zuordnungen aus Schritt 1 beibehalten werden.
  3. Schritt 3 (Bedingte Verfeinerung):
    • Prompt des Nutzers: "In addition, map action string 'allow' to security_result[0].action as ALLOW."
    • Ergebnis:Die KI nimmt die Zuordnung der bedingten Aktionsaufzählung zusätzlich zu allen vorherigen Extraktionen vor.

Parser-Erweiterung validieren

  1. Klicken Sie auf Validieren.
  2. Prüfen Sie nach Abschluss des Vorgangs die Validierungsstatistiken.

Referenzinformationen aufrufen

Verwenden Sie die folgenden Beispiele, um genaue Prompts zu erstellen.

Prompts für strukturierte Logs

Geben Sie für strukturierte Logs, bei denen Daten in benannten Schlüsseln, Attributen oder XML-Tags organisiert sind, die Feldnamen oder Pfade in Ihrem Prompt an.

Beispiel für einen strukturierten Log – JSON-Format

{
  "insertId": "u0mlpdesys",
  "logName": "projects/sample-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
  "protoPayload": {
    "authenticationInfo": {
      "principalEmail": "analyst@example-domain.com"
    },
    "methodName": "GenerateAccessToken",
    "requestMetadata": {
      "callerIp": "203.0.113.195",
      "callerSuppliedUserAgent": "google-cloud-sdk gcloud/392.0.0"
    },
    "resourceName": "projects/-/serviceAccounts/110649196922301550006",
    "serviceName": "iamcredentials.googleapis.com"
  }
}

Promptbeispiele für strukturierte Logs

Promptanweisung Quellenfeld oder -schlüssel UDM-Zielfeld
"Map principalEmail to principal.user.email_addresses." principalEmail principal.user.email_addresses
"Extract callerIp to principal.ip and methodName to metadata.product_event_type." callerIp, methodName principal.ip, metadata.product_event_type
"Map resourceName to target.resource.name and serviceName to target.application." resourceName, serviceName target.resource.name, target.application
"From XML tags, map /Event/System/Hostname to principal.hostname." /Event/System/Hostname principal.hostname

Prompts für unstrukturierte Logs

Geben Sie für unstrukturierte Logs Literalwerte direkt aus dem Beispiellog, Positionsreferenzen oder beschreibende Labels an.

Beispiel für eine unstrukturierte Syslog-Nachricht

<14>Nov  9 18:52:45 198.51.100.1 1,2021/11/09 18:52:45,007051000184334,TRAFFIC,start,2561,2021/11/09 18:52:45,198.51.100.0,198.51.100.1,0.0.0.0,0.0.0.0,any allow,,,ping,vsys1,LAN,LAN,ethernet1/2,ethernet1/2,LFPpan,2021/11/09 18:52:45,9729,6,0,0,2048,0,0x100000,icmp,allow,444,444,0,6

Promptbeispiele für unstrukturierte Logs

Promptanweisung Literalwert oder Beschreibung UDM-Zielfeld
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." '198.51.100.0', '198.51.100.1' principal.ip, target.ip
"Extract the application string 'ping' from the log and map it to additional.fields['application']." 'ping' additional.fields["application"]
"Map rule name 'any allow' to security_result.rule_id." 'any allow' security_result[0].rule_id
"Extract sent bytes and received bytes into network.sent_bytes and network.received_bytes." Numerische Byte-Zähler im Log network.sent_bytes, network.received_bytes

Prompts für bedingte Logik

Beschreiben Sie die bedingte Logik, um Rohlogwerte in bestimmte UDM-Aufzählungen zu normalisieren.

  • Normalisierung der Aufzählung: "If the firewall action in the log is 'allow', set security_result.action to ALLOW; otherwise set security_result.action to BLOCK."
  • Bedingte Feldzuordnung: "If the protocol is 'icmp', map the ICMP type and code into network.icmp.type and network.icmp.code."
  • Statuszuordnung: "When the log status contains 'success' or '0', set security_result.severity to INFO; if it contains 'error', set it to ERROR."

Nutzungslimits

Um eine optimale Leistung und Ressourcenverfügbarkeit zu gewährleisten, gelten für das Feature „AI Parser Extension“ die folgenden Nutzungskontingente:

  • 10 Sitzungen pro 24 Stunden:Jeder Kunde hat maximal 10 Sitzungen zur Generierung von AI Parser Extensions pro 24-Stunden-Zeitraum.
  • 5 Nachrichten pro Sitzung:In einer einzelnen Sitzung können Sie bis zu 5 Nachrichten senden, einschließlich Ihres ersten Prompts und der nachfolgenden Verfeinerungsschritte, um Ihre Parser-Erweiterung zu erstellen und zu verfeinern.

Wenn Sie das Limit für Sitzungsnachrichten erreichen, können Sie Ihre aktuelle Erweiterung speichern oder eine neue Sitzung starten.

Nächste Schritte

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