OpenSearch in Google SecOps einbinden

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 Bedrohungssuche: Regelmäßige Suche in allen OpenSearch-Indizes nach bestimmten Kompromittierungsindikatoren (IoCs) oder verdächtigen Mustern mithilfe von Lucene- und DSL-Abfragen.

  • Zentrale Benachrichtigungsaufnahme: Nehmen Sie Dokumente aus OpenSearch als umsetzbare Benachrichtigungen in Google SecOps auf, damit Sicherheitsereignisse aus Ihrem Data Lake priorisiert und untersucht werden.

  • Kontextbezogener Datenabruf: Bestehende Sicherheitsfälle werden automatisch mit relevanten Protokollen oder Verlaufsdaten aus OpenSearch angereichert, um Analysten während einer Untersuchung mehr Kontext zu bieten.

  • Flexible Datenzuordnung: Ordnen Sie Schweregrade und Umgebungstags aus OpenSearch-Dokumenten dynamisch Google SecOps-Standards zu, um die Konsistenz über verschiedene Logquellen hinweg zu wahren.

Hinweis

Bevor Sie die Integration in der Google SecOps-Plattform konfigurieren, prüfen Sie, ob Folgendes vorhanden ist:

  • CA-Zertifikatsdatei: Eine gültige Zertifizierungsstellendatei zum Sichern der Verbindung.

  • Aktuelle 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-Zertifikatsdatei ein.
  3. Klicken Sie das Kästchen SSL überprüfen an.
  4. Klicken Sie auf Testen, um zu prüfen, ob die Integration richtig konfiguriert ist.

Integrationsparameter

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

Parameter Beschreibung
Server Address

Pflichtangabe.

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

Username

Optional.

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

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 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, validiert die Integration das SSL-Zertifikat, wenn eine Verbindung zum OpenSearch-Server hergestellt wird.

CA Certificate File

Optional.

Der Inhalt der Zertifikatsdatei der Zertifizierungsstelle (Certificate Authority, CA) im PEM-Format, die zur Überprüfung des SSL-Zertifikats des Servers verwendet wird.

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

Sie können später bei Bedarf Ä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 Auf ausstehende Aktionen im Workdesk reagieren und Manuelle Aktion in einem Fall ausführen.

Verwenden Sie die Aktion Erweiterte ES-Suche, um eine vorkonfigurierte Suchanfrage auf dem OpenSearch-Server auszuführen und die Ergebnisse im Wörterbuchformat abzurufen.

Diese Aktion wird nicht für Google SecOps-Entitäten ausgeführt.

Aktionseingaben

Für die Aktion Erweiterte 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 mehrere Indexe zu durchsuchen (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. Legen Sie diesen Wert auf 0 fest, wenn kein Limit gelten soll.

Der Standardwert ist 100.

Display Field

Optional.

Eine durch Kommas getrennte Liste der zurückzugebenden Felder.

Der Standardwert ist * und gibt alle Felder zurück.

Search Field

Optional.

Das spezifische Feld, das durchsucht werden soll, wenn Query keinen Zielfeldnamen enthält. Dies dient als Standard-Suchziel für Freitextabfragen.

Der Standardwert ist _all, wodurch alle indexierten Felder durchsucht werden.

Timestamp Field

Optional.

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

Wenn sowohl Earliest Date als auch Oldest Date leer sind, wird die Aktion nicht zeitbasiert gefiltert.

Der Standardwert ist @timestamp.

Oldest Date

Optional.

Das Startdatum für die Suche. Die Aktion gibt Datensätze zurück, die am 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 liefert die folgenden Ausgaben:

Aktionsausgabetyp Verfügbarkeit
Anhang im Fall-Repository Nicht verfügbar
Link zum Fall-Repository Nicht verfügbar
Tabelle mit 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 Erweiterte ES-Suche verwendet wird:

Name des Skriptergebnisses Wert
results RESULTS

Mit der Aktion DSL-Suche 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-Entitäten ausgeführt.

Aktionseingaben

Für die Aktion DSL-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 mehrere Indexe zu durchsuchen (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. Legen Sie diesen Wert auf 0 fest, wenn kein Limit gelten soll.

Der Standardwert ist 100.

Aktionsausgaben

Die Aktion DSL-Suche liefert die folgenden Ausgaben:

Aktionsausgabetyp Verfügbarkeit
Anhang im Fall-Repository Nicht verfügbar
Link zum Fall-Repository Nicht verfügbar
Tabelle mit 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-Suche zurückgegeben 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 sind die Werte für die Ausgabe des Skriptergebnisses aufgeführt, wenn die Aktion DSL-Suche verwendet wird:

Name des Skriptergebnisses Wert
results RESULTS

Ping

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

Diese Aktion wird nicht für Google SecOps-Entitäten ausgeführt.

Aktionseingaben

Keine.

Aktionsausgaben

Die Aktion Ping liefert die folgenden Ausgaben:

Aktionsausgabetyp Verfügbarkeit
Anhang im Fall-Repository Nicht verfügbar
Link zum Fall-Repository Nicht verfügbar
Tabelle mit 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 Skriptergebnisses 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 im Wörterbuchformat abrufen.

Diese Aktion wird nicht für Google SecOps-Entitäten 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 mehrere Indexe zu durchsuchen (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. Legen Sie diesen Wert auf 0 fest, wenn kein Limit gelten soll.

Der Standardwert ist 100.

Aktionsausgaben

Die Aktion Einfache ES-Suche liefert die folgenden Ausgaben:

Aktionsausgabetyp Verfügbarkeit
Anhang im Fall-Repository Nicht verfügbar
Link zum Fall-Repository Nicht verfügbar
Tabelle mit 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 aufgeführt, wenn die Aktion Einfache ES-Suche verwendet wird:

Name des Skriptergebnisses 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 angegebene OpenSearch-Indexe 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

Pflichtangabe.

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. Jede ungültige Eingabe für diesen Parameter wird standardmäßig in einen Fallback-Wert aufgelöst.

Der Standardwert ist Product Name.

Event Field Name

Pflichtangabe.

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

Der Standardwert ist name.

Script Timeout (Seconds)

Pflichtangabe.

Das Zeitlimit in Sekunden für den Python-Prozess, der das aktuelle Script ausführt.

Der Standardwert ist 180.

Server Address

Pflichtangabe.

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

Username

Optional.

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

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 Passwort verwendet wird.

Verify SSL

Optional.

Wenn diese Option ausgewählt ist, validiert die Integration das SSL-Zertifikat, wenn eine Verbindung zum OpenSearch-Server hergestellt wird.

Alert Name Field

Pflichtangabe.

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

Timestamp Field

Pflichtangabe.

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

Environment Field Name

Optional.

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

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

Der Standardwert ist "".

Indexes

Optional.

Das Indexmuster, nach dem gesucht werden soll. Verwenden Sie *, um in allen Indexen zu suchen.

Query

Optional.

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

Alerts Count Limit

Pflichtangabe.

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

Der Standardwert ist 20.

Max Days Backwards

Pflichtangabe.

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

Dieser Parameter kann für die erste Connector-Iteration gelten, nachdem Sie den Connector zum ersten Mal aktiviert haben, oder für den Fallback-Wert für einen abgelaufenen Connector-Zeitstempel.

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, ordnet der Connector sie automatisch den Google SecOps-Schweregraden zu (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, der für die Authentifizierung beim Proxyserver verwendet wird.

Proxy Password

Optional.

Das Passwort, das für die Authentifizierung beim Proxyserver verwendet wird.

Environment Regex Pattern

Optional.

Ein reguläres Ausdrucksmuster, das für den im Feld Environment Field Name gefundenen Wert ausgeführt werden soll. Mit diesem Parameter können Sie das Umgebungsfeld mithilfe der Logik regulärer 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

Verwenden Sie den OpenSearch DSL-Connector, um Dokumente als Warnungen in Google SecOps aufzunehmen. Dazu führen Sie REST API-Aufrufe mit DSL-Abfragen (Domain Specific Language) aus.

Connector-Eingaben

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

Parameter Beschreibung
Product Field Name

Pflichtangabe.

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. Jede ungültige Eingabe für diesen Parameter wird standardmäßig in einen Fallback-Wert aufgelöst.

Der Standardwert ist Product Name.

Der Standardwert ist device_product.

Event Field Name

Pflichtangabe.

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

Der Standardwert ist name.

Script Timeout (Seconds)

Pflichtangabe.

Das Zeitlimit in Sekunden für den Python-Prozess, der das aktuelle Script ausführt.

Der Standardwert ist 60.

Server Address

Pflichtangabe.

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

Port

Pflichtangabe.

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

Query

Pflichtangabe.

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

Um die Stabilität des Connectors zu verbessern, wird empfohlen, einen Sortierschlüssel für Zeitstempel in aufsteigender Reihenfolge in Ihre Abfrage aufzunehmen.

Index

Pflichtangabe.

Der für die Suche verwendete Index. Verwenden Sie _all, um in allen Indexen zu suchen.

Timestamp Field

Pflichtangabe.

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

Alert Field Name

Pflichtangabe.

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 Beschreibung der Benachrichtigung enthält (z. B. _source_alert_info_description).

Severity

Pflichtangabe.

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 die dynamische Zuordnung 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, ordnet der Connector sie automatisch den Google SecOps-Schweregraden zu (z. B. 100 ist Critical). Wenn das Feld Stringwerte 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 für die Authentifizierung bei der OpenSearch-Instanz.

Password

Optional.

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

Use SSL

Optional.

Wenn diese Option ausgewählt ist, aktiviert 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, der für die Authentifizierung beim Proxyserver verwendet wird.

Proxy Password

Optional.

Das Passwort, das für die Authentifizierung beim Proxyserver verwendet wird.

Environment Field Name

Optional.

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

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

Der Standardwert ist "".

Environment Regex Pattern

Optional.

Ein reguläres Ausdrucksmuster, das für den im Feld Environment Field Name gefundenen Wert ausgeführt werden soll. Mit diesem Parameter können Sie das Umgebungsfeld mithilfe der Logik regulärer 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 für 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-Connector)

Schweregrad im Connector zuordnen

Wenn die Severity Field Name numerische Werte (Ganzzahlen oder Gleitkommazahlen) enthält, ordnet der Connector sie so zu:

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

Für Stringwerte müssen Sie die Datei severity_map_config.json im Ordner mit den Connector-Skripts aktualisieren.

Konfigurationsbeispiel

So ordnen Sie ein event.severity-Feld zu, das „Malicious“, „Unknown“ oder „Benign“ enthält:

  1. Geben Sie event.severity in den Parameter Severity Field Name 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