Collecter les journaux Sophos Central

Compatible avec :

Ce document explique comment collecter les journaux Sophos Central à l'aide de Bindplane. L'analyseur transforme les journaux JSON en modèle de données unifié (UDM). Il extrait les champs des structures JSON imbriquées, les mappe aux champs UDM et catégorise les événements en fonction du champ type, en enrichissant les données avec des détails et des actions spécifiques pour différents types d'événements Sophos Central.

Avant de commencer

  • Assurez-vous de disposer d'une instance Google Security Operations.
  • Assurez-vous d'utiliser Windows 2016 ou une version ultérieure, ou un hôte Linux avec systemd.
  • Assurez-vous de disposer d'une autre machine Windows ou Linux capable d'exécuter Python en continu.
  • Si vous exécutez le programme derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
  • Assurez-vous de disposer d'un accès privilégié à Sophos XG Firewall.

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.

Obtenir l'ID client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Profil.
  3. Copiez et enregistrez le numéro client de la section Informations sur l'organisation.

Installer l'agent Bindplane

Installation de fenêtres

  1. Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installation de Linux

  1. Ouvrez un terminal avec les droits root ou sudo.
  2. Exécutez la commande suivante :

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Ressources d'installation supplémentaires

Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps

  1. Accédez au fichier de configuration :

    1. Recherchez le fichier config.yaml. En règle générale, il se trouve dans le répertoire /etc/bindplane-agent/ sous Linux ou dans le répertoire d'installation sous Windows.
    2. Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple, nano, vi ou le Bloc-notes).
  2. Modifiez le fichier config.yaml comme suit :

    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. Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.

  4. Remplacez <customer_id> par le numéro client réel.

  5. Mettez à jour /path/to/ingestion-authentication-file.json en indiquant le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'ingestion Google SecOps.

Redémarrez l'agent Bindplane pour appliquer les modifications.

  • Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante :

    sudo systemctl restart bindplane-agent
    
  • Pour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante :

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurer l'accès à l'API Sophos Central

  1. Connectez-vous à Sophos Central Admin.
  2. Sélectionnez Paramètres généraux> Gestion des jetons d'API.
  3. Cliquez sur Ajouter un jeton pour en créer un.
  4. Saisissez un nom de jeton, puis cliquez sur Enregistrer. Le récapitulatif du jeton d'API pour le jeton fourni s'affiche.
  5. Dans la section Récapitulatif du jeton API, cliquez sur Copier pour copier l'URL et les en-têtes d'accès à l'API.

Installer Python sur la machine supplémentaire

  1. Ouvrez le navigateur Web et accédez au site Web Python.
  2. Cliquez sur Télécharger Python pour votre système d'exploitation (Windows ou Mac).
  3. Installez Python.

    • Sous Windows :
      1. Lancez le programme d'installation.
      2. Cochez la case Add Python to PATH (Ajouter Python au PATH).
      3. Cliquez sur Installer maintenant.
    • Sous Mac :

      1. Python est peut-être déjà installé. Si ce n'est pas le cas, vous pouvez installer la dernière version à l'aide du terminal.
      2. Ouvrez Terminal et saisissez la commande suivante :

        python --version
        

Télécharger le script d'intégration Sophos

  1. Accédez à la page GitHub du dépôt GitHub d'intégration de Sophos Central SIEM.
  2. Cliquez sur le bouton vert Code > Télécharger le fichier ZIP.
  3. Extrayez le fichier ZIP.

Configurer le script

  1. Recherchez et ouvrez le fichier config.ini dans un éditeur de texte.
  2. Modifiez le fichier de configuration :
    • Jeton d'API : saisissez la clé API copiée précédemment depuis Sophos Central.
    • Détails du serveur Syslog : saisissez les détails de votre serveur Syslog.
    • Hôte : saisissez l'adresse IP de Bindplane.
    • Port : saisissez le numéro de port Bindplane.
    • Protocole : saisissez UDP (vous pouvez également utiliser TCP ou TLS selon votre configuration).
  3. Enregistrez le fichier.

Exécuter le script

  1. Accédez au dossier de script.

    • Sous Windows :

      1. Appuyez sur la touche Windows et saisissez cmd.
      2. Cliquez sur Invite de commandes.
      3. Accédez au dossier du script :

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

      1. Accédez à Applications > Utilitaires.
      2. Ouvrez l'application Terminal.
      3. Accédez au dossier du script :

        cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
        
  2. Exécutez le script :

    • Saisissez la commande suivante pour démarrer le script :

      python siem.py
      

Automatisez l'exécution continue du script sur Windows (à l'aide du Planificateur de tâches) :

  1. Ouvrez le Planificateur de tâches en saisissant Planificateur de tâches dans le menu Démarrer.
  2. Cliquez sur Créer une tâche.
  3. Dans l'onglet Général :
    • Nommez votre tâche (par exemple, Sophos Central Log Export).
  4. Dans l'onglet Déclencheurs :
    • Cliquez sur Nouveau et définissez l'exécution de la tâche sur Tous les jours ou Au démarrage (selon votre préférence).
  5. Dans l'onglet Actions :
    • Cliquez sur Nouveau, puis sélectionnez Démarrer un programme.
    • Recherchez l'exécutable python.exe (généralement situé dans C:\PythonXX\python.exe).
    • Dans le champ Ajouter des arguments, saisissez le chemin d'accès au script (par exemple, C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration\siem.py).
  6. Cliquez sur OK pour enregistrer la tâche.

Automatisez l'exécution continue du script sur Mac (à l'aide de tâches Cron) :

  1. Ouvrez le Terminal.
  2. Saisissez crontab -e et appuyez sur Entrée.
  3. Ajoutez une ligne à la fin du fichier :

    * * * * * /usr/bin/python /Users/YourName/Downloads/Sophos-Central-SIEM-Integration/siem.py
    
  4. Enregistrez et quittez l'éditeur.

Table de mappage UDM

Champ de journal Mappage UDM Logique
customer_id target.resource.id Mappé directement à partir du champ customer_id.
data.core_remedy_items.items.0.descriptor target.process.file.full_path Mappé directement à partir du champ data.core_remedy_items.items.0.descriptor.
data.source_info.ip principal.ip
principal.asset.ip
Mappé directement à partir du champ data.source_info.ip.
description metadata.description Directement mappé à partir du champ description lorsque metadata.event_type est défini sur GENERIC_EVENT.
dhost principal.hostname
principal.asset.hostname
Mappé directement à partir du champ dhost.
duid security_result.detection_fields.value Mappé directement à partir du champ duid.
end metadata.event_timestamp Analysé au format RFC 3339 et mappé au champ event_timestamp.
ID du point de terminaison target.asset_id Mappé en tant que Device endpoint Id: {endpoint_id}.
endpoint_type security_result.about.labels.value Mappé directement à partir du champ endpoint_type.
groupe security_result.category_details Mappé directement à partir du champ group.
nom security_result.description
security_result.summary
Mappé directement à partir du champ name.
metadata.event_type Déterminé en fonction du champ type et de la logique supplémentaire dans l'analyseur. Les valeurs possibles sont les suivantes : 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 Variable définie sur SOPHOS_CENTRAL.
metadata.product_event_type Mappé directement à partir du champ type.
metadata.product_name Variable définie sur Sophos Central.
metadata.vendor_name Variable définie sur Sophos.
network.direction Définissez sur OUTBOUND pour des valeurs type spécifiques indiquant les connexions réseau sortantes.
network.ip_protocol Définissez sur TCP pour des valeurs type spécifiques indiquant les connexions réseau TCP.
security_result.action Déterminé en fonction du champ action extrait du champ name à l'aide de modèles grok. Les valeurs possibles sont les suivantes : ALLOW, BLOCK, ALLOW_WITH_MODIFICATION et UNKNOWN_ACTION.
security_result.detection_fields.key Défini sur duid lorsque le champ duid est présent.
security_result.rule_name Extrait du champ name à l'aide de modèles Grok pour des valeurs type spécifiques.
security_result.severity Mappé à partir du champ severity avec le mappage suivant : faible → FAIBLE, moyenne → MOYENNE, élevée/critique → ÉLEVÉE.
target.application Extrait du champ name à l'aide de modèles Grok pour des valeurs type spécifiques.
target.asset.hostname Mappé à partir du champ dhost pour des valeurs type spécifiques.
target.file.full_path Extrait du champ name à l'aide de modèles Grok pour des valeurs type spécifiques, ou directement mappé à partir de data.core_remedy_items.items.0.descriptor ou core_remedy_items.items.0.descriptor.
target.file.size Extraite du champ name à l'aide de modèles Grok et convertie en uinteger pour des valeurs type spécifiques.
target.hostname Mappé à partir du champ dhost pour des valeurs type spécifiques.
target.resource.name Définissez des valeurs spécifiques en fonction du champ type ou extrayez-les du champ name à l'aide de modèles Grok.
target.resource.type Définissez des valeurs spécifiques en fonction du champ type.
target.user.userid Mappé à partir du champ suser après extraction du nom d'utilisateur à l'aide de modèles grok.
target.url Extrait du champ name à l'aide de modèles Grok pour des valeurs type spécifiques.
source_info.ip principal.ip
principal.asset.ip
Mappé directement à partir du champ source_info.ip.
suser principal.user.userid
target.user.userid
Extrait du champ suser à l'aide de modèles Grok pour supprimer les préfixes de nom d'hôte.
type metadata.product_event_type Mappé directement à partir du champ type.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.