Forwarder Management API

Mit der Google Security Operations Forwarder Management API können Sie Folgendes programmatisch tun:

  • Forwarder erstellen und verwalten.
  • Collectors erstellen und verwalten.
  • Rufen Sie den Dateiinhalt für die Konfigurationsdateien (.conf) und Authentifizierungsdateien (_auth.conf) eines Google Security Operations-Forwarders ab.

Forwarder bestehen aus einem oder mehreren Collectors. Die Konfiguration jedes Collectors gibt den Datenaufnahmemechanismus (z. B. Datei, Kafka, PCAP, Splunk oder Syslog) und den Logtyp an.

Wenn die Hardwareanforderungen erfüllt sind, können Sie viele Collectors mit demselben Forwarder verwenden, um Daten von einer Vielzahl von Mechanismen und Logtypen aufzunehmen. Beispiel: Sie können einen Forwarder mit zwei Syslog-Collectors installieren, die PAN_FIREWALL- und CISCO_ASA_FIREWALL-Daten jeweils an separaten Ports überwachen.

Mit der API können Sie Forwarder und deren Collectors in Ihrer Google Security Operations-Instanz erstellen. Nachdem ein Forwarder erstellt wurde, können Sie den Endpunkt „Forwarder Files generieren“ verwenden, um den Dateiinhalt (als JSON-Nutzlast) für die Konfigurationsdateien (.conf) und Authentifizierungsdateien (_auth.conf) eines Forwarders abzurufen. Diese Inhalte können dann zur Bereitstellung mit Google Security Operations in die entsprechenden .conf-Dateien geschrieben werden. Forwarder-Dienst auf einem Windows- oder Linux-System.

Python-Beispiele, in denen die Forwarder Management API verwendet wird, finden Sie im GitHub-Repository.

Forwarder und dessen Collector erstellen

Ein Forwarder muss erstellt werden, bevor einer seiner Collectors erstellt werden kann.

So erstellen Sie einen Forwarder und dessen Collector(s):

  1. Erstellen Sie einen Forwarder.
  2. Erstellen Sie einen Collector für den Forwarder.
  3. Optional: Wiederholen Sie Schritt 2, um weitere Collectors hinzuzufügen.

Authentifizierung bei der Google Security Operations API[:#Authenticate]

Diese Google Security Operations API verwendet zur Authentifizierung und Autorisierung das OAuth 2.0-Protokoll. Ihr Anwendung diese Aufgaben mit einer der folgenden Implementierungen ausführen kann:

  • Google API-Clientbibliothek für Ihre Computersprache verwenden

  • Direkte Schnittstelle zum OAuth 2.0-System über HTTP

Informationen zur Google-Authentifizierungsbibliothek in Python finden Sie in der Referenzdokumentation.

Google-Authentifizierungsbibliotheken sind eine Teilmenge der Google API-Clientbibliotheken. Weitere Sprachimplementierungen

Anmeldedaten für die API-Authentifizierung abrufen

Ihr Google Security Operations-Beauftragter stellt Ihnen einen Google-Entwickler Dienstkonto: Anmeldedaten, die dem API-Client die Kommunikation mit der API ermöglichen.

Sie müssen beim Initialisieren Ihres API-Clients auch den Authentifizierungsbereich angeben. OAuth 2.0 verwendet einen Bereich, um den Zugriff einer Anwendung auf ein Konto zu beschränken. Wenn eine Anwendung einen Bereich anfordert, Das an die Anwendung ausgestellte Zugriffstoken ist auf den gewährten Bereich beschränkt.

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

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

Beispiel für Python

Das folgende Python-Beispiel zeigt, wie die OAuth2-Anmeldedaten verwendet werden. und HTTP-Client mit google.oauth2 und googleapiclient.

# 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.oauth2 import service_account
from googleapiclient import _auth

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 an HTTP client to make authorized OAuth requests.
http_client = _auth.authorized_http(credentials)

# <your code continues here>

Chronicle API-Abfragelimits

Die Chronicle API erzwingt Limits für die Anzahl der Anfragen, die von gegen die Google Security Operations-Plattform. Wenn Sie das Ziel gibt der Chronicle API-Server HTTP 429 (RESOURCE_EXHAUSTED) an für den Anrufer. Bei der Entwicklung von Anwendungen für die Chronicle API empfiehlt, Ratenbegrenzungen in Ihrem System durchzusetzen, um Ressourcen zu vermeiden Erschöpfung. Diese Limits gelten für alle Chronicle APIs, einschließlich der Search, Forwarder Management und Tooling APIs

Das folgende Limit für die Chronicle Forwarder Management API wird erzwungen und wird in Abfragen pro Sekunde (Queries per Second, QPS) gemessen:

Chronicle API API-Endpunkt Limit
Forwarder-Verwaltung Forwarder erstellen 1 Abfragen pro Sekunde
Forwarder abrufen 1 Abfragen pro Sekunde
Forwarder auflisten 1 Abfragen pro Sekunde
Forwarder aktualisieren 1 Abfragen pro Sekunde
Forwarder löschen 1 Abfragen pro Sekunde
Collector-Verwaltung Collector erstellen 1 Abfragen pro Sekunde
Collector abrufen 1 Abfragen pro Sekunde
Collectors auflisten 1 Abfragen pro Sekunde
Collector aktualisieren 1 Abfragen pro Sekunde
Collector löschen 1 Abfragen pro Sekunde

Forwarder API-Referenz

In diesem Abschnitt werden die Endpunkte zum Erstellen und Verwalten von Forwardern beschrieben. Informationen zu Endpunkte zum Erstellen und Verwalten von Collectors finden Sie in der Referenz zur Collector API.

Forwarder erstellen

Erstellt einen neuen Forwarder in der Google SecOps-Instanz. Der neue Forwarder schließt alle forwarder-Konfigurationswerte ein, die im Anfragetext angegeben sind. Konfigurationswerte für Collectors müssen nach der Verwendung von Create Forwarder mit dem Befehl Create Collector angegeben werden.

Bei bestimmten Einstellungen werden Konfigurationswerte, die fehlen oder im Anfragetext fehlen, auf Standardwerte gesetzt. Weitere Informationen zu Forwarder-Feldern und -Werten finden Sie unter Forwarder-Konfigurationsfelder.

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 Forwarders. Dieser Name wird in Google SecOps angezeigt .
config Objekt Optional Die Konfigurationseinstellungen für diesen Forwarder. Siehe Felder für die Forwarder-Konfiguration.
Anfragebeispiel

Dieses Beispiel zeigt die erforderlichen Schlüssel/Wert-Paare in einer Forwarder-Anfrage erstellen. Wenn ein Feld in der Anfrage nicht angegeben ist und einen Standardwert hat, wird der Standardwert wird bei der Erstellung des Forwarders angewendet. Weitere Informationen zu Standardwerten finden Sie unter Felder für die Forwarder-Konfiguration.

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

Antwort

Wenn die Anfrage erfolgreich ist, wird der HTTP-Statuscode 200 in der Antwort zurückgegeben. (Ok).

Die Antwort zeigt die Konfigurationswerte, die beim Erstellen der Forwarder. Standardkonfigurationswerte werden auf bestimmte Einstellungen für die Ressourcenerstellung, wenn diese Felder fehlen oder in den Anfragetext. Weitere Informationen finden Sie unter Felder für die Forwarder-Konfiguration.

Antwortfelder

Zusätzlich zu den in der Anfrage angegebenen Feldern und den Feldern, für die angewendet werden, enthält die Antwort die folgenden generierten und reinen Ausgabefeldern.

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

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

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

  • ACTIVE: Der Forwarder darf Daten hochladen.
  • SUSPENDED: Der Forwarder darf keine Daten hochladen.

Der Standardwert ist ACTIVE.

Antwortbeispiel

Dies ist ein Beispiel für die Antwort, die für das obige Anfragebeispiel 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 Forwarder zurück.

Anfrage

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

Anfragetext

Geben Sie keinen Anfragetext an.

Anfragebeispiel
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Antwortbeispiel
{
  "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 auflisten

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

Anfrage

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

Anfragebeispiel

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

Antwort

Gibt eine Liste der Forwarder zurück.

Antwortbeispiel
{
  "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"
    }
  ]
}

Forwarder aktualisieren

Sie können einen Forwarder aktualisieren, indem Sie mit dem URL-Suchparameter updateMask die Felder angeben, die aktualisiert werden sollen.

Um beispielsweise den Anzeigenamen zu aktualisieren, verwendest du den updateMask-Abfrageparameter wie folgt in der Patch-Anfrage:

?updateMask=displayName

Der Anfragetext darf nur die Felder enthalten, die Sie aktualisieren möchten (im ihren genauen Standort).

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 Forwarders. Dieser Name wird in Google SecOps angezeigt .
config Objekt Optional Die Konfigurationseinstellungen für diesen Forwarder. Siehe Felder für die Forwarder-Konfiguration.
Anfragebeispiel

Dies ist ein Beispiel für eine Update Forwarder-Anfrage, bei der in der Anfrage neue Werte für displayName und fügt ein Metadatenlabel hinzu.

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",
        }
      ]
    }
  }
}
Antwortbeispiel

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

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

Forwarder löschen

Löscht einen Forwarder.

Anfrage

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

Geben Sie keinen Anfragetext an.

Anfragebeispiel
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Antwortbeispiel

Wenn der Vorgang erfolgreich ist, gibt Delete Forwarder eine leere Antwort mit HTTP-Statuscode 200 (OK).

{}

Forwarderdateien generieren

Generiert und gibt den Inhalt der Konfigurationsdateien (.conf) und Authentifizierungsdateien (_auth.conf) des Forwarders zurück.

Anfrage

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

Geben Sie keinen Anfragetext an.

Anfragebeispiel
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56:generateForwarderFiles
Antwortbeispiel

Wenn der Vorgang erfolgreich ist, wird der HTTP-Statuscode 200 (OK) zurückgegeben. Es gibt auch den Inhalt einer Forwarder-Konfigurationsdatei zurück, einschließlich der Konfigurationsdaten für die Collectors des Forwarders sowie den Inhalt der Die Authentifizierungsdatei (_auth.conf), die vom Forwarder zur Authentifizierung bei Google SecOps-Instanz.

Felder für die Forwarder-Konfiguration

In der folgenden Tabelle sind die Konfigurationseinstellungen der Forwarder aufgeführt, die Sie mit „Forwarder erstellen“ und „Forwarder aktualisieren“ angeben. Wenn Sie keinen Wert angeben für eine Einstellung, wenn Sie "Forwarder erstellen" verwenden, wird der Standardwert der Einstellung (in der unten) angewendet wird.

Die folgenden Felder können im Objekt config der Anfrage angegeben werden Textkörper.

Feld Typ Erforderlich Beschreibung
upload_compression Boolescher Wert Optional Wenn true, werden Batches von Daten vor dem Upload komprimiert.

Der Standardwert ist false.
metadata.asset_namespace String Optional Der Namespace zum Identifizieren von Logs aus diesem Forwarder.

Hinweis:Dies ist eine globale Einstellung, die für den Forwarder und die Collectors des Forwarders, es sei denn, dies wird bei auf der Collector-Ebene. Weitere Informationen finden Sie unter Namespaces konfigurieren.
metadata.labels list Optional Eine Liste beliebiger Schlüssel/Wert-Paare, die im Feld Forwarder-Konfiguration.

Hinweis:Dies ist eine globale Einstellung, die für den Forwarder und die Collectors des Forwarders, es sei denn, dies wird bei auf der Collector-Ebene.
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 Beschreibt, was gefiltert wird und warum.
regex_filters.regexp String Optional Der reguläre Ausdruck, der für den Abgleich mit jeder eingehenden Zeile verwendet wird.
regex_filters.behavior enum Optional

Gibt den Status der Serverfunktionalität an. Gültige Werte sind:

  • ZULASSEN: Bei diesem Status kann die gefilterte Zeile hochgeladen werden.
  • BLOCK: Dieser Status verhindert, dass die gefilterte Zeile hochgeladen wird.
server_settings Objekt Optional Einstellungen zum Konfigurieren des integrierten HTTP-Servers des Forwarders, der kann verwendet werden, um Optionen für das Load-Balancing und die Hochverfügbarkeit für die Syslog-Erfassung unter Linux zu konfigurieren.
server_settings.state enum Optional

Gibt den Status der Serverfunktionalität an. Gültige Werte sind:

  • ACTIVE: Bei diesem Status werden die Servereinstellungen wie angegeben angewendet.
  • SUSPENDED In diesem Status werden die Servereinstellungen nicht angewendet.
server_settings.graceful_timeout Ganzzahl Optional Die Anzahl der Sekunden, nach denen der Forwarder eine ungültige Antwort zurückgibt und nimmt weiterhin neue Verbindungen an. Dies ist und die Wartezeit zwischen dem Empfang eines Signals damit der Server selbst heruntergefahren wird. Dadurch kann die Last Zeit, den Forwarder aus dem Pool zu entfernen.

Der Standardwert ist 15.
server_settings.drain_timeout Ganzzahl Optional Die Anzahl der Sekunden, nach denen der Forwarder auf einen aktiven Status wartet Verbindungen, die von selbst geschlossen werden, erfolgreich zu schließen, bevor sie durch auf dem Server.

Der Standardwert ist 10.
server_settings.http_settings.port Ganzzahl Optional Die Portnummer, die der HTTP-Server auf Systemdiagnosen überwacht über das Lastenausgleichsmodul. 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, die der Server überwachen soll.

Der Standardwert ist 0.0.0.0 (das lokale System).
server_settings.http_settings.read_timeout Ganzzahl Optional Die maximale Anzahl von Sekunden, die zum Lesen ganzer Anfragen erlaubt ist, was enthält den Header und den Textkörper.

Der Standardwert ist 3.
server_settings.http_settings.read_header_timeout Ganzzahl Optional Die maximale Anzahl von Sekunden, die zum Lesen von Anfrageheadern erlaubt ist.

Der Standardwert ist 3.
server_settings.http_settings.write_timeout Ganzzahl Optional Die maximale Anzahl von Sekunden, die zum Senden einer Antwort zulässig ist.

Der Standardwert ist 3.
server_settings.http_settings.idle_timeout Ganzzahl Optional Die maximale Anzahl an Sekunden, die bei Inaktivität auf die nächste Anfrage gewartet wird Verbindungen aktiviert sind.

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

Der Standardwert ist 204.
server_settings.http_settings.route_settings.ready_status_code Ganzzahl Optional Der Statuscode, der zurückgegeben wird, wenn der Forwarder zur Annahme bereit ist Zugriffe.

Der Standardwert ist 204.
server_settings.http_settings.route_settings.unready_status_code Ganzzahl Optional Der Statuscode, der zurückgegeben wird, wenn der Forwarder nicht akzeptiert wird Zugriffe.

Der Standardwert ist 503.

Collector API-Referenz

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

Beachten Sie beim Erstellen und Aktualisieren von Collectors, dass in jeder Collector-Konfiguration Aufnahmeeinstellungen für eine, aber nicht für mehrere der folgenden Elemente angegeben werden können:

  • Protokolldateidaten
  • Kafka-Themen
  • Paketdaten (pcap)
  • Splunk-Daten
  • Syslog-Daten

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

Collector erstellen

Erstellt im Google SecOps-Konto einen neuen Collector. Konfiguration Werte für Collectors müssen mithilfe von Create Collector angegeben werden, nachdem Forwarder erstellen.

Für bestimmte Einstellungen kann die Konfiguration Fehlende oder nullwertige Werte im Anfragetext werden auf Standardwerte gesetzt. Werte. Weitere Informationen zu Feldern und Werten der Collector-Konfiguration finden Sie unter Collector-Konfigurationsfelder.

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 Google SecOps angezeigt .
config Objekt Erforderlich Die Konfigurationseinstellungen für diesen Collector. Siehe Collector-Konfigurationsfelder.
Status enum Optional

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

  • ACTIVE: Der Collector darf Daten akzeptieren.
  • SUSPENDED: Der Collector darf keine Daten annehmen.
