Sophos Central-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Sophos Central-Protokolle mit Bindplane erfassen. Der Parser wandelt JSON-Protokolle in ein einheitliches Datenmodell (Unified Data Model, UDM) um. Es werden Felder aus verschachtelten JSON-Strukturen extrahiert, UDM-Feldern zugeordnet und Ereignisse basierend auf dem Feld type kategorisiert. Die Daten werden dann um bestimmte Details und Aktionen für verschiedene Sophos Central-Ereignistypen ergänzt.
Hinweise
- Sie benötigen eine Google Security Operations-Instanz.
- Sie müssen Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Sie benötigen einen zusätzlichen Windows- oder Linux-Computer, auf dem Python kontinuierlich ausgeführt werden kann.
- Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
- Sie benötigen erhöhte Zugriffsrechte für die Sophos XG-Firewall.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- Lade die Datei zur Authentifizierung der Datenaufnahme 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 Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die 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
Weitere Installationsressourcen
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet
Rufen Sie die Konfigurationsdatei auf:
- 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.
- 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: '/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: sophos_central raw_log_field: body 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 Kundennummer.Aktualisieren Sie
/path/to/ingestion-authentication-file.json
im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.
Starten Sie den Bindplane-Agent neu, um die Änderungen anzuwenden
Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:
sudo systemctl restart bindplane-agent
Sie können den Bindplane-Agenten unter Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:
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 Tokennamen ein und klicken Sie auf Speichern. Die API-Token-Zusammenfassung für das angegebene Token wird angezeigt.
- Klicken Sie im Abschnitt API-Token-Zusammenfassung auf Kopieren, um die URL und die Header für den API-Zugriff zu kopieren.
Python auf dem zusätzlichen Computer installieren
- Öffnen Sie den Webbrowser und rufen Sie die Python-Website auf.
- Klicken Sie auf Python herunterladen für Ihr Betriebssystem (Windows oder Mac).
Installieren Sie Python.
- Unter Windows:
- Führen Sie das Installationsprogramm aus.
- Setzen Sie ein Häkchen in das Kästchen Python zu PATH hinzufügen.
- Klicken Sie auf Jetzt installieren.
Auf dem Mac:
- Python ist möglicherweise bereits installiert. Falls nicht, können Sie die neueste Version über das Terminal installieren.
Öffnen Sie das 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 SIEM-Integration von Sophos Central auf.
- Klicken Sie auf die grüne Schaltfläche Code > ZIP herunterladen.
- Extrahieren Sie die ZIP-Datei.
Scriptkonfiguration einrichten
- Suchen und öffnen Sie die Datei
config.ini
in einem Texteditor. - 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 Bindplane-IP-Adresse ein.
- Port: Geben Sie die Bindplane-Portnummer ein.
- Protocol: Geben Sie „UDP“ ein. Je nach Konfiguration können Sie auch TCP oder TLS verwenden.
- Speichern Sie die Datei.
Skript ausführen
Rufen Sie den Script-Ordner auf.
Unter Windows:
- Drücken Sie die Windows-Taste und geben Sie
cmd
ein. - Klicken Sie auf Eingabeaufforderung.
Rufen Sie den Script-Ordner auf:
cd C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration
- Drücken Sie die Windows-Taste und geben Sie
Unter macOS:
- Klicken Sie auf Anwendungen > Dienstprogramme.
- Öffnen Sie das Terminal.
Rufen Sie den Script-Ordner auf:
cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
Führen Sie das Script aus:
Geben Sie den folgenden Befehl ein, um das Script zu starten:
python siem.py
Automatisieren Sie das Script, damit es kontinuierlich unter Windows ausgeführt wird (mit dem Aufgabenplaner):
- Öffnen Sie den Taskplaner, indem Sie im Startmenü Taskplaner eingeben.
- Klicken Sie auf Aufgabe erstellen.
- Auf dem Tab Allgemein:
- Benennen Sie die Aufgabe, z. B.
Sophos Central Log Export
.
- Benennen Sie die Aufgabe, 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.
- 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:\PythonXX\python.exe
). - Geben Sie im Feld Argumente hinzufügen den Pfad zum Script ein, z. B.
C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration\siem.py
.
- Klicken Sie auf OK, um die Aufgabe zu speichern.
Automatisieren Sie das Script, damit es kontinuierlich auf einem Mac 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
Speichern und den Editor beenden.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
customer_id | target.resource.id | Direkt aus dem Feld customer_id zugeordnet. |
data.core_remedy_items.items.0.descriptor | target.process.file.full_path | Direkt aus dem Feld data.core_remedy_items.items.0.descriptor zugeordnet. |
data.source_info.ip | principal.ip principal.asset.ip |
Direkt aus dem Feld data.source_info.ip zugeordnet. |
description | metadata.description | Wird direkt aus dem Feld description zugeordnet, wenn metadata.event_type GENERIC_EVENT ist. |
dhost | principal.hostname principal.asset.hostname |
Direkt aus dem Feld dhost zugeordnet. |
duid | security_result.detection_fields.value | Direkt aus dem Feld duid zugeordnet. |
Ende | metadata.event_timestamp | Wird im RFC 3339-Format geparst und dem Feld event_timestamp zugeordnet. |
Endpunkt-ID | target.asset_id | Zugewiesen als Device endpoint Id: {endpoint_id} . |
endpoint_type | security_result.about.labels.value | Direkt aus dem Feld endpoint_type zugeordnet. |
Gruppe | security_result.category_details | Direkt aus dem Feld group zugeordnet. |
Name | security_result.description security_result.summary |
Direkt aus dem Feld name zugeordnet. Wenn die Flags is_alert oder is_significant gesetzt sind, wird der Wert security_result.summary zugeordnet. |
is_alert | Legen Sie für bestimmte type -Werte, die eine Benachrichtigung anzeigen, den Wert true fest. Andernfalls wird standardmäßig false verwendet. |
|
is_significant | Legen Sie für bestimmte type -Werte, die ein wichtiges Ereignis angeben, den Wert true fest. Andernfalls wird standardmäßig false verwendet. |
|
metadata.event_type | Wird anhand des Felds type und zusätzlicher Logik im Parser ermittelt. Mögliche Werte: FILE_OPEN, SCAN_HOST, SETTING_MODIFICATION, STATUS_HEARTBEAT, SETTING_CREATION, NETWORK_CONNECTION, SCAN_PROCESS, SCAN_UNCATEGORIZED, USER_CREATION, USER_UNCATEGORIZED, STATUS_UPDATE. |
|
metadata.log_type | Legen Sie SOPHOS_CENTRAL fest. |
|
metadata.product_event_type | Direkt aus dem Feld type zugeordnet. |
|
metadata.product_name | Legen Sie Sophos Central fest. |
|
metadata.vendor_name | Legen Sie Sophos fest. |
|
network.direction | Legen Sie für bestimmte type -Werte, die ausgehende Netzwerkverbindungen angeben, den Wert OUTBOUND fest. |
|
network.ip_protocol | Legen Sie für bestimmte type -Werte, die TCP-Netzwerkverbindungen angeben, den Wert TCP fest. |
|
security_result.action | Wird anhand des Felds action ermittelt, das mithilfe von Grok-Mustern aus dem Feld name extrahiert wurde. Zulässige Werte: ALLOW, BLOCK, ALLOW_WITH_MODIFICATION, UNKNOWN_ACTION. |
|
security_result.detection_fields.key | Erhält den Wert duid , wenn das Feld duid vorhanden ist. |
|
security_result.rule_name | Aus dem Feld name mithilfe von Grok-Mustern für bestimmte type -Werte extrahiert. |
|
security_result.severity | Wird aus dem Feld severity mit der folgenden Zuordnung zugeordnet: niedrig -> LOW, mittel -> MEDIUM, hoch/kritisch -> HIGH. |
|
target.application | Aus dem Feld name mithilfe von Grok-Mustern für bestimmte type -Werte extrahiert. |
|
target.asset.hostname | Aus dem Feld dhost für bestimmte type -Werte zugeordnet. |
|
target.file.full_path | Aus dem Feld name mithilfe von Grok-Mustern für bestimmte type -Werte extrahiert oder direkt aus data.core_remedy_items.items.0.descriptor oder core_remedy_items.items.0.descriptor zugeordnet. |
|
target.file.size | Mithilfe von Grok-Mustern aus dem Feld name extrahiert und für bestimmte type -Werte in uinteger umgewandelt. |
|
target.hostname | Aus dem Feld dhost für bestimmte type -Werte zugeordnet. |
|
target.resource.name | Sie können auf bestimmte Werte im Feld type festgelegt oder mithilfe von Grok-Mustern aus dem Feld name extrahiert werden. |
|
target.resource.type | Sie können bestimmte Werte basierend auf dem Feld type festlegen. |
|
target.user.userid | Wird aus dem Feld suser zugeordnet, nachdem der Nutzername mithilfe von Grok-Mustern extrahiert wurde. |
|
target.url | Aus dem Feld name mithilfe von Grok-Mustern für bestimmte type -Werte extrahiert. |
|
source_info.ip | principal.ip principal.asset.ip |
Direkt aus dem Feld source_info.ip zugeordnet. |
Nutzer | principal.user.userid target.user.userid |
Aus dem Feld suser mithilfe von Grok-Mustern extrahiert, um Hostnamenpräfixe zu entfernen. |
Typ | metadata.product_event_type | Direkt aus dem Feld type zugeordnet. |
Änderungen
2025-01-30
Optimierung:
- Unterstützung für das Parsen nicht geparster JSON-Logs hinzugefügt.
2025-01-08
Optimierung:
url
,action
undscan_name
wurden in „statedata“ hinzugefügt, um nicht geparste Protokolle zu analysieren.user_id
wurdeprincipal.user.userid
zugeordnet.
2024-09-05
Optimierung:
- Unterstützung für das Parsen nicht geparster JSON-Logs hinzugefügt.
location
wurdeprincipal.cloud.availability_zone
zugeordnet.
2024-05-17
Optimierung:
data.core_remedy_items.items.0.descriptor
undcore_remedy_items.items.0.descriptor
wurdentarget.process.file.full_path
zugeordnet.
2024-05-14
Fehlerkorrektur:
- Die Zuordnung von
target.user.userid
wurde vonduid
zususer
geändert. duid
wurdesecurity_result.detection_fields
zugeordnet.
2022-12-27
- Neu erstellter Parser.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten