Quelles sont les vulnérabilités SNMP courantes et comment protégez-vous votre réseau ?
SNMP est l’un des protocoles de surveillance les plus utilisés au monde. D'innombrables fabricants de matériel réseau incluent SNMP dans leurs appareils pour faciliter la surveillance de l'infrastructure par une entreprise. Cependant, malgré sa popularité, SNMP n’est pas sans limites.
Les cybercriminels peuvent exploiter les vulnérabilités du protocole pour pénétrer dans un réseau, voler vos informations privées et lancer des attaques DoS. Connaître un peu les bases des vulnérabilités SNMP peut vous aider à préparer vos défenses en conséquence.
Dans cet article, nous allons examiner certaines vulnérabilités SNMP courantes et comment vous pouvez vous en protéger.
Comment fonctionne SNMP ? Et en quoi est-il vulnérable aux attaquants ? (Chaînes de la communauté publique)
SNMP est un protocole que les administrateurs réseau utilisent pour surveiller des périphériques tels que des ordinateurs, des routeurs, des commutateurs, des serveurs, des imprimantes et des imprimantes. SNMP fonctionne en demandant à un gestionnaire SNMP d'envoyer des requêtes Get aux côtés d'un agent SNMP situé à l'intérieur d'un périphérique compatible SNMP. Les requêtes contiennent également une chaîne de communauté avec un identifiant ou un mot de passe.
Chaque requête possède un identifiant d'objet (OID) ou une chaîne de requête pour récupérer des informations spécifiques à partir de l'appareil. Sur la base des requêtes Get, l'agent SNMP extrait les données des objets gérés dans la base d'informations de gestion (MIB) sur le périphérique local. L'agent envoie ensuite les données collectées depuis la MIB au gestionnaire SNMP où un utilisateur humain peut les visualiser via une URL.
L'agent peut également lancer des messages d'alerte ou des interruptions SNMP qui indiquent au gestionnaire lorsqu'un élément matériel surchauffe ou tombe en panne. Les interruptions SNMP fournissent des informations périodiques sur les performances afin qu'un utilisateur puisse savoir quand un périphérique fonctionne ou non.
SNMP fonctionne dans deux modes :
- Lecture seulement– Un mode dans lequel un agent peut interroger les appareils et lire des informations mais ne peut pas modifier les configurations. Contient une chaîne de communauté « publique ».
- Lire écrire– Un mode dans lequel un agent peut apporter des modifications à un appareil et à ses configurations. Contient une chaîne de communauté « privée ».
L'une des principales vulnérabilités d'un certain nombre de versions du protocole SNMP (SNMPv1 et SNMPv2) est que les messages SNMP sont envoyés sur le réseau en clair, ce qui signifie qu'une personne disposant d'un renifleur de paquets peut lire la chaîne de communauté en texte brut. En d’autres termes, ils peuvent voler les informations de connexion, puis les utiliser pour écouter le contenu des messages ou prendre le contrôle des appareils compatibles SNMP.
Versions du protocole SNMP (SNMPv1, SNMPv2c, SNMPv3)
Il existe trois types de SNMP que vous devez connaître :
SNMPv1
Le protocole SNMP d'origine, qui ne prend en charge que les compteurs 32 bits. SNMPv1 est facile à configurer mais n'est protégé que par une chaîne de communauté. Une chaîne de communauté en texte brut est envoyée depuis des appareils situés dans une plage d'adresses IP autorisées.
Ainsi, si des entités malveillantes accèdent au réseau, elles pourront découvrir la chaîne de communauté en texte brut. Une fois qu’ils disposent de la chaîne de communauté, ils peuvent créer une adresse IP usurpée et interagir avec votre réseau. La meilleure façon de contrôler ce risque consiste à restreindre les périphériques à un accès SNMP en lecture seule, sauf si cela est absolument nécessaire pour fournir un accès en écriture.
SNMPv2c
Une version mise à jour de SNMP rebasée en 1993 qui a ajouté la prise en charge des compteurs 64 bits avec une gestion améliorée des erreurs et des commandes SET. La prise en charge améliorée de la gestion des erreurs signifie désormais que vous pouvez afficher les codes d'erreur étendus pour différencier les erreurs.
Il est important de noter que cette version de SNMP envoie toujours les chaînes de communauté sous forme de texte clair sans options de cryptage, ce qui la rend vulnérable aux mêmes problèmes de sécurité que SNMPv1.
SNMPv3
La dernière version de SNMP avec des fonctionnalités de sécurité supplémentaires telles que le modèle de sécurité basé sur l'utilisateur (USM) et le modèle de contrôle d'accès basé sur la vue (VACM), l'authentification et le cryptage. Pour garantir que les messages SNMP ne peuvent pas être lus par des entités non autorisées, SNMPv3 chiffre les messages d'interruption SNMP. Le seul inconvénient de SNMPv3 est peut-être qu’il est plus complexe que les autres versions en raison de fonctionnalités de sécurité améliorées.
Quelle version SNMP est la meilleure ?
En termes de sécurité, SNMPv3 élimine SNMPv1 et SNMPv2c hors de l'eau. Le manque de confidentialité, d'authentification et de contrôle d'accès rend SNMPv1 et SNMPv2 beaucoup plus vulnérables que SNMPv3. Le cryptage SNMPv3 limite les personnes pouvant afficher le trafic SNMP, tandis que SHA et MD5 authentifient que les messages SNMP ne peuvent être lus que par les utilisateurs autorisés.
Bien que SNMPv3 soit le plus sécurisé, sa complexité et ses performances réseau signifient que vous ne devez l'utiliser que si vous devez conserver un accès en lecture-écriture pendant une période prolongée. Sinon, vous pourrez probablement utiliser SNMPv1 ou SNMPv2c et définir des autorisations en lecture seule.
Principales vulnérabilités SNMP
Maintenant que nous avons brièvement examiné les différentes versions de SNMP, nous allons examiner les problèmes de sécurité rencontrés par SNMPv1, SNMPv2c et SNMPv3. Il est important de souligner que même SNMPv3 n’est pas sans failles de sécurité.
Vulnérabilités SNMP : chaînes de communauté publiques dans SNMPv1 et SNMPv2c
Le CVE est une liste de vulnérabilités de sécurité connues que vous pouvez utiliser pour identifier les facteurs de risque au sein de votre environnement informatique. Le CVE comprend une longue liste de SNMP vulnérabilités que vous pouvez utiliser pour suivre les risques pour votre réseau. Il y en a trop pour les énumérer ici, nous allons donc examiner quelques-unes de ces vulnérabilités ci-dessous :
- CVE-2002-0013– Les attaquants peuvent exploiter SNMPv1 pour lancer une attaque DoS ou obtenir des privilèges d'accès en surchargeant SNMP en envoyant un nombre élevé de messages GetRequest, GetNextRequest ou SetRequest.
- CVE-2002-0012– Les attaquants peuvent utiliser la gestion des interruptions SNMPv1 pour exécuter une attaque DoS ou obtenir des privilèges d'accès.
CVE-2002-0013 et CVE-2002-0012 sont particulièrement dévastateurs car un pirate informatique peut lancer une attaque DoS ou obtenir un accès administrateur à vos fichiers. La plupart des attaques DoS se produisent lorsqu'un attaquant utilise un renifleur de paquets pour infiltrer votre réseau et obtenir les chaînes de communauté en texte brut.
Une fois que les pirates disposent de la chaîne de communauté, ils peuvent l'utiliser pour pénétrer dans plusieurs appareils et envoyer un volume élevé de messages GetRequests, GetNextRequests ou SetRequest afin de submerger les ressources du réseau avec un trafic malveillant. De telles attaques entraîneront l'indisponibilité du service réseau pour les autres utilisateurs et entraîneront des temps d'arrêt coûteux.
Alternativement, le cybercriminel peut adopter une approche plus passive et lancer une attaque de l’homme du milieu et écouter la communication entre deux hôtes pour collecter des données privées. Les attaques de l'homme du milieu sont dangereuses car elles provoquent des fuites de données.
Les SNMPv1 et SNMPv2c d'origine sont vulnérables à ce type d'attaque car ils affichent les chaînes de communauté en texte clair. Par conséquent, l’un des meilleurs moyens de se protéger contre les attaques DoS et Man-in-the-Middle consiste à éviter d’utiliser SNMPv1 et SNMPv2c, tout en limitant l’accès en lecture seule aux appareils compatibles SNMP.
Vulnérabilité du mécanisme de découverte de SNMPv3
SNMPv3 a tenté de remédier de front à la vulnérabilité des chaînes de communauté publique de SNMPv1 et SNMPv2c en ajoutant le cryptage et l'authentification pour rendre plus difficile la détection du trafic SNMP par les cybercriminels. Bien que l'authentification et le cryptage aient été des ajouts utiles au SNMP, SNMPv3 présente toujours une vulnérabilité que les pirates peuvent utiliser pour lire les communications cryptées et créer des messages usurpés.
Dans le Sous une nouvelle direction : attaques pratiques contre SNMPv3 Dans ce rapport, Nigel Lawrence et Patrick Traynor suggèrent que SNMP présente un « défaut fondamental » et que le mécanisme de découverte de SNMPv3 « peut être manipulé pour permettre à un attaquant de sélectionner les clés de chiffrement et d'authentification utilisées par le protocole ».
Si les attaquants prennent le contrôle des clés de chiffrement et d’authentification de SNMPv3, ils pourront non seulement collecter des informations sur les appareils, mais également contrôler ces appareils. Heureusement, il existe un certain nombre de mesures que les administrateurs peuvent utiliser pour se protéger contre cette vulnérabilité, notamment :
- Assurez-vous qu'aucun agent SNMP n'utilise DHCP (risque réduit d'usurpation d'identité).
- Utilisez IPsec (pour protéger le processus de découverte).
- Utilisez le modèle de sécurité du transport (TSM) pour sécuriser le trafic.
Injection de commandes SNMP (GE et Symantec Web Gateway)
Avec SNMP, vous devez non seulement vous soucier des vulnérabilités du protocole, mais également mettre à jour vos appareils. Un micrologiciel de périphérique obsolète pourrait donner aux attaquants la possibilité de commencer à exécuter des commandes, provoquant ainsi toute une série de problèmes.
Nous avons répertorié ci-dessous deux vulnérabilités connues d’injection de commandes :
- Les adaptateurs UPS SNMP/Web de General Electric Industrial Solutions dotés d'un micrologiciel obsolète (4.8 et inférieur) permettent aux utilisateurs distants d'exécuter des commandes.
- SNMPConfig.php dans la console Symantec Web Gateway permet aux utilisateurs distants d'exécuter des commandes (dans les versions 5.2.1 et inférieures)
Garder le micrologiciel de votre réseau à jour, que ce soit manuellement ou avec un outil de gestion de configuration, élimine les vulnérabilités que les attaquants pourraient exploiter. Cela rend plus difficile pour eux d’accéder à vos appareils et de lancer des attaques par injection de commandes.
Comment trouver les vulnérabilités SNMP : tests d'intrusion
Un moyen simple d’identifier les problèmes de configuration consiste à effectuer des tests d’intrusion. Les tests d'intrusion consistent à incarner un attaquant et à tenter de pirater votre réseau dans le but de découvrir des vulnérabilités afin de pouvoir les corriger avant qu'un véritable attaquant n'ait la possibilité de les exploiter.
Dans cette section, nous allons voir comment trouver les chaînes de communauté SNMP avec NMAP (Mappeur de réseau) sous Linux. NMAP est un outil gratuit d'analyse des vulnérabilités qui fonctionne via la ligne de commande. SNMP fonctionne sur le port UDP 161. Vous pouvez exécuter une analyse UDP dans NMAP en entrant la commande suivante (sU spécifie le port, sV spécifie la détection de version et l'adresse IP de votre routeur) :
|_+_|L'analyse UDP prendra quelques minutes. Une fois l'analyse terminée, vous verrez l'ÉTAT, le SERVICE et la VERSION des ports 161 et 162.
Après avoir vérifié que le port est ouvert, vous pouvez exécuter un script NMAP pour forcer brutalement les informations d'identification de la chaîne de communauté. Vous pouvez le faire en entrant la commande suivante :
|_+_|Une fois l'analyse terminée, vous verrez une liste des chaînes de communauté découvertes par NMAP. Si aucune information d'identification n'est trouvée, NMAP ne produira aucune sortie.
Comme vous pouvez le constater, si vous utilisez une version antérieure de SNMP, il est très facile pour un pirate informatique de rechercher les chaînes de communauté. L'utilisation de SNMPv3 ferme ce point d'entrée potentiel, ce qui oblige les cybercriminels à redoubler d'efforts pour accéder à vos informations.
Comment se protéger contre les vulnérabilités SNMP : meilleures pratiques
Bien que SNMP ouvre de nombreuses options de mise en réseau, il doit être soigneusement sécurisé pour éviter les failles de sécurité. S’il n’est pas correctement sécurisé, l’intrus pourra obtenir des informations sur les tables ARP, les noms d’utilisateur et les connexions TCP. Vous pouvez assurer la sécurité de SNMP en suivant les bonnes pratiques ci-dessous :
1. Désactivez SNMP sur les hôtes lorsque vous ne les utilisez pas
Si vous n'utilisez pas SNMP sur un hôte, désactivez-le. La désactivation de SNMP empêchera le protocole d'agir comme un point d'entrée pour les attaquants afin qu'il n'y ait aucune possibilité d'écoute non autorisée.
2. Modifiez la chaîne de lecture de la communauté SNMP par défaut
La plupart des fournisseurs de périphériques compatibles SNMP fournissent des équipements avec la chaîne de communauté par défaut « public ». Bien que la chaîne de communauté par défaut soit pratique pour configurer un appareil, elle doit être modifiée, sinon un attaquant pourrait l'utiliser pour collecter des informations sur votre réseau.
3. Bloquez le trafic SNMP vers les ports 161 et 162
Si les ports UDP 161 et 162 sont ouverts, les attaquants ont la possibilité d'accéder à votre trafic SNMP et potentiellement la possibilité de reconfigurer vos appareils et de perturber le fonctionnement normal. Pour lutter contre cela, vous pouvez bloquer le trafic vers les ports 161 et 162 au niveau du pare-feu. Alternativement, vous pouvez choisir de surveiller le trafic pour vous méfier des activités malveillantes.
4. Créer des listes de contrôle d'accès (ACL)
Les listes de contrôle d'accès (ACL) sont utiles car elles vous permettent de restreindre l'accès aux ordinateurs afin que seuls les ordinateurs autorisés puissent accéder à un périphérique SNMP. Le filtrage des accès empêche les attaquants d'entrer et réduit le risque de violation de données. Créez une ACL pour tous les appareils dotés d'autorisations SNMP en lecture et/ou en écriture.
5. Mettez régulièrement à jour les logiciels sur tout votre réseau
La mise à jour régulière du logiciel de vos appareils garantit qu'il n'existe aucune vulnérabilité non corrigée que les pirates pourraient utiliser pour pirater votre appareil. Il est également recommandé de maintenir à jour le logiciel de l'appareil pour la sécurité générale du réseau et pour éviter d'autres types de menaces telles que les logiciels malveillants et les ransomwares.
6. Restreindre l'accès aux appareils SNMP
Limitez l'accès aux appareils compatibles SNMP en limitant les nœuds disposant d'autorisations de lecture-écriture et attribuez des autorisations en lecture seule lorsque cela est possible. La configuration des appareils avec des autorisations en lecture seule limitera la capacité des utilisateurs à modifier les paramètres de l'appareil, réduisant ainsi le risque d'attaques DoS et d'autres modifications malveillantes si un appareil est compromis.
7. Choisissez des chaînes communautaires solides
Les chaînes de communauté sont comme des mots de passe dans le sens où elles doivent être aussi fortes que possible. Créez des chaînes de communauté de plus de 20 caractères, avec un mélange de lettres majuscules, de lettres minuscules, de chiffres et de caractères spéciaux. C’est également une bonne idée d’éviter les mots du dictionnaire ou les mots liés à vous ou à votre entreprise. N'oubliez pas que les attaquants peuvent tenter de forcer votre mot de passe sans être bloqué !
8. Évitez NoAuthNoPriv et utilisez AuthNoPriv ou AuthPriv (SNMPv3)
Évitez d'utiliser le mode NoAuthNoPriv car il ne crypte pas les transmissions. Utilisez plutôt le mode AuthNoPriv pour crypter les informations d'authentification et configurez-le pour utiliser MD5 et SHA pour plus de sécurité. Si vous avez besoin de plus de sécurité, vous pouvez utiliser le mode AuthPriv pour crypter les informations d'authentification et les réponses de l'appareil au détriment des performances du système.
9. Configurer les utilisateurs SNMP avec des vues (SNMPv3)
Utilisez la commande SNMP view pour limiter les OID et les données de performances qu'ils peuvent afficher. Limiter l'accès aux données de performances signifie que si un appareil est compromis, l'intrus n'a accès qu'à des informations partielles.
Les vulnérabilités SNMP sont-elles toujours une menace ?
Même si vous êtes bien plus susceptible d’être la cible de menaces telles que les logiciels malveillants, les tentatives de phishing et les logiciels malveillants, les vulnérabilités SNMP ne doivent pas être ignorées lorsqu’une seule attaque peut entraîner une violation de données coûteuse ou une attaque DoS qui vous met hors de combat. Prendre le temps de mettre en œuvre certaines configurations de base vaut bien le temps investi si l’on considère que le coût moyen des temps d’arrêt est de 5 600 $ par minute.
Optez pour SNMPv3 (si vous le pouvez !)
SNMP est un protocole de surveillance réseau essentiel pour les administrateurs réseau et fournit une tonne d’informations de surveillance précieuses, mais il est important d’être conscient des risques. Nous venons de supprimer le service de certaines des vulnérabilités de SNMP, des faiblesses du protocole lui-même aux exploits via des appareils tiers.
Ainsi, lorsque vous utilisez SNMP, vous devez vous assurer que vous portez une attention particulière à la version que vous utilisez (idéalement SNMPv3 – mais n'oubliez pas qu'il existe encore des vulnérabilités contre lesquelles vous devez vous défendre !) et aux versions du micrologiciel de vos périphériques réseau. Le simple fait de garder vos appareils à jour peut vous rendre la vie beaucoup plus facile.
N'oubliez pas que les versions SNMP 1, 2 et 2c présentent le niveau de risque le plus élevé car les chaînes de communauté sont communiquées en texte clair et peuvent être utilisées par des attaquants lors d'une attaque.
FAQ sur les vulnérabilités SNMP
SNMP représente-t-il un risque pour la sécurité ?
SNMP est souvent utilisé sans aucun cryptage, ce qui en fait un risque pour la sécurité. Cela signifie qu'il est très important de protéger votre réseau contre les intrusions. SNMP v3 est sécurisé. Cependant, comme il est compliqué à mettre en place, de nombreux gestionnaires de réseaux préfèrent ne pas y passer.
SNMP est-il un protocole sécurisé ?
SNMP v3 est sécurisé. Cependant, SNMP v1 et SNMP v2c ne sont pas sécurisés. SNMP v3 inclut des processus d'authentification et les messages sont cryptés.
SNMP doit-il être exposé à Internet ?
Les messages SNMP doivent être protégés. Lorsque les systèmes de surveillance fonctionnent sur Internet pour consolider la surveillance de plusieurs sites, la transmission des messages SNMP sur Internet doit être cryptée. Une technique pour cette activité consiste à établir un VPN entre les sites et à l'utiliser pour protéger le flux SNMP.