CrowdStrike Falcon-Streamlogs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie CrowdStrike Falcon Stream-Logs mit Bindplane erfassen. Der Parser extrahiert Schlüssel/Wert-Paare und ordnet sie dem Unified Data Model (UDM) zu. Dabei werden verschiedene Trennzeichen verarbeitet und die Daten werden mit zusätzlichem Kontext wie Schweregrad und Ereignistypen angereichert. Außerdem werden bestimmte Transformationen für bestimmte Ereignistypen und Felder ausgeführt, z. B. für Nutzeranmeldungen und Sicherheitsergebnisse.

Vorbereitung

  • Prüfen Sie, ob Sie eine Google Security Operations-Instanz haben.
  • Achten Sie darauf, dass Sie Windows 2016 oder höher oder einen Linux-Host mit systemd verwenden.
  • Wenn Sie einen Proxy verwenden, müssen die Firewallports geöffnet sein.
  • Sie benötigen privilegierten Zugriff auf die CrowdStrike Falcon-Konsole.
  • API-Anmeldedaten für Falcon Stream abrufen (Client-ID und Clientschlüssel).

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

Windows-Installation

  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

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

  1. Greifen Sie auf die Konfigurationsdatei zu:

    • 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:54525"
    
    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: SYSLOG
                namespace: cs_stream
                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 Kunden-ID.
  • Aktualisieren Sie /path/to/ingestion-authentication-file.json auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei abrufen gespeichert wurde.

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

CrowdStrike-API-Schlüssel konfigurieren und abrufen

  1. Melden Sie sich mit einem privilegierten Konto bei CrowdStrike Falcon an.
  2. Gehen Sie zum Menü > Support.
  3. Klicken Sie auf API-Clients> Schlüssel auswählen.
  4. Klicken Sie auf Neuen API-Client hinzufügen.
  5. Wählen Sie im Abschnitt API-Bereiche die Option Event-Streams aus und aktivieren Sie dann die Option Lesen.
  6. Klicken Sie auf Hinzufügen.
  7. Kopieren und speichern Sie die Client-ID, das Client-Secret und die Basis-URL.

Falcon SIEM Connector installieren

  1. Laden Sie das RPM-Installationspaket für Ihr Betriebssystem herunter.
  2. Paketinstallation:

    • CentOS-Betriebssystem:

      sudo rpm -Uvh <installer package>
      
    • Ubuntu-Betriebssystem:

      sudo dpkg -i <installer package>
      
  3. Standardinstallationsverzeichnisse:

    • Falcon SIEM Connector – /opt/crowdstrike/.
    • Dienst: /etc/init.d/cs.falconhoseclientd/

