Darktrace-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Darktrace-Logs mit einem Bindplane-Agent in Google Security Operations aufnehmen. Dieser Parser extrahiert zuerst allgemeine Felder aus Syslog-Nachrichten und verwendet dann eine bedingte Logik, um sowohl CEF- als auch JSON-formatierte Darktrace-Logs zu verarbeiten. Die extrahierten Felder werden dem Schema für einheitliche Datenmodelle (Unified Data Model, UDM) zugeordnet. Die Daten werden mit Sicherheitskontext angereichert und die Ereigniskategorisierung für die nachgelagerte Analyse wird standardisiert.

Hinweise

Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz
  • Windows 2016 oder höher oder Linux-Host mit systemd
  • Wenn die Ausführung hinter einem Proxy erfolgt, sind die Firewallports geöffnet.
  • Privilegierter Zugriff auf Darktrace

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:
        tcplog:
            # Replace the port and IP address as required
            listen_address: `0.0.0.0:10282`
    
    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: DARKTRACE
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                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.

Starten Sie den Bindlane-Agent neu, 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 auf Darktrace konfigurieren

  1. Melden Sie sich in der Darktrace-Web-UI an.
  2. Klicken Sie auf Admin > Systemkonfiguration.
  3. Klicken Sie auf Benachrichtigungseinstellungen bestätigen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • CEF-Syslog-Warnungen: Wählen Sie Wahr aus.
    • CEF-Syslog-Server: Geben Sie die BindPlane-IP-Adresse ein.
    • CEF-Syslog-Serverport: Geben Sie die BindPlane-Portnummer ein, z. B. 10282.
    • CEF Syslog TCP Alert: Wählen Sie True aus.
  5. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
darktraceUrl security_result.url_back_to_product Der Wert wird aus dem Feld darktraceUrl übernommen.
darktrace_host observer.hostname Der Wert wird aus dem Feld darktrace_host übernommen, wenn es sich nicht um eine IP-Adresse handelt.
darktrace_ip observer.ip Der Wert wird aus dem Feld darktrace_ip übernommen.
darktrace_user observer.user.userid Der Wert wird aus dem Feld darktrace_user übernommen.
description security_result.summary, metadata.description Der Wert wird aus dem Feld description übernommen.
device.customFields.DT-AUTO.macaddress principal.mac Der Wert wird aus dem Feld device.customFields.DT-AUTO.macaddress übernommen.
device.did principal.asset.asset_id Der Wert wird aus dem Feld device.did übernommen, in einen String konvertiert und mit Device ID: als Präfix versehen.
device.firstSeen principal.asset.first_seen_time Der Wert wird aus dem Feld device.firstSeen übernommen, in einen String konvertiert und als UNIX-Zeitstempel in Millisekunden geparst.
device.hostname hauptkonto.hostname, hauptkonto.asset.hostname Der Wert wird aus dem Feld device.hostname übernommen.
device.ip principal.ip, principal.asset.ip Der Wert wird aus dem Feld device.ip übernommen, wenn er dem IP-Adressformat entspricht.
device.ips.0.subnet additional.fields.subnet Der Wert wird aus dem Feld device.ips.0.subnet übernommen und mit subnet als Präfix versehen.
device.ips.ip principal.ip, principal.asset.ip Der Wert wird für jede IP-Adresse in der Liste aus dem Feld device.ips.ip übernommen.
device.lastSeen principal.asset.last_discover_time Der Wert wird aus dem Feld device.lastSeen übernommen, in einen String konvertiert und als UNIX-Zeitstempel in Millisekunden geparst.
device.macaddress principal.mac Der Wert wird aus dem Feld device.macaddress übernommen.
device.objecttype principal.asset.type Wenn der Wert device ist, wird das UDM-Feld auf WORKSTATION gesetzt.
device.sid principal.resource.attribute.labels.sid Der Wert wird aus dem Feld device.sid übernommen und in einen String konvertiert.
device.typelabel principal.resource.attribute.labels.typelabel Der Wert wird aus dem Feld device.typelabel übernommen.
device.typename principal.resource.attribute.labels.typename Der Wert wird aus dem Feld device.typename übernommen.
dst target.ip, target.asset.ip Der Wert wird aus dem Feld dst übernommen.
dpt target.port Der Wert wird aus dem Feld dpt übernommen und in eine Ganzzahl konvertiert.
dvc principal.ip, principal.asset.ip Wenn der Wert von dvc eine IP-Adresse ist, wird er dem UDM-Feld hinzugefügt.
dvchost hauptkonto.hostname, hauptkonto.asset.hostname Der Wert wird aus dem Feld dvchost übernommen.
Endpunkt target.url Der Wert wird aus dem Feld endpoint übernommen.
event_time metadata.event_timestamp Der Wert wird aus dem Feld event_time übernommen und als ISO8601-Zeitstempel geparst.
externalId metadata.product_log_id Der Wert wird aus dem Feld externalId übernommen.
incidentEventUrl principal.url Der Wert wird aus dem Feld incidentEventUrl übernommen.
ip principal.ip, principal.asset.ip Der Wert wird aus dem Feld ip übernommen, wenn er dem IP-Adressformat entspricht.
issue_msg security_result.summary Der Wert wird aus dem Feld issue_msg übernommen.
Nachricht security_result.description Der Wert wird aus dem Feld message übernommen.
Methode network.http.method Der Wert wird aus dem Feld method übernommen.
model.description metadata.description Der Wert wird aus dem Feld model.description übernommen.
model.name metadata.product_event_type Der Wert wird aus dem Feld model.name übernommen.
model.now.category security_result.severity Wenn der Wert critical ist, wird das UDM-Feld auf CRITICAL gesetzt. Wenn der Wert Informational ist, wird das UDM-Feld auf INFORMATIONAL gesetzt. Wenn der Wert Suspicious ist, wird das UDM-Feld auf HIGH und die Kategorie auf NETWORK_SUSPICIOUS gesetzt.
model.now.description metadata.description Der Wert wird aus dem Feld model.now.description übernommen.
model.now.message security_result.description Der Wert wird aus dem Feld model.now.message übernommen.
model.now.name metadata.product_event_type Der Wert wird aus dem Feld model.now.name übernommen.
model.now.pid principal.process.pid Der Wert wird aus dem Feld model.now.pid übernommen und in einen String konvertiert.
model.now.uuid principal.user.userid Der Wert wird aus dem Feld model.now.uuid übernommen und der Ereignistyp wird auf USER_UNCATEGORIZED festgelegt.
model.pid principal.process.pid Der Wert wird aus dem Feld model.pid übernommen und in einen String konvertiert.
model.then.description principal.resource.attribute.labels.Model Then Description Der Wert wird aus dem Feld model.then.description übernommen.
model.then.name principal.resource.attribute.labels.Model Then Name Der Wert wird aus dem Feld model.then.name übernommen.
model.then.pid principal.resource.attribute.labels.Model Then Pid Der Wert wird aus dem Feld model.then.pid übernommen und in einen String konvertiert.
model.then.uuid principal.resource.attribute.labels.Model Then UUID Der Wert wird aus dem Feld model.then.uuid übernommen.
model.uuid principal.user.userid Der Wert wird aus dem Feld model.uuid übernommen und der Ereignistyp wird auf USER_UNCATEGORIZED festgelegt.
relatedBreaches.0.modelName security_result.description Der Wert wird aus dem Feld relatedBreaches.0.modelName übernommen.
Punktzahl security_result.priority, security_result.priority_details Wenn der Wert zwischen 0,8 und 1 liegt, wird die Priorität auf HIGH_PRIORITY festgelegt. Wenn der Wert zwischen 0,5 und 0,79 liegt, wird die Priorität auf MEDIUM_PRIORITY festgelegt. Wenn der Wert zwischen 0 und 0,49 liegt, wird die Priorität auf LOW_PRIORITY festgelegt. Die Prioritätsdetails werden auf Score : und dann auf den Wert von score gesetzt, der in einen String konvertiert wird.
die Ausprägung security_result.severity Wenn der Wert 2 ist, wird das UDM-Feld auf MEDIUM gesetzt. Wenn der Wert größer als 2 ist, wird das UDM-Feld auf HIGH gesetzt.
shost hauptkonto.hostname, hauptkonto.asset.hostname Der Wert wird aus dem Feld shost übernommen.
smac principal.mac Der Wert wird aus dem Feld smac übernommen.
src principal.ip, principal.asset.ip Der Wert wird aus dem Feld src übernommen.
Status network.http.response_code Der Wert wird aus dem Feld status übernommen und in einen String konvertiert.
Zusammenfassung metadata.description Der Wert wird aus dem Feld summary übernommen.
Zeit Der Wert wird aus dem Feld time übernommen, in einen String konvertiert und als UNIX-Zeitstempel in Millisekunden geparst.
timestamp Der Wert wird aus dem Feld timestamp übernommen und entweder als ISO8601-Zeitstempel oder als UNIX-Zeitstempel in Millisekunden geparst.
Titel security_result.summary Der Wert wird aus dem Feld title übernommen.
triggeredComponents.ip intermediary.ip Der Wert wird aus dem Feld triggeredComponents.ip übernommen, wenn er dem IP-Adressformat entspricht.
triggeredComponents.port intermediary.port Der Wert wird aus dem Feld triggeredComponents.port übernommen und in eine Ganzzahl konvertiert.
Nutzername principal.user.userid Der Wert wird aus dem Feld username übernommen.
metadata.vendor_name Legen Sie DARKTRACE fest.
metadata.product_name Legen Sie DCIP fest.
metadata.log_type Legen Sie DARKTRACE fest.
network.ip_protocol Wird auf TCP gesetzt, wenn issue_msg nicht UDP enthält. Andernfalls auf UDP setzen.
security_result.action Wird auf BLOCK gesetzt, wenn status gleich 401 ist. Andernfalls wird der Wert auf ALLOW gesetzt.
security_result.severity Legen Sie INFORMATIONAL fest.
network.application_protocol Wird auf HTTP gesetzt, wenn method nicht leer ist.
metadata.event_type Wird auf NETWORK_HTTP gesetzt, wenn method nicht leer ist. Wird auf USER_LOGIN gesetzt, wenn description den Wert logged into \\\\S+ over ssh enthält. Wird auf NETWORK_CONNECTION gesetzt, wenn target_ip nicht leer ist. Andernfalls legen Sie STATUS_UPDATE fest.
extensions.auth.type Wird auf MACHINE gesetzt, wenn description den Wert logged into \\\\S+ over ssh enthält.
security_result.category Wird auf DATA_EXFILTRATION gesetzt, wenn issue_msg den Wert Exfiltration enthält. Wird auf NETWORK_MALICIOUS gesetzt, wenn issue_msg den Wert Compromise enthält. Andernfalls legen Sie NETWORK_SUSPICIOUS fest.

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