Pub/Sub in Google SecOps einbinden

In diesem Dokument finden Sie eine Anleitung zur Integration von Pub/Sub in Google Security Operations (Google SecOps).

Integrationsversion: 1.0

Hinweise

Für die Verwendung der Pub/Sub-Integration benötigen Sie Folgendes:

  • Google Cloud Dienstkonto: Sie können ein vorhandenes Dienstkonto verwenden oder ein neues erstellen.

    Eine Anleitung zum Erstellen eines Dienstkontos finden Sie unter Dienstkonten erstellen.

    Wenn Sie ein Dienstkonto zur Authentifizierung bei Google Cloudverwenden, können Sie einen Dienstkontoschlüssel in JSON erstellen und den Inhalt der heruntergeladenen JSON-Datei bei der Konfiguration der Integrationsparameter angeben.

    Hinweis:Aus Sicherheitsgründen empfehlen wir, anstelle eines Dienstkontoschlüssels eine E‑Mail-Adresse für die Workload Identity zu verwenden. Weitere Informationen zu Workload Identitys finden Sie unter Identitäten für Workloads.

  • Konfigurieren Sie die IAM-Rolle für Ihr Hauptkonto.

    Pub/Sub verwendet die Identitäts- und Zugriffsverwaltung (IAM) für die Zugriffssteuerung und erfordert, dass Sie Ihrem Hauptkonto die Rolle Pub/Sub Viewer zuweisen.

Integrationsparameter

Für die Pub/Sub-Integration sind die folgenden Parameter erforderlich:

Parameter Beschreibung
Workload Identity Email Optional

Die Client-E-Mail-Adresse Ihrer Identitätsföderation von Arbeitslasten.

Sie können diesen Parameter oder den Parameter Service Account JSON File Content konfigurieren.

Um die Identität von Dienstkonten mit der Workload Identity Federation zu übernehmen, weisen Sie Ihrem Dienstkonto die Rolle Service Account Token Creator zu. Weitere Informationen zu Workload Identitys und deren Verwendung finden Sie unter Identitäten für Arbeitslasten.

Service Account JSON File Content Optional

Der Inhalt der JSON-Datei des Dienstkontoschlüssels.

Sie können diesen Parameter oder den Parameter Workload Identity Email konfigurieren.

Geben Sie zum Konfigurieren dieses Parameters den vollständigen Inhalt der JSON-Datei des Dienstkontoschlüssels an, die Sie beim Erstellen eines Dienstkontos heruntergeladen haben.

Weitere Informationen zur Verwendung von Dienstkonten als Authentifizierungsmethode finden Sie unter Dienstkonten – Übersicht.

Quota Project ID Optional

Die Google Cloud -Projekt-ID, die Sie für Google Cloud APIs und Abrechnung verwenden. Für diesen Parameter müssen Sie Ihrem Dienstkonto die Rolle Service Usage Consumer zuweisen. Weitere Informationen zu den IAM-Rollen finden Sie unter Zugriffssteuerung mit IAM.

Der Parameterwert wird von der Integration an alle API-Anfragen angehängt.

Wenn Sie keinen Wert für diesen Parameter festlegen, ruft die Integration die Projekt-ID für das Kontingent aus Ihrem Google Cloud Dienstkonto ab.

Project ID Optional

Die Projekt-ID, die in der Integration verwendet werden soll.

Wenn Sie keinen Wert für diesen Parameter festlegen, ruft die Integration die Projekt-ID aus Ihrem Google Cloud Dienstkonto ab.

Verify SSL Erforderlich

Wenn diese Option ausgewählt ist, prüft die Integration, ob das SSL-Zertifikat für die Verbindung zu Pub/Sub gültig ist.

Standardmäßig ausgewählt.

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 Auf ausstehende Aktionen in „Mein Arbeitsbereich“ reagieren und Manuelle Aktion ausführen.

Ping

Verwenden Sie die Aktion „Ping“, um die Verbindung zu Pub/Sub 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
Ausgabemeldungen Verfügbar
Scriptergebnis Verfügbar
Ausgabemeldungen

Die Aktion Ping kann die folgenden Ausgabenachrichten zurückgeben:

Ausgabemeldung Nachrichtenbeschreibung
Successfully connected to the Pub/Sub server with the provided connection parameters! Die Aktion wurde ausgeführt.
Failed to connect to the Pub/Sub server! Error is ERROR_REASON

Die Aktion ist fehlgeschlagen.

Überprüfen Sie die Verbindung zum Server, die Eingabeparameter oder die Anmeldedaten.

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

Connectors

Eine ausführliche Anleitung zum Konfigurieren eines Connectors in Google SecOps finden Sie unter Daten aufnehmen (Connectors).

Pub/Sub – Messages Connector

In der Google SecOps-Plattform heißt der Pub/Sub – Messages Connector PubSub – Messages Connector.

Verwenden Sie den Pub/Sub – Messages Connector, um Nachrichten aus Pub/Sub abzurufen.

JSON-Schweregradzuordnung

Um den Schweregrad der Benachrichtigung zuzuordnen, müssen Sie angeben, welches Feld der Pub/Sub – Messages Connector verwendet, um den Wert für den Schweregrad im Parameter Severity Mapping JSON abzurufen. Die Connector-Antwort kann Werttypen wie integer, float und string enthalten.

Der Pub/Sub – Messages Connector liest die Werte integer und float und ordnet sie gemäß den Google SecOps-Einstellungen zu. In der folgenden Tabelle sehen Sie die Zuordnung der integer-Werte zum Schweregrad in Google SecOps:

Ganzzahlwert Zugeordneter Schweregrad
100 Critical
Von 80 bis 100 High
Von 60 bis 80 Medium
Von 40 bis 60 Low
Weniger als 40 Informational

Wenn die Antwort den Wert string enthält, muss der Pub/Sub – Messages Connector zusätzlich konfiguriert werden.

Anfangs wird der Standardwert so angezeigt:

{
    "Default": 60
}

Wenn sich die für die Zuordnung erforderlichen Werte im JSON-Schlüssel event_severity befinden, können die Werte so aussehen:

  • "Malicious"
  • "Benign"
  • "Unknown"

Um die event_severity-JSON-Schlüsselwerte zu parsen und dafür zu sorgen, dass das JSON-Objekt das richtige Format hat, konfigurieren Sie den Parameter Severity Mapping JSON so:

{
    "event_severity": {
        "Malicious": 100,
        "Unknown": 60,
        "Benign": -1
    },
    "Default": 50
}

Der "Default"-Wert ist erforderlich.

Wenn es mehrere Übereinstimmungen für dasselbe JSON-Objekt gibt, priorisiert der Pub/Sub – Messages Connector den ersten JSON-Objektschlüssel.

Wenn Sie mit Feldern arbeiten möchten, die integer- oder float-Werte enthalten, konfigurieren Sie den Schlüssel und einen leeren String im Parameter Severity Mapping JSON:

{
  "Default":"60",
  "integer_field": "",
  "float_field": ""
}

Connector-Eingaben

Für den Pub/Sub – Messages Connector sind die folgenden Parameter erforderlich:

Parameter Beschreibung
Product Field Name Erforderlich

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

Der Standardwert ist Product Name.

Event Field Name Erforderlich

Der Feldname, der zum Bestimmen des Ereignisnamens (Untertyp) verwendet wird.

Der Standardwert ist event_type.

Environment Field Name Optional

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

Wenn das Feld „environment“ nicht gefunden wird, wird die Umgebung auf die Standardumgebung festgelegt.

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.

Script Timeout (Seconds) Erforderlich

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

Der Standardwert ist 300 seconds.

Service Account JSON File Content Optional

Der Inhalt der JSON-Datei des Dienstkontoschlüssels.

Sie können diesen Parameter oder den Parameter Workload Identity Email konfigurieren.

Geben Sie zum Konfigurieren dieses Parameters den vollständigen Inhalt der JSON-Datei des Dienstkontoschlüssels an, die Sie beim Erstellen eines Dienstkontos heruntergeladen haben.

Beim Pub/Sub – Messages-Connector hat die Authentifizierung mit der JSON-Datei des Dienstkontoschlüssels Vorrang vor der Workload Identity-Föderation.

