A10 Network Load Balancer-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie A10 Network Load Balancer-Logs mithilfe eines Bindplane-Agents in Google Security Operations exportieren. Der Parser verwendet zuerst grok
-Muster, um relevante Felder zu extrahieren. Anschließend werden anhand von bedingten Anweisungen (if
) die extrahierten Felder basierend auf ihrem Vorhandensein und Inhalt dem einheitlichen Datenmodell (UDM) zugeordnet, um den Ereignistyp zu kategorisieren.
Hinweise
- Sie benötigen eine Google SecOps-Instanz.
- Sie müssen Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
- Sie benötigen erhöhte Zugriffsrechte für den A10 Load Balancer.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- Lade die Datei zur Authentifizierung der Datenaufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
Bindplane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die PowerShell als Administrator.
Führen Sie dazu diesen Befehl aus:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux-Installation
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
Führen Sie dazu diesen Befehl aus:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Weitere Installationsressourcen
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet
Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml
. Normalerweise befindet es sich unter Linux im Verzeichnis/etc/bindplane-agent/
oder unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor, z. B.
nano
,vi
oder Notepad.
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: A10_LOAD_BALANCER raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
Ersetzen Sie
<customer_id>
durch die tatsächliche Kundennummer.Aktualisieren Sie
/path/to/ingestion-authentication-file.json
im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.
Starten Sie den Bindplane-Agent neu, um die Änderungen anzuwenden
Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:
sudo systemctl restart bindplane-agent
Sie können den Bindplane-Agenten unter Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:
net stop BindPlaneAgent && net start BindPlaneAgent
Syslog-Server im A10 Load Balancer konfigurieren
- Stellen Sie mit einem SSH-Client eine SSH-Verbindung zum A10 Load Balancer her.
Rufen Sie den Konfigurationsmodus mit dem folgenden Befehl auf:
config
Konfigurieren Sie den Remote-Syslog-Server mit dem folgenden Befehl:
logging host <bindplane-server-ip> <port-number>
- Ersetzen Sie
<bindplane-server-ip>
durch die BindPlane-IP-Adresse und<port-number>
durch die in BindPlane konfigurierte Adresse, z. B.514
.
- Ersetzen Sie
Verwenden Sie den folgenden Befehl, um die Schweregradstufe festzulegen:
logging level information
- Dadurch werden dem Bindplane-Kundenservicemitarbeiter informative Nachrichten (z. B. Warnungen und Fehler) gesendet.
Prüfen Sie, ob das syslog-Logging aktiviert ist. Führen Sie dazu Folgendes aus:
logging enable
Speichern Sie die Konfiguration, damit sie nach einem Neustart erhalten bleibt:
write memory
Beispiel für eine vollständige Befehlszeilenkonfiguration:
config logging host 192.168.1.100 514 logging level info logging enable write memory
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
dns | additional.fields.dns.value.string_value | Der Wert wird aus dem Feld dns extrahiert, das vom Grok-Muster extrahiert wird. |
dns_server | additional.fields.dns_server.value.string_value | Der Wert wird aus dem Feld dns_server extrahiert, das vom Grok-Muster extrahiert wird. |
gslb | additional.fields.gslb.value.string_value | Der Wert wird aus dem Feld gslb extrahiert, das vom Grok-Muster extrahiert wurde. |
host_name | principal.hostname principal.asset.hostname |
Der Wert wird aus dem Feld host_name extrahiert, das vom Grok-Muster extrahiert wird. |
httpmethod | network.http.method | Der Wert wird aus dem Feld httpmethod extrahiert, das vom Grok-Muster extrahiert wird. |
partion_id | additional.fields.partion_id.value.string_value | Der Wert wird aus dem Feld partion_id extrahiert, das vom Grok-Muster extrahiert wird. |
prin_ip | principal.ip principal.asset.ip |
Der Wert wird aus dem Feld prin_ip extrahiert, das vom Grok-Muster extrahiert wurde. |
prin_mac | principal.mac | Der Wert wird aus dem Feld prin_mac übernommen, das vom Grok-Muster extrahiert wurde. Dabei werden Punkte entfernt und alle zwei Zeichen werden Doppelpunkte eingefügt. |
prin_port | principal.port | Der Wert wird aus dem Feld prin_port übernommen, das vom Grok-Muster extrahiert wurde, und in eine Ganzzahl umgewandelt. |
Proto | network.ip_protocol | Der Wert wird aus dem Feld proto extrahiert, das vom Grok-Muster extrahiert wurde. Wenn das Feld message den Wert UDP enthält, wird der Wert auf UDP gesetzt. |
sessionid | network.session_id | Der Wert wird aus dem Feld sessionid extrahiert, das vom Grok-Muster extrahiert wurde. |
status_code | network.http.response_code | Der Wert wird aus dem Feld status_code übernommen, das vom Grok-Muster extrahiert wurde, und in eine Ganzzahl umgewandelt. |
tar_ip | target.ip target.asset.ip |
Der Wert wird aus dem Feld tar_ip extrahiert, das vom Grok-Muster extrahiert wurde. |
tar_mac | target.mac | Der Wert wird aus dem Feld tar_mac übernommen, das vom Grok-Muster extrahiert wurde. Dabei werden Punkte entfernt und alle zwei Zeichen werden Doppelpunkte eingefügt. |
tar_port | target.port | Der Wert wird aus dem Feld tar_port übernommen, das vom Grok-Muster extrahiert wurde, und in eine Ganzzahl umgewandelt. |
Zeit | metadata.event_timestamp.seconds | Der Wert wird aus dem Feld time geparst, das vom Grok-Muster extrahiert wurde, und zwar mit mehreren möglichen Datumsformaten. |
URL | target.url | Der Wert wird aus dem Feld url extrahiert, das vom Grok-Muster extrahiert wird. |
Nutzer | principal.user.userid | Der Wert wird aus dem Feld user extrahiert, das vom Grok-Muster extrahiert wurde. |
– | metadata.event_type | Wird von der Parserlogik basierend auf dem Vorhandensein von Informationen zum Hauptkonto und zum Zielkonto bestimmt: – NETWORK_CONNECTION : Wenn sowohl Informationen zum Hauptkonto als auch zum Zielkonto vorhanden sind.– STATUS_UPDATE : Wenn nur Informationen zum Hauptkonto vorhanden sind.– GENERIC_EVENT : Andernfalls. |
– | metadata.log_type | Hartcodiert auf A10_LOAD_BALANCER . |
– | network.application_protocol | Wird auf HTTP gesetzt, wenn das Feld proto HTTP ist. |
Änderungen
2024-12-27
Optimierung:
- Grok-Muster zum Parsen nicht geparster Protokolle hinzugefügt.
- Ein KV-Block zum Parsen der Protokolle wurde hinzugefügt.
prin_host
wurdeprincipal.hostname
undprincipal.asset.hostname
zugeordnet.app
wurdetarget.application
zugeordnet.device_version
wurdemetadata.product_version
zugeordnet.device_vendor
wurdemetadata.vendor_name
zugeordnet.device_product
wurdemetadata.product_name
zugeordnet.event_name
unddevice_event_class_id
wurdenmadeta.product_event_type
zugeordnet.severity
wurdesecurity_result.severity
zugeordnet.src
wurdeprincipal.ip
undprincipal.asset.ip
zugeordnet.spt
wurdeprincipal.port
zugeordnet.dst
wurdetarget.ip
undtarget.asset.ip
zugeordnet.dpt
wurdetarget.port
zugeordnet.msg
wurdemetadata.description
zugeordnet.suser
wurdeprincipal.user.user_display_name
zugeordnet.act
undcn1
wurdenadditional.fields
zugeordnet.method
wurdenetwork.http.method
zugeordnet.app_proto
wurdenetwork.application_protocol
zugeordnet.tls_version
wurdenetwork.tls.version
zugeordnet.
2024-01-28
- Neu erstellter Parser.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten