Carbon Black EDR-Protokolle erfassen

Unterstützt in:

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

  1. Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu der Anleitung unter Bucket erstellen.
  2. Speichern Sie den Namen und die Region des Buckets für die spätere Verwendung.
  3. Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
  4. Wählen Sie den erstellten Nutzer aus.
  5. Wählen Sie den Tab Sicherheitsanmeldedaten aus.
  6. Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
  7. Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
  8. Klicken Sie auf Weiter.
  9. Optional: Fügen Sie ein Beschreibungstag hinzu.
  10. Klicken Sie auf Zugriffsschlüssel erstellen.
  11. 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.
  12. Klicken Sie auf Fertig.
  13. Wählen Sie den Tab Berechtigungen aus.
  14. Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
  15. Wählen Sie Berechtigungen hinzufügen aus.
  16. Wählen Sie Richtlinien direkt anhängen aus.
  17. Suchen Sie nach der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
  18. Klicken Sie auf Weiter.
  19. Klicken Sie auf Berechtigungen hinzufügen.

cb-event-forwarder auf dem lokalen EDR-Server installieren

  1. 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
    
  2. Installieren Sie das RPM mit YUM:

    yum install cb-event-forwarder
    
  3. 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

  1. Öffnen Sie die Konfigurationsdatei:

    sudo nano /etc/cb/integrations/event-forwarder/cb-event-forwarder.conf
    
  2. Ä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
    
  3. Speichern und schließen Sie die Datei mit der Tastatur:

    • Drücken Sie Strg + X, dann Y und die Eingabetaste.
  4. 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

  1. Melden Sie sich in der AWS Management Console an.
  2. Achten Sie darauf, dass die AWS-Region mit der Region des Event Forwarder übereinstimmt:
    1. Suchen Sie auf der Seite AWS Console nach der Region.
    2. Wählen Sie im Drop-down-Menü die richtige Region für Ihren Event Forwarder aus.
    3. 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)
  3. Wählen Sie Dienste aus.
  4. Rufen Sie die S3-Konsole auf.
  5. Klicken Sie auf Bucket erstellen, um den Assistenten Bucket erstellen zu öffnen.
    1. Geben Sie unter Bucket-Name einen eindeutigen Namen für den Bucket ein, z. B. CB-EDR.
    2. Prüfen Sie, ob die Region standardmäßig auf die von Ihnen zuvor ausgewählte Region festgelegt ist.
    3. 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.
    4. Wählen Sie Bucket erstellen aus.

S3-Bucket so konfigurieren, dass der Event Forwarder Ereignisse schreiben kann

  1. Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
  2. Wählen Sie den erstellten Nutzer aus.
  3. Wählen Sie den Tab Sicherheitsanmeldedaten aus.
  4. Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
  5. Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
  6. Klicken Sie auf Weiter.
  7. Optional: Fügen Sie ein Beschreibungstag hinzu.
  8. Klicken Sie auf Zugriffsschlüssel erstellen.
  9. 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.
  10. Klicken Sie auf Fertig.
  11. Wählen Sie den Tab Berechtigungen aus.
  12. Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
  13. Wählen Sie Berechtigungen hinzufügen aus.
  14. Wählen Sie Richtlinien direkt anhängen aus.
  15. Suchen Sie nach der Richtlinie AmazonS3FullAccess.
  16. Wählen Sie die Richtlinie aus.
  17. Klicken Sie auf Weiter.
  18. Klicken Sie auf Berechtigungen hinzufügen.

Weiterleitung von Ereignissen in der EDR-Konsole konfigurieren

  1. Melden Sie sich in der VMware Carbon Black Cloud an.
  2. Rufen Sie den Tab Event-Forwarder auf.
  3. Aktivieren Sie die Ereignisse, die vom Produkt in S3 hochgeladen werden sollen.
  4. Gehen Sie zu Ausgabe und Typ und stellen Sie S3 ein.
  5. Geben Sie den Namen des S3-Buckets im folgenden Format an: <region>:<bucket-name> (z. B. us-east-1:cb-edr).
  6. Wählen Sie AWS-Datei mit Anmeldedaten hochladen im INI-Format aus.
  7. 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
    
  8. Klicken Sie auf Speichern und starten Sie den Dienst neu, damit die Änderungen wirksam werden.

Feeds einrichten

Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:

  • SIEM-Einstellungen > Feeds
  • Content Hub> Content-Pakete

Feeds über „SIEM-Einstellungen“ > „Feeds“ einrichten

So konfigurieren Sie einen Feed:

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. Carbon Black EDR Logs (Carbon Black EDR-Protokolle).
  5. Wählen Sie Amazon S3 als Quelltyp aus.
  6. Wählen Sie Carbon Black EDR als Logtyp aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Region: Die Region, in der sich der Amazon S3-Bucket befindet.
    • S3-URI: Der Bucket-URI.
      • s3:/BUCKET_NAME
        • Ersetzen Sie BUCKET_NAME durch den tatsächlichen Namen des Buckets.
    • URI is a (URI ist ein): Wählen Sie den URI_TYPE entsprechend der Logstream-Konfiguration aus (Single file | Directory | Directory which includes subdirectories).
    • Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Option aus.
    • Access Key ID (Zugriffsschlüssel-ID): Der Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket.
    • Secret Access Key (Geheimer Zugriffsschlüssel): Der geheime Schlüssel des Nutzers mit Zugriff auf den S3-Bucket.
  9. Klicken Sie auf Weiter.

  10. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Feeds über den Content Hub einrichten

Geben Sie Werte für die folgenden Felder an:

  • Region: Die Region, in der sich der Amazon S3-Bucket befindet.
  • S3-URI: Der Bucket-URI.
    • s3:/BUCKET_NAME
      • Ersetzen Sie BUCKET_NAME durch den tatsächlichen Namen des Buckets.
  • URI is a (URI ist ein): Wählen Sie den URI_TYPE entsprechend der Logstream-Konfiguration aus (Single file | Directory | Directory which includes subdirectories).
  • Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Option aus.
  • Access Key ID (Zugriffsschlüssel-ID): Der Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket.
  • Secret Access Key (Geheimer Zugriffsschlüssel): Der geheime Schlüssel des Nutzers mit Zugriff auf den S3-Bucket.

Erweiterte Optionen

  • Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
  • Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
  • Asset-Namespace: Der Namespace, der dem Feed zugeordnet ist.
  • Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.

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