Carbon Black App Control-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird erläutert, wie Sie Carbon Black App Control-Protokolle erfassen. Der Parser unterstützt sowohl das CEF- als auch das JSON-Format. Es wird zuerst versucht, die Eingabe als JSON zu parsen. Wenn das fehlschlägt, wird die Eingabe als CEF behandelt, Text ersetzt, CEF-Felder extrahiert, UDM zugeordnet und der Ereignistyp auf GENERIC_EVENT festgelegt. Andernfalls wird eine separate JSON-spezifische UDM-Zuordnungs-Include-Datei verwendet.

Hinweise

  • Sie benötigen eine Google Security Operations-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.
  • Carbon Black App Control (CB Protection)-Server (Version 8.x oder höher empfohlen)
  • Sie benötigen erhöhte Zugriffsrechte für Carbon Black App Control.

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
    

Zusätzliche 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:
        tcplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:11592"
    
    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: JSON
                namespace: cb_app_control
                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 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.

Bindplane-Agent neu starten, 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
    

CB App Control zum Senden von Syslog-Logs konfigurieren

  1. Melden Sie sich mit einem Administratorkonto in der CB App Control-Konsole an.
  2. Gehen Sie zu Verwaltung > Systemkonfiguration > Externe Protokollierung.
  3. Gehen Sie im Abschnitt „Externe Ereignisprotokollierung“ so vor:
    • Syslog-Protokollierung aktivieren: Klicken Sie das Kästchen Syslog aktiviert an.
    • Serveradresse: <Bindplane Server IP>.
    • Port: <Bindplane Server PORT>.
    • Protocol (Protokoll): Wählen Sie TCP aus.
    • Syslog-Format: Wählen Sie JSON aus.
  4. Wählen Sie unter Optionen für die Ereignisprotokollierung die zu sendenden Protokolltypen aus:
    • Richtlinienverstöße
    • Ereignisse der Dateiintegritätsprüfung (File Integrity Monitoring, FIM)
    • Ereignisse zur Nutzerauthentifizierung
    • Threat Intelligence-Daten
  5. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
ABId principal.asset.asset_id Die ABId aus dem JSON-Log wird als Teil der Asset-ID im Format PRODUCT_SPECIFIC_ID:{ABId}-{Bit9Server} verwendet.
Bit9Server principal.asset.asset_id Wird als Teil der Asset-ID des Hauptberechtigten in Kombination mit ABId verwendet. Wird auch zum Erstellen des Felds metadata.url_back_to_product verwendet.
CommandLine about.process.command_line Direkt zugeordnet.
EventType metadata.product_event_type Sie werden mit der entsprechenden EventTypeId in eckigen Klammern zugeordnet (z.B. [5] - Discovery).
EventTypeId metadata.product_event_type Wird mit EventType verwendet, um metadata.product_event_type auszufüllen.
EventSubType metadata.description Dem Feld metadata.description angefügt.
EventSubTypeId metadata.description Nicht explizit zugeordnet, trägt aber basierend auf der internen Logik des Parsers möglicherweise zur Beschreibung bei.
externalId metadata.product_log_id Direkt zugeordnet.
FileHash about.file.sha256 Direkt zugeordnet.
FileName additional.fields (mit Schlüssel FileName) Als zusätzliches Feld hinzugefügt. Wird bei einigen Ereignissen auch als Teil der Dateiinformationen in metadata.description verwendet.
FilePath about.file.full_path Direkt zugeordnet.
FileThreat additional.fields (mit Schlüssel fileThreat) Als zusätzliches Feld hinzugefügt.
FileTrust additional.fields (mit Schlüssel fileTrust) Als zusätzliches Feld hinzugefügt.
HostId principal.asset.asset_id Wird verwendet, um die URL zum Produkt in metadata.url_back_to_product zu erstellen.
HostName target.hostname Direkt zugeordnet.
HostIP target.ip Direkt zugeordnet.
Message metadata.description Direkt zugeordnet.
PathName about.file.full_path Direkt zugeordnet.
Platform target.platform Dem Enumerationswert WINDOWS zugeordnet.
Policy additional.fields (mit Schlüssel Policy) Als zusätzliches Feld hinzugefügt.
PolicyId additional.fields (mit Schlüssel PolicyId) Als zusätzliches Feld hinzugefügt.
ProcessKey additional.fields (mit Schlüssel ProcessKey) Als zusätzliches Feld hinzugefügt.
ProcessPath about.process.command_line Direkt zugeordnet.
ProcessPathName about.process.command_line Direkt zugeordnet.
ProcessThreat additional.fields (mit Schlüssel ProcessThreat) Als zusätzliches Feld hinzugefügt.
ProcessTrust additional.fields (mit Schlüssel ProcessTrust) Als zusätzliches Feld hinzugefügt.
RuleName additional.fields (mit Schlüssel ruleName) Als zusätzliches Feld hinzugefügt.
Timestamp metadata.event_timestamp Direkt zugeordnet.
UserName target.user.user_display_name Direkt zugeordnet.
UserSid principal.user.userid Direkt zugeordnet.
agent.ephemeral_id observer.labels (mit Schlüssel ephemeral_id) Als Beobachterlabel hinzugefügt.
agent.name principal.hostname, observer.hostname, observer.user.userid Mehreren Feldern zugeordnet.
agent.type observer.application Direkt zugeordnet.
agent.version metadata.product_version Direkt für JSON-Protokolle zugeordnet. Für CEF-Protokolle, die aus der CEF-Nachricht extrahiert wurden.
cat security_result.category_details Direkt zugeordnet.
cs1 additional.fields (mit Schlüssel rootHash oder einem anderen cs1Label) Wird als zusätzliches Feld mit dem von cs1Label definierten Schlüssel hinzugefügt.
cs1Label additional.fields Wird als Schlüssel für das zusätzliche Feld verwendet, das mit cs1 ausgefüllt wird.
cs2 additional.fields (mit Schlüssel installerFilename oder einem anderen cs2Label) Wird als zusätzliches Feld mit dem von cs2Label definierten Schlüssel hinzugefügt.
cs2Label additional.fields Wird als Schlüssel für das zusätzliche Feld verwendet, das mit cs2 ausgefüllt wird.
cs3 additional.fields (mit Schlüssel Policy oder einem anderen cs3Label) Wird als zusätzliches Feld mit dem von cs3Label definierten Schlüssel hinzugefügt.
cs3Label additional.fields Wird als Schlüssel für das zusätzliche Feld verwendet, das mit cs3 ausgefüllt wird.
cs5 additional.fields (mit Schlüssel ruleName oder einem anderen cs5Label) Wird als zusätzliches Feld mit dem von cs5Label definierten Schlüssel hinzugefügt.
cs5Label additional.fields Wird als Schlüssel für das zusätzliche Feld verwendet, das mit cs5 ausgefüllt wird.
cfp1 additional.fields (mit Schlüssel fileTrust oder einem anderen cfp1Label) Wird als zusätzliches Feld mit dem von cfp1Label definierten Schlüssel hinzugefügt.
cfp1Label additional.fields Wird als Schlüssel für das zusätzliche Feld verwendet, das mit cfp1 ausgefüllt wird.
cfp2 additional.fields (mit Schlüssel processTrust oder einem anderen cfp2Label) Wird als zusätzliches Feld mit dem von cfp2Label definierten Schlüssel hinzugefügt.
cfp2Label additional.fields Wird als Schlüssel für das zusätzliche Feld verwendet, das mit cfp2 ausgefüllt wird.
deviceProcessName about.process.command_line Direkt zugeordnet.
dhost target.hostname Direkt zugeordnet.
dst target.ip Direkt zugeordnet.
duser target.user.user_display_name Direkt zugeordnet.
dvchost about.hostname Direkt zugeordnet.
eventId additional.fields (mit Schlüssel eventId) Als zusätzliches Feld hinzugefügt.
fileHash about.file.sha256 Direkt zugeordnet.
flexString1 additional.fields (mit Schlüssel fileThreat oder einem anderen flexString1Label) Wird als zusätzliches Feld mit dem von flexString1Label definierten Schlüssel hinzugefügt.
flexString1Label additional.fields Wird als Schlüssel für das zusätzliche Feld verwendet, das mit flexString1 ausgefüllt wird.
flexString2 additional.fields (mit Schlüssel processThreat oder einem anderen flexString2Label) Wird als zusätzliches Feld mit dem von flexString2Label definierten Schlüssel hinzugefügt.
flexString2Label additional.fields Wird als Schlüssel für das zusätzliche Feld verwendet, das mit flexString2 ausgefüllt wird.
fname additional.fields (mit Schlüssel fname) Als zusätzliches Feld hinzugefügt. Wird bei einigen Ereignissen auch als Teil der Dateiinformationen in metadata.description verwendet.
host.architecture target.asset.hardware.cpu_platform Direkt zugeordnet.
host.hostname target.asset.asset_id Wird als Teil der Ziel-Asset-ID (Host Id: {host.hostname}) verwendet. Wird auch target.hostname zugeordnet.
host.id target.asset.asset_id Wird als Teil der Ziel-Asset-ID (Host Id: {host.id}) verwendet.
host.ip target.asset.ip Direkt zugeordnet.
host.mac target.mac Direkt zugeordnet.
host.name target.hostname Direkt zugeordnet.
host.os.build target.platform_patch_level Direkt zugeordnet.
host.os.kernel target.platform_patch_level An das target.platform_patch_level angehängt.
host.os.platform target.platform Dem Enumerationswert WINDOWS zugeordnet.
host.os.type target.platform Dem Enumerationswert WINDOWS zugeordnet.
host.os.version target.platform_version Direkt zugeordnet.
log.file.path target.file.full_path Direkt zugeordnet.
metadata.event_type metadata.event_type Legen Sie GENERIC_EVENT für CEF-Protokolle und SYSTEM_AUDIT_LOG_UNCATEGORIZED für JSON-Protokolle fest.
metadata.log_type metadata.log_type Legen Sie CB_EDR fest.
metadata.product_log_id metadata.product_log_id Aus externalId für CEF-Protokolle zugeordnet. Nicht für JSON-Protokolle.
metadata.product_name metadata.product_name Legen Sie App Control für CEF-Protokolle und CB_APP_CONTROL für JSON-Protokolle fest.
metadata.product_version metadata.product_version Aus der CEF-Nachricht für CEF-Protokolle extrahiert. Zuordnung von agent.version für JSON-Protokolle.
metadata.vendor_name metadata.vendor_name Legen Sie Carbon Black fest.
msg metadata.description, additional.fields Wird verwendet, um metadata.description und möglicherweise zusätzliche Felder auf Grundlage der Logik des Parsers auszufüllen.
sproc principal.process.command_line Direkt zugeordnet.
metadata.url_back_to_product metadata.url_back_to_product Erstellt mit den Feldern Bit9Server und HostId für JSON-Protokolle. Nicht zutreffend für CEF-Protokolle.
security_result.severity security_result.severity Legen Sie MEDIUM fest.
timestamp events.timestamp Direkt für JSON-Protokolle zugeordnet. Bei CEF-Logs wird der Zeitstempel anhand des Felds rt des Rohlogs bestimmt, sofern verfügbar, oder anhand des Felds collection_time, falls rt nicht vorhanden ist.

Änderungen

2022-07-01

  • Optimierung
  • Das Feld „agent.type“ wurde „observer.application“ zugeordnet.
  • Das Feld „agent.name“ wurde auf „observer.user.userid“ zugeordnet.
  • Das Feld „host.name“ wurde „observer.hostname“ zugeordnet.
  • Die Felder „agent.type“ und „agent.name“ wurden „observer.asset_id“ zugeordnet.
  • Das Feld „agent.ephemeral_id“ wurde „observer.labels“ zugeordnet.
  • Das Feld „host.os.platform“ wurde „target.platform“ zugeordnet.
  • Das Feld „host.os.version“ wurde „target.platform_version“ zugeordnet.
  • Das Feld „host.os.kernel“ wurde „target.platform_patch_level“ zugeordnet.
  • Das Feld „cloud.instance.id“ wurde „principal.resource.product_object_id“ zugeordnet.
  • Das Feld „cloud.instance.name“ wurde „principal.resource.name“ zugeordnet.
  • Das Feld „host.mac“ wurde „target.mac“ zugeordnet.
  • Das Feld „host.ip“ wurde „target.asset.ip“ zugeordnet.
  • Das Feld „host.id“ wurde „target.asset.asset_id“ zugeordnet.
  • Das Feld „host.architecture“ wurde „target.asset.hardware“ zugeordnet.
  • Das Feld „message.UserSID“ wurde „principal.user.userid“ zugeordnet.
  • Das Feld „message.ProcessPath“ wurde in „about.process.command_line“ umgewandelt.
  • Die Felder „cloud.machine.type“ und „cloud.provider“ wurden „principal.resource.attribute.labels“ zugeordnet.
  • Es wurden bedingte Prüfungen für „message.Bit9Server“ und „message.HostId“ hinzugefügt, die auf „metadata.url_back_to_product“ zugeordnet sind.

2022-06-22

  • Fehlerkorrektur
  • hostId wurde principal.asset_id zugeordnet
  • Bit9Server und HostId wurden der Metadaten-URL „url_back_to_product“ zugeordnet.

2022-05-19

  • Fehlerkorrektur
  • angeforderte Protokolle im Fehlerbericht geparst
  • Protokolle fehlgeschlagener API-Analysen

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