Anfragebeispiel

Dieses Beispiel zeigt die erforderlichen Schlüssel/Wert-Paare in einer Create Collector-Anfrage. Für Für alle Felder, die nicht angegeben sind, werden beim Collector Standardwerte angewendet. Erstellung.

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

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

Wenn die Anfrage erfolgreich ist, wird der HTTP-Statuscode 200 in der Antwort zurückgegeben. (Ok).

Die Antwort zeigt die Konfigurationswerte, die beim Erstellen der Collector. Standardkonfigurationswerte werden auf bestimmte Einstellungen für die Ressourcenerstellung, wenn diese Felder fehlen oder in den Anfragetext. Weitere Informationen finden Sie unter Collector-Konfigurationsfelder.

Antwortfelder

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

Feld Typ Beschreibung
Name String Die Ressourcen-ID des Collectors. Das Format ist &quot;forwarders/{forwarderID}/collectors/{collectorID}&quot;. Für Beispiel:

forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Antwortbeispiel

Dies ist ein Beispiel für die Antwort, die für das obige Anfragebeispiel 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

Geben Sie keinen Anfragetext an.

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

Collectors auflisten

Listet die vorhandenen Collectors für den angegebenen Forwarder auf.

Anfrage

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

Antwort

Gibt mehrere Collectors zurück.

Antwortbeispiel
{
  "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, haben Sie folgende Möglichkeiten: die gesamte Collector-Konfiguration oder nur bestimmte der Collector-Konfiguration. In der Regel ist es am besten, um zu vermeiden, dass versehentlich alle Daten überschrieben werden. Zum Überschreiben -Felder angeben, geben Sie in Ihrer Aktualisierungsanfrage eine FieldMask an.

So geben Sie eine FieldMask an, um den Anzeigenamen für einen Collector zu aktualisieren: den URL-Abfrageparameter updateMask in der Patch-Anfrage an. Beispiel:

?updateMask=displayName

Der Anfragetext darf nur die Felder enthalten, die Sie aktualisieren möchten (im ihren genauen Standort).

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 Google SecOps angezeigt .
config Objekt Optional Die Konfigurationseinstellungen für diesen Forwarder. Siehe Collector-Konfigurationsfelder.
Anfragebeispiel

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

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",
      }
    }
  }
Antwortbeispiel

Dies ist ein Beispiel für die Antwort, die für das obige Anfragebeispiel 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

Geben Sie keinen Anfragetext an.

Anfragebeispiel
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Antwortbeispiel

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

{}

Collector-Konfigurationsfelder

Die folgenden Felder können im Objekt config der Anfrage angegeben werden Textkörper.

Feld Typ Erforderlich Beschreibung
log_type String Erforderlich Unterstützter Logtyp, der von Google SecOps aufgenommen werden kann. Eine Liste mit unterstützte Logtypen, für die Google SecOps einen Parser hat, siehe in der Spalte "Aufnahmelabel" für die Unterstützte Standardeinstellung Parser. Um eine vollständige Liste der unterstützten Logtypen verwenden, verwenden Sie den logtypes-Endpunkt.
metadata.asset_namespace Objekt Optional Der Namespace zum Identifizieren von Logs aus diesem Collector.

Hinweis:Dies ist eine globale Einstellung, die für den Forwarder und die Collectors des Forwarders, es sei denn, dies wird bei auf der Collector-Ebene. Weitere Informationen finden Sie unter Namespaces konfigurieren.
metadata.labels list Optional Eine Liste beliebiger Schlüssel/Wert-Paare, die im Feld Collector-Konfiguration.

Hinweis:Dies ist eine globale Einstellung, die für den Forwarder und die Collectors des Forwarders, es sei denn, dies wird bei auf der Collector-Ebene.
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 Beschreibt, was gefiltert wird und warum.
regex_filters.regexp String Optional Der reguläre Ausdruck, der für den Abgleich mit jeder eingehenden Zeile verwendet wird.
regex_filters.behavior enum Optional

Gibt den Status der Serverfunktionalität an. Gültige Werte sind:

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