SIEM Connector so konfigurieren, dass Ereignisse an Bindplane weitergeleitet werden

  1. Melden Sie sich auf dem Computer, auf dem der SIEM Connector installiert ist, als sudo-Nutzer an.
  2. Wechseln Sie zum Verzeichnis /opt/crowdstrike/etc/.
  3. Benennen Sie cs.falconhoseclient.leef.cfg in cs.falconhoseclient.cfg um.
    • Der SIEM-Connector verwendet standardmäßig die cs.falconhoseclient.cfg-Konfiguration.
  4. Bearbeiten Sie die Datei cs.falconhoseclient.cfg und ändern oder legen Sie die folgenden Parameter fest:
    • api_url:: Ihre CrowdStrike Falcon-Basis-URL, die Sie im vorherigen Schritt kopiert haben.
    • app_id:: Beliebiger String als Kennung für die Verbindung zur Falcon Streaming API, z. B. app_id: SECOPS-LEEF.
    • client_id:: Der Wert client_id, der im vorherigen Schritt kopiert wurde.
    • client_secret:: Der Wert client_secret, der im vorherigen Schritt kopiert wurde.
    • send_to_syslog_server: true – Push-Benachrichtigungen an den Syslog-Server aktivieren.
    • host:: Die IP-Adresse oder der Hostname des Bindplane-Agents.
    • port:: Der Port des BindPlane-Agents.
  5. Speichern Sie die Datei cs.falconhoseclient.cfg.
  6. Starten Sie den SIEM Connector-Dienst:

    • CentOS-Betriebssystem:

      sudo service cs.falconhoseclientd start
      
    • Ubuntu 16.04 oder höher:

      sudo systemctl start cs.falconhoseclientd.service
      
  7. Optional: SIEM Connector-Dienst beenden:

    • CentOS-Betriebssystem:

      sudo service cs.falconhoseclientd stop
      
    • Ubuntu 16.04 oder höher:

      sudo systemctl stop cs.falconhoseclientd.service
      
  8. Optional: SIEM Connector-Dienst neu starten:

    • CentOS-Betriebssystem:

      sudo service cs.falconhoseclientd restart
      
    • Ubuntu 16.04 oder höher:

      sudo systemctl restart cs.falconhoseclientd.service
      

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
cat security_result.category_details Der Wert des Felds cat wird direkt dem Feld security_result.category_details zugeordnet.
commandLine target.process.command_line Der Wert des Felds commandLine wird direkt dem Feld target.process.command_line zugeordnet.
cs1 security_result.summary Wenn cs1Label „incidentType“ ist, wird der Wert von cs1 security_result.summary zugeordnet. Andernfalls wird sie als Schlüssel/Wert-Paar in security_result.detection_fields mit dem Schlüssel aus cs1Label und dem Wert aus cs1 zugeordnet.
cs1Label security_result.detection_fields.key Wird als Schlüssel in security_result.detection_fields verwendet, wenn cs1 kein Vorfalltyp ist.
cs2 security_result.detection_fields.value Als Schlüssel/Wert-Paar in security_result.detection_fields mit dem Schlüssel aus cs2Label und dem Wert aus cs2 zugeordnet.
cs2Label security_result.detection_fields.key Wird zusammen mit cs2 als Schlüssel in security_result.detection_fields verwendet.
cs3 security_result.detection_fields.value Als Schlüssel/Wert-Paar in security_result.detection_fields mit dem Schlüssel aus cs3Label und dem Wert aus cs3 zugeordnet.
cs3Label security_result.detection_fields.key Wird zusammen mit cs3 als Schlüssel in security_result.detection_fields verwendet.
cs4 security_result.about.url Wenn cs4Label „falconHostLink“ ist, wird der Wert von cs4 security_result.about.url zugeordnet. Andernfalls wird sie als Schlüssel/Wert-Paar in security_result.detection_fields mit dem Schlüssel aus cs4Label und dem Wert aus cs4 zugeordnet.
cs4Label security_result.detection_fields.key Wird als Schlüssel in security_result.detection_fields verwendet, wenn cs4 kein „falconHostLink“ ist.
description metadata.description Der Wert des Felds description wird direkt dem Feld metadata.description zugeordnet. Wenn das Feld leer ist, werden stattdessen incidentDescription, msg oder serviceName verwendet.
devTime metadata.event_timestamp Der Wert des Felds devTime wird geparst und dem Feld metadata.event_timestamp zugeordnet.
deviceCustomDate1 metadata.event_timestamp Wenn devTime nicht vorhanden ist, wird der Wert des Felds deviceCustomDate1 geparst und dem Feld metadata.event_timestamp zugeordnet.
domain principal.administrative_domain Wird mithilfe eines regulären Ausdrucks aus dem Feld userName extrahiert und principal.administrative_domain zugeordnet.
duser principal.user.userid Falls vorhanden, wird der Wert von duser in das Feld usrName geschrieben und dann zum Ausfüllen der Nutzerfelder verwendet.
endpointName security_result.detection_fields.value Wird als Schlüssel/Wert-Paar in security_result.detection_fields mit dem Schlüssel „endpointName“ zugeordnet.
eventType metadata.product_event_type Der Wert des Felds eventType wird direkt dem Feld metadata.product_event_type zugeordnet.
falconHostLink security_result.about.url Der Wert des Felds falconHostLink wird direkt dem Feld security_result.about.url zugeordnet.
filePath target.process.file.full_path Der Wert des Felds filePath wird direkt dem Feld target.process.file.full_path zugeordnet.
identityProtectionIncidentId security_result.detection_fields.value Wird als Schlüssel/Wert-Paar in security_result.detection_fields mit dem Schlüssel „identityProtectionIncidentId“ zugeordnet.
incidentDescription metadata.description Wenn description leer ist, wird der Wert des Felds incidentDescription dem Feld metadata.description zugeordnet.
incidentType security_result.summary Der Wert des Felds incidentType wird direkt dem Feld security_result.summary zugeordnet.
log_type metadata.log_type Der Wert des Felds log_type wird direkt dem Feld metadata.log_type zugeordnet.
msg metadata.description Wenn description und incidentDescription leer sind, wird der Wert des Felds msg dem Feld metadata.description zugeordnet.
numbersOfAlerts security_result.detection_fields.value Als Schlüssel/Wert-Paar in security_result.detection_fields mit dem Schlüssel „numbersOfAlerts“ zugeordnet.
numberOfCompromisedEntities security_result.detection_fields.value Als Schlüssel/Wert-Paar in security_result.detection_fields mit dem Schlüssel „numberOfCompromisedEntities“ zugeordnet.
product metadata.product_name Der Wert des Felds product wird direkt dem Feld metadata.product_name zugeordnet.
resource target.resource.name Der Wert des Felds resource wird direkt dem Feld target.resource.name zugeordnet.
serviceName target.application Der Wert des Felds serviceName wird direkt dem Feld target.application zugeordnet. Wird auch als Fallback für metadata.description verwendet.
severityName security_result.severity Der Wert des Felds severityName wird dem Feld security_result.severity zugeordnet, nachdem er in Großbuchstaben umgewandelt wurde. Die Zuordnungslogik umfasst spezifische Umrechnungen für verschiedene Schweregradnamen.
sha256 target.file.sha256 Der Wert des Felds sha256 wird direkt dem Feld target.file.sha256 zugeordnet.
src principal.ip Der Wert des Felds src wird direkt dem Feld principal.ip zugeordnet.
srcMAC principal.mac Der Wert des Felds srcMAC wird direkt dem Feld principal.mac zugeordnet, nachdem Bindestriche durch Doppelpunkte ersetzt wurden.
state security_result.detection_fields.value Wird als Schlüssel/Wert-Paar in security_result.detection_fields mit dem Schlüssel „state“ zugeordnet.
success security_result.action Wenn success „true“ ist, wird security_result.action auf „ALLOW“ gesetzt. Wenn success „false“ ist, wird security_result.action auf „BLOCK“ gesetzt.
userName principal.user.userid Wenn usrName nicht vorhanden ist, wird der Wert des Felds userName verwendet, um die Nutzerfelder zu füllen. Die Domain wird extrahiert, sofern vorhanden.
usrName principal.user.userid/target.user.userid Falls vorhanden, wird der Wert des Felds usrName je nach eventType entweder principal.user.userid oder target.user.userid zugeordnet. Wenn es sich um eine E-Mail-Adresse handelt, wird sie auch dem entsprechenden email_addresses-Feld hinzugefügt.
vendor metadata.vendor_name Der Wert des Felds vendor wird direkt dem Feld metadata.vendor_name zugeordnet.
version metadata.product_version Der Wert des Felds version wird direkt dem Feld metadata.product_version zugeordnet.
(Parserlogik) extensions.auth.mechanism Auf „USERNAME_PASSWORD“ festlegen, wenn eventType „saml2Assert“ oder „twoFactorAuthenticate“ ist.
(Parserlogik) extensions.auth.type Auf „AUTHTYPE_UNSPECIFIED“ festgelegt, wenn eventType „assert“ oder „userAuthenticate“ ist.
(Parserlogik) metadata.event_timestamp Der Zeitstempel aus dem Feld collection_time oder timestamp des Rohlogs wird als Ereigniszeitstempel verwendet.
(Parserlogik) metadata.event_type Wird anhand von eventType und anderen Feldern bestimmt. Der Standardwert ist „GENERIC_EVENT“. Er kann in „USER_LOGIN“, „GROUP_MODIFICATION“, „GROUP_DELETION“, „SERVICE_STOP“, „SERVICE_START“ oder „USER_UNCATEGORIZED“ geändert werden.
(Parserlogik) target.resource.type Auf „GROUP“ festlegen, wenn eventType „remove_group“, „update_group“ oder „delete_group“ ist.

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