OpenSearch in Google SecOps einbinden

Integrationsversion: 1.0

In diesem Dokument wird beschrieben, wie Sie OpenSearch in Google Security Operations einbinden.

Anwendungsfälle

Die OpenSearch-Integration deckt die folgenden Anwendungsfälle für Sicherheitsorchestrierung und ‑untersuchung ab:

  • Automatisierte Suche nach Bedrohungen: Suchen Sie regelmäßig in allen OpenSearch-Indexen nach bestimmten Kompromittierungsindikatoren (Indicators of Compromise, IoCs) oder verdächtigen Mustern mit Lucene- und DSL-Abfragen.

  • Zentrale Aufnahme von Benachrichtigungen: Dokumente aus OpenSearch werden als umsetzbare Benachrichtigungen in Google SecOps aufgenommen. So werden Sicherheitsereignisse aus Ihrem Data Lake priorisiert und untersucht.

  • Kontextbezogener Datenabruf: Sie können vorhandene Sicherheitsfälle anreichern, indem Sie automatisch zugehörige Protokolle oder Verlaufsdaten aus OpenSearch abrufen, um Analysten bei der Untersuchung einen umfassenderen Kontext zu bieten.

  • Flexible Datenzuordnung: Schweregrade und Umgebungstags aus OpenSearch-Dokumenten werden dynamisch den Google SecOps-Standards zugeordnet, um die Konsistenz über verschiedene Log-Quellen hinweg zu gewährleisten.

Hinweise

Bevor Sie die Integration in der Google SecOps-Plattform konfigurieren, müssen Sie Folgendes haben:

  • CA-Zertifikatsdatei: Eine gültige Zertifizierungsstellendatei zur Sicherung der Verbindung.

  • Neueste Integrationsversion: Achten Sie darauf, dass Sie die aktuelle Version der OpenSearch-Integration verwenden.

  • Base64-codiertes Zertifikat: Der Inhalt Ihrer CA-Zertifikatsdatei muss vor der Konfiguration in einen Base64-String konvertiert werden.

Führen Sie die folgenden Schritte aus, um die Integration mit einem CA-Zertifikat zu konfigurieren:

  1. Öffnen Sie die Seite mit den Konfigurationsparametern für die Integration.
  2. Fügen Sie den Base64-codierten String in das Feld CA Certificate File (CA-Zertifikatsdatei) ein.
  3. Klicken Sie das Kästchen SSL prüfen an.
  4. Klicken Sie auf Testen, um zu prüfen, ob die Integration erfolgreich konfiguriert wurde.

Integrationsparameter

Für die OpenSearch-Integration sind die folgenden Parameter erforderlich:

Parameter Beschreibung
Server Address

Erforderlich.

