Sophos Central-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Sophos Central-Logs mit Bindplane erfassen. Der Parser wandelt JSON-Logs in ein einheitliches Datenmodell (Unified Data Model, UDM) um. Es werden Felder aus verschachtelten JSON-Strukturen extrahiert, UDM-Feldern zugeordnet und Ereignisse anhand des Felds type kategorisiert. Die Daten werden mit spezifischen Details und Aktionen für verschiedene Sophos Central-Ereignistypen angereichert.
Hinweise
- 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. - Sie benötigen einen zusätzlichen Windows- oder Linux-Computer, auf dem Python kontinuierlich ausgeführt werden kann.
- Wenn Sie einen Proxy verwenden, müssen die Firewallports geöffnet sein.
- Sie benötigen privilegierten Zugriff auf die Sophos XG Firewall.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie 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 > „Profil“ 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
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).
- 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 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 Tokennamen 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 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 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
- Suchen Sie die Datei
config.ini
und öffnen Sie sie mit 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.
- Protokoll: Geben Sie UDP ein. Je nach Einrichtung 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 einen Namen für die Aufgabe ein, z. B.
Sophos Central Log Export
.
- Geben Sie einen Namen für die Aufgabe ein, 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 Bedarf).
- 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 Skript ein, z. B.
C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration\siem.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
Speichern Sie die Datei und beenden Sie den Editor.
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 | Direkt aus dem Feld description zugeordnet, wenn metadata.event_type gleich GENERIC_EVENT ist. |
dhost | hauptkonto.hostname hauptkonto.asset.hostname |
Direkt aus dem Feld dhost zugeordnet. |
duid | security_result.detection_fields.value | Direkt aus dem Feld duid zugeordnet. |
Ende | metadata.event_timestamp | Im RFC 3339-Format geparst und dem Feld event_timestamp zugeordnet. |
Endpunkt-ID | target.asset_id | Als Device endpoint Id: {endpoint_id} zugeordnet. |
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. |
metadata.event_type | Wird basierend auf dem Feld type und zusätzlicher Logik im Parser bestimmt. 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 | Auf OUTBOUND für bestimmte type -Werte festlegen, die ausgehende Netzwerkverbindungen angeben. |
|
network.ip_protocol | Auf TCP für bestimmte type -Werte festlegen, die TCP-Netzwerkverbindungen angeben. |
|
security_result.action | Wird anhand des Felds action bestimmt, das mit Grok-Mustern aus dem Feld name extrahiert wird. Mögliche Werte: ALLOW, BLOCK, ALLOW_WITH_MODIFICATION, UNKNOWN_ACTION. |
|
security_result.detection_fields.key | Wird auf duid gesetzt, wenn das Feld duid vorhanden ist. |
|
security_result.rule_name | Aus dem Feld name extrahiert, indem Grok-Muster für bestimmte type -Werte verwendet werden. |
|
security_result.severity | Wird aus dem Feld severity mit der folgenden Zuordnung abgeleitet: „low“ –> „LOW“, „medium“ –> „MEDIUM“, „high“/„critical“ –> „HIGH“. |
|
target.application | Aus dem Feld name extrahiert, indem Grok-Muster für bestimmte type -Werte verwendet werden. |
|
target.asset.hostname | Wird aus dem Feld dhost für bestimmte type -Werte zugeordnet. |
|
target.file.full_path | Wird aus dem Feld name mit 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 | Aus dem Feld name extrahiert, indem Grok-Muster verwendet und für bestimmte type -Werte in uinteger konvertiert wurden. |
|
target.hostname | Wird aus dem Feld dhost für bestimmte type -Werte zugeordnet. |
|
target.resource.name | Auf bestimmte Werte basierend auf dem Feld type festgelegt oder aus dem Feld name mit Grok-Mustern extrahiert. |
|
target.resource.type | Wird basierend auf dem Feld type auf bestimmte Werte festgelegt. |
|
target.user.userid | Wird aus dem Feld suser zugeordnet, nachdem der Nutzername mit Grok-Mustern extrahiert wurde. |
|
target.url | Aus dem Feld name extrahiert, indem Grok-Muster für bestimmte type -Werte verwendet werden. |
|
source_info.ip | principal.ip principal.asset.ip |
Direkt aus dem Feld source_info.ip zugeordnet. |
suser | principal.user.userid target.user.userid |
Aus dem Feld suser extrahiert. Dabei werden Grok-Muster verwendet, um Hostnamenpräfixe zu entfernen. |
Typ | metadata.product_event_type | Direkt aus dem Feld type zugeordnet. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten