Sophos Capsule8-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Sophos Linux Sensor-Logs (früher Capsule8) mit Bindplane erfassen. Sophos Capsule8 bietet Laufzeitschutz für Linux-Arbeitslasten, Container und Kubernetes-Umgebungen, indem es Bedrohungen auf Kernelebene mithilfe der eBPF-Technologie erkennt und darauf reagiert. Der Parser extrahiert und strukturiert zuerst JSON-formatierte Logdaten. Anschließend werden die extrahierten Felder den entsprechenden Attributen im Unified Data Model (UDM) von Chronicle zugeordnet, wobei der Schwerpunkt auf Metadaten, Sicherheitsergebnissen und Prinzipalinformationen liegt.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Windows 2016 oder höher oder ein Linux-Host mit
systemd
- Ein zusätzlicher Windows- oder Linux-Computer, auf dem Python kontinuierlich ausgeführt werden kann
- Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
- Privilegierter Zugriff auf die Sophos Central Admin-Konsole
- Der Sophos Linux Sensor (früher Capsule8) ist auf Ihren Linux-Systemen bereitgestellt.
Sophos Linux Sensor so konfigurieren, dass Warnungen nach Sophos Central exportiert werden
Bevor Sie die Integration konfigurieren, müssen Sie zuerst Sophos Linux Sensor so konfigurieren, dass er Warnungsdaten an Sophos Central sendet.
Voraussetzungen für die Sophos Central-Integration
- Sophos Linux Sensor Version 5.5.2.22 oder höher.
- Eine der folgenden Lizenzen:
- Intercept X Advanced for Server mit XDR
- Central Managed Detection and Response Essential Server
- Central Managed Detection and Response Complete Server
- Ihre Sophos Central MCS-URL und Mandanten-ID.
- Ein gültiges API-Token für das SLS-Paket-Repository.
MCS-URL finden
- Melden Sie sich in Sophos Central an.
- Klicken Sie auf Ihren Kontonamen> Supporteinstellungen.
- Suchen Sie nach der Zeile, die mit
This account is located
beginnt, um herauszufinden, in welcher geografischen Region sich Ihr Sophos Central-Konto befindet. In der folgenden Tabelle finden Sie die MCS-URL für Ihre Region:
Region MCS-URL USA (Oregon) mcs2-cloudstation-us-west-2.prod.hydra.sophos.com USA (Ohio) mcs2-cloudstation-us-east-2.prod.hydra.sophos.com Irland mcs2-cloudstation-eu-west-1.prod.hydra.sophos.com Deutschland mcs2-cloudstation-eu-central-1.prod.hydra.sophos.com Kanada mcs2.stn100yul.ctr.sophos.com Australien mcs2.stn100syd.ctr.sophos.com Asiatisch-pazifischer Raum (Tokio) mcs2.stn100hnd.ctr.sophos.com Südamerika (São Paulo) mcs2.stn100gru.ctr.sophos.com
Wenn Ihre Region nicht in der Tabelle aufgeführt ist, verwenden Sie mcs2.stn100bom.ctr.sophos.com
als MCS-URL.
Ausgabe von Sophos Linux Sensor-Benachrichtigungen konfigurieren
- Öffnen Sie
/etc/sophos/runtimedetections.yaml
in einem Texteditor. Fügen Sie die folgenden Zeilen hinzu und ersetzen Sie die Platzhalterwerte durch Ihre tatsächlichen Sophos Central-Details:
send_labs_telemetry: true endpoint_telemetry_enabled: true cloud_meta: auto # Set your customer id: customer_id: "{tenant-id}" mcs: token: "{LINUX_REPO_API_KEY}" url: "{MCS_URL}" enabled: true
Speichern Sie die Änderungen und beenden Sie den Editor.
Sensor neu starten:
systemctl restart sophoslinuxsensor
Optional: Sophos Linux Sensor so konfigurieren, dass Meta-Ereignisse an Data Lake gesendet werden
Ab Version 5.11.0 unterstützt SLS das Senden von Ereignisdaten an den Sophos Data Lake.
- Öffnen Sie
/etc/sophos/runtimedetections.yaml
in einem Texteditor. Fügen Sie die folgende Konfiguration hinzu:
investigations: reporting_interval: 5s zeromq: topics: - process_events: running_processes_linux_events audit_user_msg: user_events_linux sinks: - backend: mcs name: "mcs" type: mcs flight_recorder: enabled: true tables: - name: "process_events" enabled: true rows: 1000 filter: - match eventType == "PROCESS_EVENT_TYPE_EXEC" - match eventType == "BASELINE_TASK" - default ignore - name: "audit_user_msg" enabled: true rows: 1000 filter: - ignore programName == "cron" - ignore processPid == 1 - default match
Speichern Sie die Änderungen und beenden Sie den Editor.
Sensor neu starten:
systemctl restart sophoslinuxsensor
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
- 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
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Profile auf.
- Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Fenstereinbau
- Öffnen Sie die Eingabeaufforderung oder 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 zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
Konfigurationsdatei aufrufen:
- Suchen Sie die Datei
config.yaml
. Normalerweise befindet sie 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: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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 log_type: 'SOPHOS_CAPSULE8' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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
Sophos Central API-Zugriff konfigurieren
- Melden Sie sich in Sophos Central Admin an.
- Wählen Sie Globale Einstellungen > API-Token-Verwaltung aus.
- Klicken Sie auf Token hinzufügen, um ein neues Token zu erstellen.
- Geben Sie einen Namen für das Token ein und klicken Sie auf Speichern. Die API-Token-Zusammenfassung für das angegebene Token wird angezeigt.
- Klicken Sie im Abschnitt API Token Summary (Zusammenfassung des API-Tokens) auf Copy (Kopieren), um die API-Zugriffs-URL und die Header zu kopieren.
Python auf einem zusätzlichen Computer installieren
- Öffnen Sie den Webbrowser und rufen Sie die Python-Website auf.
- Klicken Sie auf Python herunterladen für Ihr Betriebssystem.
Python installieren:
- Unter Windows:
- Führen Sie das Installationsprogramm aus.
- Setzen Sie ein Häkchen bei Python zu PATH hinzufügen.
- Klicken Sie auf Jetzt installieren.
Auf dem Mac:
- Python ist möglicherweise bereits installiert. Andernfalls können Sie die neueste Version über das Terminal installieren.
Öffnen Sie Terminal und geben Sie den folgenden Befehl ein:
python --version
- Unter Windows:
Sophos-Integrationsskript herunterladen
- Rufen Sie die GitHub-Seite für das GitHub-Repository für die Sophos Central SIEM-Integration auf.
- Klicken Sie auf die grüne Schaltfläche Code > Download ZIP.
- Extrahieren Sie die ZIP-Datei.
Skriptkonfiguration einrichten
- Öffnen Sie die Datei
config.ini
in dem Verzeichnis, in dem Sie das ZIP-Archiv extrahiert haben. - Bearbeiten Sie die Konfigurationsdatei:
- API-Token: Geben Sie den API-Schlüssel ein, den Sie zuvor aus Sophos Central kopiert haben.
- Syslog-Serverdetails: Geben Sie die Details Ihres Syslog-Servers ein.
- Host: Geben Sie die IP-Adresse des BindPlane-Agents ein.
- Port: Geben Sie die Portnummer des BindPlane-Agents ein.
- Protokoll: Geben Sie UDP ein. Je nach Konfiguration können Sie auch TCP oder TLS verwenden.
- Speichern Sie die Datei.
Skript ausführen
Wechseln Sie zum Skriptordner.
Unter Windows:
- Drücken Sie die Windows-Taste und geben Sie
cmd
ein. - Klicken Sie auf Eingabeaufforderung.
- Wechseln Sie zum Skriptordner:
cd C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integration
- Drücken Sie die Windows-Taste und geben Sie
Unter macOS:
- Rufen Sie Anwendungen > Dienstprogramme auf.
- Öffnen Sie das Terminal.
- Wechseln Sie zum Skriptordner:
cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
Skript ausführen:
Geben Sie den folgenden Befehl ein, um das Skript zu starten:
python siem.py
Skript für die kontinuierliche Ausführung unter Windows automatisieren (mit dem Aufgabenplaner):
- Öffnen Sie den Taskplaner, indem Sie im Startmenü Taskplaner eingeben.
- Klicken Sie auf Aufgabe erstellen.
- Auf dem Tab Allgemein:
- Geben Sie der Aufgabe einen Namen, z. B.
Sophos AV Log Export
.
- Geben Sie der Aufgabe einen Namen, z. B.
- Auf dem Tab Trigger:
- Klicken Sie auf Neu und legen Sie fest, dass die Aufgabe Täglich oder Beim Start ausgeführt werden soll (je nach Ihren Anforderungen).
- Auf dem Tab Aktionen:
- Klicken Sie auf Neu und wählen Sie Programm starten aus.
- Suchen Sie nach der ausführbaren Datei
python.exe
(normalerweise unterC:/Python/XX/python.exe
). - Geben Sie im Feld Argumente hinzufügen den Pfad zum Skript ein, z. B.
C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integrationsiem.py
.
- Klicken Sie auf OK, um die Aufgabe zu speichern.
Skript so automatisieren, dass es auf einem Mac kontinuierlich ausgeführt wird (mit Cron-Jobs):
- Öffnen Sie das Terminal.
- Geben Sie
crontab -e
ein und drücken Sie die Eingabetaste. Fügen Sie am Ende der Datei eine neue Zeile hinzu:
* * * * * /usr/bin/python /Users/YourName/Downloads/Sophos-Central-SIEM-Integration/siem.py
Klicken Sie auf Speichern und beenden Sie den Editor.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
Kategorien | read_only_udm.security_result.category_details | Jedes Element im Array „categories“ wird als separates „category_details“ hinzugefügt. |
Kommentare | read_only_udm.security_result.description | Direkt aus dem Feld „Kommentare“ zugeordnet. |
Konfidenz | read_only_udm.security_result.severity_details | Direkt aus dem Feld „Konfidenz“ abgeleitet. |
description | read_only_udm.security_result.summary | Direkt aus dem Beschreibungsfeld zugeordnet. |
incident_id | read_only_udm.security_result.rule_id | Direkt aus dem Feld „incident_id“ zugeordnet. |
Herkunft | principal.process.parent_process... | Mit dem Lineage-Array wird eine Kette von übergeordneten Prozessen mit bis zu 15 Ebenen gefüllt. Jedes Element im Lineage-Array stellt einen Prozess in der Kette dar. Der Index 0 steht für das unmittelbare übergeordnete Element und höhere Indizes für weitere übergeordnete Elemente. Die Felder „pid“ und „name“ der einzelnen Lineage-Elemente werden den entsprechenden Feldern im UDM zugeordnet. |
location.container_id | principal.labels.value | Direkt aus dem Feld „location.container_id“ zugeordnet. Der entsprechende Schlüssel ist auf „container_id“ festgelegt. |
location.container_labels.maintainer | principal.labels.value | Direkt aus dem Feld „location.container_labels.maintainer“ zugeordnet. Der entsprechende Schlüssel ist auf „maintainer“ gesetzt. |
location.container_name | principal.labels.value | Direkt aus dem Feld „location.container_name“ zugeordnet. Der entsprechende Schlüssel ist auf „container_name“ festgelegt. |
location.image_id | principal.labels.value | Direkt aus dem Feld „location.image_id“ zugeordnet. Der entsprechende Schlüssel ist auf „image_id“ festgelegt. |
location.image_name | principal.labels.value | Direkt aus dem Feld „location.image_name“ zugeordnet. Der entsprechende Schlüssel ist auf „image_name“ festgelegt. |
location.kubernetes_namespace | principal.labels.value | Direkt aus dem Feld „location.kubernetes_namespace“ zugeordnet. Der entsprechende Schlüssel ist auf „kubernetes_namespace“ festgelegt. |
location.kubernetes_pod | principal.labels.value | Direkt aus dem Feld „location.kubernetes_pod“ zugeordnet. Der entsprechende Schlüssel ist auf „kubernetes_pod“ gesetzt. |
matched_rule | read_only_udm.security_result.rule_name | Direkt aus dem Feld „matched_rule“ zugeordnet. |
metadata.gcp_instance_hostname | principal.hostname | Direkt aus dem Feld „metadata.gcp_instance_hostname“ zugeordnet. |
metadata.gcp_instance_zone | principal.cloud.availability_zone | Die Verfügbarkeitszone wird mithilfe eines regulären Ausdrucks aus dem Feld „metadata.gcp_instance_zone“ extrahiert. |
metadata.gcp_project_id | principal.cloud.project.name | Direkt aus dem Feld „metadata.gcp_project_id“ zugeordnet. |
metadata.gcp_project_numeric_id | principal.cloud.project.id | Direkt aus dem Feld „metadata.gcp_project_numeric_id“ zugeordnet. |
metadata.network_interface_eth0_addr_0 | principal.ip | Die IP-Adresse wird aus dem Feld „metadata.network_interface_eth0_addr_0“ mithilfe eines regulären Ausdrucks extrahiert. |
metadata.network_interface_eth0_hardware_addr | principal.mac | Direkt aus dem Feld „metadata.network_interface_eth0_hardware_addr“ zugeordnet. |
policy_type | read_only_udm.metadata.product_event_type | Direkt aus dem Feld „policy_type“ zugeordnet. |
process_info.args | principal.labels.value | Jedes Element im Array „process_info.args“ wird als separates Label hinzugefügt. Der Schlüssel wird auf „process_info.arg[index]“ gesetzt, wobei „index“ die Position des Arguments im Array ist. |
process_info.name | principal.process.file.full_path | Direkt aus dem Feld „process_info.name“ zugeordnet. |
process_info.pid | principal.process.pid | Direkt aus dem Feld „process_info.pid“ zugeordnet. |
process_info.ppid | principal.process.parent_process.pid | Direkt aus dem Feld „process_info.ppid“ zugeordnet. |
Priorität | read_only_udm.security_result.severity | Direkt aus dem Feld „priority“ (Priorität) zugeordnet und in Großbuchstaben konvertiert. |
timestamp | read_only_udm.metadata.event_timestamp | Direkt aus dem Zeitstempelfeld zugeordnet. |
uuid | read_only_udm.metadata.product_log_id | Direkt aus dem Feld „uuid“ zugeordnet. |
– | read_only_udm.metadata.log_type | Auf den konstanten Wert „SOPHOS_CAPSULE8“ festlegen. |
– | read_only_udm.metadata.event_type | Auf den konstanten Wert „SCAN_HOST“ festgelegt. |
– | read_only_udm.metadata.vendor_name | Auf den konstanten Wert „Sophos“ festgelegt. |
– | read_only_udm.metadata.product_name | Auf den konstanten Wert „Capsule8“ festgelegt. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten