Sophos Central-Protokolle erfassen

Unterstützt in:

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

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
  3. 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

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Profil.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder die 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
    

Weitere Installationsressourcen

Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet

  1. Rufen Sie die Konfigurationsdatei auf:

    1. Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    2. Öffnen Sie die Datei mit einem Texteditor, z. B. nano, vi oder Notepad.
  2. Bearbeiten Sie die Datei config.yamlso:

    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
    
  3. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kundennummer.

  5. 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

  1. Melden Sie sich in Sophos Central Admin an.
  2. Wählen Sie Globale Einstellungen > API-Token-Verwaltung aus.
  3. Klicken Sie auf Token hinzufügen, um ein neues Token zu erstellen.
  4. Geben Sie einen Tokennamen ein und klicken Sie auf Speichern. Die API-Token-Zusammenfassung für das angegebene Token wird angezeigt.
  5. 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

  1. Öffnen Sie den Webbrowser und rufen Sie die Python-Website auf.
  2. Klicken Sie auf Python herunterladen für Ihr Betriebssystem (Windows oder Mac).
  3. Installieren Sie Python.

    • Unter Windows:
      1. Führen Sie das Installationsprogramm aus.
      2. Setzen Sie ein Häkchen in das Kästchen Python zu PATH hinzufügen.
      3. Klicken Sie auf Jetzt installieren.
    • Auf dem Mac:

      1. Python ist möglicherweise bereits installiert. Falls nicht, können Sie die neueste Version über das Terminal installieren.
      2. Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein:

        python --version
        

Sophos-Integrationsskript herunterladen

  1. Rufen Sie die GitHub-Seite für das GitHub-Repository für die SIEM-Integration von Sophos Central auf.
  2. Klicken Sie auf die grüne Schaltfläche Code > ZIP herunterladen.
  3. Extrahieren Sie die ZIP-Datei.

Scriptkonfiguration einrichten

  1. Suchen und öffnen Sie die Datei config.ini in einem Texteditor.
  2. 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.
  3. Speichern Sie die Datei.

Skript ausführen

  1. Rufen Sie den Script-Ordner auf.

    • Unter Windows:

      1. Drücken Sie die Windows-Taste und geben Sie cmd ein.
      2. Klicken Sie auf Eingabeaufforderung.
      3. Rufen Sie den Script-Ordner auf:

        cd C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration
        
    • Unter macOS:

      1. Klicken Sie auf Anwendungen > Dienstprogramme.
      2. Öffnen Sie das Terminal.
      3. Rufen Sie den Script-Ordner auf:

        cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
        
  2. 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):

  1. Öffnen Sie den Taskplaner, indem Sie im Startmenü Taskplaner eingeben.
  2. Klicken Sie auf Aufgabe erstellen.
  3. Auf dem Tab Allgemein:
    • Benennen Sie die Aufgabe, z. B. Sophos Central Log Export.
  4. Auf dem Tab Trigger:
    • Klicken Sie auf Neu und legen Sie fest, dass die Aufgabe Täglich oder Beim Start ausgeführt werden soll.
  5. 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 unter C:\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.
  6. 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):

  1. Öffnen Sie das Terminal.
  2. Geben Sie crontab -e ein und drücken Sie die Eingabetaste.
  3. Fügen Sie am Ende der Datei eine neue Zeile hinzu:

    * * * * * /usr/bin/python /Users/YourName/Downloads/Sophos-Central-SIEM-Integration/siem.py
    
  4. 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 und scan_name wurden in „statedata“ hinzugefügt, um nicht geparste Protokolle zu analysieren.
  • user_id wurde principal.user.userid zugeordnet.

2024-09-05

Optimierung:

  • Unterstützung für das Parsen nicht geparster JSON-Logs hinzugefügt.
  • location wurde principal.cloud.availability_zone zugeordnet.

2024-05-17

Optimierung:

  • data.core_remedy_items.items.0.descriptor und core_remedy_items.items.0.descriptor wurden target.process.file.full_path zugeordnet.

2024-05-14

Fehlerkorrektur:

  • Die Zuordnung von target.user.userid wurde von duid zu suser geändert.
  • duid wurde security_result.detection_fields zugeordnet.

2022-12-27

  • Neu erstellter Parser.

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