Gibt den Pufferstatus des Laufwerks für den Collector an. Gültige Werte sind:

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

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

Der Standardwert ist 1048576.
&lt;collector_type&gt;_settings.&lt;fields&gt; Erforderlich Gibt einen Collector-Typ und die zugehörigen Einstellungen an. Für jeden Collector müssen ein Collector-Typ und seine Felder angegeben werden. Wenn Sie beispielsweise den Collector-Typ file verwenden möchten, muss das Feld file_settings.file_path der Konfiguration hinzugefügt und mit einem Wert versehen werden. Beispiel:

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


Die Collector-Typen und ihre Felder werden in den nachfolgenden Zeilen dieser Tabelle aufgeführt. Folgende Collector-Typen sind verfügbar:
  • file
  • kafka
  • pcap
  • splunk
  • syslog
file_settings.file_path String Optional Der Pfad der zu überwachenden Datei.
kafka_settings.authentication.username String Optional Der Nutzername einer für die Authentifizierung verwendeten Identität.
kafka_settings.authentication.password String Optional Das Passwort des durch den Nutzernamen identifizierten Kontos.
kafka_settings.topic String Optional Das Kafka-Thema, aus dem Daten aufgenommen werden sollen. Weitere Informationen finden Sie unter Daten aus Kafka-Themen erfassen.
kafka_settings.group_id String Optional Eine Gruppen-ID.
kafka_settings.timeout Ganzzahl Optional Die maximale Anzahl von Sekunden, die ein Wählvorgang wartet, bis eine Verbindung hergestellt wird. abgeschlossen ist.

Der Standardwert ist 60.
kafka_settings.brokers String Optional Ein wiederholter String, der Kafka-Broker auflistet. Beispiel:

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

Hinweis:Alle Werte werden während eines Aktualisierungsvorgangs ersetzt. Dementsprechend wird zum Aktualisieren einer Liste von Brokern, um einen neuen Broker hinzuzufügen, geben Sie alle vorhandenen und den neuen Makler.
kafka_settings.tls_settings.certificate String Optional Der Pfad und der Name der Zertifikatdatei. 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 Mindestversion für TLS.
kafka_settings.tls_settings.insecure_skip_verify Boolescher Wert Optional Wenn true, wird die Überprüfung der SSL-Zertifizierung aktiviert.

Der Standardwert ist false.
pcap_settings.network_interface String Optional Die Schnittstelle, auf die PCAP-Daten überwacht werden sollen.
pcap_settings.bpf String Optional Der Berkeley Packet Filter (BPF) für Pcap.
splunk_settings.authentication.username String Optional Der Nutzername einer für die Authentifizierung verwendeten Identität.
splunk_settings.authentication.password String Optional Das Passwort des durch den Nutzernamen identifizierten Kontos.
splunk_settings.host String Optional Der Host oder die IP-Adresse für die Splunk REST API.
splunk_settings.port Ganzzahl Optional Der Port für die Splunk REST API.
splunk_settings.minimum_window_size Ganzzahl Optional Der minimale Zeitraum in Sekunden für eine bestimmte Splunk-Suche. Für Weitere Informationen finden Sie unter Splunk-Daten erfassen.

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

Der Standardwert ist 30.
splunk_settings.query_string String Optional Die Abfrage, die zum Filtern von Datensätzen in Splunk verwendet wird.

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

Beispiel: realtime
splunk_settings.cert_ignored Boolescher Wert Optional Bei true wird das Zertifikat ignoriert.
syslog_settings.protocol enum Optional

Gibt das Protokoll an, das der Collector zum Überwachen von Syslog-Daten verwendet. Gültige Werte sind:

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

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

Der Standardwert ist 60.
syslog_settings.tls_settings.certificate String Optional Der Pfad und der Name der Zertifikatdatei. Beispiel:

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

/path/to/cert.key
syslog_settings.tls_settings.minimum_tls_version String Optional Die Mindestversion für TLS.
syslog_settings.tls_settings.insecure_skip_verify Boolescher Wert Optional Wenn true, wird die Überprüfung der SSL-Zertifizierung aktiviert.

Der Standardwert ist false.