Carbon Black App Control-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Carbon Black App Control-Protokolle erfassen. Der Parser unterstützt sowohl das CEF- als auch das JSON-Format. Zuerst wird 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“ gesetzt. 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
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- Lade die Datei für die Datenaufnahmeauthentifizierung herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die PowerShell als Administrator.
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
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
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 in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass er Syslog-Dateien aufnimmt und an Google SecOps sendet
Rufen Sie die Konfigurationsdatei auf:
- 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.
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so: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
Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
Ersetzen Sie
<customer_id>
durch die tatsächliche Kundennummer.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
- Melden Sie sich mit einem Administratorkonto in der CB App Control-Konsole an.
- Gehen Sie zu Verwaltung > Systemkonfiguration > Externe Protokollierung.
- 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.
- 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
- 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 |
An das Feld metadata.description angehängt. |
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 dem 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 dem Schlüssel „fileThreat“) |
Als zusätzliches Feld hinzugefügt. |
FileTrust |
additional.fields (mit dem 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 dem Schlüssel „Richtlinie“) |
Als zusätzliches Feld hinzugefügt. |
PolicyId |
additional.fields (mit dem Schlüssel „PolicyId“) |
Als zusätzliches Feld hinzugefügt. |
ProcessKey |
additional.fields (mit dem 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 dem Schlüssel „ProcessThreat“) |
Als zusätzliches Feld hinzugefügt. |
ProcessTrust |
additional.fields (mit dem Schlüssel „ProcessTrust“) |
Als zusätzliches Feld hinzugefügt. |
RuleName |
additional.fields (mit dem 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 dem 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 dem 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 dem 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 dem Schlüssel „Richtlinie“ 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 dem 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 dem 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 dem 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 dem Schlüssel „eventId“) |
Als zusätzliches Feld hinzugefügt. |
fileHash |
about.file.sha256 |
Direkt zugeordnet. |
flexString1 |
additional.fields (mit dem 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 dem 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 dem Schlüssel „vorname“) |
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. 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 für CEF-Protokolle „GENERIC_EVENT“ und für JSON-Protokolle „SYSTEM_AUDIT_LOG_UNCATEGORIZED“ 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 |
Für CEF-Protokolle auf „App-Steuerung“ und für JSON-Protokolle auf „CB_APP_CONTROL“ setzen. |
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 gegebenenfalls 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 „about.process.command_line“ zugeordnet.
- 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 Variablen „metadata.url_back_to_product“ zugeordnet.
2022-05-19
- Fehlerkorrektur
- angeforderte Protokolle im Fehler analysiert
- Protokolle fehlgeschlagener API-Analysen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten