Carbon Black EDR-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Carbon Black EDR-Logs aus Cloud- und lokalen Umgebungen mit AWS S3 erfassen. Der Parser extrahiert Felder aus Nachrichten im JSON-, CSV- oder Syslog-Format, normalisiert sie und ordnet sie dem UDM zu. Es werden verschiedene Carbon Black-Ereignistypen verarbeitet, darunter Netzwerkverbindungen, Prozessereignisse, Dateiänderungen, Registrierungsänderungen und IOC-Treffer. Die Daten werden, sofern verfügbar, mit Informationen zu Bedrohungen und Geräten angereichert.
Hinweise
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Google SecOps-Instanz.
- Privilegierter Zugriff auf AWS IAM und S3.
- Privilegierter Zugriff auf Cloud- oder On-Premise-Versionen von Carbon Black EDR.
Lokale Carbon Black EDR-Konfiguration
Amazon S3-Bucket für lokale Systeme konfigurieren
- Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu der Anleitung unter Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets für die spätere Verwendung.
- Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
- Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
- Klicken Sie auf Weiter.
- Optional: Fügen Sie ein Beschreibungstag hinzu.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- Klicken Sie auf CSV-Datei herunterladen, um den Access Key (Zugriffsschlüssel) und den Secret Access Key (geheimer Zugriffsschlüssel) für die spätere Verwendung zu speichern.
- Klicken Sie auf Fertig.
- Wählen Sie den Tab Berechtigungen aus.
- Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
- Wählen Sie Berechtigungen hinzufügen aus.
- Wählen Sie Richtlinien direkt anhängen aus.
- Suchen Sie nach der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
cb-event-forwarder auf dem lokalen EDR-Server installieren
Installieren Sie das Repository CbOpenSource, falls es noch nicht vorhanden ist:
cd /etc/yum.repos.d curl -O https://opensource.carbonblack.com/release/x86_64/CbOpenSource.repo
Installieren Sie das RPM mit YUM:
yum install cb-event-forwarder
Wenn Sie EDR 7.1.0 oder höher verwenden, führen Sie das folgende Skript aus, um die erforderlichen Berechtigungen für EDR festzulegen:
/usr/share/cb/integrations/event-forwarder/cb-edr-fix-permissions.sh
cb-event-forwarder für die Ausgabe von JSON-Logs konfigurieren
Öffnen Sie die Konfigurationsdatei:
sudo nano /etc/cb/integrations/event-forwarder/cb-event-forwarder.conf
Ändern Sie die folgenden Parameter:
[event_forwarder] output_format=json # Enable JSON format output_type=s3 # Send logs to AWS S3 s3_bucket_name=YOUR-S3-BUCKET-NAME s3_region=YOUR-S3-BUCKET-NAME s3_access_key_id=YOUR_AWS_ACCESS_KEY s3_secret_access_key=YOUR_AWS_SECRET_KEY s3_prefix=carbonblack/edr/logs
Speichern und schließen Sie die Datei mit der Tastatur:
- Drücken Sie Strg + X, dann Y und die Eingabetaste.
Starten Sie cb-event-forwarder:
sudo systemctl enable cb-event-forwarder sudo systemctl restart cb-event-forwarder sudo systemctl status cb-event-forwarder
Carbon Black Cloud Event Forwarder für S3 konfigurieren
AWS S3-Bucket erstellen
- Melden Sie sich in der AWS Management Console an.
- Achten Sie darauf, dass die AWS-Region mit der Region des Event Forwarder übereinstimmt:
- Suchen Sie auf der Seite AWS Console nach der Region.
- Wählen Sie im Drop-down-Menü die richtige Region für Ihren Event Forwarder aus.
- In der folgenden Liste ist die zutreffende AWS-Region für jede Carbon Black EDR-URL angegeben.
- „instance-alias“.my.carbonblack.io – Region: US East (N. Virginia) (us-east-1)
- „instance-alias“.my.cbcloud.de – Region: Europa (Frankfurt) (eu-central-1)
- „instance-alias“.my.cbcloud.sg Region: Asiatisch-pazifischer Raum (Singapur) (ap-southeast-1)
- Wählen Sie Dienste aus.
- Rufen Sie die S3-Konsole auf.
- Klicken Sie auf Bucket erstellen, um den Assistenten Bucket erstellen zu öffnen.
- Geben Sie unter Bucket-Name einen eindeutigen Namen für den Bucket ein, z. B. CB-EDR.
- Prüfen Sie, ob die Region standardmäßig auf die von Ihnen zuvor ausgewählte Region festgelegt ist.
- Aktualisieren Sie die Standardeinstellungen für Block Public Access (Öffentlichen Zugriff blockieren), um öffentlichen Zugriff zuzulassen. Dies ist erforderlich, um die Logs in Google SecOps aufzunehmen.
- Wählen Sie Bucket erstellen aus.
S3-Bucket so konfigurieren, dass der Event Forwarder Ereignisse schreiben kann
- Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
- Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
- Klicken Sie auf Weiter.
- Optional: Fügen Sie ein Beschreibungstag hinzu.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- Klicken Sie auf CSV-Datei herunterladen, um den Access Key (Zugriffsschlüssel) und den Secret Access Key (geheimer Zugriffsschlüssel) für die spätere Verwendung zu speichern.
- Klicken Sie auf Fertig.
- Wählen Sie den Tab Berechtigungen aus.
- Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
- Wählen Sie Berechtigungen hinzufügen aus.
- Wählen Sie Richtlinien direkt anhängen aus.
- Suchen Sie nach der Richtlinie AmazonS3FullAccess.
- Wählen Sie die Richtlinie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
Weiterleitung von Ereignissen in der EDR-Konsole konfigurieren
- Melden Sie sich in der VMware Carbon Black Cloud an.
- Rufen Sie den Tab Event-Forwarder auf.
- Aktivieren Sie die Ereignisse, die vom Produkt in S3 hochgeladen werden sollen.
- Gehen Sie zu Ausgabe und Typ und stellen Sie S3 ein.
- Geben Sie den Namen des S3-Buckets im folgenden Format an:
<region>:<bucket-name>
(z. B.us-east-1:cb-edr
). - Wählen Sie AWS-Datei mit Anmeldedaten hochladen im INI-Format aus.
Hier ein Beispiel für ein Profil:
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-east-1
Klicken Sie auf Speichern und starten Sie den Dienst neu, damit die Änderungen wirksam werden.
Feeds einrichten
So konfigurieren Sie einen Feed:
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. Carbon Black EDR Logs (Carbon Black EDR-Protokolle).
- Wählen Sie Amazon S3 V2 als Quelltyp aus.
- Wählen Sie Carbon Black EDR als Logtyp aus.
- Klicken Sie auf Weiter.
Geben Sie Werte für die folgenden Eingabeparameter an:
- S3-URI: Der Bucket-URI.
s3:/BUCKET_NAME
- Ersetzen Sie
BUCKET_NAME
durch den tatsächlichen Namen des Buckets.
- Ersetzen Sie
- Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Option aus.
- S3-URI: Der Bucket-URI.
Klicken Sie auf Weiter.
Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
action |
security_result.detection_fields[?key == 'action'].value |
Der Wert des Felds action aus dem Rohlog. |
cb_server |
intermediary.hostname |
Der Wert des Felds cb_server aus dem Rohlog. |
cb_version |
metadata.product_version |
Der Wert des Felds cb_version aus dem Rohlog. |
child_pid |
target.process.pid (für ingress.event.childproc -Ereignisse) |
Der Wert des Felds child_pid aus dem Rohlog, wenn type gleich ingress.event.childproc ist. |
child_process_guid |
target.process.product_specific_process_id (für ingress.event.childproc -Ereignisse) |
„CB:“ verkettet mit dem Wert des Felds child_process_guid aus dem Rohlog, wenn type gleich ingress.event.childproc ist. |
child_username |
target.user.userid (für ingress.event.childproc -Ereignisse) |
Der Wert des Felds child_username aus dem Rohlog, wenn type gleich ingress.event.childproc ist. |
childproc_guid |
target.process.product_specific_process_id (für endpoint.event.procstart -Ereignisse) |
„CB:“ verkettet mit dem Wert des Felds childproc_guid aus dem Rohlog, wenn type gleich endpoint.event.procstart ist. |
childproc_hash.0 |
target.process.file.md5 (für endpoint.event.procstart -Ereignisse) |
Das erste Element des childproc_hash -Arrays aus dem Rohlog, wenn type gleich endpoint.event.procstart ist. |
childproc_hash.1 |
target.process.file.sha256 (für endpoint.event.procstart -Ereignisse) |
Das zweite Element des childproc_hash -Arrays aus dem Rohlog, wenn type gleich endpoint.event.procstart ist. |
childproc_name |
target.process.file.full_path (für endpoint.event.procstart -Ereignisse) |
Der Wert des Felds childproc_name aus dem Rohlog, wenn type gleich endpoint.event.procstart ist. |
childproc_pid |
target.process.pid (für endpoint.event.procstart -Ereignisse) |
Der Wert des Felds childproc_pid aus dem Rohlog, wenn type gleich endpoint.event.procstart ist. |
childproc_publisher.0.name |
security_result.detection_fields[?key == 'childproc_publisher_name'].value (für endpoint.event.procstart -Ereignisse) |
„childproc_publisher_name:“ verkettet mit dem Wert von childproc_publisher.0.name aus dem Rohlog, wenn type gleich endpoint.event.procstart ist. |
childproc_publisher.0.state |
security_result.detection_fields[?key == 'childproc_publisher_state'].value (für endpoint.event.procstart -Ereignisse) |
„childproc_publisher_state:“ verkettet mit dem Wert von childproc_publisher.0.state aus dem Rohlog, wenn type gleich endpoint.event.procstart ist. |
childproc_reputation |
security_result.detection_fields[?key == 'childproc_reputation'].value (für endpoint.event.procstart -Ereignisse) |
Der Wert des Felds childproc_reputation aus dem Rohlog, wenn type gleich endpoint.event.procstart ist. |
childproc_username |
target.user.userid (für endpoint.event.procstart -Ereignisse) |
Der Wert des Felds childproc_username aus dem Rohlog, wenn type gleich endpoint.event.procstart ist. |
clientIp |
principal.ip , principal.asset.ip |
Der Wert des Felds clientIp aus dem Rohlog. |
cmdline |
target.process.command_line (für feed.query.hit.process - und feed.storage.hit.process -Ereignisse), additional.fields[?key == 'cmdline_*'].value.string_value (für watchlist.storage.hit.process -Ereignisse) |
Der Wert des Felds cmdline aus dem Rohlog, wenn type feed.query.hit.process oder feed.storage.hit.process ist. Bei watchlist.storage.hit.process -Ereignissen wird es in additional.fields mit dem Schlüssel „cmdline_*“ gespeichert. |
command_line |
target.process.command_line (für ingress.event.procstart -Ereignisse) |
Der Wert des Felds command_line aus dem Rohlog, wenn type gleich ingress.event.procstart ist. |
comms_ip |
intermediary.ip |
Der Wert des Felds comms_ip aus dem Rohlog. |
computer_name |
principal.hostname , principal.asset.hostname |
Der Wert des Felds computer_name aus dem Rohlog. |
crossproc_api |
additional.fields[?key == 'crossproc_api'].value.string_value (für endpoint.event.apicall -Ereignisse) |
Der Wert des Felds crossproc_api aus dem Rohlog, wenn type gleich endpoint.event.apicall ist. |
crossproc_guid |
additional.fields[?key == 'crossproc_guid'].value.string_value (für endpoint.event.crossproc -Ereignisse) |
Der Wert des Felds crossproc_guid aus dem Rohlog, wenn type gleich endpoint.event.crossproc ist. |
crossproc_hash.0 |
additional.fields[?key == 'crossproc_md5'].value.string_value (für endpoint.event.crossproc -Ereignisse) |
Das erste Element des crossproc_hash -Arrays aus dem Rohlog, wenn type gleich endpoint.event.crossproc ist. |
crossproc_hash.1 |
additional.fields[?key == 'crossproc_sha256'].value.string_value (für endpoint.event.crossproc -Ereignisse) |
Das zweite Element des crossproc_hash -Arrays aus dem Rohlog, wenn type gleich endpoint.event.crossproc ist. |
crossproc_name |
target.process.file.full_path (für endpoint.event.crossproc -Ereignisse) |
Der Wert des Felds crossproc_name aus dem Rohlog, wenn type gleich endpoint.event.crossproc ist. |
crossproc_publisher.0.name |
security_result.detection_fields[?key == 'crossproc_publisher_name'].value (für endpoint.event.crossproc -Ereignisse) |
„crossproc_publisher_name:“ verkettet mit dem Wert von crossproc_publisher.0.name aus dem Rohlog, wenn type gleich endpoint.event.crossproc ist. |
crossproc_publisher.0.state |
security_result.detection_fields[?key == 'crossproc_publisher_state'].value (für endpoint.event.crossproc -Ereignisse) |
„crossproc_publisher_state:“ verkettet mit dem Wert von crossproc_publisher.0.state aus dem Rohlog, wenn type gleich endpoint.event.crossproc ist. |
crossproc_reputation |
additional.fields[?key == 'crossproc_reputation'].value.string_value (für endpoint.event.crossproc -Ereignisse) |
Der Wert des Felds crossproc_reputation aus dem Rohlog, wenn type gleich endpoint.event.crossproc ist. |
crossproc_target |
additional.fields[?key == 'crossproc_target'].value.string_value (für endpoint.event.crossproc -Ereignisse) |
Der Wert des Felds crossproc_target aus dem Rohlog, wenn type gleich endpoint.event.crossproc ist. In den String „true“ oder „false“ konvertiert. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten