Forwarder Management API

Mit der Google Security Operations Forwarder Management API können Sie Folgendes programmatisch ausführen:

  • Weiterleitungen erstellen und verwalten
  • Sammler erstellen und verwalten
  • Dateiinhalte für die Konfigurationsdatei (.conf) und die Authentifizierungsdatei (_auth.conf) eines Google Security Operations-Weiterleiters abrufen

Forwarder bestehen aus einem oder mehreren Collectorn. In der Konfiguration jedes Collectors werden der Aufnahmemechanismus (z. B. Datei, Kafka, PCAP, Splunk oder Syslog) und der Log-Typ angegeben.

Vorausgesetzt, die Hardwareanforderungen sind erfüllt, können Sie viele Collector auf demselben Forwarder verwenden, um Daten aus einer Vielzahl von Mechanismen und Protokolltypen aufzunehmen. Sie können beispielsweise einen Weiterleiter mit zwei syslog-Empfängern installieren, die jeweils auf PAN_FIREWALL- und CISCO_ASA_FIREWALL-Daten an separaten Ports warten.

Mit der API können Sie Weiterleitungen und ihre Collector in Ihrer Google Security Operations-Instanz erstellen. Nachdem ein Weiterleiter erstellt wurde, können Sie über den Endpunkt „Generate Forwarder Files“ (Weiterleiterdateien generieren) den Dateiinhalt (als JSON-Nutzlast) für die Konfigurationsdatei (.conf) und die Authentifizierungsdatei (_auth.conf) eines Weiterleiters abrufen. Diese Inhalte können dann in die entsprechenden .conf-Dateien für die Bereitstellung mit dem Google Security Operations-Weiterleitungsdienst auf einem Windows- oder Linux-System geschrieben werden.

Python-Beispiele für die Forwarder Management API finden Sie im GitHub-Repository.

Weiterleitung und Collector(s) erstellen

Ein Weiterleiter muss erstellt werden, bevor seine entsprechenden Collector erstellt werden können.

So erstellen Sie einen Weiterleiter und seine Collector:

  1. Weiterleitung erstellen
  2. Erstellen Sie einen Dispatcher für den Forwarder.
  3. Optional: Wiederholen Sie Schritt 2, um weitere Messstationen hinzuzufügen.

Authentifizierung mit der Google Security Operations API

Bei dieser Google Security Operations API wird das OAuth 2.0-Protokoll für die Authentifizierung und Autorisierung verwendet. Ihre Anwendung kann diese Aufgaben mit einer der folgenden Implementierungen ausführen:

  • Verwenden Sie die Google API-Clientbibliothek für Ihre Computersprache.

  • Direkte Schnittstelle zum OAuth 2.0-System über HTTP

Weitere Informationen finden Sie in der Referenzdokumentation für die Google Authentication Library in Python.

Google-Authentifizierungsbibliotheken sind eine Teilmenge der Google API-Clientbibliotheken. Weitere Informationen finden Sie unter Implementierungen in anderen Sprachen.

API-Authentifizierungsdaten abrufen

Ihr Ansprechpartner für die Google-Sicherheitsoperationen stellt Ihnen Anmeldedaten für ein Google Developer-Dienstkonto zur Verfügung, damit der API-Client mit der API kommunizieren kann.

Außerdem musst du den Authentifizierungsbereich angeben, wenn du deinen API-Client initialisierst. Bei OAuth 2.0 wird der Zugriff einer Anwendung auf ein Konto mithilfe eines Bereichs eingeschränkt. Wenn eine Anwendung einen Bereich anfordert, ist das für die Anwendung ausgestellte Zugriffstoken auf den gewährten Bereich beschränkt.

Verwenden Sie den folgenden Umfang, um Ihren Google API-Client zu initialisieren:

https://www.googleapis.com/auth/chronicle-backstory

Beispiel für Python

Im folgenden Python-Beispiel wird gezeigt, wie die OAuth2-Anmeldedaten und der HTTP-Client mit google.oauth2 und googleapiclient verwendet werden.

# Imports required for the sample - Google Auth and API Client Library Imports.
# Get these packages from https://pypi.org/project/google-api-python-client/ or run $ pip
# install google-api-python-client from your terminal
from google.auth.transport import requests
from google.oauth2 import service_account

SCOPES = ['https://www.googleapis.com/auth/chronicle-backstory']

# The apikeys-demo.json file contains the customer's OAuth 2 credentials.
# SERVICE_ACCOUNT_FILE is the full path to the apikeys-demo.json file
# ToDo: Replace this with the full path to your OAuth2 credentials
SERVICE_ACCOUNT_FILE = '/customer-keys/apikeys-demo.json'

# Create a credential using Google Developer Service Account Credential and Google Security Operations API
# Scope.
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)

# Build a requests Session Object to make authorized OAuth requests.
http_session = requests.AuthorizedSession(credentials)

# Your endpoint GET|POST|PATCH|etc. code will vary below

# Reference List example (for US region)
url = 'https://backstory.googleapis.com/v2/lists/COLDRIVER_SHA256'

# You might need another regional endpoint for your API call; see
# https://cloud.google.com/chronicle/docs/reference/ingestion-api#regional_endpoints

# requests GET example
response = http_session.request("GET", url)

# POST example uses json
body = {
  "foo": "bar"
}
response = http_session.request("POST", url, json=body)

# PATCH example uses params and json
params = {
  "foo": "bar"
}
response = http_session.request("PATCH", url, params=params, json=body)

# For more complete examples, see:
# https://github.com/chronicle/api-samples-python/

Limits für Chronicle API-Abfragen

Die Chronicle API erzwingt Limits für die Anzahl der Anfragen, die von einem einzelnen Kunden an die Google Security Operations-Plattform gesendet werden können. Wenn Sie das Abfragelimit erreichen oder überschreiten, gibt der Chronicle API-Server den HTTP-Fehler 429 (RESOURCE_EXHAUSTED) an den Aufrufer zurück. Wenn Sie Anwendungen für die Chronicle API entwickeln, empfiehlt Google, Ratenlimits in Ihrem System zu erzwingen, um eine Ressourcenausschöpfung zu vermeiden. Diese Limits gelten für alle Chronicle APIs, einschließlich der Search API, der Forwarder Management API und der Tooling API.

Eine detaillierte Liste der Limits für Chronicle API-Abfragen

Für die Chronicle Forwarder Management API gilt das folgende Limit, das in Abfragen pro Sekunde (QPS) gemessen wird:

Chronicle API API-Endpunkt Limit
Forwarder-Verwaltung Weiterleitung erstellen 1 Abfrage pro Sekunde
Forwarder abrufen 1 Abfrage pro Sekunde
Weiterleitungen auflisten 1 Abfrage pro Sekunde
Weiterleitung aktualisieren 1 Abfrage pro Sekunde
Weiterleitung löschen 1 Abfrage pro Sekunde
Collector-Verwaltung Collector erstellen 1 Abfrage pro Sekunde
Collector abrufen 1 Abfrage pro Sekunde
Datensammler auflisten 1 Abfrage pro Sekunde
Collector aktualisieren 1 Abfrage pro Sekunde
Collector löschen 1 Abfrage pro Sekunde

Forwarder API-Referenz

In diesem Abschnitt werden die Endpunkte zum Erstellen und Verwalten von Weiterleitungen beschrieben. Endpunkte zum Erstellen und Verwalten von Collectorn finden Sie in der Collector API-Referenz.

Weiterleitung erstellen

Erstellt einen neuen Weiterleiter in der Google SecOps-Instanz. Der neue Weiterleiter enthält alle Konfigurationswerte für Weiterleiter, die im Anfragetext angegeben sind. Konfigurationswerte für Sammler müssen mit „Create Collector“ (Sammler erstellen) angegeben werden, nachdem Sie „Create Forwarder“ (Weiterleiter erstellen) verwendet haben.

Bei bestimmten Einstellungen werden Konfigurationswerte, die im Anfragetext fehlen oder den Wert „0“ haben, auf Standardwerte gesetzt. Weitere Informationen zu Feldern und Werten für den Forwarder finden Sie unter Konfigurationsfelder für Forwarder.

Anfrage

POST https://backstory.googleapis.com/v2/forwarders

Anfragetext
{
  "display_name": string,
  "config": {
    object (ForwarderConfig)
  }
}
Körperparameter
Feld Typ Erforderlich Beschreibung
display_name String Erforderlich Der Name des Absenders. Dieser Name wird in der Google SecOps-Benutzeroberfläche angezeigt.
config object Optional Die Konfigurationseinstellungen für diesen Weiterleiter. Siehe Konfigurationsfelder für Weiterleitungen.
Beispielanfrage

In diesem Beispiel sind die erforderlichen Schlüssel/Wert-Paare in einer Create Forwarder-Anfrage zu sehen. Wenn ein Feld in der Anfrage nicht angegeben ist und einen Standardwert hat, wird dieser Standardwert beim Erstellen des Weiterleitungsservers angewendet. Weitere Informationen zu Standardwerten finden Sie unter Konfigurationsfelder für Weiterleitungen.

POST https://backstory.googleapis.com/v2/forwarders
{
  "display_name": "chronicle_forwarder"
}

Antwort

Bei einer erfolgreichen Anfrage wird in der Antwort der HTTP-Statuscode 200 (OK) zurückgegeben.

