HAProxy-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie HAProxy-Protokolle mithilfe von Bindplane in Google Security Operations aufnehmen. Der Logstash-Parser extrahiert Felder aus HAProxy-Syslog-Nachrichten mithilfe einer Reihe von Grok-Musterabgleichsregeln, die speziell für die Verarbeitung verschiedener HAProxy-Logformate entwickelt wurden. Die extrahierten Felder werden dann dem einheitlichen Datenmodell (Unified Data Model, UDM) zugeordnet. So werden die Daten mit zusätzlichem Kontext angereichert und die Darstellung für die weitere Analyse standardisiert.

Hinweise

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz
  • Windows 2016 oder höher oder ein Linux-Host mit systemd
  • Wenn die Ausführung hinter einem Proxy erfolgt, sind die Firewallports geöffnet.
  • Privilegierter Zugriff auf HAProxy

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

Weitere Installationsoptionen finden Sie im Installationsleitfaden.

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

  1. 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.
  2. Bearbeiten Sie die Datei config.yamlso:

    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_file_path: '/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: 'HAPROXY'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                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 in Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog für HAProxy konfigurieren

  1. Melden Sie sich über die Befehlszeile bei HAproxy an.
  2. Fügen Sie der Konfiguration die Anweisung log im Abschnitt global hinzu, um Syslog-Nachrichten über UDP weiterzuleiten.

    • Ersetzen Sie <bindplane-ips> durch die tatsächliche IP-Adresse des Bindplane-Agents.
    global
      log <bindplane-ip>:514 local0
    
    defaults
      log global
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
accept_date_ms
actconn
backend_name
backend_queue
beconn
bytes_read network.received_bytes Wird aus dem Feld bytes_read im Protokoll extrahiert und in eine vorzeichenlose Ganzzahl konvertiert.
captured_request_headers
client_ip principal.ip Aus dem Feld client_ip im Protokoll extrahiert.
client_port principal.port Wird aus dem Feld client_port im Protokoll extrahiert und in eine Ganzzahl umgewandelt.
command_description metadata.description Wird aus dem Feld command_description im Protokoll extrahiert, sofern verfügbar. Andernfalls wird der Wert je nach Protokollmeldung aus anderen Feldern wie action oder status abgeleitet.
Datum/Uhrzeit metadata.event_timestamp.seconds Wird aus dem Feld datetime im Protokoll extrahiert, sofern verfügbar. Andernfalls wird er aus dem Feld timestamp im Logeintrag abgeleitet.
description metadata.description Wird aus dem Feld description im Protokoll extrahiert, sofern verfügbar. Andernfalls wird er je nach Protokollmeldung aus anderen Feldern wie command_description oder action abgeleitet.
feconn
frontend_name
http_request target.url Aus dem Feld http_request im Protokoll extrahiert.
http_status_code network.http.response_code Wird aus dem Feld http_status_code im Protokoll extrahiert und in eine Ganzzahl umgewandelt.
http_verb network.http.method Aus dem Feld http_verb im Protokoll extrahiert.
http_version metadata.product_version Wird aus dem Feld http_version im Protokoll extrahiert und als HTTP/{version} formatiert.
Initiator target.application Aus dem Feld initiator im Protokoll extrahiert.
module
msg security_result.summary Aus dem Feld msg im Protokoll extrahiert.
pid target.process.pid Aus dem Feld pid im Protokoll extrahiert.
verarbeiten
process_name target.application Aus dem Feld process_name im Protokoll extrahiert.
retries
server_name target.hostname Aus dem Feld server_name im Protokoll extrahiert. Ist das Feld leer, wird standardmäßig der Wert syslog_server verwendet.
die Ausprägung security_result.severity Aus dem Feld severity im Protokoll zugeordnet. WARNING wird MEDIUM zugeordnet, ALERT wird CRITICAL zugeordnet und NOTICE wird INFORMATIONAL zugeordnet.
shell
srv_queue
srvconn
Status
syslog_server target.hostname, intermediary.hostname Aus dem Feld syslog_server im Protokoll extrahiert. Wird sowohl für den Ziel-Hostnamen (wenn server_name leer ist) als auch für den Zwischen-Hostnamen verwendet.
syslog_timestamp
syslog_timestamp_1
syslog_timestamp_2
syslog_timestamp_4
target_ip
time_backend_connect
time_backend_response
time_duration
time_queue
time_request
timestamp metadata.event_timestamp.seconds Aus dem Feld timestamp im Protokoll extrahiert und nach Datums- und Uhrzeitinformationen geparst. Wird als Ereigniszeitstempel verwendet.
unknown_parameters1
unknown_parameters2
user_name target.user.userid Aus dem Feld user_name im Protokoll extrahiert.
metadata.event_type Standardmäßig auf NETWORK_HTTP festgelegt. Je nach Protokollmeldung und geparsten Feldern in bestimmte Ereignistypen wie PROCESS_UNCATEGORIZED, STATUS_UPDATE oder USER_UNCATEGORIZED geändert.
metadata.vendor_name Legen Sie HAProxy Enterprise fest.
metadata.product_name Legen Sie HAProxy fest.
network.application_protocol Wird auf HTTP gesetzt, wenn das Feld message HTTP enthält.
metadata.log_type Legen Sie HAPROXY fest.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten