HAProxy-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie HAProxy-Logs mit 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. Anschließend werden die extrahierten Felder dem Unified Data Model (UDM) zugeordnet. Die Daten werden mit zusätzlichem Kontext angereichert und die Darstellung für weitere Analysen 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-Konsole an.
  2. Rufen Sie SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Aufnahme 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-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Fenstereinbau

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

Zusätzliche Installationsressourcen

Weitere Installationsoptionen finden Sie im Installationsleitfaden.

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

  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 Kunden-ID.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei abrufen gespeichert wurde.

Bindplane-Agent neu starten, um die Änderungen zu übernehmen

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:

    sudo systemctl restart bindplane-agent
    
  • Wenn Sie den Bindplane-Agent unter Windows neu starten möchten, können Sie entweder die Konsole Services verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog für HAProxy konfigurieren

  1. Melden Sie sich über die CLI bei HAproxy an.
  2. Fügen Sie die log-Anweisung im Abschnitt global der Konfiguration 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 Aus dem Feld bytes_read im Log extrahiert und in eine vorzeichenlose Ganzzahl konvertiert.
captured_request_headers
client_ip principal.ip Aus dem Feld client_ip im Log extrahiert.
client_port principal.port Aus dem Feld client_port im Log extrahiert und in eine Ganzzahl konvertiert.
command_description metadata.description Wird aus dem Feld command_description im Log extrahiert, falls verfügbar. Andernfalls wird sie je nach Logmeldung aus anderen Feldern wie action oder status abgeleitet.
Datum/Uhrzeit metadata.event_timestamp.seconds Wird aus dem Feld datetime im Log extrahiert, falls verfügbar. Andernfalls wird sie aus dem Feld timestamp im Logeintrag abgeleitet.
description metadata.description Wird aus dem Feld description im Log extrahiert, falls verfügbar. Andernfalls wird sie je nach Logmeldung aus anderen Feldern wie command_description oder action abgeleitet.
feconn
frontend_name
http_request target.url Aus dem Feld http_request im Log extrahiert.
http_status_code network.http.response_code Aus dem Feld http_status_code im Log extrahiert und in eine Ganzzahl konvertiert.
http_verb network.http.method Aus dem Feld http_verb im Log extrahiert.
http_version metadata.product_version Aus dem Feld http_version im Log extrahiert und als HTTP/{version} formatiert.
Initiator target.application Aus dem Feld initiator im Log extrahiert.
module
msg security_result.summary Aus dem Feld msg im Log extrahiert.
pid target.process.pid Aus dem Feld pid im Log extrahiert.
verarbeiten
process_name target.application Aus dem Feld process_name im Log extrahiert.
retries
server_name target.hostname Aus dem Feld server_name im Log extrahiert. Falls leer, wird standardmäßig der Wert von syslog_server verwendet.
die Ausprägung security_result.severity Wird aus dem Feld severity im Log 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 Log extrahiert. Wird sowohl für den Zielhostnamen (wenn server_name leer ist) als auch für den Zwischenhostnamen 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 Log extrahiert und nach Datums- und Zeitinformationen geparst. Wird als Zeitstempel des Ereignisses verwendet.
unknown_parameters1
unknown_parameters2
user_name target.user.userid Aus dem Feld user_name im Log extrahiert.
metadata.event_type Standardmäßig auf NETWORK_HTTP festgelegt. Wird basierend auf der Logmeldung und den 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