Barracuda-WAF-Protokolle erfassen

Unterstützt in:

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

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
  3. 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

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Profil.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder die PowerShell als Administrator.
  2. 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

  1. Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
  2. 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

Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet

  1. Rufen Sie die Konfigurationsdatei auf:

    1. Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    2. Öffnen Sie die Datei mit einem Texteditor, z. B. nano, vi oder Notepad.
  2. Bearbeiten Sie die Datei config.yamlso:

    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
    
  3. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kundennummer.

  5. 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

  1. Melden Sie sich mit Administratoranmeldedaten in der Barracuda WAF-Konsole an.
  2. Klicken Sie auf den Tab Erweitert > Protokolle exportieren.
  3. Klicken Sie im Bereich Protokolle exportieren auf Exportprotokollserver hinzufügen.
  4. 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