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 des champs à partir de structures JSON imbriquées, les met en correspondance avec des champs UDM et effectue une catégorisation des événements en fonction du champ type, 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 machine Windows ou Linux supplémentaire, capable d'exécuter Python en continu.
- Si vous exécutez l'application derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
- Assurez-vous de disposer d'un accès privilégié au pare-feu Sophos XG.
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 le numéro client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez le numéro client dans la section Détails de l'organisation.
Installer l'agent Bindplane
Installation de Windows
- Ouvrez l'invite de commande 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 des 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
Autres ressources d'installation
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour qu'il ingère les journaux Syslog et les envoie à 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 (
nano
,vi
ou Bloc-notes, par exemple).
- 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 dans votre infrastructure si nécessaire.
Remplacez
<customer_id>
par le numéro client réel.Remplacez
/path/to/ingestion-authentication-file.json
par le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification d'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ésumé du jeton d'API pour le jeton fourni s'affiche.
- Dans la section Récapitulatif du jeton d'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 de 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, puis 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 du SIEM Sophos Central.
- Cliquez sur le bouton vert Code > Télécharger le fichier ZIP.
- Extrayez le fichier ZIP.
Configurer la configuration du 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 que vous avez copiée précédemment dans Sophos Central.
- Détails du serveur Syslog: saisissez les détails de votre serveur Syslog.
- Host (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 du script.
Sous Windows :
- Appuyez sur la touche Windows, puis saisissez
cmd
. - Cliquez sur Invite de commande.
Accédez au dossier du script:
cd C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration
- Appuyez sur la touche Windows, puis 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:
Pour démarrer le script, saisissez la commande suivante:
python siem.py
Automatisez l'exécution continue du script sous 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 General (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, puis définissez la tâche à exécuter quotidiennement ou au démarrage (selon vos préférences).
- Dans l'onglet Actions :
- Cliquez sur Nouveau, puis sélectionnez Démarrer un programme.
- Recherchez le fichier 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.
Tableau 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 | Mappé directement à partir du champ description lorsque metadata.event_type est 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é sur le 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 . Si les indicateurs is_alert ou is_significant sont définis, ils sont mappés sur security_result.summary . |
is_alert | Définissez cette valeur sur true pour des valeurs type spécifiques indiquant une alerte. Sinon, la valeur par défaut est false . |
|
is_significant | Défini sur true pour des valeurs type spécifiques indiquant un événement important, sinon défini par défaut sur false . |
|
metadata.event_type | Déterminé en fonction du champ type et d'une logique supplémentaire dans l'analyseur. Les valeurs possibles sont: 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éfini sur OUTBOUND pour des valeurs type spécifiques indiquant des connexions réseau sortantes. |
|
network.ip_protocol | Défini sur TCP pour des valeurs type spécifiques indiquant des 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 -> LOW, moyen -> MEDIUM, élevé/critique -> HIGH. |
|
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 mappé directement à partir de data.core_remedy_items.items.0.descriptor ou core_remedy_items.items.0.descriptor . |
|
target.file.size | Extrait du champ name à l'aide de modèles Grok et converti 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éfini sur des valeurs spécifiques en fonction du champ type ou extrait du champ name à l'aide de modèles Grok. |
|
target.resource.type | Définissez-le sur 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 . |
Modifications
2025-01-30
Amélioration :
- Prise en charge de l'analyse des journaux JSON non analysés.
2025-01-08
Amélioration :
- Ajout de
url
,action
etscan_name
dans statedata pour analyser les journaux non analysés. - Mappage de
user_id
surprincipal.user.userid
.
2024-09-05
Amélioration :
- Ajout de la possibilité d'analyser les journaux JSON non analysés.
- Mappage de
location
surprincipal.cloud.availability_zone
.
2024-05-17
Amélioration :
- Mappage de
data.core_remedy_items.items.0.descriptor
etcore_remedy_items.items.0.descriptor
surtarget.process.file.full_path
.
2024-05-14
Correction de bug:
- Modification de la mise en correspondance de
target.user.userid
deduid
àsuser
. - Mappage de
duid
sursecurity_result.detection_fields
.
2022-12-27
- Analyseur nouvellement créé.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.