Collecter les journaux des modems Digi

Compatible avec :

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

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à SIEM Settings > Collection Agents (Paramètres 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 où 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 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

  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 sous Linux

  1. Ouvrez un terminal avec des 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

Pour plus d'options d'installation, consultez le guide d'installation.

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

  1. 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).
  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_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.json avec 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

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

    sudo systemctl restart bindplane-agent
    
  2. 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 le serveur Syslog sur le modem Digi

  1. Connectez-vous à Digi Remote Manager ou à l'interface utilisateur Web du modem Digi local.
  2. 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).
  3. 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).
  4. Accédez à System > Log (Système > Journal).
  5. Cliquez pour développer la liste des serveurs.
  6. Cliquez sur Add Server + (Ajouter un serveur +).
  7. 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.
  8. 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.