Collecter les journaux des modems Digi
Ce document explique comment ingérer les journaux des modems Digi dans Google Security Operations à l'aide de Bindplane. Le code de l'analyseur extrait d'abord des champs tels que l'horodatage, le nom d'hôte, le type de produit et le contenu du journal à partir des messages syslog DIGI_MODEMS à l'aide de modèles grok. Il analyse ensuite le contenu pour identifier les tentatives de connexion (réussies ou non), en extrayant des informations telles que l'utilisateur, l'adresse IP, le port et les protocoles, puis en mappant ces champs extraits dans un schéma de modèle de données unifié (UDM) pour l'analyse de la sécurité.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Instance Google SecOps
- Windows 2016 ou version ultérieure, ou hôte Linux avec
systemd - Si vous exécutez le service derrière un proxy, les ports de pare-feu ports sont ouverts.
- Accès privilégié à Digi Remote Manager ou à l'interface utilisateur Web du modem Digi local
Obtenir le fichier d'authentification d'ingestion Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à SIEM Settings > Collection Agents (Paramètres 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 où Bindplane sera installé.
Obtenir l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM > Profil.
- Copiez l'ID client dans la section Organization Details (Informations sur l'organisation) et enregistrez-le.
Installer l'agent Bindplane
Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.
Installation sous Windows
- 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 sous 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
Ressources d'installation supplémentaires
Pour plus d'options d'installation, consultez le 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. Il se trouve généralement dans le/etc/bindplane-agent/répertoire 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 Bloc-notes).
- Recherchez le fichier
Modifiez le fichier
config.yamlcomme 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_file_path: '/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 log_type: 'DIGI_MODEMS' raw_log_field: body ingestion_labels: 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 l'ID client réel. - Mettez à jour
/path/to/ingestion-authentication-file.jsonavec 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émarrer l'agent Bindplane pour appliquer les modifications
Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante :
sudo systemctl restart bindplane-agentPour 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 le serveur Syslog sur le modem Digi
- Connectez-vous à Digi Remote Manager ou à l'interface utilisateur Web du modem Digi local.
- Accédez à la configuration de l'appareil avec Remote Manager:
- Recherchez l'appareil pour lequel vous souhaitez configurer Syslog.
- Cliquez sur Device ID > Settings > Config (ID de l'appareil > Paramètres > Config).
- Accédez à la configuration de l'appareil avec l'interface utilisateur Web du modem Digi local:
- Cliquez sur System > Configuration > Device Configuration (Système > Configuration > Configuration de l'appareil).
- Accédez à System > Log (Système > Journal).
- Cliquez pour développer la liste des serveurs.
- Cliquez sur Add Server + (Ajouter un serveur +).
- Fournissez les informations de configuration suivantes :
- Server (Serveur) : saisissez l'adresse IP de l'agent Bindplane.
- Sélectionnez les catégories d'événements qui seront envoyées au serveur (toutes les catégories d'événements sont activées par défaut).
- Syslog egress Port (Port de sortie Syslog) : saisissez le numéro de port de l'agent Bindplane (la valeur par défaut est
514). - Protocol (Protocole) : sélectionnez UDP.
- Cliquez sur Appliquer.
Exemples de journaux de modems Digi compatibles
SYSLOG
{ "priority": 14, "timestamp": "Dec 28 17:27:45", "hostname": "host-device.router", "tag": "Eventlog", "message": "17:27:33, 28 Dec 2006,Login failure by Host: 10.0.0.25:23: CMD,Telnet" }SYSLOG
{ "priority": 14, "timestamp": "May 25 11:03:55", "hostname": "internal-srv-01", "tag": "Eventlog", "message": "11:03:55, 25 May 2023,Login failure by sanitized_user: WEB" }SYSLOG
{ "priority": 14, "timestamp": "Jun 11 23:58:26", "hostname": "internal-srv-01", "tag": "Eventlog", "message": "23:58:26, 11 Jun 2023,Login failure by GET /masked_path HTTP/1.0: CMD,Telnet" }SYSLOG
{ "priority": 14, "timestamp": "Jun 19 19:52:19", "hostname": "gateway-device-02", "tag": "Eventlog", "message": "19:52:18, 19 Jun 2023,WEB Login OK by internal_admin lvl 0" }
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
| contenu | security_result.description | Mappé directement à partir du champ content après l'analyse grok initiale. |
| http_method | network.http.method | Extrait du champ content à l'aide d'un modèle grok. |
| http_version | network.application_protocol_version | Extrait du champ content à l'aide d'un modèle grok. |
| nom d'hôte | principal.hostname | Extrait du message de journal à l'aide d'un modèle grok. |
| ip | target.ip | Extrait du champ content à l'aide d'un modèle grok. |
| port | target.port | Extrait du champ content à l'aide d'un modèle grok et converti en entier. |
| proto | network.application_protocol | Extrait du champ content à l'aide d'un modèle grok. |
| ts | metadata.event_timestamp | Extrait du message de journal à l'aide d'un modèle grok et converti en horodatage. |
| type | login_type_label.value | Extrait du champ content à l'aide d'un modèle grok. |
| extensions.auth.type | Défini sur MACHINE par la logique de l'analyseur. |
|
| login_type_label.key | Défini sur Login type par la logique de l'analyseur. |
|
| metadata.event_type | Déterminé par la présence de champs spécifiques tels que ip ou user, et défini sur NETWORK_CONNECTION ou USER_LOGIN en conséquence. |
|
| metadata.log_type | Défini sur DIGI_MODEMS par la logique de l'analyseur. |
|
| metadata.product_event_type | Extrait du champ product_type dans le message de journal. |
|
| metadata.product_name | Défini sur DIGI_MODEMS par la logique de l'analyseur. |
|
| metadata.vendor_name | Défini sur DIGI_MODEMS par la logique de l'analyseur. |
|
| security_result.action | Déterminé par la présence de Login OK ou Login failure dans le message, et défini sur ALLOW ou BLOCK, respectivement. |
|
| utilisateur | target.user.userid | Extrait du champ content à l'aide d'un modèle grok. |
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.