Ingérer des messages Syslog et CEF vers Microsoft Sentinel avec l’agent Azure Monitor

Cet article explique comment utiliser le Syslog via l’agent Azure Monitor et Common Event Format (CEF) via les connecteurs de l’agent Azure Monitor pour filtrer et ingérer rapidement des messages Syslog, y compris ceux au Common Event Format (CEF), à partir de machines Linux et d’appliances et de périphériques réseau et de sécurité. Pour en savoir plus sur ces connecteurs de données, voir Connecteurs Syslog via AMA et Common Event Format (CEF) via AMA pour Microsoft Sentinel.

Prérequis

Avant de commencer, vous devez disposer des ressources configurées et des autorisations appropriées décrites dans cette section.

Prérequis pour Microsoft Sentinel

Prérequis du redirecteur de journal

Si vous collectez des messages à partir d’un redirecteur de journal, les prérequis suivants s’appliquent :

Éviter la duplication de l’ingestion de données

L’utilisation de la même fonctionnalité pour les messages Syslog et CEF peut entraîner une duplication de l’ingestion de données entre les tables CommonSecurityLog et Syslog.

Pour éviter ce scénario, utilisez l’une des méthodes suivantes :

  • Si l’appareil source permet la configuration de la fonctionnalité cible : sur chaque machine source qui envoie des journaux au redirecteur de journaux au format CEF, modifiez le fichier de configuration Syslog pour supprimer les fonctionnalités utilisées pour envoyer des messages CEF. Ainsi, les fonctionnalités envoyées en CEF ne sont pas également envoyées au format Syslog. Assurez-vous que chaque règle DCR que vous configurez dans les prochaines étapes utilise la fonctionnalité appropriée pour CEF ou Syslog, respectivement.

    Pour voir un exemple de la façon d’organiser une DCR pour ingérer les messages Syslog et CEF du même agent, consultez Flux Syslog et CEF dans la même DCR plus loin dans cet article.

  • Si la modification de la fonctionnalité pour l’appliance source n’est pas applicable : utilisez une transformation au moment de l’ingestion pour filtrer les messages CEF provenant du flux Syslog afin d’éviter la duplication, comme le montre l’exemple de requête ci-dessous. Les données sont envoyées deux fois de l’ordinateur collecteur à l’espace de travail :

    source |
    where ProcessName !contains "CEF"
    

Configurer la sécurité des machines

Veillez à configurer la sécurité de la machine en fonction de la stratégie de sécurité de votre organisation. Par exemple, vous pouvez configurer votre réseau de sorte qu’il s’accorde à la stratégie de sécurité de votre réseau d’entreprise, et modifier les ports et les protocoles dans le démon pour les adapter à vos besoins. Pour améliorer la configuration de la sécurité de votre ordinateur, sécurisez votre machine virtuelle dans Azure ou passez en revue ces meilleures pratiques pour la sécurité réseau.

Si vos appareils envoient des journaux Syslog et CEF sur TLS (par exemple, parce que votre redirecteur de journal se trouve dans le cloud), vous devez configurer le démon Syslog (rsyslog ou syslog-ng) pour qu’il communique dans TLS :

Configurer les connecteurs de données

Sélectionnez l’onglet approprié pour consulter les instructions relatives à syslog ou à CEF.

Configurer Syslog via le connecteur AMA

Le processus d’installation pour le connecteur Syslog via AMA comporte deux parties :

  1. Installez l’agent Azure Monitor et créez une règle de collecte de données (DCR).

  2. Si vous collectez des journaux à partir d’autres machines à l’aide d’un redirecteur de journal, exécutez le script « installation » sur le redirecteur de journal pour configurer le démon Syslog pour écouter les messages provenant d’autres machines et pour ouvrir les ports locaux nécessaires.

Installer l’AMA et créer une règle de collecte de données (DCR)

Vous pouvez effectuer cette étape de deux manières :

  • Déployez et configurez le connecteur de données Syslog via AMA ou Common Event Format (CEF) via AMA dans le portail Microsoft Sentinel. Avec cette configuration, vous pouvez créer, gérer et supprimer les DCR par espace de travail. L’AMA est installé automatiquement sur les machines virtuelles que vous sélectionnez dans la configuration du connecteur.
    —OU—
  • Envoyez des requêtes HTTP à l’API d’ingestion des journaux. Avec cette configuration, vous pouvez créer, gérer et supprimer les DCR. Cette option est plus flexible que le portail. Par exemple, avec l’API, vous pouvez filtrer en fonction de niveaux de journalisation spécifiques, où avec l’interface utilisateur, vous ne pouvez sélectionner qu’un niveau de journalisation minimal. L’inconvénient est que vous devez installer manuellement l’agent Azure Monitor sur le redirecteur de journal avant de créer une DCR.

Sélectionnez l’onglet approprié ci-dessous pour afficher les instructions de chaque façon.

Ouvrez la page du connecteur et démarrez l’Assistant DCR

  1. Ouvrez le portail Azure et accédez au service Microsoft Sentinel.

  2. Sélectionnez Connecteurs de données dans le menu de navigation

  3. Tapez Syslog dans la zone Recherche. Dans les résultats, sélectionnez le connecteur Syslog via AMA.

  4. Sélectionnez Ouvrir la page du connecteur dans le volet d’informations.

  5. Dans la zone Configuration, sélectionnez +Créer une règle de collecte de données.

    Capture d’écran montrant la page du connecteur CEF via AMA.

  6. Sous l’onglet De base :

    • Tapez un nom de DCR.
    • Sélectionnez votre abonnement.
    • Sélectionnez le groupe de ressources dans lequel vous souhaitez localiser votre DCR.

    Capture d’écran montrant les détails de la DCR sous l’onglet Général.

  7. Sélectionnez Suivant : Ressources>.

Définir les ressources (machines virtuelles)

Sous l’onglet Ressources, sélectionnez les machines sur lesquelles vous souhaitez installer l’AMA, dans ce cas, votre machine de redirecteur de journal. (Si votre redirecteur de journal n’apparaît pas dans la liste, il ne dispose peut-être pas de l’agent Azure Connected Machine installé.)

  1. Utilisez les filtres disponibles ou la zone de recherche pour rechercher votre machine virtuelle de redirecteur de journal. Vous pouvez développer un abonnement dans la liste pour afficher ses groupes de ressources et un groupe de ressources pour afficher ses machines virtuelles.

  2. Sélectionnez la machine virtuelle du redirecteur de journal sur laquelle vous souhaitez installer l’AMA. (La case à cocher s’affiche en regard du nom de la machine virtuelle lorsque vous pointez dessus.)

    Capture d’écran montrant comment sélectionner des ressources lors de la configuration de la DCR.

  3. Passez en revue vos modifications et sélectionnez Suivant : Collecter >.

Sélectionner les installations et les gravités et créer la DCR

Remarque

L’utilisation de la même installation pour les messages Syslog et CEF peut entraîner une duplication de l’ingestion de données. Découvrez comment éviter la duplication de l’ingestion des données.

  1. Dans l’onglet Collecter, sélectionnez le niveau minimal de journal pour chaque installation. Quand vous sélectionnez un niveau de journal, Microsoft Sentinel collecte les journaux pour le niveau sélectionné et les autres niveaux avec une gravité supérieure. Par exemple, si vous sélectionnez LOG_ERR, Microsoft Sentinel collecte les journaux pour les niveaux LOG_ERR, LOG_CRIT, LOG_ALERT et LOG_EMERG.

    Capture d’écran montrant comment sélectionner des niveaux de journal lors de la configuration de la DCR.

  2. Passez en revue vos sélections, puis sélectionnez Suivant : Vérifier + créer.

  3. Sous l’onglet Vérifier et créer, sélectionnez Créer.

    Capture d’écran montrant comment passer en revue la configuration de la DCR et la créer.

  • Le connecteur installe l’agent Azure Monitor sur les machines que vous avez sélectionnées lors de la création de votre DCR.

  • Vous verrez des notifications à partir du portail Azure lorsque la DCR est créée et que l’agent est installé.

  • Sélectionnez Actualiser dans la page du connecteur pour voir la DCR affichée dans la liste.

Exemples de niveaux de journal des filtres et des installations

Passez en revue ces exemples de paramètres d’installations et de niveaux de journalisation. Le champ name inclut le nom du filtre.

Pour l’ingestion de message CEF, la valeur de "streams" doit être "Microsoft-CommonSecurityLog" au lieu de "Microsoft-Syslog".

Cet exemple collecte des événements à partir des installations cron, daemon, local0, local3 et uucp avec les niveaux de journalisation Warning, Error, Critical, Alert et Emergency :

    "dataSources": {
      "syslog": [
        {
        "name": "SyslogStream0",
        "streams": [
          "Microsoft-Syslog"
        ],
        "facilityNames": [ 
          "cron",
          "daemon",
          "local0",
          "local3", 
          "uucp"
        ],
        "logLevels": [ 
          "Warning", 
          "Error", 
          "Critical", 
          "Alert", 
          "Emergency"
        ]
      }
    ]
  }
Flux Syslog et CEF dans la même DCR

Cet exemple montre comment collecter des messages Syslog et CEF dans le même DCR.

Consultez Éviter la duplication d’ingestion de données plus haut dans cet article pour plus d’informations sur les étapes à suivre lors de l’ingestion de messages Syslog et CEF à l’aide d’un seul agent et d’une DCR.

La DCR collecte les messages d’événement CEF pour :

  • Les installations authpriv et mark avec les niveaux de journal Info, Notice, Warning, Error, Critical, Alert et Emergency
  • L’installation daemon avec les niveaux de journal Warning, Error, Critical, Alert et Emergency

Elle collecte les messages d’événement Syslog pour :

  • Les installations kern, local0, local5 et news avec les niveaux de journal Critical, Alert et Emergency
  • Les installations mail et uucp avec le niveau de journal Emergency
    "dataSources": {
      "syslog": [
        {
          "name": "CEFStream1",
          "streams": [ 
            "Microsoft-CommonSecurityLog"
          ],
          "facilityNames": [ 
            "authpriv", 
            "mark"
          ],
          "logLevels": [
            "Info",
            "Notice", 
            "Warning", 
            "Error", 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "CEFStream2",
          "streams": [ 
            "Microsoft-CommonSecurityLog"
          ],
          "facilityNames": [ 
            "daemon"
          ],
          "logLevels": [ 
            "Warning", 
            "Error", 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "SyslogStream3",
          "streams": [ 
            "Microsoft-Syslog"
          ],
          "facilityNames": [ 
            "kern",
            "local0",
            "local5", 
            "news"
          ],
          "logLevels": [ 
            "Critical", 
            "Alert", 
            "Emergency"
          ]
        },
        {
          "name": "SyslogStream4",
          "streams": [ 
            "Microsoft-Syslog"
          ],
          "facilityNames": [ 
            "mail",
            "uucp"
          ],
          "logLevels": [ 
            "Emergency"
          ]
        }
      ]
    }

Exécuter le script « installation »

Le script « installation » n’installe pas réellement quoi que ce soit, mais il configure correctement le démon Syslog sur votre redirecteur de journal pour collecter les journaux.

  1. Sur la page du connecteur, copiez la ligne de commande qui s’affiche sous Exécutez la commande suivante pour installer et appliquer le collecteur CEF : en sélectionnant l’icône Copier située à côté.

    Capture d’écran de la ligne de commande sur la page du connecteur.

    Vous pouvez également la copier à partir d’ici :

    sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
    
  2. Connectez-vous à l’ordinateur du redirecteur de journal où vous venez d’installer l’AMA.

  3. Collez la commande que vous avez copiée à la dernière étape pour lancer le script d’installation.
    Le script configure le démon rsyslog ou syslog-ng pour qu’il utilise le protocole requis et redémarre le démon. Le script ouvre le port 514 pour écouter les messages entrants dans les protocoles UDP et TCP. Pour modifier ce paramètre, reportez-vous au fichier de configuration du démon Syslog en fonction du type de démon en cours d’exécution sur la machine :

    • Rsyslog : /etc/rsyslog.conf
    • Syslog-ng : /etc/syslog-ng/syslog-ng.conf

    Remarque

    Pour éviter les scénarios de disque complet dans lesquels l’agent ne peut pas fonctionner, nous vous recommandons de définir la configuration syslog-ng ou rsyslog pour ne pas stocker les journaux inutiles. Un scénario de disque complet interrompt le fonctionnement de l’AMA installé. En savoir plus sur RSyslog ou Syslog-ng.

Tester le connecteur

  1. Pour vérifier que le démon syslog s’exécute sur le port UDP et que l’AMA écoute, exécutez cette commande :

    netstat -lnptv
    

    Le démon rsyslog ou syslog-ng devrait être à l’écoute sur le port 514.

  2. Pour capturer les messages envoyés à partir d’un enregistreur d’événements ou d’un appareil connecté, exécutez cette commande en arrière-plan :

    tcpdump -i any port 514 -A -vv &
    
  3. Une fois la validation terminée, nous vous recommandons d’arrêter le tcpdump : tapez fg, puis sélectionnez Ctrl+C.

  4. Pour envoyer des messages de démonstration, effectuez l’une des opérations suivantes :

    • Utilisez l’utilitaire netcat. Dans cet exemple, l’utilitaire lit les données publiées via la commande echo avec le commutateur de nouvelle ligne désactivé. L’utilitaire écrit ensuite les données dans le port 514 UDP sur l’hôte local sans délai d’expiration. Pour exécuter l’utilitaire netcat, vous devrez peut-être installer un package supplémentaire.

      echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514
      
    • Utilisez l’enregistreur d’événements. Cet exemple écrit le message dans l’installation local 4, au niveau de gravité Warning, sur le port 514, sur l’hôte local, au format RFC CEF. Les indicateurs -t et --rfc3164 sont utilisés pour se conformer au format RFC attendu.

      logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time"
      
  5. Pour vérifier que le connecteur est installé correctement, exécutez le script de résolution des problèmes avec l’une des commandes suivantes :

    • Pour les journaux CEF, exécutez :

       sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef
      
    • Pour les journaux d’activité Cisco Adaptive Security Appliance (ASA), exécutez :

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --asa
      
    • Pour les journaux d’activité Cisco Firepower Threat Defense (FTD), exécutez :

      sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --ftd