Barracuda-WAF-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Barracuda-WAF-Logs (Web Application Firewall) mit Bindplane erfassen. Der Parser extrahiert Felder aus Protokollen im JSON- und Syslog-Format, normalisiert sie und ordnet sie dem einheitlichen Datenmodell (Unified Data Model, UDM) zu. Es verarbeitet verschiedene Protokolltypen (Traffic, Web-Firewall) und führt bedingte Transformationen basierend auf Feldwerten aus, einschließlich IP-Adress-/Hostnamenauflösung, Richtungszuordnung und Schweregradnormalisierung.
Hinweise
- Sie benötigen eine Google Security Operations-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 Berechtigungen für die Barracuda-WAF.
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: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:54525" 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: SYSLOG namespace: barracuda_waf raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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
Barracuda WAF konfigurieren
- Melden Sie sich mit Administratoranmeldedaten in der Barracuda WAF-Konsole an.
- Klicken Sie auf den Tab Erweitert > Protokolle exportieren.
- Klicken Sie im Bereich Protokolle exportieren auf Exportprotokollserver hinzufügen.
- Geben Sie die folgenden Werte an:
- Name: Geben Sie einen Namen für den Google SecOps-Weiterleiter ein.
- Logservertyp: Wählen Sie Syslog aus.
- IP-Adresse oder Hostname: Geben Sie die IP-Adresse von
Bindplane
ein. - Port: Geben Sie den Port
Bindplane
ein. - Verbindungstyp: Wählen Sie den Verbindungstyp
TCP
aus. TCP wird empfohlen. Es können jedoch auch UDP- oder SSL-Protokolle verwendet werden. - Serverzertifikat prüfen: Wählen Sie Nein aus.
- Clientzertifikat: Wählen Sie Kein aus.
- Zeitstempel und Hostnamen protokollieren: Wählen Sie Ja aus.
- Klicken Sie auf Hinzufügen.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
action |
security_result.action |
Wenn action DENY ist, setzen Sie BLOCK . Andernfalls setzen Sie ALLOW (speziell für den WF -Protokolltyp). Wird auch für allgemeine Firewallereignisse verwendet. |
appProtocol |
network.application_protocol |
Wenn appProtocol mit TLSv übereinstimmt, legen Sie HTTPS fest. Andernfalls verwenden Sie den Wert appProtocol . |
attackDetails |
security_result.description |
Aus dem Rohprotokoll für den WF -Logtyp extrahiert. |
attackType |
security_result.summary |
Teil des Großflächenbrandes security_result.summary , kombiniert mit ruleType . |
bytesReceived |
network.received_bytes |
In eine vorzeichenlose Ganzzahl konvertiert und dem TR -Logtyp zugeordnet. |
bytesSent |
network.sent_bytes |
In eine vorzeichenlose Ganzzahl konvertiert und dem TR -Logtyp zugeordnet. |
hostName |
target.hostname |
Wenn hostName keine IP-Adresse ist, verwenden Sie den Wert. Andernfalls wird es mit target.ip zusammengeführt. |
httpMethod loginId |
principal.user.userid |
Wird dem Protokolltyp TR zugeordnet, wenn er nicht mit emptyToken übereinstimmt. |
logType |
metadata.product_event_type |
Wenn TR , legen Sie metadata.product_event_type auf Barracuda Access Log fest. Bei WF auf Barracuda Web Firewall Log . |
message |
metadata.description |
Wird verwendet, wenn desc nicht leer ist. |
referrer |
network.http.referral_url |
Wird dem Protokolltyp TR zugeordnet, wenn er nicht mit emptyToken übereinstimmt. |
responseCode |
network.http.response_code |
In eine Ganzzahl konvertiert und dem TR -Logtyp zugeordnet. |
rule |
security_result.rule_name |
Zugewiesen für WF -Logtyp. |
ruleType |
security_result.summary |
Teil des Großflächenbrandes security_result.summary , kombiniert mit attackType . |
sec_desc |
security_result.rule_name |
Wird für allgemeine Firewallereignisse verwendet. |
server |
target.ip |
Mit target.ip zusammengeführt |
serv |
target.ip |
Mit target.ip zusammengeführt |
severity |
security_result.severity , is_alert , is_significant |
Für den Protokolltyp WF : In Großbuchstaben konvertiert. Wenn EMERGENCY , ALER oder CRITICAL , legen Sie security_result.severity auf CRITICAL , is_alert auf „wahr“ und is_significant auf „wahr“ fest. Bei ERROR auf HIGH . Bei WARNING auf MEDIUM . Bei NOTICE auf LOW . Andernfalls setzen Sie INFORMATIONAL . |
src |
principal.ip |
Wird auch für allgemeine Firewallereignisse und einige Statusaktualisierungen verwendet. |
srcPort |
principal.port |
In eine Ganzzahl umgewandelt. |
target targetPort |
target.port |
In eine Ganzzahl umgewandelt. |
time |
metadata.event_timestamp.seconds , metadata.event_timestamp.nanos , timestamp.seconds , timestamp.nanos |
Wird mit tz kombiniert und analysiert, um den Ereigniszeitstempel zu erstellen. Die Sekunden und Nanosekunden werden extrahiert und in die entsprechenden Felder eingefügt. |
url urlParams |
target.url |
Wird an url angehängt, wenn es für den TR -Protokolltyp nicht mit emptyToken übereinstimmt. |
userAgent userName |
target.user.userid , target.user.user_display_name |
Wird für allgemeine Firewallereignisse verwendet. Wenn der Wert für den TR -Protokolltyp nicht mit emptyToken übereinstimmt, wird er target.user.user_display_name zugeordnet. Hartcodiert auf Barracuda . Wird auf NETWORK_HTTP gesetzt, wenn sowohl src als auch target vorhanden sind. Wird auf STATUS_UPDATE gesetzt, wenn nur src vorhanden ist. Legen Sie GENERIC_EVENT als Standard oder für andere Szenarien wie das CEF-Parsen fest. Hartcodiert auf BARRACUDA_WAF . |
Änderungen
2023-07-19
Fehlerkorrektur:
- Nicht analysierte Rohlogs mit einem Grok-Muster analysiert.
- „server“ wurde „target.ip“ zugeordnet.
2022-09-09
- Es wurde ein Standardparser erstellt und die benutzerdefinierten Parser wurden in den Standardparser migriert.
- Die folgenden Felder werden zugeordnet:
- „duser“ wurde „target.user.user_display_name“ zugeordnet.
- „suser“ ist „.principal.user.user_display_name“ zugeordnet.
- „suid“ ist „principal.user.userid“ zugeordnet.
- „src“ ist auf „principal.ip“ zugeordnet.
- „dst“ ist mit „target.ip“ verknüpft.
- „shost“ ist „principal.hostname“ zugeordnet.
- „severity“ ist „security_result.severity“ zugeordnet.
- „action“ wurde „security_result.action“ zugeordnet.
- „user_name“ ist „target.user.userid“ zugeordnet.
- „domain_name“ ist mit „target.domain.name“ verknüpft.
- „mac_address“ ist „principal.mac“ zugeordnet.
- „direction“ ist „network.direction“ zugeordnet.
- „ip_protocol“ ist „network.ip_protocol“ zugeordnet.
- „summary“ ist „security_result.summary“ zugeordnet.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten