F5‑DNS-Logs erfassen

Parserversion:5.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie F5 DNS-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.

F5 BIG-IP DNS ist eine DNS-Bereitstellungslösung, die Syslog-Nachrichten für DNS-Abfragen, ‑Antworten und Systemereignisse generiert. Der Parser extrahiert Felder aus Syslog-formatierten Logs und ordnet sie dem Unified Data Model (UDM) zu.

Hinweis

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

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und der F5 BIG-IP-Appliance
  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Privilegierter Zugriff auf F5 BIG-IP

Authentifizierungsdatei für die Google SecOps-Aufnahme abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die 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 > Profile auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.

Windows-Installation

  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
    
  3. Warte, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

    Der Dienst sollte als RUNNING angezeigt werden.

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
    
  3. Warte, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

    Der Dienst sollte als aktiv (wird ausgeführt) angezeigt werden.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.

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

Konfigurationsdatei suchen

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Konfigurationsdatei bearbeiten

  • Ersetzen Sie den gesamten Inhalt von config.yaml durch die folgende Konfiguration:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/f5_dns:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: F5_DNS
            raw_log_field: body
    
    service:
        pipelines:
            logs/f5_dns_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/f5_dns
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • listen_address: IP-Adresse und Port, auf die gewartet werden soll:
      • 0.0.0.0, um auf allen Schnittstellen zuzuhören (empfohlen)
      • Port 514 ist der Standard-Syslog-Port (erfordert Root unter Linux; verwenden Sie 1514 für Nicht-Root).
  • Exporter-Konfiguration:

    • creds_file_path: Vollständiger Pfad zur Datei für die Authentifizierung bei der Aufnahme:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Die Kundennummer, die aus der Google SecOps Console kopiert wurde
    • endpoint: Regionale Endpunkt-URL:
      • USA: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asien: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Eine vollständige Liste finden Sie unter Regionale Endpunkte.

Konfigurationsdatei speichern

  • Speichern Sie die Datei nach der Bearbeitung:
    • Linux: Drücken Sie Ctrl+O, dann Enter und dann Ctrl+X.
    • Windows: Klicken Sie auf Datei > Speichern.

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 observiq-otel-collector
    
    1. Prüfen Sie, ob der Dienst ausgeführt wird:

      sudo systemctl status observiq-otel-collector
      
    2. Logs auf Fehler prüfen:

      sudo journalctl -u observiq-otel-collector -f
      
  • Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agenten unter Windows neu zu starten:

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Dienstkonsole:

      1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
      2. Suchen Sie nach observIQ OpenTelemetry Collector.
      3. Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Logs auf Fehler prüfen:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Pool von Remote-Logging-Servern konfigurieren

  1. Melden Sie sich in der F5 BIG-IP-Web-UI an.
  2. Rufen Sie auf dem Tab Main (Haupt) DNS > Delivery > Load Balancing > Pools oder Local Traffic > Pools auf.
  3. Klicken Sie auf Erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen eindeutigen Namen für den Pool ein.
    • So verwenden Sie die Einstellung Neue Mitglieder:
      • Geben Sie die IP-Adresse des Bindplane-Agents in das Feld Adresse ein.
      • Geben Sie im Feld Service Port die Portnummer des Bindplane-Agents ein.
  5. Klicken Sie auf Hinzufügen > Fertig.

Remote-Logziel konfigurieren

  1. Rufen Sie auf dem Tab Main (Haupt) System > Logs > Configuration > Log Destinations (System > Protokolle > Konfiguration > Protokollziele) auf.
  2. Klicken Sie auf Erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen eindeutigen Namen für dieses Ziel ein.
    • Typ: Wählen Sie Remote High-Speed Log (Remote-Hochgeschwindigkeitslog) aus.
    • Pool Name (Poolname): Wählen Sie den Pool mit Remote-Log-Servern aus, an den das BIG-IP-System Protokollmeldungen senden soll.
    • Protokoll: Wählen Sie das verwendete Protokoll aus.
  4. Klicken Sie auf Fertig.

Formatiertes Remote-Logziel erstellen

  1. Rufen Sie auf dem Tab Main (Haupt) System > Logs > Configuration > Log Destinations (System > Protokolle > Konfiguration > Protokollziele) auf.
  2. Klicken Sie auf Erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen eindeutigen Namen für dieses Ziel ein.
    • Typ: Wählen Sie Remote Syslog aus.
    • Format: Wählen Sie das Logformat aus.
    • Weiterleiten an: Wählen Sie High-Speed Log Destination > das Ziel aus, das auf den Pool der Remote-Syslog-Server verweist.
  4. Klicken Sie auf Fertig.

Log Publisher konfigurieren

  1. Rufen Sie auf dem Tab Main (Haupt) System > Logs > Configuration > Log Publishers (System > Protokolle > Konfiguration > Log-Publisher) auf.
  2. Klicken Sie auf Erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen eindeutigen Namen für diesen Publisher ein.
    • Ziele: Wählen Sie das neu erstellte Ziel für Remote Syslog aus der Liste Verfügbar aus und klicken Sie dann auf Verschieben, um das Ziel in die Liste Ausgewählt zu verschieben.
  4. Klicken Sie auf Fertig.

Benutzerdefiniertes DNS-Logging-Profil konfigurieren

  1. Rufen Sie auf dem Tab Main (Haupt) DNS > Delivery > Profiles > Other > DNS Logging (DNS-Logging) oder Local Traffic > Profiles > Other > DNS Logging (DNS-Logging) auf.
  2. Klicken Sie auf Erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen eindeutigen Namen für dieses Profil ein.
    • Log Publisher: Wählen Sie das neu erstellte Ziel aus, an das das System DNS-Logeinträge sendet.
    • Anfragen protokollieren: Klicken Sie das Kästchen Aktiviert an.
    • Antworten protokollieren: Klicken Sie das Kästchen Aktiviert an.
    • Abfrage-ID einfügen: Klicken Sie das Kästchen Aktiviert an.
  4. Klicken Sie auf Fertig.

DNS-Profil dem DNS-Listener hinzufügen

  1. Rufen Sie auf dem Tab Main (Haupt) DNS > Delivery > Listeners > select DNS listener (DNS > Auslieferung > Listener > DNS-Listener auswählen) auf.
  2. Wählen Sie im Abschnitt Dienst unter DNS-Profil das zuvor konfigurierte DNS-Profil aus.
  3. Klicken Sie auf Aktualisieren.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
application principal.application Direkt aus dem Feld application zugeordnet.
cipher_name network.tls.cipher Direkt aus dem Feld cipher_name zugeordnet.
command_line principal.process.command_line Direkt aus dem Feld command_line zugeordnet.
desc security_result.description Direkt aus dem Feld desc zugeordnet.
desc_icrd security_result.description Direkt aus dem Feld desc_icrd zugeordnet.
dest_ip target.ip Direkt aus dem Feld dest_ip zugeordnet.
dest_port target.port Direkt aus dem Feld dest_port zugeordnet.
file_path principal.process.file.full_path Direkt aus dem Feld file_path zugeordnet. Wird auf true gesetzt, wenn level „alert“ ist. Andernfalls nicht vorhanden. Wird auf true gesetzt, wenn level „alert“ ist. Andernfalls nicht vorhanden.
msg3 security_result.description Direkt aus dem Feld msg3 zugeordnet, wenn application „run-parts“ ist.
metadata.event_type Wird auf GENERIC_EVENT gesetzt, wenn event_type leer ist. Andernfalls wird der Wert aus event_type übernommen. Fest codiert auf „DNS“. Fest codiert auf „F5“.
principal_hostname principal.hostname Direkt aus dem Feld principal_hostname zugeordnet.
proc_id principal.process.pid Direkt aus dem Feld proc_id zugeordnet.
received_bytes network.received_bytes Direkt aus dem Feld received_bytes zugeordnet.
resource_id target.resource.id Direkt aus dem Feld resource_id zugeordnet.
resource_parent principal.resource.parent Direkt aus dem Feld resource_parent zugeordnet.
response_code network.http.response_code Direkt aus dem Feld response_code zugeordnet. Wird anhand des Felds level bestimmt.
src_ip principal.ip Direkt aus dem Feld src_ip zugeordnet.
src_port principal.port Direkt aus dem Feld src_port zugeordnet.
tls_version network.tls.version Direkt aus dem Feld tls_version zugeordnet.
userName principal.user.userid Direkt aus dem Feld userName zugeordnet.
when event.timestamp Berechnet aus datetime1 und timezone oder datetime und timezone.
query_response_code event.idm.read_only_udm.network.dns.response_code Aus dem Änderungsprotokoll zugeordnet
User event.idm.read_only_udm.principal.user.userid Aus dem Änderungsprotokoll zugeordnet
attemptCount event.idm.read_only_udm.security_result.detection_fields Aus dem Änderungsprotokoll zugeordnet
rule_id_val event.idm.read_only_udm.security_result.rule_id Aus dem Änderungsprotokoll zugeordnet
query_type event.idm.read_only_udm.question.type Aus dem Änderungsprotokoll zugeordnet
record_type event.idm.read_only_udm.question.type Aus dem Änderungsprotokoll zugeordnet
dns_class event.idm.read_only_udm.network.dns.question.class Aus dem Änderungsprotokoll zugeordnet
intermediary_host event.idm.read_only_udm.network.dns.answer.data Aus dem Änderungsprotokoll zugeordnet
intermediary_ip event.idm.read_only_udm.network.dns.answer.data Aus dem Änderungsprotokoll zugeordnet
ttl_data event.idm.read_only_udm.network.dns.answer.ttl Aus dem Änderungsprotokoll zugeordnet
dns_answer_domain event.idm.read_only_udm.network.dns.answer.name Aus dem Änderungsprotokoll zugeordnet
qclass event.idm.read_only_udm.network.dns.answer.class Aus dem Änderungsprotokoll zugeordnet
dns_name event.idm.read_only_udm.question.name Aus dem Änderungsprotokoll zugeordnet
src_ip event.idm.read_only_udm.principal.asset.ip Aus dem Änderungsprotokoll zugeordnet
dest_ip event.idm.read_only_udm.target.asset.ip Aus dem Änderungsprotokoll zugeordnet
user event.idm.read_only_udm.principal.user.userid Aus dem Änderungsprotokoll zugeordnet
host event.idm.read_only_udm.principal.ip und event.idm.read_only_udm.principal.asset.ip Aus dem Änderungsprotokoll zugeordnet
partition event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
level event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
attempts event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
tty event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
start event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
end event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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