Workload Identity Email Optional

Die Client-E‑Mail-Adresse Ihres Dienstkontos.

Sie können diesen Parameter oder den Parameter Service Account JSON File Content konfigurieren.

Um die Identität von Dienstkonten mit der Workload Identity Federation zu übernehmen, weisen Sie Ihrem Dienstkonto die Rolle Service Account Token Creator zu.

Project ID Optional

Die im Connector zu verwendende Projekt-ID.

Quota Project ID Optional

Die Google Cloud -Projekt-ID, die Sie für Google Cloud APIs und Abrechnung verwenden. Für diesen Parameter müssen Sie Ihrem Dienstkonto die Rolle Service Usage Consumer zuweisen. Weitere Informationen zu den IAM-Rollen finden Sie unter Zugriffssteuerung mit IAM.

Der Parameterwert wird von der Integration an alle API-Anfragen angehängt.

Subscription ID Erforderlich

Die Pub/Sub-Abo-ID.

Case Name Template Optional

Ein benutzerdefinierter Fallname.

Wenn Sie diesen Parameter konfigurieren, fügt der Connector dem Google SecOps-Ereignis einen neuen Schlüssel namens custom_case_name hinzu.

Sie können Platzhalter im folgenden Format angeben: [name of the field].

Beispiel: Phishing - [event_mailbox]

Bei Platzhaltern wird das erste Google SecOps-Ereignis verwendet. Der Connector verarbeitet nur Schlüssel, die den Stringwert enthalten. Wenn Sie diesen Parameter konfigurieren möchten, geben Sie Ereignisfelder ohne Präfixe an.

Alert Name Template Erforderlich

Ein benutzerdefinierter Name für die Benachrichtigung.

Sie können Platzhalter im folgenden Format angeben: [name of the field].

Beispiel: Phishing - [event_mailbox].

Bei Platzhaltern wird das erste Google SecOps-Ereignis verwendet. Der Connector verarbeitet nur Schlüssel, die den Stringwert enthalten. Wenn Sie keinen Wert angeben oder eine ungültige Vorlage verwenden, verwendet der Connector einen Fallback-Wert im folgenden Format: CONNECTOR_NAME - Alert. Wenn Sie diesen Parameter konfigurieren möchten, geben Sie Ereignisfelder ohne Präfixe an.

Rule Generator Template Erforderlich

Ein Generator für benutzerdefinierte Regeln.

Sie können Platzhalter im folgenden Format angeben: [name of the field].

Beispiel: Phishing - [event_mailbox].

Bei Platzhaltern wird das erste Google SecOps-Ereignis verwendet. Der Connector verarbeitet nur Schlüssel, die den Stringwert enthalten. Wenn Sie keinen Wert angeben oder eine ungültige Vorlage verwenden, verwendet der Connector einen Fallback-Wert im folgenden Format: CONNECTOR_NAME - Rule Generator. Wenn Sie diesen Parameter konfigurieren möchten, geben Sie Ereignisfelder ohne Präfixe an.

Timestamp Field Erforderlich

Der Name des Felds, mit dem der Zeitstempel für Google SecOps-Benachrichtigungen definiert wird.

Wenn der Zeitstempel nicht das Unix-Epochenzeitformat verwendet, definieren Sie das Zeitstempelformat im Parameter Timestamp Format.

Der Standardwert ist message_publishTime.

Timestamp Format Optional

Das Format des Zeitstempels der Nachricht.

Der Connector benötigt den Zeitstempel, um die Nachricht richtig zu verarbeiten. Wenn der Zeitstempel nicht das UNIX-Epochenzeitformat verwendet und Sie kein Zeitstempelformat konfigurieren, schlägt die Verbindung fehl.

Der Standardwert ist %Y-%m-%dT%H:%M:%S.%fZ.

Severity Mapping JSON Erforderlich

Das JSON-Objekt, das definiert, wie der Connector die Wichtigkeitsstufe aus der Nachricht extrahiert.

Der Standardwert ist:

    {
      "Default": "60"
    }
    

Weitere Informationen zur Schweregradzuordnung finden Sie unter JSON-Schweregradzuordnung.

Unique ID Field Optional

Der Name des Felds, mit dem bestätigt wird, dass die Nachricht eindeutig ist.

Wenn Sie keinen Wert festlegen, generiert der Connector einen SHA-256-Hash und verwendet ihn als Kennung für die Nachricht.

Max Messages To Fetch Optional

Die maximale Anzahl der Nachrichten, die für jede Connector-Iteration verarbeitet werden sollen.

Die maximale Anzahl beträgt 100.

Disable Overflow Optional

Wenn diese Option ausgewählt ist, ignoriert der Connector den Google SecOps-Überlaufmechanismus beim Erstellen von Benachrichtigungen.

Standardmäßig ausgewählt.

Verify SSL Erforderlich

Wenn diese Option ausgewählt ist, prüft die Integration, ob das SSL-Zertifikat für die Verbindung zu Pub/Sub gültig ist.

Standardmäßig ausgewählt.

Proxy Server Address Optional

Die Adresse des zu verwendenden Proxyservers.

Proxy Username Optional

Der Proxy-Nutzername für die Authentifizierung.

Proxy Password Optional

Das Proxy-Passwort für die Authentifizierung.

Connector-Regeln

Der Pub/Sub – Messages Connector unterstützt Proxys.

Connector-Ereignisse

Das folgende Beispiel zeigt die JSON-Ausgabe eines Google SecOps-Ereignisses, das vom Pub/Sub – Messages Connector generiert wird:

{
   "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/soar_connector_toxic_notifications_config",
   "finding": {
       "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
       "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
       "resourceName": "//compute.googleapis.com/projects/PROJECT_ID/global/firewalls/FIREWALL_ID",
       "state": "ACTIVE",
       "category": "OPEN_NETBIOS_PORT",
       "externalUri": "https://console.cloud.google.com/networking/firewalls/details/default-allow-rdp?project\u003dPROJECT_ID",
       "sourceProperties": {
           "Recommendation": "Restrict the firewall rules at: https://console.cloud.google.com/networking/firewalls/details/default-allow-rdp?project\u003dPROJECT_ID",
           "ExceptionInstructions": "Add the security mark \"allow_open_netbios_port\" to the asset with a value of \"true\" to prevent this finding from being activated again.",
           "Explanation": "Firewall rules that allow connections from all IP addresses on TCP ports 137-139 or UDP ports 137-139 may expose NetBIOS services to attackers.",
           "ScannerName": "FIREWALL_SCANNER",
           "ResourcePath": [
               "projects/PROJECT_ID/",
               "folders/FOLDER_ID/",
               "folders/FOLDER_ID/",
               "organizations/ORGANIZATION_ID/"
           ],
           "ExposedService": "NetBIOS",
           "OpenPorts": {
               "TCP": [
                   137.0,
                   138.0,
                   139.0
               ],
               "UDP": [
                   137.0,
                   138.0,
                   139.0
               ]
           },
           "compliance_standards": {
               "iso": [
                   {
                       "ids": [
                           "A.13.1.1"
                       ]
                   }
               ],
               "pci": [
                   {
                       "ids": [
                           "1.2.1"
                       ]
                   }
               ],
               "nist": [
                   {
                       "ids": [
                           "SC-7"
                       ]
                   }
               ]
           },
           "ReactivationCount": 4.0
       },
       "securityMarks": {
           "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
           "marks": {
               "peter": "e2e1"
           }
       },
       "eventTime": "2024-08-30T14:44:37.973090Z",
       "createTime": "2024-06-24T07:08:54.777Z",
       "propertyDataTypes": {
           "ResourcePath": {
               "listValues": {
                   "propertyDataTypes": [
                       {
                           "primitiveDataType": "STRING"
                       }
                   ]
               }
           },
           "ReactivationCount": {
               "primitiveDataType": "NUMBER"
           },
           "Explanation": {
               "primitiveDataType": "STRING"
           },
           "ExposedService": {
               "primitiveDataType": "STRING"
           },
           "ScannerName": {
               "primitiveDataType": "STRING"
           }
       }
   }
}

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