Die Antwort enthält die Konfigurationswerte, die beim Erstellen des Weiterleitungsservers angewendet wurden. Für bestimmte Einstellungen werden beim Erstellen von Ressourcen Standardkonfigurationswerte angewendet, wenn diese Felder im Anfragetext fehlen oder den Wert „0“ haben. Weitere Informationen finden Sie unter Konfigurationsfelder für Weiterleitungen.

Antwortfelder

Zusätzlich zu den in der Anfrage angegebenen Feldern und den Feldern, für die Standardwerte angewendet werden, enthält die Antwort die folgenden generierten und nur für die Ausgabe vorgesehenen Felder.

Feld Typ Beschreibung
Name String Die Ressourcen-ID des Absenders. Das Format ist „forwarders/forwarderID“. Beispiel:

forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56
Status enum

Gibt den aktuellen Status des Weiterleiters an. Gültige Werte sind:

  • AKTIV: Der Weiterleiter darf Daten hochladen.
  • SUSPENDED: Der Weiterleiter darf keine Daten hochladen.

Der Standardwert ist „AKTIV“.

Beispiel für eine Antwort

Dies ist ein Beispiel für die Antwort, die für die obige Beispielanfrage zurückgegeben wurde.

{
  "name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
  "displayName": "chronicle_forwarder",
  "config": {
    "uploadCompression": "false",
    "serverSettings": {
      "gracefulTimeout": 15,
      "drainTimeout": 10,
      "httpSettings": {
        "port": "8080",
        "host": "0.0.0.0",
        "readTimeout": "3",
        "readHeaderTimeout": "3",
        "writeTimeout": "3",
        "idleTimeout": "3"
        "routeSettings": {
          "availableStatusCode": "204",
          "readyStatusCode": "204",
          "unreadyStatusCode": "503"
        },
      },
    },
  },
  "state": "ACTIVE"
}

Forwarder abrufen

Gibt einen Weiterleiter zurück.

Anfrage

GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}

Anfragetext

Fügen Sie keinen Anfragetext hinzu.

Beispielanfrage
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Beispiel für eine Antwort
{
  "name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
  "displayName": "chronicle_forwarder",
  "config": {
    "uploadCompression": "false",
    "serverSettings": {
      "gracefulTimeout": 15,
      "drainTimeout": 10,
      "httpSettings": {
        "port": "8080",
        "host": "0.0.0.0",
        "readTimeout": "3",
        "readHeaderTimeout": "3",
        "writeTimeout": "3",
        "idleTimeout": "3"
        "routeSettings": {
          "availableStatusCode": "204",
          "readyStatusCode": "204",
          "unreadyStatusCode": "503"
        },
      },
    },
  },
  "state": "ACTIVE"
}

Weiterleitungen auflisten

Listet alle Weiterleitungen für eine Google SecOps-Instanz auf.

Anfrage

GET https://backstory.googleapis.com/v2/forwarders

Beispielanfrage

GET https://backstory.googleapis.com/v2/forwarders

Antwort

Gibt eine Liste von Weiterleitungen zurück.

Beispiel für eine Antwort
{
  "forwarders": [
    {
      "name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
      "displayName": "chronicle_forwarder_1",
      "config": {
        "uploadCompression": "false",
        "serverSettings": {
          "gracefulTimeout": 15,
          ...
         },
      },
      "state": "ACTIVE"
    },
    {
      "name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde57",
      "displayName": "chronicle_forwarder_2",
      "config": {
        "uploadCompression": "false",
        "serverSettings": {
          "gracefulTimeout": 15,
       ...
       },
      },
      "state": "ACTIVE"
    }
  ]
}

Weiterleitung aktualisieren

Sie können einen Weiterleiter aktualisieren, indem Sie mit dem URL-Abfrageparameter updateMask die zu aktualisierenden Felder angeben.

Wenn Sie beispielsweise den Anzeigenamen aktualisieren möchten, verwenden Sie in der Patch-Anfrage den Abfrageparameter updateMask so:

?updateMask=displayName

Der Anfragetext sollte nur die Felder enthalten, die Sie aktualisieren möchten (an der richtigen Stelle).

Anfrage

PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}?updateMask=<field_1,field_2>
Anfragetext
{
  "display_name": string,
  "config": {
    object (ForwarderConfig)
  },
}
Körperparameter
Feld Typ Erforderlich Beschreibung
display_name String Erforderlich Der Name des Absenders. Dieser Name wird in der Google SecOps-Benutzeroberfläche angezeigt.
config object Optional Die Konfigurationseinstellungen für diesen Weiterleiter. Siehe Konfigurationsfelder für Weiterleitungen.
Beispielanfrage

Dies ist ein Beispiel für eine Update-Weiterleitungsanfrage, in der neue Werte für displayName angegeben und ein Metadatenlabel hinzugefügt werden.

PATCH https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56?updateMask=displayName,config.metadata.labels
{
  "display_name": "UpdatedForwarder",
  "config": {
    "metadata": {
      "labels": [
        {
          "key": "office",
          "value": "corporate",
        }
      ]
    }
  }
}
Beispiel für eine Antwort

Dies ist ein Beispiel für die Antwort, die für die obige Beispielanfrage zurückgegeben wurde.

{
  "name": "forwarders/{forwarderUUID}",
  "displayName": "UpdatedForwarder",
  "config": {
    "uploadCompression": "false",
    "metadata": {
      "labels": [
        {
          "key": "office",
          "value": "corporate"
        }
      ]
    }
  },
  "state": "ACTIVE"
}

Weiterleitung löschen

Löscht einen Weiterleiter.

Anfrage

DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}
Anfragetext

Fügen Sie keinen Anfragetext hinzu.

Beispielanfrage
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Beispiel für eine Antwort

Wenn der Vorgang erfolgreich war, gibt „Delete Forwarder“ eine leere Antwort mit dem HTTP-Statuscode 200 (OK) zurück.

{}

Weiterleitungsdateien generieren

Generiert und gibt den Inhalt der Konfigurationsdatei (.conf) und der Authentifizierungsdatei (_auth.conf) des Weiterleiters zurück.

Anfrage

GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}:generateForwarderFiles
Anfragetext

Fügen Sie keinen Anfragetext hinzu.

Beispielanfrage
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56:generateForwarderFiles
Beispiel für eine Antwort

Bei einem erfolgreichen Vorgang wird der HTTP-Statuscode 200 (OK) zurückgegeben. Außerdem wird der Inhalt einer Konfigurationsdatei für den Forwarder zurückgegeben, einschließlich der Konfigurationsdaten für die Collector des Forwarders sowie der Inhalt der Authentifizierungsdatei (_auth.conf), die vom Forwarder zur Authentifizierung bei der Google SecOps-Instanz verwendet wird.

Felder für die Weiterleitungskonfiguration

In der folgenden Tabelle sind die Einstellungen für die Weiterleitungs-Konfiguration aufgeführt, die Sie mit „Weiterleitung erstellen“ und „Weiterleitung aktualisieren“ angeben können. Wenn Sie beim Erstellen eines Weiterleitungsservers keinen Wert für eine Einstellung angeben, wird der Standardwert der Einstellung (siehe unten) angewendet.

Die folgenden Felder können im config-Objekt des Anfragetexts angegeben werden.

Feld Typ Erforderlich Beschreibung
upload_compression bool Optional Bei true werden Datenblöcke vor dem Upload komprimiert.

Der Standardwert ist false.
metadata.asset_namespace String Optional Der Namespace zur Identifizierung von Protokollen von diesem Weiterleiter.

Hinweis:Dies ist eine globale Einstellung, die für den Forwarder und die Collector des Forwarders gilt, sofern sie nicht auf Collectorebene überschrieben wird. Weitere Informationen finden Sie unter Namespaces konfigurieren.
metadata.labels list Optional Eine Liste beliebiger Schlüssel/Wert-Paare, die in der Weiterleitungskonfiguration angegeben werden können.

Hinweis:Dies ist eine globale Einstellung, die für den Forwarder und die Collector des Forwarders gilt, sofern sie nicht auf Collectorebene überschrieben wird.
metadata.labels.key String Optional Der Schlüssel für ein Feld in der Liste der Metadatenlabels.
metadata.labels.value String Optional Der Wert für ein Feld in der Liste der Metadatenlabels.
regex_filters.description String Optional Hier wird beschrieben, was herausgefiltert wird und warum.
regex_filters.regexp String Optional Der reguläre Ausdruck, der mit jeder eingehenden Zeile abgeglichen wird.
regex_filters.behavior enum Optional

Gibt den Status der Serverfunktion an. Gültige Werte sind:

  • ALLOW: In diesem Status kann die gefilterte Zeile hochgeladen werden.
  • BLOCK: In diesem Status wird verhindert, dass die gefilterte Zeile hochgeladen wird.
server_settings object Optional Einstellungen für den integrierten HTTP-Server des Brokers, mit dem sich Load Balancing- und Hochverfügbarkeitsoptionen für die syslog-Erfassung unter Linux konfigurieren lassen.
server_settings.state enum Optional

Gibt den Status der Serverfunktion an. Gültige Werte sind:

  • AKTIV: In diesem Status werden die Servereinstellungen wie angegeben angewendet.
  • ANGESETZT In diesem Status werden die Servereinstellungen nicht angewendet.
server_settings.graceful_timeout integer Optional Die Anzahl der Sekunden, nach denen der Weiterleiter eine fehlerhafte Bereitschafts-/Systemdiagnose zurückgibt und trotzdem neue Verbindungen akzeptiert. Dies ist auch die Zeit, die zwischen dem Empfang eines Stoppsignals und dem tatsächlichen Herunterfahren des Servers vergeht. So hat der Load Balancer Zeit, den Weiterleiter aus dem Pool zu entfernen.

Der Standardwert ist 15.
server_settings.drain_timeout integer Optional Die Anzahl der Sekunden, nach denen der Weiterleiter wartet, bis aktive Verbindungen von selbst geschlossen wurden, bevor sie vom Server geschlossen werden.

Der Standardwert ist 10.
server_settings.http_settings.port integer Optional Die Portnummer, unter der der HTTP-Server Systemdiagnosen vom Load Balancer empfängt. Muss zwischen 1024 und 65535 liegen.

Der Standardwert ist 8080.
server_settings.http_settings.host String Optional Die IP-Adresse oder der Hostname, der in IP-Adressen aufgelöst werden kann, auf die der Server hören soll.

Der Standardwert ist 0.0.0.0 (das lokale System).
server_settings.http_settings.read_timeout integer Optional Die maximale Anzahl von Sekunden, die zum Lesen ganzer Anfragen benötigt werden, einschließlich Header und Text.

Der Standardwert ist 3.
server_settings.http_settings.read_header_timeout integer Optional Die maximale Anzahl von Sekunden, die zum Lesen von Anfrageheadern zulässig ist.

Der Standardwert ist 3.
server_settings.http_settings.write_timeout integer Optional Die maximale Anzahl von Sekunden, die für das Senden einer Antwort zulässig ist.

Der Standardwert ist 3.
server_settings.http_settings.idle_timeout integer Optional Die maximale Wartezeit in Sekunden, die auf die nächste Anfrage gewartet wird, wenn inaktive Verbindungen aktiviert sind.

Der Standardwert ist 3.
server_settings.http_settings.route_settings.available_status_code integer Optional Der Statuscode, der zurückgegeben wird, wenn eine Aktivitätsprüfung empfangen und der Weiterleiter verfügbar ist.

Der Standardwert ist 204.
server_settings.http_settings.route_settings.ready_status_code integer Optional Der Statuscode, der zurückgegeben wird, wenn der Weiterleiter bereit ist, Traffic anzunehmen.

Der Standardwert ist 204.
server_settings.http_settings.route_settings.unready_status_code integer Optional Der Statuscode, der zurückgegeben wird, wenn der Weiterleiter nicht bereit ist, Traffic anzunehmen.

Der Standardwert ist 503.

Collector API-Referenz

In diesem Abschnitt werden die Endpunkte für die Arbeit mit Collectorn beschrieben.

Beim Erstellen und Aktualisieren von Collectors können Sie für jede Collector-Konfiguration Aufnahmeeinstellungen für genau einen der folgenden Punkte angeben:

  • Daten aus Protokolldateien
  • Kafka-Topics
  • Paketdaten (pcap)
  • Splunk-Daten
  • Syslog-Daten

Endpunkte für die Arbeit mit Spediteuren finden Sie in der Forwarder API-Referenz.

Collector erstellen

Erstellt einen neuen Collector im Google SecOps-Konto. Konfigurationswerte für Collector müssen mit „Create Collector“ (Empfänger erstellen) angegeben werden, nachdem Sie „Create Forwarder“ (Weiterleitung erstellen) verwendet haben.

Bei bestimmten Einstellungen werden Konfigurationswerte, die im Anfragetext fehlen oder den Wert „0“ haben, auf Standardwerte gesetzt. Weitere Informationen zu den Konfigurationsfeldern und ‑werten von Messwerterfassungen finden Sie unter Konfigurationsfelder für Messwerterfassungen.

Anfrage

POST https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Anfragetext
{
  "display_name": string,
  "config": {
    object (CollectorConfig)
  }
  "state": enum
}
Körperparameter
Feld Typ Erforderlich Beschreibung
display_name String Erforderlich Der Name des Collectors. Dieser Name wird in der Google SecOps-Benutzeroberfläche angezeigt.
config object Erforderlich Die Konfigurationseinstellungen für diesen Collector. Weitere Informationen finden Sie unter Felder für die Collector-Konfiguration.
Status enum Optional

Gibt den aktuellen Status des Collectors an. Gültige Werte sind:

  • AKTIV: Der Collector darf Daten akzeptieren.
  • AUSGESTELLT: Der Daten-Collector darf keine Daten akzeptieren.
Beispielanfrage

In diesem Beispiel sind die erforderlichen Schlüssel/Wert-Paare in einer Create Collector-Anfrage zu sehen. Für nicht angegebene Felder werden beim Erstellen des Collectors Standardwerte angewendet.

In diesem Beispiel ist der Typ des Collectors file. Daher enthält die Collector-Konfiguration file_settings, um den Collector-Typ und seine Einstellungen anzugeben. Wenn der Typ des Collectors syslog ist, enthält die Collector-Konfiguration syslog_settings. Weitere Informationen finden Sie unter Konfigurationsfelder für Collector.

POST https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors
{
  "display_name": "abc_collector",
  "config" {
    "log_type": "CS_EDR"
    "file_settings": {
      "file_path": "/opt/chronicle/edr/output/sample.txt",
    }
  }
}

Antwort

Bei einer erfolgreichen Anfrage wird in der Antwort der HTTP-Statuscode 200 (OK) zurückgegeben.

Die Antwort enthält die Konfigurationswerte, die beim Erstellen des Collectors angewendet wurden. Für bestimmte Einstellungen werden beim Erstellen von Ressourcen Standardkonfigurationswerte angewendet, wenn diese Felder im Anfragetext fehlen oder den Wert „0“ haben. Weitere Informationen finden Sie unter Konfigurationsfelder für Collector.

Antwortfelder

Zusätzlich zu den in der Anfrage angegebenen Feldern und den Feldern, für die Standardwerte angewendet werden, enthält die Antwort die folgenden Felder:

Feld Typ Beschreibung
Name String Die Ressourcen-ID des Collectors. Das Format ist „forwarders/{forwarderID}/collectors/{collectorID}“. Beispiel:

forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Beispiel für eine Antwort

Dies ist ein Beispiel für die Antwort, die für die obige Beispielanfrage zurückgegeben wurde.

{
  "name": "forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56/collectors/
     98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
  "displayName": "abc_collector",
  "config": {
    "logType": "tomcat",
    "maxSecondsPerBatch": "10",
    "maxBytesPerBatch": "1048576"
  }
}

Collector abrufen

Gibt einen Collector zurück.

Anfrage

GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Anfragetext

Fügen Sie keinen Anfragetext hinzu.

Beispielanfrage
GET
https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Beispiel für eine Antwort
{
  "name": "?",
  "displayName": "abc_collector",
  "config": {
    "logType": "tomcat",
    "maxSecondsPerBatch": "10",
    "maxBytesPerBatch": "1048576"
  }
}

Collectors auflisten

Listet die vorhandenen Collector für den angegebenen Weiterleiter auf.

Anfrage

GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Beispielanfrage
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors

Antwort

Gibt mehrere Collector zurück.

Beispiel für eine Antwort
{
  "collectors": [
    {
      "name": "?",
      "displayName": "abc_collector_1",
      "config": {
        "logType": "tomcat",
        "maxSecondsPerBatch": "10",
        "maxBytesPerBatch": "1048576"
      }
    },
    {
      "name": "?",
      "displayName": "abc_collector_2",
      "config": {
        "logType": "tomcat",
        "maxSecondsPerBatch": "10",
        "maxBytesPerBatch": "1048576"
      }
    }
  ]
}

Collector aktualisieren

Wenn Sie einen Collector mit der API aktualisieren, können Sie die gesamte Collector-Konfiguration oder nur bestimmte Felder der Collector-Konfiguration überschreiben. In der Regel empfiehlt es sich, bestimmte Felder zu überschreiben, damit Sie nicht versehentlich alle Daten überschreiben. Wenn Sie bestimmte Felder überschreiben möchten, geben Sie in Ihrer Aktualisierungsanfrage eine Feldmaske an.

Wenn Sie eine FieldMask angeben möchten, um den Anzeigenamen für einen Messwert zu aktualisieren, geben Sie den URL-Abfrageparameter „updateMask“ in der Patch-Anfrage an. Beispiel:

?updateMask=displayName

Der Anfragetext sollte nur die Felder enthalten, die Sie aktualisieren möchten (an der richtigen Stelle).

Anfrage

PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}?updateMask=<field_1,field_2>
Anfragetext
{
  "display_name": string,
  "config": {
    object (CollectorConfig)
  },
}
Körperparameter
Feld Typ Erforderlich Beschreibung
displayName String Erforderlich Der Name des Collectors. Dieser Name wird in der Google SecOps-Benutzeroberfläche angezeigt.
config object Optional Die Konfigurationseinstellungen für diesen Weiterleiter. Weitere Informationen finden Sie unter Felder für die Collector-Konfiguration.
Beispielanfrage

Dies ist ein Beispiel für eine Update Collector-Anfrage, in der neue Werte für displayName, logType, assetNamespace und protocol angegeben werden.

