Collecter les journaux Sophos Central
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- 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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> Profil.
- Copiez et enregistrez le numéro client de la section Informations sur l'organisation.
Installer l'agent Bindplane
Installation de fenêtres
- Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installation de Linux
- Ouvrez un terminal avec les droits root ou sudo.
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
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps
Accédez au fichier de configuration :
- 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. - Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple,
nano
,vi
ou le Bloc-notes).
- Recherchez le fichier
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
Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.
Remplacez
<customer_id>
par le numéro client réel.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
- Connectez-vous à Sophos Central Admin.
- Sélectionnez Paramètres généraux> Gestion des jetons d'API.
- Cliquez sur Ajouter un jeton pour en créer un.
- Saisissez un nom de jeton, puis cliquez sur Enregistrer. Le récapitulatif du jeton d'API pour le jeton fourni s'affiche.
- 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
- Ouvrez le navigateur Web et accédez au site Web Python.
- Cliquez sur Télécharger Python pour votre système d'exploitation (Windows ou Mac).
Installez Python.
- Sous Windows :
- Lancez le programme d'installation.
- Cochez la case Add Python to PATH (Ajouter Python au PATH).
- Cliquez sur Installer maintenant.
Sous Mac :
- 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.
Ouvrez Terminal et saisissez la commande suivante :
python --version
- Sous Windows :
Télécharger le script d'intégration Sophos
- Accédez à la page GitHub du dépôt GitHub d'intégration de Sophos Central SIEM.
- Cliquez sur le bouton vert Code > Télécharger le fichier ZIP.
- Extrayez le fichier ZIP.
Configurer le script
- Recherchez et ouvrez le fichier
config.ini
dans un éditeur de texte. - 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).
- Enregistrez le fichier.
Exécuter le script
Accédez au dossier de script.
Sous Windows :
- Appuyez sur la touche Windows et saisissez
cmd
. - Cliquez sur Invite de commandes.
Accédez au dossier du script :
cd C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration
- Appuyez sur la touche Windows et saisissez
Sous macOS :
- Accédez à Applications > Utilitaires.
- Ouvrez l'application Terminal.
Accédez au dossier du script :
cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
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) :
- Ouvrez le Planificateur de tâches en saisissant Planificateur de tâches dans le menu Démarrer.
- Cliquez sur Créer une tâche.
- Dans l'onglet Général :
- Nommez votre tâche (par exemple,
Sophos Central Log Export
).
- Nommez votre tâche (par exemple,
- 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).
- Dans l'onglet Actions :
- Cliquez sur Nouveau, puis sélectionnez Démarrer un programme.
- Recherchez l'exécutable
python.exe
(généralement situé dansC:\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
).
- Cliquez sur OK pour enregistrer la tâche.
Automatisez l'exécution continue du script sur Mac (à l'aide de tâches Cron) :
- Ouvrez le Terminal.
- Saisissez
crontab -e
et appuyez sur Entrée. Ajoutez une ligne à la fin du fichier :
* * * * * /usr/bin/python /Users/YourName/Downloads/Sophos-Central-SIEM-Integration/siem.py
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.