Die Endpunkt-URL der OpenSearch-Instanz, einschließlich des Protokolls und des Ports (z. B. https://10.0.0.1:9200).

Username

Optional.

Der Nutzername, der für die Authentifizierung bei der OpenSearch-Instanz verwendet wird.

Password

Optional.

Das Passwort, das dem angegebenen Nutzernamen zugeordnet ist.

API Token

Optional.

Das API-Token, das zur Authentifizierung als Alternative zu einem Nutzernamen und einem Passwort verwendet wird.

Authenticate

Optional.

Wenn diese Option ausgewählt ist, authentifiziert die Integration die Verbindung zum OpenSearch-Server mit den angegebenen Anmeldedaten.

Verify SSL

Optional.

Wenn diese Option ausgewählt ist, wird das SSL-Zertifikat bei der Verbindung zum OpenSearch-Server validiert.

CA Certificate File

Optional.

Der Inhalt der Zertifizierungsstellenzertifikatsdatei im PEM-Format, die zum Überprüfen des SSL-Zertifikats des Servers verwendet wird.

Eine Anleitung zum Konfigurieren einer Integration in Google SecOps finden Sie unter Integrationen konfigurieren.

Bei Bedarf können Sie später Änderungen vornehmen. Nachdem Sie eine Integrationsinstanz konfiguriert haben, können Sie sie in Playbooks verwenden. Weitere Informationen zum Konfigurieren und Unterstützen mehrerer Instanzen finden Sie unter Mehrere Instanzen unterstützen.

Aktionen

Weitere Informationen zu Aktionen finden Sie unter Ausstehende Aktionen in „Mein Arbeitsbereich“ beantworten und Manuelle Aktion ausführen.

Mit der Aktion Advanced ES Search (Erweiterte ES-Suche) können Sie eine vorkonfigurierte Suchanfrage auf dem OpenSearch-Server ausführen und die Ergebnisse in einem Dictionary-Format abrufen.

Diese Aktion wird nicht für Google SecOps-Elemente ausgeführt.

Aktionseingaben

Für die Aktion Advanced ES Search sind die folgenden Parameter erforderlich:

Parameter Beschreibung
Index

Optional.

Das Suchmuster für den OpenSearch-Index (z. B. smp_playbooks-2019.06.13). Sie können Platzhalter verwenden, um in mehreren Indizes zu suchen (z. B. smp_playbooks-*).

Der Standardwert ist *.

Query

Optional.

Die Suchanfrage, die mit der Lucene-Syntax ausgeführt werden soll (z. B. level:error OR level:warning).

Der Standardwert ist *.

Limit

Optional.

Die maximale Anzahl der Dokumente, die zurückgegeben werden sollen. Setzen Sie diesen Wert auf 0, um kein Limit festzulegen.

Der Standardwert ist 100.

Display Field

Optional.

Eine durch Kommas getrennte Liste der zurückzugebenden Felder.

Der Standardwert ist *. In diesem Fall werden alle Felder zurückgegeben.

Search Field

Optional.

Das spezifische Feld, in dem gesucht werden soll, wenn Query keinen Zielfeldnamen enthält. Dies ist das Standardziel für die Suche bei Freitextanfragen.

Der Standardwert ist _all. Damit wird in allen indexierten Feldern gesucht.

Timestamp Field

Optional.

Der Name des Felds, das für die zeitbasierte Filterung verwendet wird.

Wenn sowohl Earliest Date als auch Oldest Date leer sind, wird bei der Aktion keine zeitbasierte Filterung durchgeführt.

Der Standardwert ist @timestamp.

Oldest Date

Optional.

Das Startdatum für die Suche. Die Aktion gibt Datensätze zurück, die an oder nach diesem Zeitstempel aufgetreten sind.

Sie können einen genauen UTC-Zeitstempel (YYYY-MM-DDTHH:MM:SSZ) oder eine relative Datumsberechnung (z. B. now-1d) angeben.

Der Standardwert ist now-1d.

Earliest Date

Optional.

Das Enddatum für die Suche. Die Aktion gibt Datensätze zurück, die an oder vor diesem Zeitstempel aufgetreten sind.

Sie können einen genauen UTC-Zeitstempel (YYYY-MM-DDTHH:MM:SSZ) oder eine relative Datumsberechnung (z. B. now) angeben.

Der Standardwert ist now.

Aktionsausgaben

Die Aktion Erweiterte ES-Suche bietet die folgenden Ausgaben:

Ausgabetyp der Aktion Verfügbarkeit
Anhang im Fall-Repository Nicht verfügbar
Link zum Fall‑Repository Nicht verfügbar
Tabelle „Fall-Repository“ Nicht verfügbar
Anreicherungstabelle Nicht verfügbar
JSON-Ergebnis Nicht verfügbar
Ausgabenachrichten Verfügbar
Scriptergebnis Verfügbar
Scriptergebnis

In der folgenden Tabelle ist der Wert für die Ausgabe des Skriptergebnisses aufgeführt, wenn die Aktion Advanced ES Search verwendet wird:

Name des Scriptergebnisses Wert
results RESULTS

Mit der Aktion DSL Search können Sie eine umfassende Suche in allen OpenSearch-Indizes durchführen und Ergebnisse im Wörterbuchformat abrufen.

Diese Aktion wird nicht für Google SecOps-Elemente ausgeführt.

Aktionseingaben

Für die Aktion DSL Search sind die folgenden Parameter erforderlich:

Parameter Beschreibung
Index

Optional.

Das Suchmuster für den OpenSearch-Index (z. B. smp_playbooks-2019.06.13). Sie können Platzhalter verwenden, um in mehreren Indizes zu suchen (z. B. smp_playbooks-*).

Der Standardwert ist *.

Query

Optional.

Die Suchanfrage, die mit der Lucene-Syntax ausgeführt werden soll (z. B. level:error OR level:warning).

Der Standardwert ist *.

Limit

Optional.

Die maximale Anzahl der Dokumente, die zurückgegeben werden sollen. Setzen Sie diesen Wert auf 0, um kein Limit festzulegen.

Der Standardwert ist 100.

Aktionsausgaben

Die Aktion DSL Search (DSL-Suche) bietet die folgenden Ausgaben:

Ausgabetyp der Aktion Verfügbarkeit
Anhang im Fall-Repository Nicht verfügbar
Link zum Fall‑Repository Nicht verfügbar
Tabelle „Fall-Repository“ Nicht verfügbar
Anreicherungstabelle Nicht verfügbar
JSON-Ergebnis Verfügbar
Ausgabenachrichten Verfügbar
Scriptergebnis Verfügbar
JSON-Ergebnis

Das folgende Beispiel zeigt die JSON-Ergebnisausgabe, die bei Verwendung der Aktion DSL Search empfangen wird:

[
    {
        "_score": 0.2876821,
        "_type": "person",
        "_id": "2",
        "_source": {
            "lastname": "Smith",
            "name": "John",
            "job_description": "Systems administrator"
        },
        "_index": "accounts"
    }, {
        "_score": 0.28582606,
        "_type": "person",
        "_id": "1",
        "_source":
        {
            "lastname": "Doe",
            "name": "John",
            "job_description": "Systems administrator and Linux specialist"
        },
        "_index": "accounts"
    }
]
Scriptergebnis

In der folgenden Tabelle ist der Wert für die Ausgabe des Skriptergebnisses bei Verwendung der Aktion DSL Search aufgeführt:

Name des Scriptergebnisses Wert
results RESULTS

Ping

Verwenden Sie die Aktion Ping, um die Verbindung zu OpenSearch zu testen.

Diese Aktion wird nicht für Google SecOps-Elemente ausgeführt.

Aktionseingaben

Keine.

Aktionsausgaben

Die Aktion Ping bietet die folgenden Ausgaben:

Ausgabetyp der Aktion Verfügbarkeit
Anhang im Fall-Repository Nicht verfügbar
Link zum Fall‑Repository Nicht verfügbar
Tabelle „Fall-Repository“ Nicht verfügbar
Anreicherungstabelle Nicht verfügbar
JSON-Ergebnis Nicht verfügbar
Ausgabenachrichten Verfügbar
Scriptergebnis Verfügbar
Scriptergebnis

In der folgenden Tabelle ist der Wert für die Ausgabe des Skriptergebnisses bei Verwendung der Aktion Ping aufgeführt:

Name des Scriptergebnisses Wert
is_success true oder false

Mit der Aktion Simple ES Search können Sie eine einfache Suche in allen indexierten Feldern in OpenSearch durchführen und die Ergebnisse in einem Dictionary-Format abrufen.

Diese Aktion wird nicht für Google SecOps-Elemente ausgeführt.

Aktionseingaben

Für die Aktion Einfache ES-Suche sind die folgenden Parameter erforderlich:

Parameter Beschreibung
Index

Optional.

Das Suchmuster für den OpenSearch-Index (z. B. smp_playbooks-2019.06.13). Sie können Platzhalter verwenden, um in mehreren Indizes zu suchen (z. B. smp_playbooks-*).

Der Standardwert ist *.

Query

Optional.

Die Suchanfrage, die mit der Lucene-Syntax ausgeführt werden soll (z. B. level:error OR level:warning).

Der Standardwert ist *.

Limit

Optional.

Die maximale Anzahl der Dokumente, die zurückgegeben werden sollen. Setzen Sie diesen Wert auf 0, um kein Limit festzulegen.

Der Standardwert ist 100.

Aktionsausgaben

Die Aktion Simple ES Search (Einfache ES-Suche) bietet die folgenden Ausgaben:

Ausgabetyp der Aktion Verfügbarkeit
Anhang im Fall-Repository Nicht verfügbar
Link zum Fall‑Repository Nicht verfügbar
Tabelle „Fall-Repository“ Nicht verfügbar
Anreicherungstabelle Nicht verfügbar
JSON-Ergebnis Verfügbar
Ausgabenachrichten Verfügbar
Scriptergebnis Verfügbar
JSON-Ergebnis

Das folgende Beispiel zeigt die JSON-Ergebnisausgabe, die bei Verwendung der Aktion Simple ES Search empfangen wird:

[{
    "_score": 0.2876821,
    "_type": "person",
    "_id": "2",
    "_source":
        {
          "lastname": "Smith",
          "name": "John",
          "job_description": "Systems administrator"
         },
     "_index": "accounts"
 },
 {
     "_score": 0.28582606,
     "_type": "person",
     "_id": "1",
     "_source":
       {
         "lastname": "Doe",
         "name": "John",
         "job_description": "Systems administrator and Linux specialist"
       },
    "_index": "accounts"
  }
 ]
Scriptergebnis

In der folgenden Tabelle ist der Wert für die Ausgabe des Skriptergebnisses bei Verwendung der Aktion Simple ES Search aufgeführt:

Name des Scriptergebnisses Wert
results RESULTS

Connectors

Weitere Informationen zum Konfigurieren von Connectors in Google SecOps finden Sie unter Daten aufnehmen (Connectors).

OpenSearch Connector

Mit dem OpenSearch-Connector können Sie bestimmte OpenSearch-Indizes mit einer bereitgestellten Lucene-Abfrage durchsuchen und Dokumente als Benachrichtigungen in Google SecOps aufnehmen.

Connector-Eingaben

Für den OpenSearch Connector sind die folgenden Parameter erforderlich:

Parameter Beschreibung
Product Field Name

Erforderlich.

Der Name des Felds, in dem der Produktname gespeichert ist.

Der Produktname wirkt sich hauptsächlich auf die Zuordnung aus. Um den Zuordnungsprozess für den Connector zu optimieren und zu verbessern, wird der Standardwert in einen Fallback-Wert aufgelöst, auf den im Code verwiesen wird. Ungültige Eingaben für diesen Parameter werden standardmäßig in einen Fallback-Wert aufgelöst.

Der Standardwert ist Product Name.

Event Field Name

Erforderlich.

Der Name des Felds, das den Ereignisnamen (Untertyp) bestimmt.

Der Standardwert ist name.

Script Timeout (Seconds)

Erforderlich.

Das Zeitlimit in Sekunden für den Python-Prozess, in dem das aktuelle Script ausgeführt wird.

Der Standardwert ist 180.

Server Address

Erforderlich.

Die Endpunkt-URL der OpenSearch-Instanz, einschließlich des Protokolls und des Ports (z. B. https://10.0.0.1:9200).

Username

Optional.

Der Nutzername, der für die Authentifizierung bei der OpenSearch-Instanz verwendet wird.

Password

Optional.

Das Passwort, das dem angegebenen Nutzernamen zugeordnet ist.

Authenticate

Optional.

Wenn diese Option ausgewählt ist, authentifiziert die Integration die Verbindung zum OpenSearch-Server mit den angegebenen Anmeldedaten.

API Token

Optional.

Das API-Token, das zur Authentifizierung als Alternative zu einem Nutzernamen und einem Passwort verwendet wird.

Verify SSL

Optional.

Wenn diese Option ausgewählt ist, wird das SSL-Zertifikat bei der Verbindung zum OpenSearch-Server validiert.

Alert Name Field

Erforderlich.

Der Name des Felds, das den Namen der Benachrichtigung enthält (z. B. _source_alert_info_alert).

Timestamp Field

Erforderlich.

Der Name des Felds, das den Zeitstempel enthält (z. B. _source_@timestamp).

Environment Field Name

Optional.

Der Name des Felds, in dem der Name der Umgebung gespeichert ist.

Wenn das Feld „environment“ fehlt, wird der Standardwert verwendet.

Der Standardwert ist "".

Indexes

Optional.

Das Indexmuster, nach dem gesucht werden soll. Verwenden Sie *, um alle Indexe in die Suche einzubeziehen.

Query

Optional.

Die Suchanfrage, die mit der Lucene-Syntax ausgeführt werden soll.

Alerts Count Limit

Erforderlich.

Die maximale Anzahl von Benachrichtigungen, die in einem einzelnen Zyklus abgerufen werden sollen.

Der Standardwert ist 20.

Max Days Backwards

Erforderlich.

Die Anzahl der Tage vor dem aktuellen Datum, für die Benachrichtigungen abgerufen werden sollen.

Dieser Parameter kann für die erste Connector-Iteration nach der erstmaligen Aktivierung des Connectors oder als Fallback-Wert für einen abgelaufenen Connector-Zeitstempel gelten.

Der Standardwert ist 1.

Severity Field Name

Optional.

Der Feldname, der zum Extrahieren des Schweregrads für die Benachrichtigung verwendet wird.

Wenn das Feld numerische Werte (Ganzzahlen oder Gleitkommazahlen) enthält, werden diese vom Connector automatisch den Google SecOps-Schweregraden zugeordnet (z. B. 100 ist Critical). Wenn das Feld Stringwerte enthält, müssen Sie die Zuordnungsregeln in der Datei severity_map_config.json definieren.

Proxy Server Address

Optional.

Die Adresse des zu verwendenden Proxyservers.

Proxy Username

Optional.

Der Nutzername für die Authentifizierung beim Proxyserver.

Proxy Password

Optional.

Das Passwort, das zur Authentifizierung beim Proxyserver verwendet wird.

Environment Regex Pattern

Optional.

Ein reguläres Ausdrucksmuster, das auf den Wert im Feld Environment Field Name angewendet wird. Mit diesem Parameter können Sie das Feld „environment“ mithilfe der Logik für reguläre Ausdrücke bearbeiten.

Verwenden Sie den Standardwert .*, um den erforderlichen Rohwert Environment Field Name abzurufen.

Wenn das Muster des regulären Ausdrucks null oder leer ist oder der Umgebungswert null ist, ist das endgültige Umgebungsergebnis die Standardumgebung.

OpenSearch DSL Connector

Mit dem OpenSearch DSL Connector können Sie Dokumente als Benachrichtigungen in Google SecOps aufnehmen, indem Sie REST API-Aufrufe mit domänenspezifischen Sprachabfragen (Domain Specific Language, DSL) ausführen.

Connector-Eingaben

Für den OpenSearch DSL Connector sind die folgenden Parameter erforderlich:

Parameter Beschreibung
Product Field Name

Erforderlich.

Der Name des Felds, in dem der Produktname gespeichert ist.

Der Produktname wirkt sich hauptsächlich auf die Zuordnung aus. Um den Zuordnungsprozess für den Connector zu optimieren und zu verbessern, wird der Standardwert in einen Fallback-Wert aufgelöst, auf den im Code verwiesen wird. Ungültige Eingaben für diesen Parameter werden standardmäßig in einen Fallback-Wert aufgelöst.

Der Standardwert ist Product Name.

Der Standardwert ist device_product.

Event Field Name

Erforderlich.

Der Name des Felds, das den Ereignisnamen (Untertyp) bestimmt.

Der Standardwert ist name.

Script Timeout (Seconds)

Erforderlich.

Das Zeitlimit in Sekunden für den Python-Prozess, in dem das aktuelle Script ausgeführt wird.

Der Standardwert ist 60.

Server Address

Erforderlich.

Die Endpunkt-URL der OpenSearch-Instanz, einschließlich des Protokolls (z. B. https://10.0.0.1).

Port

Erforderlich.

Der Port, der für die Verbindung mit dem OpenSearch API-Server verwendet wird.

Query

Erforderlich.

Die für die Suche verwendete DSL-Abfrage im JSON-Format.

Um die Stabilität des Connectors zu verbessern, empfiehlt es sich, einen Zeitstempelschlüssel für die Sortierung in aufsteigender Reihenfolge in die Abfrage aufzunehmen.

Index

Erforderlich.

Der für die Suche verwendete Index. Verwenden Sie _all, um alle Indexe in die Suche einzubeziehen.

Timestamp Field

Erforderlich.

Der Name des Felds, das den Zeitstempel enthält (z. B. _source_@timestamp).

Alert Field Name

Erforderlich.

Der Name des Felds, das den Namen der Benachrichtigung enthält (z. B. _source_info_alertname).

Description Field

Optional.

Der Name des Felds, das die Benachrichtigungsbeschreibung enthält (z. B. _source_alert_info_description).

Severity

Erforderlich.

Der statische Schweregrad, der allen aufgenommenen Benachrichtigungen zugewiesen werden soll. Dieser Parameter wird verwendet, wenn Alert Severity und Severity Field Name leer sind.

Der Standardwert ist Medium.

Alert Severity

Optional.

Der Schweregrad, der Benachrichtigungen zugewiesen werden soll. Dieser Parameter hat Vorrang vor Severity Field Name.

Wenn Sie dynamisches Mapping mit Severity Field Name verwenden möchten, lassen Sie dieses Feld leer.

Severity Field Name

Optional.

Der Feldname, der zum Extrahieren des Schweregrads für die Benachrichtigung verwendet wird.

Wenn das Feld numerische Werte (Ganzzahlen oder Gleitkommazahlen) enthält, werden diese vom Connector automatisch den Google SecOps-Schweregraden zugeordnet (z. B. 100 ist Critical). Wenn das Feld String-Werte enthält, müssen Sie die Zuordnungsregeln in der Datei severity_map_config.json definieren.

Alerts Count Limit

Optional.

Die maximale Anzahl von Benachrichtigungen, die in einem einzelnen Zyklus abgerufen werden sollen.

Der Standardwert ist 100.

Authenticate

Optional.

Wenn diese Option ausgewählt ist, authentifiziert der Connector die Verbindung mit den angegebenen Anmeldedaten.

Username

Optional.

Der Nutzername, der für die Authentifizierung bei der OpenSearch-Instanz verwendet wird.

Password

Optional.

Das Passwort, das für die Authentifizierung bei der OpenSearch-Instanz verwendet wird.

Use SSL

Optional.

Wenn diese Option ausgewählt ist, ermöglicht der Connector eine SSL/TLS-Verbindung zum Server.

Proxy Server Address

Optional.

Die Adresse des Proxyservers, der für die Verbindung verwendet werden soll.

Proxy Username

Optional.

Der Nutzername für die Authentifizierung beim Proxyserver.

Proxy Password

Optional.

Das Passwort, das zur Authentifizierung beim Proxyserver verwendet wird.

Environment Field Name

Optional.

Der Name des Felds, in dem der Name der Umgebung gespeichert ist.

Wenn das Feld „environment“ fehlt, wird der Standardwert verwendet.

Der Standardwert ist "".

Environment Regex Pattern

Optional.

Ein reguläres Ausdrucksmuster, das auf den Wert im Feld Environment Field Name angewendet wird. Mit diesem Parameter können Sie das Feld „environment“ mithilfe der Logik für reguläre Ausdrücke bearbeiten.

Verwenden Sie den Standardwert .*, um den erforderlichen Rohwert Environment Field Name abzurufen.

Wenn das Muster des regulären Ausdrucks null oder leer ist oder der Umgebungswert null ist, ist das endgültige Umgebungsergebnis die Standardumgebung.

Der Standardwert ist .*.

Unterstützung von Notationen

Der Connector unterstützt drei verschiedene Notationen für die Feldzuordnung. Wenn Sie beispielsweise event.type zuordnen möchten, können Sie _source_event_type, event_type oder event.type angeben.

Dies gilt für die folgenden Parameter:

  • Product Field Name
  • Event Field Name
  • Severity Field Name
  • Environment Field Name
  • Timestamp Field
  • Alert Field Name
  • Description Field (nur DSL-Anschluss)

Schweregrad im Connector zuordnen

Wenn Severity Field Name numerische Werte (Ganzzahlen oder Gleitkommazahlen) enthält, werden sie vom Connector so zugeordnet:

  • Kritisch: 100
  • Hoch: 80 ≤ x < 100
  • Mittel: 60 ≤ x < 80
  • Niedrig: 40 ≤ x < 60
  • Informational: x < 40

Bei String-Werten müssen Sie die Datei severity_map_config.json im Ordner mit den Connector-Scripts aktualisieren.

Konfigurationsbeispiel

So ordnen Sie ein event.severity-Feld mit „Schadsoftware“, „Unbekannt“ oder „Gutartig“ zu:

  1. Geben Sie im Parameter Severity Field Name den Wert event.severity ein.
  2. Aktualisieren Sie severity_map_config.json:
{
    "event.severity": {
        "Malicious": 100,
        "Unknown": 60,
        "Benign": -1
    },
    "Default": 50
}

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