Le protocole NRPE est largemen utilisé pour la supervision de serveurs. Simple à mettre en place et largement configurable, il permet la remontée d’éléments de supervision non accessibles simplement par le réseau.
Une mise en garde existe dans la configuration de la partie serveur (donc au niveau de l’hôte à superviser qui héberge cet agent). S’il est possible de lancer des commandes prédéfinies avec NRPE, l’activation du paramètre dont_blame_nrpe permet de spécifier des arguments arbitraires à l’agent de supervision. Il peut être tentant par exemple de spécifier des seuils différents d’utilisation de disque selon qu’on supervise un serveur Web dont le système de fichiers a une taille de 5Gb ou un serveur de fichiers dont la taille est de plusieurs téra.
Une liste noire de paramètres jugés dangeureux est spécifiée à l’agent pour s’assurer que seuls des valeurs de seuils puissent être envoyés à celui-ci.
Dont Blame NRPE
Cependant, la sécurité apportée par une liste noire n’est jamais absolue. De plus, si le protocole NRPE est chiffré, le chiffrement ne consiste qu’en un Diffie-Helleman sans échange préalable de certificat ou de mot de passe. Donc il est possible pour un attaquant de réaliser un Man-In-The-Middle et ainsi communiquer avec l’agent et lui spécifier d’autres valeurs de seuils que celles attendues. Une rapide recherche Web permet de trouver un pattern permettant une exécution de code, comme ici par exemple.