EfficientIP-DDI-Logs erfassen

Parserversion:9.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie EfficientIP-DDI-Logs mit dem Bindplane-Agenten in Google Security Operations aufnehmen.

EfficientIP SOLIDserver ist eine umfassende DDI-Lösung (DNS-DHCP-IPAM), die hochgradig skalierbare, sichere und robuste virtuelle und Hardware-Appliances für kritische Netzwerkdienste wie DNS, DHCP, IP Address Management, NTP und TFTP bietet. Die Plattform bietet eine zentrale Verwaltung und Automatisierung der Netzwerkinfrastruktur mit erweiterten Monitoring- und Sicherheitsfunktionen.

Hinweis

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

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder ein Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und der EfficientIP SOLIDserver-Appliance
  • Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Administratorzugriff auf die Webkonsole von EfficientIP SOLIDserver
  • SOLIDserver-Version 8.0 oder höher (getestet mit 8.3.x und 8.4.x)

Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen

Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agent bei Google SecOps zu authentifizieren:

  • Neue Deployments: Verwenden Sie die Chronicle API (Option 1).
  • Legacy-Bereitstellungen: Verwenden Sie die Authentifizierungsdatei für die Datenaufnahme (Option 2) weiter, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
  1. Melden Sie sich in der Google Cloud -Konsole an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
  2. Rufen Sie IAM & Verwaltung > Dienstkonten auf.
  3. Klicken Sie auf Dienstkonto erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B. bindplane-ingest.
    • Dienstkontobeschreibung: Geben Sie eine Beschreibung ein, z. B. Bindplane agent log ingestion.
  5. Klicken Sie auf Erstellen und fortfahren.
  6. Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle-Bearbeiter aus.
  7. Klicken Sie auf Weiter und dann auf Fertig.
  8. Klicken Sie auf das erstellte Dienstkonto und rufen Sie dann den Tab Schlüssel auf.
  9. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
  10. Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
  11. Speichern Sie die Schlüsseldatei als ingestion-auth.json im Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.json unter Linux oder C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json unter Windows) oder aktualisieren Sie creds_file_path in config.yaml, damit der Pfad mit dem Pfad übereinstimmt, in dem Sie die Datei speichern.
  12. Rufen Sie IAM & Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Exporter-Konfiguration.

Option 2: Authentifizierungsdatei für die Datenaufnahme herunterladen (Legacy)

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Erfassungs-Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Datenaufnahme herunter.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert werden soll.

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 Kundennummer aus dem Bereich Organization Details (Organisationsdetails).

BindPlane-Agent installieren

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

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. Warten Sie, bis die Installation abgeschlossen ist.

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

    sc query observiq-otel-collector
    

    Der Dienststatus sollte RUNNING lauten.

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. Warten Sie, bis die Installation abgeschlossen ist.

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

    sudo systemctl status observiq-otel-collector
    

    Der Dienststatus sollte active (running) lauten.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Problembehebung finden Sie im Installationsanleitung für den Bindplane-Agent.

Bindplane-Agent für die Aufnahme von Syslog und das Senden an Google SecOps konfigurieren

Konfigurationsdatei suchen

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

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

Konfigurationsdatei bearbeiten

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

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/efficientip_ddi:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: EFFICIENTIP_DDI
        raw_log_field: body
        ingestion_labels:
          env: production
          source: solidserver
    
    service:
      pipelines:
        logs/efficientip_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/efficientip_ddi
    
  2. Ersetzen Sie die folgenden Platzhalter:

    • Empfängerkonfiguration:

      • listen_address: Legen Sie 0.0.0.0:514 fest, um auf allen Schnittstellen an UDP-Port 514 zu lauschen.
        • Verwenden Sie für Linux-Bereitstellungen ohne Root-Zugriff den Port 1514 oder höher.
        • Achten Sie darauf, dass der Port mit der Konfiguration in SOLIDserver übereinstimmt.
    • Exporter-Konfiguration:

      • creds_file_path: Vollständiger Pfad zur JSON-Schlüsseldatei des Dienstkontos (Option 1):

        • Linux: /opt/observiq-otel-collector/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • customer_id: Ersetzen Sie YOUR_CUSTOMER_ID durch die Kundennummer aus dem vorherigen Schritt.

      • location: Ersetzen Sie <LOCATION> durch die Region Ihrer Google SecOps-Instanz (z. B. us, europe oder asia-southeast1). Der Exporter stellt diesem Wert chronicle.googleapis.com voran. Eine vollständige Liste finden Sie unter Regionale Endpunkte.

      • project: Ersetzen Sie <PROJECT_NUMBER> durch die Projektnummer aus IAM & Verwaltung > Einstellungen.

      • endpoint: Behalten Sie die Einstellung chronicle.googleapis.com bei.

      • log_type: Legen Sie EFFICIENTIP_DDI fest (genaue Übereinstimmung erforderlich).

      • ingestion_labels: Optionale Labels zum Kategorisieren von Logs (nach Bedarf anpassen).

Exporter für die Legacy Ingestion API

  • Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block exporters durch Folgendes. Legen Sie creds_file_path auf den Pfad zur Datei für die Authentifizierung bei der Aufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Sie malachiteingestion-pa.googleapis.com durch Ihren regionalen Endpunkt (z. B. europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/efficientip_ddi:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: EFFICIENTIP_DDI
        raw_log_field: body
        ingestion_labels:
          env: production
          source: solidserver
    

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.

Starten Sie den Bindplane-Agent neu, um die Änderungen zu übernehmen.

  • So starten Sie den Bindplane-Agent unter Linux neu:

    1. Führen Sie dazu diesen Befehl aus:

      sudo systemctl restart observiq-otel-collector
      
    2. Prüfen Sie, ob der Dienst ausgeführt wird:

      sudo systemctl status observiq-otel-collector
      
    3. Prüfen Sie die Logs auf Fehler:

      sudo journalctl -u observiq-otel-collector -f
      
  • So starten Sie den Bindplane-Agenten unter Windows neu:

    1. Wählen Sie eine der folgenden Optionen aus:

      • 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.
    2. Prüfen Sie, ob der Dienst ausgeführt wird:

      sc query observiq-otel-collector
      
    3. Prüfen Sie die Logs auf Fehler:

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

EfficientIP DDI-Syslog-Weiterleitung konfigurieren

  1. Melden Sie sich in der Webkonsole von EfficientIP SOLIDserver an.
  2. Klicken Sie im linken Navigationsbereich auf Verwaltung.
  3. Klicken Sie im Bereich Monitoring auf Konfiguration.
  4. Klicken Sie im Menü auf + Hinzufügen.
  5. Wählen Sie in der Liste Dienste die folgenden Dienste aus: named (für DNS-Logs)
  6. Geben Sie im Feld Zielserver die IP-Adresse und den Port des Bindplane-Agent-Hosts im Format <ip-address>:<port> ein.
    • Beispiel: 192.168.1.100:514
    • Wenn Sie unter Linux einen Nicht-Standard-Port verwenden, geben Sie den Port entsprechend an (z. B. 192.168.1.100:1514).
  7. Klicken Sie auf OK, um die Konfiguration zu speichern.

Logweiterleitung prüfen

  1. Prüfen Sie die Bindplane-Agentenlogs, um zu bestätigen, dass Logs empfangen werden:
    • Linux: sudo journalctl -u observiq-otel-collector -f
    • Windows: type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
  2. Suchen Sie nach Logeinträgen, die DNS-Abfrage- und Antwortereignisse von SOLIDserver enthalten.
  3. Melden Sie sich in der Google SecOps-Konsole an und prüfen Sie, ob die EfficientIP DDI-Protokolle auf der Seite Events (Ereignisse) angezeigt werden.

Unterstützte Logtypen

Durch diese Integration werden die folgenden Logtypen von EfficientIP SOLIDserver erfasst:

  • DNS-Abfragelogs: Client-DNS-Abfragen mit Abfragetyp, Domainname und Client-IP-Adresse
  • DNS-Antwortlogs: DNS-Antworten mit Antwort-Einträgen, TTL und Antwortcodes
  • DHCP-Logs: DHCP-Vorgänge wie DISCOVER, OFFER, REQUEST, ACK, NAK, RELEASE und INFORM
  • DNS Guardian-Protokolle: Sicherheitsereignisse wie die Erkennung verdächtigen Verhaltens und Auslöser für das Scharf- und Unscharfschalten
  • DNS-Zonenübertragungsprotokolle: Zonenübertragungsvorgänge und ‑benachrichtigungen
  • DNS-Fehlerlogs: Formatierungsfehler, SERVFAIL, REFUSED und andere DNS-Fehler

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
ip_version additional.fields Wird als Label mit dem Schlüssel „ip_version“ zusammengeführt, sofern nicht leer
message_size additional.fields Zusammengeführt als Label mit dem Schlüssel „message_size“, wenn nicht leer
domain_name additional.fields Zusammengeführt als Label mit dem Schlüssel „domain_name“, wenn nicht leer
– intermediary Aus einem Zwischenobjekt zusammengeführt
Beschreibung metadata.description Wert wird direkt kopiert, wenn er nicht leer ist
msg2 metadata.description Auf msg2 festgelegt, wenn event_type GENERIC_EVENT ist und description leer ist
su_cmd metadata.event_type Wird auf „PROCESS_OPEN“ gesetzt, wenn „su_cmd“ gleich „sudo“ ist.
activity_type metadata.event_type Auf „NETWORK_DNS“ festgelegt, wenn „activity_type“ mit „dns“ übereinstimmt und „has_dns_questions“ „true“ ist.
Nachricht metadata.event_type Wird auf „NETWORK_DHCP“ gesetzt, wenn die Nachricht mit „dhcp“ übereinstimmt
inner_message metadata.event_type Auf „NETWORK_UNCATEGORIZED“ festgelegt, wenn „inner_message“ mit bestimmten Mustern übereinstimmt und „has_principal“ und „has_target“ auf „true“ gesetzt sind.
verarbeiten metadata.event_type Wird auf „NETWORK_DNS“ gesetzt, wenn der Prozess „named“ ist und „has_dns_questions“ „true“ ist. Wird auf „STATUS_UPDATE“ gesetzt, wenn der Prozess „named“ ist und „has_principal“ „true“ ist. Wird auf „GENERIC_EVENT“ gesetzt, wenn der Prozess „named“ ist. Wird auf „NETWORK_DHCP“ gesetzt, wenn der Prozess „dhcpd“ ist.
PWD metadata.event_type Wird auf „PROCESS_OPEN“ gesetzt, wenn PWD nicht leer ist und „has_target“ oder „has_principal“ „true“ ist
activity_type metadata.product_event_type Wert direkt kopiert
– metadata.vendor_name Legen Sie diesen Wert auf „EFFICIENTIP_DDI“ fest.
– metadata.product_name Auf „EFFICIENTIP_DDI DHCP“ festgelegt
activity_type network.application_protocol Auf „DNS“ festgelegt, wenn „activity_type“ mit „dns“ übereinstimmt und „has_dns_questions“ „true“ ist
Nachricht network.application_protocol Auf „DHCP“ setzen, wenn die Nachricht mit „dhcp“ übereinstimmt
verarbeiten network.application_protocol Auf „DNS“ festlegen, wenn der Prozess „named“ ist; auf „DHCP“ festlegen, wenn der Prozess „dhcpd“ ist
src_mac network.dhcp.chaddr Wert wird direkt kopiert, wenn der Prozess „dhcpd“ ist.
src_ip network.dhcp.ciaddr Wert wird direkt kopiert, wenn „dhcp_info“ „REQUEST“ ist
giaddr network.dhcp.giaddr Wert direkt kopiert
dhcp_info network.dhcp.opcode Auf „BOOTREQUEST“ festlegen, wenn „dhcp_info“ „INFORM“, „DISCOVER“ oder „REQUEST“ ist; auf „BOOTREPLY“ festlegen, wenn „dhcp_info“ „OFFER“ oder „ACK“ ist
siaddr network.dhcp.siaddr Wert direkt kopiert
transaction_id network.dhcp.transaction_id Wert wird in eine Ganzzahl ohne Vorzeichen umgewandelt, wenn er nicht leer oder „0“ ist
dhcp_info network.dhcp.type Wird auf „INFORM“ gesetzt, wenn „dhcp_info“ „INFORM“ ist; auf „DISCOVER“, wenn „DISCOVER“; auf „OFFER“, wenn „OFFER“; auf „REQUEST“, wenn „REQUEST“; auf „ACK“, wenn „PACK“
yiaddr network.dhcp.yiaddr Wert direkt kopiert
src_ip network.dhcp.yiaddr Wird auf „src_ip“ gesetzt, wenn der Prozess „dhcpd“ ist und „yiaddr“ leer ist
answer_rrs network.dns.answers Zusammengeführt aus dem Antwortobjekt für jeden rd in answer_rrs
– network.dns.questions Wird aus dem Fragenobjekt zusammengeführt, wenn „has_dns_questions“ auf „true“ gesetzt ist.
rcode network.dns.response_code Wert in „uinteger“ konvertiert
response_code network.dns.response_code Wert, der dem numerischen Code zugeordnet und in uinteger konvertiert wurde
transport network.ip_protocol Wert wird in Großbuchstaben umgewandelt, wenn er mit udp oder tcp übereinstimmt
Beobachter observer.ip Wert in „ipaddress“ konvertiert
su_cmd principal.application Wert wird direkt kopiert, wenn „su_cmd“ „sudo“ ist.
verarbeiten principal.application Wird auf „process“ gesetzt, wenn der Prozess „named“ oder „dhcpd“ ist.
Host principal.asset.hostname Wert wird direkt kopiert, wenn er nicht leer ist
Hostname principal.asset.hostname Wert wird direkt kopiert, wenn er nicht leer ist und der Host leer ist
src_ip principal.asset.ip Wert direkt kopiert
asset_id principal.asset_id Verkettet als „ID:“ + asset_id
Host principal.hostname Wert wird direkt kopiert, wenn er nicht leer ist
Hostname principal.hostname Wert wird direkt kopiert, wenn er nicht leer ist und der Host leer ist
domain_name principal.hostname Wert wird direkt kopiert, wenn die Beschreibung den Hostnamen enthält und Host/Hostname leer sind
src_ip principal.ip Der Wert wird direkt kopiert, wenn die Konvertierung in „ipaddress“ erfolgreich ist. Andernfalls wird er aus der Beschreibung extrahiert, wenn „src_ip“ leer ist.
src_mac principal.mac Wert direkt kopiert
src_port principal.port Wert in Ganzzahl konvertiert
process_id principal.process.pid Wert direkt kopiert
source_user principal.user.userid Wert direkt kopiert
– security_result Zusammengeführt aus sec_result
dst_ip target.asset.ip Wert direkt kopiert
file_path target.file.full_path Wert direkt kopiert
dst_ip target.hostname Wert wird direkt kopiert, wenn er keine gültige IP-Adresse ist
Host target.hostname Wert wird direkt kopiert, wenn „inner_message“ bestimmten Mustern entspricht
dst_ip target.ip Wert direkt kopiert
dst_port target.port Wert in Ganzzahl konvertiert
target_cmd_line target.process.command_line Wert direkt kopiert
target_user target.user.userid Wert direkt kopiert
RR_msg event.idm.read_only_udm.metadata.description Aus Änderungsprotokoll zugeordnet
client_id event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
key_office event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
rrset_type event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
syslog_priority event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
updating_zone event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
view_office event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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