A10 Network Load Balancer-Protokolle erfassen

Unterstützt in:

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

  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:
        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
    
  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
    

Syslog-Server im A10 Load Balancer konfigurieren

  1. Stellen Sie mit einem SSH-Client eine SSH-Verbindung zum A10 Load Balancer her.
  2. Rufen Sie den Konfigurationsmodus mit dem folgenden Befehl auf:

    config
    
  3. 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.
  4. 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.
  5. Prüfen Sie, ob das syslog-Logging aktiviert ist. Führen Sie dazu Folgendes aus:

    logging enable
    
  6. 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 wurde principal.hostname und principal.asset.hostname zugeordnet.
  • app wurde target.application zugeordnet.
  • device_version wurde metadata.product_version zugeordnet.
  • device_vendor wurde metadata.vendor_name zugeordnet.
  • device_product wurde metadata.product_name zugeordnet.
  • event_name und device_event_class_id wurden madeta.product_event_type zugeordnet.
  • severity wurde security_result.severity zugeordnet.
  • src wurde principal.ip und principal.asset.ip zugeordnet.
  • spt wurde principal.port zugeordnet.
  • dst wurde target.ip und target.asset.ip zugeordnet.
  • dpt wurde target.port zugeordnet.
  • msg wurde metadata.description zugeordnet.
  • suser wurde principal.user.user_display_name zugeordnet.
  • act und cn1 wurden additional.fields zugeordnet.
  • method wurde network.http.method zugeordnet.
  • app_proto wurde network.application_protocol zugeordnet.
  • tls_version wurde network.tls.version zugeordnet.

2024-01-28

  • Neu erstellter Parser.

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