Google Security Operations-Forwarder für Windows in Docker
In diesem Dokument wird beschrieben, wie Sie den Google Security Operations-Forwarder für Windows in Docker installieren und konfigurieren.
Systemanforderungen
Im Folgenden finden Sie allgemeine Empfehlungen. Systemspezifische Empfehlungen erhalten Sie vom Support von Google Security Operations.
- Windows Server-Version: Die Google Security Operations-Weiterleitung wird unter Microsoft Windows Server 2022 unterstützt.
- RAM: 1,5 GB für jeden erfassten Logtyp Beispielsweise sind EDR (Endpoint Detection and Response, EDR), DNS und DHCP separate Logtypen. Sie benötigen 4,5 GB RAM, um Daten für alle drei zu erfassen. Eine Liste der unterstützten Standardparser und Logtypen finden Sie unter Unterstützte Standardparser.
- CPU: 2 CPUs sind ausreichend,um insgesamt weniger als 10.000 Ereignisse pro Sekunde (EPS) über alle Datentypen hinweg zu verarbeiten. Wenn Sie voraussichtlich mehr als 10.000 EPS senden, sind 4 bis 6 CPUs erforderlich.
Laufwerk: 100 MB Speicherplatz sind ausreichend, unabhängig davon, wie viele Daten der Google Security Operations-Forwarder verarbeitet. Sie können das Laufwerk zwischenspeichern, indem Sie der Konfigurationsdatei die Parameter
write_to_disk_buffer_enabled
undwrite_to_disk_dir_path
hinzufügen.Beispiel:
- <collector>: common: ... write_to_disk_buffer_enabled: true write_to_disk_dir_path: directory_path ...
Google-IP-Adressbereiche
Möglicherweise müssen Sie den IP-Adressbereich öffnen, wenn Sie eine Google Security Operations-Forwarder-Konfiguration einrichten, z. B. beim Einrichten der Konfiguration für Ihre Firewall. Google kann keine spezifische Liste mit IP-Adressen zur Verfügung stellen. Sie können jedoch IP-Adressbereiche von Google abrufen.
Firewallkonfiguration prüfen
Wenn Sie Firewalls oder authentifizierte Proxys zwischen dem Forwarder-Container von Google Security Operations und dem Internet haben, sind Regeln erforderlich, um den Zugriff auf die folgenden Google Cloud-Hosts zu ermöglichen:
Verbindungstyp | Ziel | Port |
TCP | malachiteingestion-pa.googleapis.com | 443 |
TCP | asia-northeast1-malachiteingestion-pa.googleapis.com | 443 |
TCP | asia-south1-malachiteingestion-pa.googleapis.com | 443 |
TCP | asia-southeast1-malachiteingestion-pa.googleapis.com | 443 |
TCP | australia-southeast1-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west2-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west3-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west6-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west12-malachiteingestion-pa.googleapis.com | 443 |
TCP | me-central1-malachiteingestion-pa.googleapis.com | 443 |
TCP | me-central2-malachiteingestion-pa.googleapis.com | 443 |
TCP | me-west1-malachiteingestion-pa.googleapis.com | 443 |
TCP | northamerica-northeast2-malachiteingestion-pa.googleapis.com | 443 |
TCP | accounts.google.com | 443 |
TCP | gcr.io | 443 |
TCP | oauth2.googleapis.com | 443 |
TCP | storage.googleapis.com | 443 |
Mit den folgenden Schritten können Sie die Netzwerkverbindung zu Google Cloud prüfen:
Starten Sie Windows PowerShell mit Administratorberechtigungen. Klicken Sie dazu auf Start, geben Sie
PowerShell
ein, klicken Sie mit der rechten Maustaste auf Windows PowerShell und klicken Sie dann auf Als Administrator ausführen.Führen Sie den folgenden Befehl aus:
C:\> test-netconnection <host> -port <port>
Der Befehl gibt zurück, dass
TcpTestSucceeded
true
ist.Beispiel:
C:\> test-netconnection malachiteingestion-pa.googleapis.com -port 443 ComputerName : malachiteingestion-pa.googleapis.com RemoteAddress : 198.51.100.1 RemotePort : 443 InterfaceAlias : Ethernet SourceAddress : 203.0.113.1 TcpTestSucceeded : True
Docker unter Microsoft Windows installieren
In diesem Abschnitt wird beschrieben, wie Sie Docker unter Microsoft Windows über die Befehlszeile und PowerShell installieren.
Vorteile des Google Security Operations-Forwarders mit einem Container:
- Mehr Sicherheit durch Isolation:
- Die Kundenumgebung und -anforderungen haben keine Auswirkungen auf den Google Security Operations-Forwarder.
- Die Google Security Operations-Forwarder-Umgebung und -Anforderungen haben keine Auswirkungen auf den Kunden.
- Der Mechanismus zur Containerverteilung ist bereits vorhanden und kann für Google Cloud und Kunden privat und separat sein. Weitere Informationen finden Sie unter Artifact Registry.
Führen Sie auf Microsoft Windows Server Core 2022 die folgenden Schritte aus.
Aktivieren Sie die Funktion für Microsoft Windows-Container.
Install-WindowsFeature containers -Restart
Führen Sie den folgenden Befehl im PowerShell-Administratormodus aus, um Docker CE zu installieren:
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1 .\install-docker-ce.ps1
Testen Sie die Docker-Befehlszeilenschnittstelle, indem Sie den Befehl
docker ps
ausführen. Dadurch wird eine Liste der laufenden Container zurückgegeben. Wenn der Befehl keine ausgeführten Container auflistet, ist die Installation erfolgreich. Wenn Docker nicht ordnungsgemäß installiert wurde, wird ein Fehler angezeigt.Weitere Informationen finden Sie unter Jetzt starten: Fenster für Container vorbereiten.
Für Unternehmensbereitstellungen installieren Sie Mirantis Container Runtime, auch bekannt als Docker EE.
Google Security Operations-Forwarder konfigurieren
Informationen zum Konfigurieren der Google Security Operations-Weiterleitung für Windows in Docker finden Sie unter Weiterleitungskonfigurationen über die Google Security Operations-UI verwalten.
Achten Sie beim Konfigurieren der Google Security Operations-Weiterleitung darauf, dass alle Pfade im Forwarder mit dem Präfix „c:“ beginnen.
Alle Änderungen, die an der Konfigurationsdatei vorgenommen werden, werden innerhalb von 5 Minuten automatisch vom Google Security Operations-Forwarder angewendet.
Informationen zum Erfassen von Paketdaten mit dem Google Security Operations-Forwarder für Windows in Docker finden Sie unter Paketdaten erfassen.
Google Security Operations-Forwarder im Docker-Container ausführen
Wenn Sie ein Upgrade der Google Security Operations-Weiterleitung durchführen, bereinigen Sie zuerst frühere Docker-Ausführungen. Im folgenden Beispiel lautet der Name des Docker-Containers
cfps
.docker stop cfps docker rm cfps
Rufen Sie mit diesem Docker-Pull-Befehl das neueste Docker-Image aus Google Cloud ab.
docker pull gcr.io/chronicle-container/cf_production_stable_windows
Starten Sie den Google Security Operations-Forwarder über den Docker-Container.
docker run ` --detach ` --name cfps ` --restart=always ` --log-opt max-size=100m ` --log-opt max-file=10 ` -p 10514:10514 ` -v C:\config\:C:/opt/chronicle/external ` gcr.io/chronicle-container/cf_production_stable_windows
Sie können mit mehreren Optionen oder Bereichen mehrere Ports hinzufügen. Beispiel:
-p 3001:3000 -p 2023:2022
oder-p 7000-8000:7000-8000
Forwarder-Logs ansehen
Führen Sie den folgenden Befehl aus, um die Google Security Operations-Forwarder-Logs aufzurufen:
sudo docker logs cfps
Führen Sie den folgenden Befehl aus, um den Pfad der Datei anzuzeigen, in der die Logs gespeichert sind:
docker inspect --format='{{.LogPath}}' CONTAINER_NAME
Führen Sie den folgenden Befehl aus, um die laufenden Logs anzuzeigen:
sudo docker logs cfps -f
Führen Sie den folgenden Befehl aus, um die Logs in einer Datei zu speichern:
sudo docker logs cfps &> logs.txt
Google Security Operations-Forwarder deinstallieren
Mit den folgenden Docker-Befehlen können Sie die Google Security Operations-Weiterleitung anhalten und deinstallieren oder entfernen.
Mit diesem Befehl wird der Google Security Operations-Forwarder-Container beendet:
docker stop cfps
Mit diesem Befehl wird der Google Security Operations-Forwarder-Container entfernt:
docker rm cfps
Google Security Operations-Forwarder aktualisieren
Der Google Security Operations-Forwarder für Windows in Docker wird kontinuierlich mithilfe eines Shell-Skripts im Docker-Image aktualisiert, sodass keine ausführbaren Dateien dafür bereitgestellt werden müssen.
Daten erheben
In den folgenden Abschnitten erfahren Sie, wie Sie den Google Security Operations-Forwarder so konfigurieren, dass verschiedene Datentypen aufgenommen werden, die an die Google Security Operations-Instanz weitergeleitet werden.
Konfigurieren Sie für batch_n_bytes
keinen Wert größer als 1 MB. Wenn Sie einen Wert größer als 1 MB konfigurieren, wird der Wert automatisch auf 1 MB zurückgesetzt.
Splunk-Daten erfassen
Sie können den Google Security Operations-Forwarder so konfigurieren, dass Ihre Splunk-Daten an Google Security Operations weitergeleitet werden. Google Cloud konfiguriert den Google Security Operations-Forwarder mit den folgenden Informationen, um Ihre Daten aus Splunk weiterzuleiten:
URL für die Splunk REST API, z. B.
https://10.0.113.15:8089
.Splunk-Abfragen zum Generieren von Daten für jeden der erforderlichen Datentypen (z. B.
index=dns
).
FORWARDER_NAME.conf output: collectors: - splunk: common: enabled: true data_type: WINDOWS_DNS data_hint: "#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto trans_id query qclass qclass_name" batch_n_seconds: 10 batch_n_bytes: 819200 url: https://127.0.0.1:8089 is_ignore_cert: true minimum_window_size: 10s maximum_window_size: 30s query_string: search index=* sourcetype=dns query_mode: realtime
- Machen Sie die Anmeldedaten für Ihr Splunk-Konto der Google Security Operations-Weiterleitung zur Verfügung. Erstellen Sie dazu eine
creds.txt
-Datei.
So verwenden Sie eine creds.txt
-Datei:
Erstellen Sie eine lokale Datei für Ihre Splunk-Anmeldedaten und nennen Sie sie
creds.txt
.Geben Sie Ihren Nutzernamen in die erste Zeile und das Passwort in die zweite Zeile ein:
cat creds.txt myusername mypassword
Wenn Sie die Google Security Operations-Weiterleitung für den Zugriff auf eine Splunk-Instanz verwenden möchten, kopieren Sie die Datei
creds.txt
in das Konfigurationsverzeichnis, das sich in dem Verzeichnis befindet, in dem sich auch die Konfigurationsdateien befinden. Beispiel:cp creds.txt c:/opt/chronicle/config/creds.txt
Prüfen Sie, ob sich die Datei
creds.txt
am richtigen Speicherort befindet:ls c:/opt/chronicle/config
Syslog-Daten erfassen
Der Google Security Operations-Forwarder kann als Syslog-Server verwendet werden. Sie können jede Appliance oder jeden Server, der das Senden von Syslog-Daten über eine TCP- oder UDP-Verbindung unterstützt, so konfigurieren, dass deren Daten an den Google Security Operations-Forwarder weitergeleitet werden. Sie können genau festlegen, welche Daten die Appliance oder der Server an den Google Security Operations-Forwarder sendet. Der Google Security Operations-Forwarder kann die Daten dann an Google Security Operations weiterleiten.
Die von Google Cloud bereitgestellte Konfigurationsdatei FORWARDER_NAME.conf
gibt an, welche Ports für jeden Typ weitergeleiteter Daten überwacht werden sollen (z. B. Port 10514). Standardmäßig akzeptiert die Google Security Operations-Weiterleitung sowohl TCP- als auch UDP-Verbindungen.
rsyslog konfigurieren
Zum Konfigurieren von rsyslog müssen Sie für jeden Port (z. B. jeden Datentyp) ein Ziel angeben. Die korrekte Syntax finden Sie in der Systemdokumentation. Die folgenden Beispiele veranschaulichen die rsyslog-Zielkonfiguration:
TCP-Log-Traffic:
dns.* @@192.168.0.12:10514
UDP-Log-Traffic:
dns.* @192.168.0.12:10514
TLS für Syslog-Konfigurationen aktivieren
Sie können TLS für die Syslog-Verbindung zum Google Security Operations-Forwarder aktivieren. Geben Sie in der Konfigurationsdatei des Google Security Operations-Forwarder (FORWARDER_NAME.conf
) den Speicherort Ihres selbst generierten Zertifikats und Ihres Zertifikatschlüssels an, wie im folgenden Beispiel gezeigt:
Zertifikat | c:/opt/chronicle/external/certs/client_generated_cert.pem |
certificate_key | c:/opt/chronicle/external/certs/client_generated_cert.key |
Ändern Sie basierend auf dem gezeigten Beispiel die Konfigurationsdatei für die Google Security Operations-Weiterleitung (FORWARDER_NAME.conf
) so:
collectors: - syslog: common: enabled: true data_type: WINDOWS_DNS data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10515 tcp_buffer_size: 65536 connection_timeout_sec: 60 certificate: "c:/opt/chronicle/external/certs/client_generated_cert.pem" certificate_key: "c:/opt/chronicle/external/certs/client_generated_cert.key" minimum_tls_version: "TLSv1_3"
Einige wichtige Punkte, die Sie beachten sollten:
Sie können die Größe des TCP-Zwischenspeichers konfigurieren. Die Standardgröße des TCP-Zwischenspeichers beträgt 64 KB.
Der empfohlene Standardwert für
connection_timeout
beträgt 60 Sekunden. Ist die Verbindung über einen bestimmten Zeitraum inaktiv, wird die TCP-Verbindung beendet.Die TLS-Mindestversion wird mit der TLS-Version der Eingabeanfrage abgeglichen. Die TLS-Version der Eingabeanfrage muss höher als die TLS-Mindestversion sein. Die TLS-Mindestversion sollte einen der folgenden Werte haben:
TLSv1_0
,TLSv1_1
,TLSv1_2
,TLSv1_3
.
Sie können unter dem Konfigurationsverzeichnis ein certs-Verzeichnis erstellen und die Zertifikatsdateien dort speichern.
Dateidaten erfassen
Ein File Collector ist so konzipiert, dass die Protokolle aus einer Datei abgerufen werden. Die Datei sollte an den Docker-Container gebunden sein.
Verwenden Sie diese Option, wenn Sie Protokolle manuell aus einer einzelnen Protokolldatei hochladen möchten. Damit kann ein Backfill der Logs für eine bestimmte Logdatei durchgeführt werden.
Starten Sie den Google Security Operations-Forwarder vom Docker-Container aus:
docker run ` --name cfps ` --log-opt max-size=100m ` --log-opt max-file=10 ` -p 10514:10514 ` -v c:/opt/chronicle/config:c:/opt/chronicle/external ` -v c:/var/log/crowdstrike/falconhoseclient:c:/opt/chronicle/edr ` gcr.io/chronicle-container/cf_production_stable
Sie können mit mehreren Optionen oder Bereichen mehrere Ports hinzufügen. Beispiel: -p 3001:3000 -p 2023:2022
oder -p 7000-8000:7000-8000
Dieser docker run
-Befehl ist wichtig, um dem Container das Ladevolumen zuzuordnen.
In diesem Beispiel sollten Sie die Google Security Operations-Weiterleitungskonfiguration (FORWARDER_NAME.conf
-Datei) so ändern.
Die Datei sample.txt
sollte im Ordner /var/log/crowdstrike/falconhostclient
vorhanden sein.
collectors: - file: common: enabled: true data_type: CS_EDR data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 file_path: c:/opt/chronicle/edr/output/sample.txt filter:
Flag-Konfigurationen
skip_seek_to_end
(bool): Dieses Flag ist standardmäßig auf false
gesetzt und die Dateieingabe sendet nur neue Logzeilen als Eingabe. Wenn Sie diesen Wert auf true
festlegen, werden alle vorherigen Logzeilen bei Neustarts des Forwarders noch einmal gesendet. Dies führt zu Duplizierung des Logs. Das Festlegen dieses Flags auf true
ist in bestimmten Situationen hilfreich, z. B. bei Ausfällen, da die fehlenden Logzeilen noch einmal durch einen Neustart des Forwarders gesendet werden.
poll
(bool): Der Datei-Collector verwendet die Tail-Bibliothek, um nach Änderungen im Dateisystem zu suchen. Wenn Sie dieses Flag auf true
setzen, verwendet die Tail-Bibliothek die Polling-Methode anstelle der Standardbenachrichtigungsmethode.
Paketdaten erfassen
Der Google Security Operations-Forwarder kann mithilfe von Npcap auf Windows-Systemen Pakete direkt von einer Netzwerkschnittstelle erfassen.
Pakete werden anstelle von Logeinträgen erfasst und an Google Cloud gesendet. Die Erfassung erfolgt nur über eine lokale Schnittstelle.
Wenden Sie sich an den Support von Google Security Operations, um Ihre Konfigurationsdatei für den Google Security Operations-Forwarder so zu aktualisieren, dass die Paketerfassung unterstützt wird.
Zum Ausführen eines PCAP-Forwarders (Packet Capture) benötigen Sie Folgendes:
Installieren Sie Npcap auf dem Microsoft Windows-Host.
Gewähren Sie dem Google Security Operations-Forwarder-Stamm- oder Administratorberechtigungen zum Überwachen der Netzwerkschnittstelle.
Befehlszeilenoptionen sind nicht erforderlich.
Aktivieren Sie bei der Npcap-Installation den WinPcap-Kompatibilitätsmodus.
Zum Konfigurieren eines PCAP-Forwarders benötigt Google Cloud die GUID für die Schnittstelle, die zum Erfassen von Paketen verwendet wird.
Führen Sie getmac.exe
auf dem Computer aus, auf dem Sie den Google Security Operations-Forwarder installieren möchten (entweder auf dem Server oder der Maschine, die den Span-Port überwacht) und senden Sie die Ausgabe an Google Security Operations.
Alternativ können Sie die Konfigurationsdatei ändern. Suchen Sie den PCAP-Abschnitt und ersetzen Sie den GUID-Wert, der neben der Schnittstelle angezeigt wird, durch die aus der Ausführung von getmac.exe angezeigte GUID.
Hier ist als Beispiel ein Original-PCAP-Abschnitt:
- pcap:
common:
enabled: true
data_type: PCAP_DNS
batch_n_seconds: 10
batch_n_bytes: 1048576
interface: \Device\NPF_{1A7E7C8B-DD7B-4E13-9637-0437AB1A12FE}
bpf: udp port 53
Dies ist die Ausgabe nach Ausführung von getmac.exe
:
C:\>getmac.exe
Physical Address Transport Name
===========================================================================
A4-73-9F-ED-E1-82 \Device\Tcpip_{2E0E9440-ABFF-4E5B-B43C-E188FCAD1234}
Und hier ist der überarbeitete PCAP-Abschnitt mit der neuen GUID:
- pcap:
common:
enabled: true
data_type: PCAP_DNS
batch_n_seconds: 10
batch_n_bytes: 1048576
interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
bpf: udp port 53
Daten aus Kafka-Thema erfassen
Sie können Daten aus den Kafka-Themen genau wie aus Syslog aufnehmen. Die Nutzergruppen werden verwendet, damit Sie bis zu drei Google Security Operations-Forwarder bereitstellen und Daten aus demselben Kafka-Thema abrufen können. Weitere Informationen finden Sie unter Kafka.
Weitere Informationen zu Kafka-Nutzergruppen
Beispielkonfiguration: Kafka-Eingabe
Die folgende Google Security Operations-Forwarder-Konfiguration zeigt, wie Sie den Google Security Operations-Forwarder einrichten, um Daten aus den Kafka-Themen aufzunehmen.
Datei FORWARDER_NAME.conf
collectors: - kafka: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true topic: example-topic group_id: chronicle-forwarder timeout: 60s brokers: ["broker-1:9092", "broker-2:9093"] tls: insecureSkipVerify: true certificate: "c:/path/to/cert.pem" certificate_key: "c:/path/to/cert.key" - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Datei FORWARDER_NAME_auth.conf
collectors: - kafka: username: user password: password - syslog:
WebProxy-Daten erfassen
Der Google Security Operations-Forwarder kann WebProxy-Daten mithilfe von Npcap direkt über eine Netzwerkschnittstelle erfassen und an Google Cloud senden.
Wenn Sie die WebProxy-Datenerfassung für Ihr System aktivieren möchten, wenden Sie sich an den Support von Google Security Operations.
Führen Sie die folgenden Schritte aus, bevor Sie einen WebProxy-Forwarder ausführen:
Installieren Sie Npcap auf dem Microsoft Windows-Host. Aktivieren Sie während der Installation den WinPcap-Kompatibilitätsmodus.
Gewähren Sie dem Google Security Operations-Forwarder Root- oder Administratorberechtigungen, um die Netzwerkschnittstelle zu überwachen.
Zum Konfigurieren eines WebProxy-Forwarders benötigt Google Cloud die GUID für die Schnittstelle, die zum Erfassen der WebProxy-Pakete verwendet wird.
Führen Sie
getmac.exe
auf dem Computer aus, auf dem Sie die Google Security Operations-Weiterleitung installieren möchten, und senden Sie die Ausgabe an Google Security Operations. Alternativ können Sie die Konfigurationsdatei ändern. Suchen Sie den Abschnitt „WebProxy“ und ersetzen Sie die GUID, die neben der Schnittstelle angezeigt wird, durch die nach der Ausführung vongetmac.exe
angezeigte GUID.Ändern Sie die Konfigurationsdatei für die Google Security Operations-Weiterleitung (
FORWARDER_NAME.conf
) so:- webproxy: common: enabled : true data_type: <Your LogType> batch_n_seconds: 10 batch_n_bytes: 1048576 interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734} bpf: tcp and dst port 80
Konfigurationen anpassen
In der folgenden Tabelle sind wichtige Parameter aufgeführt, die in der Konfigurationsdatei des Forwarders verwendet werden.
Parameter | Beschreibung |
---|---|
data_type | Die Art der Logdaten, die der Collector erfassen und verarbeiten kann. |
Metadaten | Metadaten, die globale Metadaten überschreiben. |
max_file_buffer_bytes | Maximale Anzahl von Byte, die im Laufwerk oder Dateizwischenspeicher akkumuliert werden können. Der Standardwert ist 1073741824 , also 1 GB. |
max_memory_buffer_bytes | Maximale Anzahl von Byte, die im Zwischenspeicher des Arbeitsspeichers akkumuliert werden können. Der Standardwert ist 1073741824 , also 1 GB. |
write_to_disk_dir_path | Der für den Datei- oder Laufwerkzwischenspeicher zu verwendende Pfad. |
write_to_disk_buffer_enabled | Wenn true , wird der Laufwerkzwischenspeicher anstelle des Arbeitsspeicherpuffers verwendet. Der Standardwert ist false .
|
batch_n_bytes | Maximale Anzahl von Byte, die vom Collector akkumuliert werden können, nach dem die Daten in Batches zusammengefasst werden. Der Standardwert ist 1048576 , also 1 MB. |
batch_n_seconds | Die Anzahl der Sekunden, nach denen die vom Collector erfassten Daten in Batches zusammengefasst werden. Der Standardwert ist 11 Sekunden. |
data_hint | Datenformat, das der Collector empfangen kann (normalerweise der Header der Protokolldatei, der das Format beschreibt). |
Eine umfassende Liste der in der Konfigurationsdatei verwendeten Parameter finden Sie unter Forwarder-Konfigurationsfelder und Collector-Konfigurationsfelder.
Datenkomprimierung aktivieren/deaktivieren
Die Logkomprimierung reduziert den Verbrauch der Netzwerkbandbreite beim Übertragen von Logs an Google Security Operations. Die Komprimierung kann jedoch zu einer erhöhten CPU-Auslastung führen. Der Kompromiss zwischen CPU-Nutzung und Bandbreite hängt von vielen Faktoren ab, einschließlich der Art der Logdaten, der Komprimierbarkeit dieser Daten, der Verfügbarkeit von CPU-Zyklen auf dem Host, auf dem der Google Security Operations-Forwarder ausgeführt wird, und der Notwendigkeit, die Netzwerkbandbreitennutzung zu reduzieren.
Textbasierte Logs werden beispielsweise gut komprimiert und können bei geringer CPU-Nutzung erhebliche Bandbreiteneinsparungen bieten. Verschlüsselte Nutzlasten von Rohpaketen werden jedoch nicht gut komprimiert und verursachen eine höhere CPU-Auslastung.
Standardmäßig ist die Protokollkomprimierung deaktiviert. Das Aktivieren der Logkomprimierung kann den Bandbreitenverbrauch reduzieren. Allerdings kann die Aktivierung der Logkomprimierung auch die CPU-Auslastung erhöhen. Seien Sie sich des Kompromisses bewusst.
Um die Protokollkomprimierung zu aktivieren, setzen Sie das Feld compression
in der Konfigurationsdatei für die Weiterleitung an Google Security Operations auf true
, wie im folgenden Beispiel gezeigt:
Datei FORWARDER_NAME.conf
output: compression: true url: malachiteingestion-pa.googleapis.com:443 identity: identity: collector_id: 10479925-878c-11e7-9421-10604b7cb5c1 customer_id: ebdc4bb9-878b-11e7-8455-10604b7cb5c1 ...
Datei FORWARDER_NAME_auth.conf
output: identity: secret_key: | { "type": "service_account", ... }
Laufwerkszwischenspeicherung konfigurieren
Durch die Laufwerkszwischenspeicherung können Sie zurückgestellte Nachrichten auf dem Laufwerk statt im Arbeitsspeicher zwischenspeichern. Die zurückgestellten Nachrichten können für den Fall gespeichert werden, dass der Google Security Operations-Forwarder abstürzt oder der zugrunde liegende Host abstürzt. Beachten Sie, dass die Aktivierung der Zwischenspeicherung des Laufwerks die Leistung beeinträchtigen kann.
Wenn die Laufwerkszwischenspeicherung deaktiviert ist, verwendet der Google Security Operations-Forwarder 1 GB Arbeitsspeicher (RAM) für jeden Logtyp (z. B. für jeden Connector). Geben Sie den Konfigurationsparameter max_memory_buffer_bytes
an. Der maximal zulässige Arbeitsspeicher beträgt 4 GB.
Sie können die automatische Zwischenspeicherung des Laufwerks so konfigurieren, dass ein dynamisch gemeinsamer Zwischenspeicher für Collectors verwendet wird, der Traffic-Spitzen besser bewältigen kann. Fügen Sie der Weiterleitungskonfiguration Folgendes hinzu, um den dynamisch gemeinsamen Zwischenspeicher zu aktivieren:
auto_buffer: enabled: true target_memory_utilization: 80
Wenn die automatische Zwischenspeicherung des Laufwerks aktiviert, target_memory_utilization
aber nicht definiert ist, wird der Standardwert 70
verwendet.
Wenn Sie den Google Security Operations-Forwarder mit Docker ausführen, empfiehlt Google, zur Isolation ein Volume separat vom Konfigurations-Volume bereitzustellen. Außerdem sollte jede Eingabe mit einem eigenen Verzeichnis oder Volume isoliert sein, um Konflikte zu vermeiden.
Beispielkonfiguration: Laufwerkzwischenspeicherung
Die folgende Konfiguration enthält eine Syntax zum Aktivieren der Zwischenspeicherung des Laufwerks:
collectors: - syslog: common: write_to_disk_buffer_enabled: true # c:/buffers/NIX_SYSTEM
is part of the external mounted volume for the forwarder write_to_disk_dir_path: c:/buffers/NIX_SYSTEM
max_file_buffer_bytes: 1073741824 batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Filter für reguläre Ausdrücke festlegen
Mit Filtern für reguläre Ausdrücke können Sie Logs anhand von Übereinstimmungen mit regulären Ausdrücken mit Rohlogs filtern.
Die Filter verwenden die syntax.
Die Filter müssen einen regulären Ausdruck enthalten und optional das Verhalten bei einer Übereinstimmung definieren. Das Standardverhalten bei einer Übereinstimmung ist „block“. Sie können sie auch explizit als Block konfigurieren.
Alternativ können Sie Filter mit dem Verhalten allow
angeben. Wenn Sie allow
-Filter angeben, blockiert die Google Security Operations-Weiterleitung alle Logs, die nicht mindestens einem allow
-Filter entsprechen.
Es ist möglich, eine beliebige Anzahl von Filtern zu definieren. Blockfilter haben Vorrang vor allow
-Filtern.
Wenn Sie Filter definieren, muss ihnen ein Name zugewiesen werden. Die Namen der aktiven Filter werden Google Security Operations mithilfe von Forwarder-Systemmesswerten gemeldet. Auf der Stammebene der Konfiguration definierte Filter werden mit den auf Collector-Ebene definierten Filtern zusammengeführt. Bei in Konflikt stehenden Namen haben die Filter auf Collector-Ebene Vorrang. Wenn keine Filter auf Stamm- oder Collector-Ebene definiert sind, werden alle zugelassen.
Beispielkonfiguration: Filter für reguläre Ausdrücke
In der folgenden Google Security Operations-Forwarder-Konfiguration werden die WINEVTLOG
-Logs blockiert, die nicht mit dem Stammfilter (allow_filter
) übereinstimmen. Aufgrund des regulären Ausdrucks lässt der Filter nur Logs mit Prioritäten zwischen 0 und 99 zu.
Alle NIX_SYSTEM
-Logs, die „foo“ oder „bar“ enthalten, werden jedoch trotz allow_filter
blockiert. Das liegt daran, dass die Filter ein logisches ODER verwenden. Alle Logs werden verarbeitet, bis ein Filter ausgelöst wird.
regex_filters: allow_filter: regexp: ^<[1-9][0-9]?$>.*$ behavior_on_match: allow collectors: - syslog: common: regex_filters: block_filter_1: regexp: ^.*foo.*$ behavior_on_match: block block_filter_2: regexp: ^.*bar.*$ batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Beliebige Labels konfigurieren
Mit Labels können beliebige Metadaten mithilfe von Schlüssel/Wert-Paaren an Logs angehängt werden. Labels können für einen gesamten Google Security Operations-Forwarder oder in einem bestimmten Collector eines Google Security Operations-Forwarders konfiguriert werden. Wenn beide angegeben sind, werden die Labels mit den Collector-Schlüsseln zusammengeführt. Diese haben Vorrang vor den Google Security Operations-Forwarder-Schlüsseln, wenn sich die Schlüssel überschneiden.
Beispielkonfiguration: beliebige Labels
In der folgenden Google Security Operations-Forwarder-Konfiguration sind die Schlüssel/Wert-Paare foo=bar
sowie meow=mix
an WINEVTLOG
-Logs und die Schlüssel/Wert-Paare foo=baz
und meow=mix
an die NIX_SYSTEM
-Logs angehängt.
metadata: labels: foo: bar meow: mix collectors: syslog: common: metadata: labels: foo: baz meow: mix batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Namespaces konfigurieren
Verwenden Sie Namespace-Labels, um Logs von verschiedenen Netzwerksegmenten zu identifizieren und Konflikte zwischen sich überschneidenden IP-Adressen zu beheben. Sie können ein Namespace-Label für einen gesamten Google Security Operations-Forwarder oder innerhalb eines bestimmten Collectors des Google Security Operations-Forwarders konfigurieren. Wenn beide enthalten sind, hat der Namespace des jeweiligen Collectors Vorrang.
Jeder für den Google Security Operations-Forwarder konfigurierte Namespace wird mit den zugehörigen Assets in der Google Security Operations-Benutzeroberfläche angezeigt. Sie können auch mit der Google Security Operations Search-Funktion nach Namespaces suchen.
Informationen zum Aufrufen von Namespaces in der Google Security Operations-Benutzeroberfläche finden Sie hier.
Beispielkonfiguration: Namespaces
In der folgenden Google Security Operations-Forwarder-Konfiguration werden die WINEVTLOG
-Logs an den FORWARDER-Namespace und die NIX_SYSTEM
-Logs an den CORPORATE-Namespace angehängt.
metadata: namespace: FORWARDER collectors: - syslog: common: metadata: namespace: CORPORATE batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Load-Balancing- und Hochverfügbarkeitsoptionen konfigurieren
Der Google Security Operations-Forwarder für Windows in Docker kann in einer Umgebung bereitgestellt werden, in der ein Layer-4-Load-Balancer zwischen der Datenquelle und den Google Security Operations-Forwarder-Instanzen installiert ist. Auf diese Weise können Sie die Logsammlung auf mehrere Google Security Operations-Forwarder verteilen oder die Logs bei einem Fehler an einen anderen Google Security Operations-Forwarder senden. Dieses Feature wird nur vom Sammlungstyp „syslog“ unterstützt.
Die Google Security Operations-Weiterleitung für Windows in Docker umfasst einen integrierten HTTP-Server, der auf HTTP-Systemdiagnosen des Load-Balancers reagiert. Der HTTP-Server sorgt auch dafür, dass beim Starten oder Herunterfahren eines Google Security Operations-Forwarders keine Protokolle verloren gehen.
Konfigurieren Sie die Optionen für HTTP-Server, Load-Balancing und Hochverfügbarkeit im Abschnitt server
der Konfigurationsdatei für die Google Security Operations-Weiterleitung. Diese Optionen unterstützen das Festlegen von Zeitlimits und Statuscodes, die als Antwort auf Systemdiagnosen zurückgegeben werden, die in Container-Planer- und Orchestrierungsbasierten Bereitstellungen sowie von konventionellen Load-Balancern empfangen werden.
Verwenden Sie die folgenden URL-Pfade für Zustands-, Bereitschafts- und Aktivitätsprüfungen.
Die <host:port>
-Werte sind in der Google Security Operations-Forwarder-Konfiguration definiert.
http://<host:port>/meta/available
: Aktivitätsprüfungen für Container-Planer/Orchestratoren wie Kubernetes.http://<host:port>/meta/ready
: Bereitschaftsprüfungen und herkömmliche Systemdiagnosen des Load-Balancers.
Die folgende Google Security Operations-Forwarder-Konfiguration ist ein Beispiel für Load-Balancing und Hochverfügbarkeit:
collectors: - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60 server: graceful_timeout: 15s drain_timeout: 10s http: port: 8080 host: 0.0.0.0 read_timeout: 3s read_header_timeout: 3s write_timeout: 3s idle_timeout: 3s routes: - meta: available_status: 204 ready_status: 204 unready_status: 503
Konfigurationspfad | Beschreibung |
---|---|
Server : Graceful_timeout | Der Zeitraum, in dem der Google Security Operations-Forwarder eine schlechte Bereitschafts-/Systemdiagnose zurückgibt und noch neue Verbindungen akzeptiert. Dies ist auch die Wartezeit zwischen dem Empfang eines Signals zum Anhalten und dem tatsächlichen Herunterfahren des Servers selbst. Dadurch hat der Load-Balancer Zeit, den Google Security Operations-Forwarder aus dem Pool zu entfernen. |
Server : Drain_timeout | Die Zeit, die der Google Security Operations-Forwarder darauf wartet, dass aktive Verbindungen selbst erfolgreich beendet wurden, bevor er vom Server geschlossen wird. |
Server : http : Port | Die Portnummer, die der HTTP-Server auf Systemdiagnosen des Load-Balancers überwacht. Muss zwischen 1024 und 65535 liegen. |
Server : http : Host | Die IP-Adresse oder der Hostname, der in IP-Adressen aufgelöst werden kann, die der Server überwachen soll. Wenn leer, gilt der Standardwert „Lokales System“ (0.0.0.0). |
Server : http : read_timeout | Wird zum Abstimmen des HTTP-Servers verwendet. Die Standardeinstellung muss in der Regel nicht geändert werden. Die maximale Zeit, die zum Lesen der gesamten Anfrage, sowohl des Headers als auch des Textkörpers, erlaubt ist. Sie können sowohl read_timeout als auch read_header_timeout festlegen. |
Server : http : read_header_timeout | Wird zum Abstimmen des HTTP-Servers verwendet. Die Standardeinstellung muss in der Regel nicht geändert werden. Die maximale Zeit, die zum Lesen von Anfrageheadern erlaubt ist. Die Verbindung hat gelesen, dass die Frist nach dem Lesen des Headers zurückgesetzt wird. |
Server : http : write_timeout | Wird zum Abstimmen des HTTP-Servers verwendet. Die Standardeinstellung muss in der Regel nicht geändert werden. Die maximal zulässige Zeit zum Senden einer Antwort. Er wird zurückgesetzt, wenn ein neuer Anfrageheader gelesen wird. |
Server : http : Idle_timeout | Wird zum Abstimmen des HTTP-Servers verwendet. Die Standardeinstellung muss in der Regel nicht geändert werden. Die maximale Wartezeit auf die nächste Anfrage, wenn inaktive Verbindungen aktiviert sind. Wenn inaktiv_timeout null ist, wird der Wert von read_timeout verwendet. Wenn beide null sind, wird read_header_timeout verwendet. |
route : meta : ready_status | Der Statuscode, den der Google Security Operations-Forwarder zurückgibt, wenn er in einer der folgenden Situationen bereit ist, den Traffic zu akzeptieren:
|
Routen : meta : ungeleseny_status | Der Statuscode, den der Google Security Operations-Forwarder zurückgibt, wenn er nicht zum Akzeptieren von Traffic bereit ist. |
Routen : meta : available_status | Der Statuscode, den der Google Security Operations-Forwarder zurückgibt, wenn eine Aktivitätsprüfung empfangen wird und die Google Security Operations-Weiterleitung verfügbar ist. Containerplaner/-orchestratoren wie Kubernetes senden häufig Aktivitätsprüfungen. |