Sophos Intercept EDR-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Sophos Intercept EDR-Logs mit Bindplane erfassen. Der Parser extrahiert Felder aus Sophos EDR-JSON-Logs und transformiert sie in das einheitliche Datenmodell (Unified Data Model, UDM). Das Skript parst das Feld message
, ordnet Sophos-Felder UDM-Feldern zu (z. B. suser
zu principal.user.userid
), führt bedingte Zusammenführungen basierend auf dem Vorhandensein von Feldern durch und kategorisiert Ereignisse basierend auf dem Feld type
. Dabei werden die entsprechenden UDM-Ereignistypen und Sicherheitsergebnisaktionen festgelegt.
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
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
Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.
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_EDR' 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 |
---|---|---|
appSha256 |
principal.process.file.sha256 |
Der Wert von appSha256 aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
core_remedy_items.items[].descriptor |
principal.process.file.names |
Der Wert jedes descriptor im items -Array in core_remedy_items aus dem Rohlog wird als separater names -Eintrag im UDM hinzugefügt. |
customer_id |
target.resource.id |
Der Wert von customer_id aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
detection_identity_name |
security_result.threat_feed_name |
Der Wert von detection_identity_name aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
dhost |
target.hostname |
Der Wert von dhost aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
endpoint_id |
target.resource.attribute.labels[].value |
Der Wert von endpoint_id aus dem Rohlog wird als Wert eines Labels in target.resource.attribute.labels zugewiesen. Der Schlüssel für dieses Label ist „endpoint_id“. |
endpoint_type |
target.resource.attribute.labels[].value |
Der Wert von endpoint_type aus dem Rohlog wird als Wert eines Labels in target.resource.attribute.labels zugewiesen. Der Schlüssel für dieses Label ist „endpoint_type“. |
filePath |
target.file.full_path |
Der Wert von filePath aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
group |
principal.group.group_display_name |
Der Wert von group aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
id |
target.process.pid |
Der Wert von id aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
name |
metadata.description |
Der Wert von name aus dem Rohlog wird diesem UDM-Feld zugewiesen. Der Wert wird aus dem Feld type im Rohlog abgeleitet. Dazu wird im Parser eine bedingte Logik verwendet. Der Standardwert ist NETWORK_UNCATEGORIZED . Bestimmte type -Werte werden verschiedenen UDM-Ereignistypen zugeordnet (z.B. „UpdateSuccess“ wird STATUS_UPDATE zugeordnet, „ServiceNotRunning“ wird SERVICE_STOP zugeordnet usw. Fest codiert auf „SOPHOS_EDR“. Der Wert von type aus dem Rohlog wird diesem UDM-Feld zugewiesen. Fest codiert auf „Sophos EDR“. Fest codiert auf „SOPHOS“. |
rt |
metadata.event_timestamp , timestamp |
Der Wert von rt aus dem Rohlog, der die Ereigniszeit darstellt, wird geparst und verwendet, um sowohl das Feld metadata.event_timestamp als auch das Feld timestamp auf oberster Ebene im UDM auszufüllen. |
security_result.severity |
security_result.severity |
Der Wert von severity aus dem Rohlog wird in Großbuchstaben umgewandelt und diesem UDM-Feld zugewiesen. |
source_info.ip |
principal.ip |
Der Wert von ip innerhalb von source_info aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
suser |
principal.user.userid |
Der Wert von suser aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
threat |
security_result.threat_name |
Der Wert von threat aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
security_result.action |
Der Wert wird aus dem Feld type im Rohlog abgeleitet. Wenn type „Blocked“ oder „Warn“ (Groß-/Kleinschreibung wird nicht berücksichtigt) enthält, wird der Wert auf „BLOCK“ gesetzt. Wenn type „Allow“ (Groß-/Kleinschreibung wird nicht beachtet) enthält, wird der Wert auf „ALLOW“ gesetzt. Der Wert wird auf „TASK“ gesetzt, wenn das Feld type im Rohlog „ScheduledDataUploadResumed“ oder „ScheduledDailyLimitExceeded“ ist. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten