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
Vous devez activer la solution Microsoft Sentinel appropriée : Syslog ou Common Event Format. Pour plus d’informations, consultez Découvrir et gérer le contenu Microsoft Sentinel prêt à l’emploi.
Votre compte Azure doit disposer des rôles suivants de contrôle d’accès basé sur les rôles Azure (Azure RBAC) :
Rôle intégré Étendue Motif - Contributeur de machine virtuelle
- Azure Connected Machine
Administrateur de ressources- Machines virtuelles
- Virtual Machine Scale Sets
- Serveurs avec Azure Arc
Pour déployer l’agent Tout rôle qui inclut l’action
Microsoft.Resources/deployments/*- Abonnement
- Resource group
- Règle de collecte de données existante
Pour déployer des modèles Azure Resource Manager Contributeur de surveillance - Abonnement
- Resource group
- Règle de collecte de données existante
Pour créer ou modifier des règles de collecte de données
Prérequis du redirecteur de journal
Si vous collectez des messages à partir d’un redirecteur de journal, les prérequis suivants s’appliquent :
Vous devez disposer d’une machine virtuelle Linux désignée (votre redirecteur de journal) pour collecter les journaux.
Si votre redirecteur de journal n’est pas une machine virtuelle Azure, l’agent Azure Arc Connected Machine doit être installé sur celui-ci.
La machine virtuelle du redirecteur de journal Linux doit avoir Python 2.7 ou 3 installée. Utilisez la commande
python --version
oupython3 --version
pour vérifier. Si vous utilisez Python 3, vérifiez que ce langage est défini comme commande par défaut sur votre machine, ou exécutez les scripts ci-dessous avec la commande « python3 » au lieu de « python ».Le redirecteur de journal doit avoir le démon
syslog-ng
oursyslog
activé.Pour connaître les besoins en espace de votre redirecteur de journal, consultez le point de référence des performances de l’agent Azure Monitor. Vous pouvez également examiner ce billet de blog qui traite des conceptions pour une ingestion évolutive.
Vos sources de journal (vos appareils et appliances de sécurité) doivent être configurées pour envoyer leurs messages de journal au démon Syslog du redirecteur de journal au lieu de leur démon Syslog local.
É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 :
- Chiffrement du trafic Syslog avec TLS – rsyslog
- Chiffrement des messages de journal avec TLS – syslog-ng
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 :
Installez l’agent Azure Monitor et créez une règle de collecte de données (DCR).
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
Ouvrez le portail Azure et accédez au service Microsoft Sentinel.
Sélectionnez Connecteurs de données dans le menu de navigation
Tapez Syslog dans la zone Recherche. Dans les résultats, sélectionnez le connecteur Syslog via AMA.
Sélectionnez Ouvrir la page du connecteur dans le volet d’informations.
Dans la zone Configuration, sélectionnez +Créer une règle de collecte de données.
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.
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é.)
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.
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.)
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.
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.
Passez en revue vos sélections, puis sélectionnez Suivant : Vérifier + créer.
Sous l’onglet Vérifier et créer, sélectionnez 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
etmark
avec les niveaux de journalInfo
,Notice
,Warning
,Error
,Critical
,Alert
etEmergency
- L’installation
daemon
avec les niveaux de journalWarning
,Error
,Critical
,Alert
etEmergency
Elle collecte les messages d’événement Syslog pour :
- Les installations
kern
,local0
,local5
etnews
avec les niveaux de journalCritical
,Alert
etEmergency
- Les installations
mail
etuucp
avec le niveau de journalEmergency
"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.
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é.
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
Connectez-vous à l’ordinateur du redirecteur de journal où vous venez d’installer l’AMA.
Collez la commande que vous avez copiée à la dernière étape pour lancer le script d’installation.
Le script configure le démonrsyslog
ousyslog-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
oursyslog
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.- Rsyslog :
Tester le connecteur
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
ousyslog-ng
devrait être à l’écoute sur le port 514.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 &
Une fois la validation terminée, nous vous recommandons d’arrêter le
tcpdump
: tapezfg
, puis sélectionnez Ctrl+C.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 port514
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 port514
, 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"
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