BloxOne Threat Defense-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie BloxOne Threat Defense-Logs mit Bindplane in Google Security Operations aufnehmen. Der Logstash-Parser extrahiert Felder aus BLOXONE DNS-Logs, die im SYSLOG- oder JSON-Format empfangen werden. Zuerst wird die Lognachricht in ein JSON-Objekt normalisiert. Anschließend werden die extrahierten Felder dem Unified Data Model (UDM) zugeordnet und die Daten werden mit Geolocation- und DNS-Details für die Sicherheitsanalyse angereichert.

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 Infoblox BloxOne

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. Auf die Konfigurationsdatei zugreifen:
    • 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: '/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: 'BLOXONE'
                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 Dienste verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog in Infoblox BloxOne konfigurieren

  1. Melden Sie sich im Infoblox-Portal an.
  2. Klicken Sie auf Konfigurieren > Verwaltung > Data Connector.
  3. Wählen Sie den Tab Zielkonfiguration aus.
  4. Klicken Sie auf Erstellen > Syslog.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen aussagekräftigen Namen an (z. B. „Google SecOps-Collector“).
    • Beschreibung: Geben Sie eine kurze Beschreibung ein.
    • Status: Wählen Sie Aktivieren aus.
    • Tags: Klicken Sie auf Hinzufügen und geben Sie Folgendes an, um einen Schlüssel mit dem Ziel zu verknüpfen:
      • KEY: Geben Sie einen aussagekräftigen Namen für den Schlüssel ein.
      • VALUE: Geben Sie den Wert für den Schlüssel ein.
    • Format: Wählen Sie CEF aus.
    • Protocol (Protokoll): Wählen Sie UDP oder TCP aus (je nach Konfiguration des Bindplane-Agents).
    • FQDN/IP: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Port: Geben Sie den Bindplane-Agent-Port ein. Der Standardwert ist 514 für UDP.
  6. Klicken Sie auf Speichern & schließen.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
additional_list.key Dieses Feld wird in einer Schleife verwendet, um das additional_list-Array zu durchlaufen und Daten basierend auf dem Wert des Felds key zu extrahieren. Sie wird nicht direkt der UDM zugeordnet.
additional_list.value principal.location.region_latitude, principal.location.region_longitude, target.location.region_latitude, target.location.region_longitude Dieses Feld wird in Verbindung mit additional_list.key verwendet, um bestimmte Werte aus dem additional_list-Array zu extrahieren. Die Logik zum Extrahieren und Zuordnen des Werts hängt vom entsprechenden key ab. Beispiel:
 – Wenn additional_list.key gleich intel:source:ip:geoIP:location ist, extrahieren Sie die Werte für Längen- und Breitengrad mit „grok“ und ordnen Sie sie principal.location.region_latitude bzw. principal.location.region_longitude zu.
: Wenn additional_list.key gleich intel:destination:ip:geoIP:location ist, extrahieren Sie die Breiten- und Längengradwerte mit „grok“ und ordnen Sie sie target.location.region_latitude bzw. target.location.region_longitude zu.
additional_string.key Ähnlich wie bei additional_list.key wird dieses Feld in einer Schleife verwendet, um das additional_string-Array zu durchlaufen und Daten basierend auf dem key-Wert zu extrahieren. Sie wird nicht direkt der UDM zugeordnet.
additional_string.value additional.fields.value.string_value, principal.location.country_or_region, target.location.country_or_region, src.ip, src.port, src.hostname, network.ip_protocol Wird mit additional_string.key verwendet, um Werte aus dem additional_string-Array zu extrahieren. Die Logik für die Zuordnung des Werts hängt vom entsprechenden key ab. Beispiel:
 – Wenn additional_string.key intel:source:ip:ip2asn:start_ip, intel:source:ip:ip2asn:finish_ip, intel:destination:ip:ip2asn:start_ip oder intel:destination:ip:ip2asn:finish_ip ist, ordnen Sie den Wert mit dem entsprechenden Schlüssel additional.fields.value.string_value zu.
: Wenn additional_string.key gleich intel:source:ip:geoIP:country ist, ordnen Sie den Wert principal.location.country_or_region zu.
: Wenn additional_string.key gleich intel:destination:ip:geoIP:country ist, ordnen Sie den Wert target.location.country_or_region zu.
: Wenn additional_string.key gleich log:source:ip ist, ordnen Sie den Wert src.ip zu.
: Wenn additional_string.key gleich log:source:port ist, wird der Wert nach der Konvertierung in eine Ganzzahl src.port zugeordnet.
: Wenn additional_string.key gleich log:source:hostname ist, ordnen Sie den Wert src.hostname zu.
: Wenn additional_string.key gleich log:cdh:input:protocol ist, wird der Wert nach der Umwandlung in Großbuchstaben auf network.ip_protocol abgebildet.
app_category security_result.category_details Direkt zugeordnet.
confidence security_result.confidence Zugeordnet basierend auf der folgenden Logik:
 – Wenn confidence gleich LOW ist, wird LOW_CONFIDENCE zugeordnet.
 – Wenn confidence MEDIUM ist, ordnen Sie MEDIUM_CONFIDENCE zu.
 – Wenn confidence HIGH ist, ordnen Sie HIGH_CONFIDENCE zu.
country principal.location.name Direkt zugeordnet, aber nur, wenn raw.infobloxb1region leer ist.
device principal.ip, principal.asset.ip Direkt zugeordnet, aber nur, wenn raw.dvc leer ist.
dhcp_fingerprint security_result.detection_fields.value Direkt mit dem Schlüssel dhcp_fingerprint zugeordnet.
dns_view security_result.detection_fields.value Direkt mit dem Schlüssel dns_view zugeordnet.
endpoint_groups security_result.detection_fields.value Direkt mit dem Schlüssel endpoint_groups zugeordnet.
event_time metadata.event_timestamp.seconds Wird als ISO8601-Zeitstempel geparst und der Sekundenwert wird extrahiert. Wird nur verwendet, wenn das Feld timestamp leer ist.
feed_name principal.resource.name feed_name ist principal.resource.name zugeordnet.
feed_type principal.resource.attribute.labels.value Direkt mit dem Schlüssel feed_type zugeordnet.
mac_address principal.mac Direkt zugeordnet nach der Umwandlung in Kleinbuchstaben.
network principal.hostname, principal.asset.hostname Direkt zugeordnet, aber nur, wenn sowohl raw.dvchost als auch raw.dvc leer sind.
os_version principal.platform_version Direkt zugeordnet.
policy_action security_result.action_details, security_result.action policy_action wird direkt security_result.action_details zugeordnet.
security_result.action wird anhand der folgenden Logik abgeleitet:
 – Wenn policy_action Redirect oder Log ist, wird ALLOW zugeordnet.
 – Wenn policy_action BLOCK ist, ordnen Sie BLOCK zu.
policy_name security_result.detection_fields.value Direkt mit dem Schlüssel policy_name zugeordnet.
qname network.dns.questions.name Direkt zugeordnet.
qtype network.dns.questions.type Zuordnung basierend auf der folgenden Logik:
 – Wenn qtype gleich A ist, wird der Wert 1 zugeordnet (in eine vorzeichenlose Ganzzahl konvertiert).
: Wenn qtype gleich PTR ist, wird der Wert 12 zugeordnet (in eine vorzeichenlose Ganzzahl konvertiert).
raw.act security_result.action_details Direkt zugeordnet.
raw.app network.application_protocol Direkt zugeordnet nach der Umwandlung in Großbuchstaben.
raw.deviceeventclassid metadata.product_event_type Mit raw.name verkettet (getrennt durch -) und metadata.product_event_type zugeordnet.
raw.devicevendor metadata.vendor_name Direkt zugeordnet.
raw.deviceproduct metadata.product_name Direkt zugeordnet.
raw.deviceversion metadata.product_version Direkt zugeordnet.
raw.deviceseverity security_result.severity_details, security_result.severity raw.deviceseverity wird direkt security_result.severity_details zugeordnet.
security_result.severity wird anhand der folgenden Logik abgeleitet:
 – Wenn raw.deviceseverity in [0, 1, 2, 3] enthalten ist, wird LOW zugeordnet.
 – Wenn raw.deviceseverity in [4, 5, 6] enthalten ist, wird MEDIUM zugeordnet.
 – Wenn raw.deviceseverity im Bereich [7, 8] liegt, wird HIGH zugeordnet.
 – Wenn raw.deviceseverity im Bereich [9, 10] liegt, wird CRITICAL zugeordnet.
raw.dvc principal.ip, principal.asset.ip Direkt zugeordnet.
raw.dvchost principal.hostname, principal.asset.hostname Direkt zugeordnet, aber nur, wenn sie nicht gleich raw.dvc ist.
raw.infobloxb1connectiontype additional.fields.value.string_value Direkt mit dem Schlüssel infobloxb1connectiontype zugeordnet.
raw.infobloxb1ophname observer.hostname, observer.asset.hostname Direkt zugeordnet.
raw.infobloxb1ophipaddress observer.ip Direkt zugeordnet.
raw.infobloxb1policyname security_result.detection_fields.value Direkt mit dem Schlüssel infobloxb1policyname zugeordnet.
raw.infobloxdnsqclass dns_question.class, dns_answer.class Wird verwendet, um dns_question.class und dns_answer.class anhand einer in der Datei dns_query_class_mapping.include definierten Nachschlagetabelle abzuleiten.
raw.infobloxdnsqtype dns_question.type, dns_answer.type Wird verwendet, um dns_question.type und dns_answer.type anhand einer in der Datei dns_record_type.include definierten Nachschlagetabelle abzuleiten.
raw.infobloxdnsrcode network.dns.response_code Wird verwendet, um network.dns.response_code auf Grundlage einer in der Datei dns_response_code.include definierten Nachschlagetabelle abzuleiten.
raw.infobloxpolicyid security_result.detection_fields.value Direkt mit dem Schlüssel infobloxpolicyid zugeordnet.
raw.msg metadata.description raw.msg wird direkt metadata.description zugeordnet, nachdem führende und nachfolgende Anführungszeichen entfernt wurden.
raw.name metadata.product_event_type Mit raw.deviceeventclassid verkettet (getrennt durch -) und metadata.product_event_type zugeordnet.
rcode security_result.detection_fields.value, network.dns.response_code rcode wird mit dem Schlüssel rcode direkt security_result.detection_fields.value zugeordnet.
Wenn rcode gleich NXDOMAIN ist, wird network.dns.response_code auf 3 gesetzt (in eine vorzeichenlose Ganzzahl konvertiert).
rdata network.dns.answers.data Direkt zugeordnet.
rip target.ip, target.asset.ip Direkt zugeordnet.
severity security_result.severity Zuordnung basierend auf der folgenden Logik:
 – Wenn severity INFO ist (unabhängig von der Groß-/Kleinschreibung), wird INFORMATIONAL zugeordnet.
 – Wenn severity HIGH ist, ordnen Sie HIGH zu.
tclass security_result.detection_fields.value Direkt mit dem Schlüssel tclass zugeordnet.
threat_indicator security_result.detection_fields.value Direkt mit dem Schlüssel threat_indicator zugeordnet.
timestamp metadata.event_timestamp.seconds Wird als ISO8601-Zeitstempel geparst und der Sekundenwert wird extrahiert.
user principal.user.user_display_name Direkt zugeordnet.
user_groups security_result.detection_fields.value Direkt mit dem Schlüssel user_groups zugeordnet.
principal.resource.resource_subtype Wird auf Feed gesetzt, wenn feed_name nicht leer ist.
metadata.log_type Legen Sie BLOXONE fest.
additional.fields.key Legen Sie infobloxancount, infobloxarcount, infobloxb1connectiontype, infobloxnscount, intel:destination:ip:ip2asn:finish_ip, intel:destination:ip:ip2asn:start_ip, intel:source:ip:ip2asn:finish_ip oder intel:source:ip:ip2asn:start_ip basierend auf den entsprechenden raw-Feldern fest.
metadata.event_type Wird auf STATUS_UPDATE gesetzt, wenn has_principal gleich true ist. Andernfalls wird der Wert auf GENERIC_EVENT gesetzt.
network.dns.questions.type Für A-Einträge auf 1 und für PTR-Einträge auf 12 setzen (als vorzeichenlose Ganzzahl).
network.dns.answers.name, network.dns.answers.type, network.dns.answers.class Aus raw.msg extrahiert, indem der DNS-Antwortstring geparst wurde.
intermediary.hostname, intermediary.ip, intermediary.asset.ip Aus raw.msg extrahiert, indem der DNS-Antwortstring geparst wurde.

Hinweis:Diese Tabelle enthält nur Felder, die dem UDM zugeordnet sind. Einige Felder aus dem Rohlog werden möglicherweise intern vom Parser verwendet, sind aber nicht direkt in der endgültigen UDM-Ausgabe enthalten.

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