PATCH https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56?updateMask=displayName,config.logType,config.metadata.assetNamespace,config.syslogSettings.protocol
{
  "display_name": "UpdatedCollector"
  "config": {
    "metadata": {
      "asset_namespace": "COLLECTOR",
      },
      "log_type": "CISCO_ASA_FIREWALL",
      "syslog_settings": {
        "protocol": "TCP",
      }
    }
  }
Beispiel für eine Antwort

Dies ist ein Beispiel für die Antwort, die für die obige Beispielanfrage zurückgegeben wurde.

{
  "name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
  "displayName": "UpdatedCollector",
  "config": {
    "logType": "CISCO_ASA_FIREWALL",
    "metadata": {
      "assetNamespace": "COLLECTOR"
    },
    "maxSecondsPerBatch": 10,
    "maxBytesPerBatch": "1048576",
    "syslogSettings": {
      "protocol": "TCP",
      "address": "0.0.0.0",
      "port": 10514,
    }
  },
  "state": "ACTIVE"
}

Collector löschen

Löscht einen Collector.

Anfrage

DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Anfragetext

Fügen Sie keinen Anfragetext hinzu.

Beispielanfrage
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Beispiel für eine Antwort

Wenn der Vorgang erfolgreich war, gibt „Delete Collector“ eine leere Antwort mit dem HTTP-Statuscode 200 (OK) zurück.

{}

Konfigurationsfelder für Collector

Die folgenden Felder können im config-Objekt des Anfragetexts angegeben werden.

Feld Typ Erforderlich Beschreibung
log_type String Erforderlich Ein unterstützter Protokolltyp, der von Google SecOps aufgenommen werden kann. Eine Liste der unterstützten Protokolltypen, für die Google SecOps einen Parser hat, finden Sie in der Spalte „Aufnahmelabel“ auf der Seite Unterstützte Standardparser. Eine vollständige Liste der unterstützten Logtypen finden Sie über den Endpunkt logtypes.
metadata.asset_namespace object Optional Der Namespace zur Identifizierung von Protokollen dieses Collectors.

Hinweis:Dies ist eine globale Einstellung, die für den Forwarder und die Collector des Forwarders gilt, sofern sie nicht auf Collectorebene überschrieben wird. Weitere Informationen finden Sie unter Namespaces konfigurieren.
metadata.labels list Optional Eine Liste beliebiger Schlüssel/Wert-Paare, die in der Erfassungskonfiguration angegeben werden können.

Hinweis:Dies ist eine globale Einstellung, die für den Forwarder und die Collector des Forwarders gilt, sofern sie nicht auf Collectorebene überschrieben wird.
metadata.labels.key String Optional Der Schlüssel für ein Feld in der Liste der Metadatenlabels.
metadata.labels.value String Optional Der Wert für ein Feld in der Liste der Metadatenlabels.
regex_filters.description String Optional Hier wird beschrieben, was herausgefiltert wird und warum.
regex_filters.regexp String Optional Der reguläre Ausdruck, der mit jeder eingehenden Zeile abgeglichen wird.
regex_filters.behavior enum Optional

Gibt den Status der Serverfunktion an. Gültige Werte sind:

  • ALLOW: In diesem Status kann die gefilterte Zeile hochgeladen werden.
  • BLOCK: In diesem Status wird verhindert, dass die gefilterte Zeile hochgeladen wird.
disk_buffer.state enum Optional

Gibt den Status der Laufwerkpufferung für den Profiler an. Gültige Werte sind:

  • AKTIV: Das Puffern ist aktiviert.
  • SUSPENDED: Das Puffern ist deaktiviert.
disk_buffer.directory_path String Optional Der Verzeichnispfad für geschriebene Dateien.
disk_buffer.max_file_buffer_bytes integer Optional Die maximale Größe der zwischengespeicherten Datei.
max_seconds_per_batch integer Optional Die Anzahl der Sekunden zwischen den Batches.

Der Standardwert ist 10.
max_bytes_per_batch integer Optional Die Anzahl der Byte, die vor dem Batch-Upload des Forwarders in der Warteschlange stehen.

Der Standardwert ist 1048576.
<collector_type>_settings.<fields> Erforderlich Gibt einen Messwerttyp und seine Einstellungen an. Für jeden Collector muss ein Collector-Typ und seine Felder angegeben werden. Wenn Sie beispielsweise den file-Aufnehmertyp verwenden möchten, muss der Konfiguration das Feld file_settings.file_path hinzugefügt und ein Wert angegeben werden. Beispiel:

"file_settings": {
  "file_path": "/opt/chronicle/edr/output/sample.txt",
}


Die Erfassungstypen und ihre Felder sind in den folgenden Zeilen dieser Tabelle aufgeführt. Die verfügbaren Collector-Typen sind:
  • file
  • kafka
  • pcap
  • splunk
  • syslog
file_settings.file_path String Optional Der Pfad der Datei, die überwacht werden soll.
kafka_settings.authentication.username String Optional Der Nutzername einer Identität, die für die Authentifizierung verwendet wird.
kafka_settings.authentication.password String Optional Das Passwort des Kontos, das durch den Nutzernamen identifiziert wird.
kafka_settings.topic String Optional Das Kafka-Thema, aus dem Daten aufgenommen werden sollen. Weitere Informationen finden Sie unter Daten aus Kafka-Topics erfassen.
kafka_settings.group_id String Optional Eine Gruppen-ID.
kafka_settings.timeout integer Optional Die maximale Wartezeit in Sekunden, die beim Wählen auf eine Verbindung gewartet wird.

Der Standardwert ist 60.
kafka_settings.brokers String Optional Ein wiederholter String mit Kafka-Brokern. Beispiel:

"broker-1:9092", "broker-2:9093"

Hinweis:Bei einem Aktualisierungsvorgang werden alle Werte ersetzt. Wenn Sie also eine Liste von Brokern aktualisieren und einen neuen Broker hinzufügen möchten, müssen Sie alle vorhandenen Broker und den neuen Broker angeben.
kafka_settings.tls_settings.certificate String Optional Pfad und Dateiname des Zertifikats. Beispiel:

/path/to/cert.pem
kafka_settings.tls_settings.certificate_key String Optional Der Pfad und der Dateiname des Zertifikatschlüssels. Beispiel:

/path/to/cert.key
kafka_settings.tls_settings.minimum_tls_version String Optional Die TLS-Mindestversion.
kafka_settings.tls_settings.insecure_skip_verify bool Optional Wenn true, wird die SSL-Zertifizierungsüberprüfung aktiviert.

Der Standardwert ist false.
pcap_settings.network_interface String Optional Die Schnittstelle, auf der nach PCAP-Daten gewartet werden soll.
pcap_settings.bpf String Optional Der Berkeley Packet Filter (BPF) für pcap.
splunk_settings.authentication.username String Optional Der Nutzername einer Identität, die für die Authentifizierung verwendet wird.
splunk_settings.authentication.password String Optional Das Passwort des Kontos, das durch den Nutzernamen identifiziert wird.
splunk_settings.host String Optional Der Host oder die IP-Adresse für die Splunk REST API.
splunk_settings.port integer Optional Der Port für die Splunk REST API.
splunk_settings.minimum_window_size integer Optional Der Mindestzeitraum in Sekunden für eine bestimmte Splunk-Suche. Weitere Informationen finden Sie unter Splunk-Daten erfassen.

Der Standardwert ist 10.
splunk_settings.maximum_window_size integer Optional Der maximale Zeitraum in Sekunden für eine bestimmte Splunk-Suche. Weitere Informationen finden Sie unter Splunk-Daten erfassen.

Der Standardwert ist 30.
splunk_settings.query_string String Optional Die Abfrage, mit der Datensätze in Splunk gefiltert werden.

Beispiel: search index=* sourcetype=dns
splunk_settings.query_mode String Optional Der Abfragemodus für Splunk.

Beispiel: realtime
splunk_settings.cert_ignored bool Optional Wenn true, wird das Zertifikat ignoriert.
syslog_settings.protocol enum Optional

Gibt das Protokoll an, das der Collector zum Anhören von syslog-Daten verwendet. Gültige Werte sind:

  • TCP
  • UDP
syslog_settings.address String Optional Die Ziel-IP-Adresse oder der Ziel-Hostname, an dem sich der Collector befindet und auf syslog-Daten wartet.
syslog_settings.port integer Optional Der Zielport, an dem sich der Collector befindet und der auf syslog-Daten wartet.
syslog_settings.buffer_size integer Optional Die Größe des Puffers des TCP-Sockets in Byte.

Der Standardwert für TCP ist 65536.
Der Standardwert für UDP ist 8192.
syslog_settings.connecton_timeout integer Optional Die Anzahl der Sekunden Inaktivität, nach denen die TCP-Verbindung getrennt wird.

Der Standardwert ist 60.
syslog_settings.tls_settings.certificate String Optional Pfad und Dateiname des Zertifikats. Beispiel:

/path/to/cert.pem
syslog_settings.tls_settings.certificate_key String Optional Pfad und Dateiname des Zertifikatschlüssels. Beispiel:

/path/to/cert.key
syslog_settings.tls_settings.minimum_tls_version String Optional Die TLS-Mindestversion.
syslog_settings.tls_settings.insecure_skip_verify bool Optional Wenn true, wird die SSL-Zertifizierungsüberprüfung aktiviert.

Der Standardwert ist false.