Le Protocole SNMP

20
3/3/2015 1) Le Protocole SNMP http://d.nouchi.free.fr/SNMP/SNMP.htm 1/20 David NOUCHI Annexe A DESS SSI

description

Le Protocole SNMP

Transcript of Le Protocole SNMP

Page 1: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 1/20

David NOUCHI                  Annexe ADESS SSI

             

  

  

 

 

  

   

     

Page 2: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 2/20

      

Table des matières  1.       Définition et Fonctionnement                                                                  p 3 

1.1.          Fonctionnement général de SNMP                                               p 31.2.          SMI : Structure of Management Information                                  p 31.3.          Extension de la MIB                                                            p 41.4.          Les différents types d‛opérations                                               p 41.5.          Format des messages SNMP                                                     p 71.6.          Les noms de  communautés                                                      p 71.7.          Les agents SNMP                                                                p 81.8.          Les manageurs SNMP                                                            p 81.9.          Avantages et inconvénients de SNMPv1                                         p 91.10.      SNMPv2                                                                         p 101.11.      SNMPv3                                                                         p 11

 2.     Failles de sécurité du protocole SNMP & Solutions                                  p 14 

2.1.          Introduction                                                                     p 142.2.          Description                                                                      p 152.3.          Solutions                                                                         p 16

a.       Appliquer un patch conseillé par votre fournisseur                                         p  16b.       Neutraliser le service de SNMP                                                                     p  16c.       Filtrer les entrées                                                                                          p  16d.       Filtrer le trafic SNMP des hôtes internes non autorisés                                  p  17e.       Changer la chaîne de caractères (nom) de la communauté par défaut              p  17f.       Isoler le trafic SNMP sur un réseau séparé                                                    p  18g.       Filtrer les sorties                                                                                           p  18h.       Outils et techniques de partage                                                                      p  18

2.4.          L'Information des fournisseurs                                                 p 19  

     

Page 3: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 3/20

  

Ce rapport de DESS de fin d‛étude sur la sécurité des systèmes d‛information présente le protocoleSNMP utilisé dans le logiciel HP OpenView que j‛ai étudié durant mon stage à la DGA Toulon au CentreTechnique des Systèmes Navals.

 Dans une première partie je vais décrire le fonctionnement général du protocole SNMP ainsi que ses

différentes versions avec leurs avantages et leurs inconvénients respectifs.Dans une deuxième, j‛étudierai ses failles de sécurité ainsi que les méthodes à appliquer pour s‛en

prémunir.Enfin dans une dernière, j‛analyserai les faiblesses du logiciel HP OpenView ainsi que les différentes

solutions à mettre en place pour les contourner.

 1. Définition et Fonctionnement 

1.1. Fonctionnement général de SNMP 

Le protocole SNMP (Simple Network Management Protocol) a été développé pour permettre àl‛administrateur d‛interroger les éléments de son réseau sans se déplacer. Le principe de SNMP est trèssimple : sur chacune des machines, on installe un petit programme : l‛agent SNMP. Cet agent enregistreen permanence des informations relatives à la machine. Il stocke ces informations dans une base dedonnées appelée MIB (Management Information Base).

      Ainsi, de son ordinateur, l‛administrateur peut interroger chacune de ses machines et obtenir lesinformations souhaitées, comme par exemple le nombre d‛octets reçus et envoyés... Il peut aussi enmodifier certaines. 

Le protocole SNMP fonctionne au niveau 7 du modèle OSI, mais se situe directement au-dessus d‛UDP.Il fonctionne sur un modèle client serveur, où il n‛y a qu‛un seul client, la station d‛administration (NMS =Network Management Station) et de nombreux serveurs (chaque agent SNMP), le client interrogeant lesserveurs pour récupérer les informations. 

Chaque agent est placé sur un nœud du réseau « administrable » (MN : Managed Node). Ces nœudspeuvent être soit des hôtes (stations de travail ou serveurs), soit des éléments d‛interconnexion (switchs,hubs, routeurs), soit des supports physiques (câbles).

 1.2. SMI : Structure of Management Information

 Pour se retrouver dans la foule d‛informations proposées par chaque agent, on a défini une structure

particulière pour les informations, appelée SMI. Chaque information de la MIB peut être retrouvée soit àpartir de son nom de variable, soit à partir d‛un arbre de classification. Cela revient à parcourir des sous-dossiers et dossiers d‛un disque dur… 

Supposons que vous souhaitiez consulter la variable System d‛un hôte, vous pouvez soit lui demander lavariable System directement, soit lui demander la variable ayant pour OID (Object IDentification)1.3.6.1.2.1.1… correspondant à l‛arborescence de la variable (ISO, Identified Organization, dod, Internet,Management, MIB2, System).

Page 4: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 4/20

 Cela peut paraître assez contraignant à première vue, mais le nombre de variables étant important, on

ne peut se souvenir de chaque nom. Par contre, il existe de nombreux logiciels permettant d‛explorer laMIB de façon conviviale, en utilisant cette classification.Voici ci dessous un exemple d‛arbre MIB : 

 

1.3. Extension de la MIB 

Au bout d‛un moment, les variables choisies pour la MIB (puis la MIB2) se sont avérées insuffisantespour plusieurs applications. On va donc trouver deux autres types de MIB que sont les Private MIB et lesMIB R-MON (Remote network MONitoring).

     Les Private MIB, représentées en 1.3.6.1.4 dans la classification SMI, permettent aux entreprises derajouter des variables pour une implémentation particulière des agents SNMP. Cela leur permet d‛ajouterde nouvelles variables en fonction des applications qu‛elles veulent développer.

        Les MIB R-MON permettent par exemple de placer des agents SNMP sur des le trafic.L‛administrateur pourra l‛interroger pour avoir des informations sur les collisions, les débits à un endroitprécis.

 1.4. Les différents types d‛opérations

 Deux situations sont possibles pour les échanges de données. Soit l‛administrateur réseau demande

une information à un agent et obtient une réponse, soit l‛agent envoie de lui-même une alarme (trap) àl‛administrateur lorsqu‛un événement particulier arrive sur le réseau. Il est donc possible que l‛agent prévienne l‛administrateur de son propre chef si un incident survient.  Il existe quatre types de requêtes : 

Page 5: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 5/20

         GetRequest : permet d‛obtenir une variable.         GetNextRequest : permet d‛obtenir la variable suivante (si existante, sinon retour d‛erreur).         GetBulk : " permet la recherche d‛un ensemble de variables regroupées. "         SetRequest : permet de modifier la valeur d‛une variable. 

Puis, les réponses : 

         GetResponse : permet à l‛agent de retourner la réponse au NMS.         NoSuchObject : informe le NMS que la variable n‛est pas disponible. 

Les types d‛erreurs sont les suivants : NoAccess, WrongLenght, WrongValue, WeongType,WrongEncoding, NoCreatio, NoWritable et AuthorisationError. Les alertes (traps) sont ColdStart, WarmStart, LinkUP et AuthentificationFailure.  Type de PDU (Protocol DataUnits)

Nom

0 GetRequest1 GetNextRequest2 SetRequest3 GetResponse4 Trap

Le paquet SNMPv1 (La version 1 est la plus utilisée) 

SNMP est un protocole, comme son nom l‛indique, pour effectuer de la gestion de réseau. Il permet decontrôler un réseau à distance en interrogeant les stations qui en font partie sur leur état et modifierleur configuration, faire des tests de sécurité et observer différentes informations liées à l‛émission dedonnées. Il peut même être utilisé pour gérer des logiciels et bases de données à distance. Depuis qu‛ilest devenu un standard TCP/IP, son utilisation a beaucoup augmenté. D‛ailleurs, il est le protocole le plusutilisé pour gérer des équipements de réseau (routeurs, ponts, etc.) et beaucoup de logiciels de gestionde réseau sont basés sur ce protocole. Composantes pour l‛utilisation Ce qui fait partie de l‛utilisation du SNMP dans un réseau: 

1.     Une station de gestion NMS (Network Management Station) : C‛est la station qui exécute unprogramme de gestion SNMP. Son but principal est de contrôler les stations du réseau et de lesinterroger sur différentes informations. . Sa configuration matérielle doit posséder unprocesseur relativement rapide, beaucoup de mémoire (256 Mo minimum) et un espace disquesuffisant (pour archiver les informations).

 2.     Des éléments de réseaux avec des agents : Ils sont les éléments à gérer sur le réseau (ex :

logiciels, stations de travail, routeurs, concentrateurs, ponts, etc.). L‛agent est un module résidantdans chaque nœud du réseau qui a pour fonction d‛aller chercher les informations du système afinde tenir sa table MIB à jour.

 3.     Les tables MIB : Elles représentent une base de données maintenue par l‛agent qui contient les

Page 6: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 6/20

informations sur les transmissions de données et sur les composantes de la station ou du routeur,etc. (ex : uptime, configuration du routage, état du disque et du port série, nombre de paquetsreçus et envoyées, combien de paquets erronés reçus, etc.). Elles contiennent l‛ensemble desvariables TCP/IP de la station. Ce sont les informations contenues dans ces tables qui sontdemandées par la station de gestion afin d‛effectuer son travail.

 Fonctionnement 

SNMP fonctionne avec des requêtes, des réponses et des alertes. Autrement dit, NMS envoie desrequêtes à l‛agent sur chaque élément du réseau et celui-ci doit exécuter la requête et envoyer saréponse. Il peut aussi rencontrer des alertes asynchrones venant des agents voulant avertir NMS d‛unproblème. Voici ci-dessous un exemple d‛utilisation de SNMP : 

  

1.5. Format des messages SNMP Message SNMP standard

 Le champ Version précise la version du protocole SNMP utilisée. Le champ Communauté est utilisé afind'identifier le manageur et filtrer l'accès aux informations. Le champ PDU SNMP est constitué par l'unedes trois PDU suivantes: 

Page 7: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 7/20

PDU GetRequest, GetNextRequest et SetRequest

 Le champ Type indique s'il s'agit d'une PDU GetRequest, GetNextRequest ou SetRequest. La réponse à larequête sera retournée avec la valeur fournie par le champ Request-Id, afin d'associer la réponse à larequête. Le champ Affectation des variables est une suite de couples d'identificateurs et de valeursassociées. Les valeurs sont fournies uniquement dans le cas d'une PDU SetRequest.  PDU GetResponse

 Le champ Type permet de reconnaître une PDU SetResponse des PDU précédentes (dont le format estidentique). Les champs error-status et error-index nous informent sur le résultat de la requête.  PDU Trap

 Affectation

 1.6. Les noms de communautés

 L'accès aux informations des MIBs est contrôlé par un mécanisme simple utilisant des noms de

communautés. Un nom de communauté peut être assimilé à un mot de passe connu par l'agent et utilisépar le manageur pour se faire reconnaître. Les noms de communautés sont configurés sur l'agent etautorisent trois types d'accès sur les variables de la MIB gérée par l'agent : 

         Pas d'accès         Read-Only         Read-Write.

 

Page 8: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 8/20

 Le nom de communauté circule en clair sur le réseau. Beaucoup d'administrateurs préfèrent ainsi

limiter l'accès sur les MIBs en lecture seule, et se déplacent sur les équipements pour modifier certainesvaleurs.

 1.7. Les agents SNMP

 L'agent SNMP collecte les informations de la MIB de l'équipement et répond aux requêtes du

manageur. On trouve maintenant des agents SNMP sur tout les équipements dits « administrable ». Lesconstructeurs fournissent également des agents pour les stations du réseau.

Toutefois, certains vieux équipements administrables ne sont pas conformes à SNMP. Dans ce cas, ilest possible d'utiliser un agent proxy sur un équipement SNMP, qui va servir d'intermédiaire avec celuinon SNMP. 

 

1.8. Les manageurs SNMP 

Les manageurs sont chargés de questionner les agents et de fournir à l'administrateur lesinformations récupérées. Ils doivent également gérer les traps et prévenir l'administrateur.Les outils SNMP vont du simple "browser" de MIB qui permet juste de lire les variables, jusqu'à la plate-forme d'administration qui peut les afficher de façon pertinente sur des cartes du réseau. Le marché des plates-formes d'administration est réparti entre deux grandes familles: 

         les constructeurs de systèmes distribués (HP, BULL, IBM):         HP OpenView (pour Unix ou Windows NT)         ISM         Tivoli

         Les constructeurs de solutions pour réseaux locaux :         Novell Network Management System

 9. Avantages et inconvénients de SNMPv1

 9-1. Avantages                        

    L'avantage majeur dans le fait d'utiliser SNMP est qu'il est de conception simple. Il est donc aisé

de l'implémenter sur un réseau, puisqu'il ne nécessite pas une longue configuration et qu'il est depetite taille.

    Un autre atout de SNMP est qu'il est très répandu aujourd'hui. Presque tous les grandsconstructeurs de matériel hardware inter-réseaux, tels que les commutateurs ou les routeurs,

Page 9: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 9/20

implémentent le support SNMP dans leurs produits.    L'expansion est un autre privilège de SNMP. De par sa simplicité de conception, il est facile de

mettre à jour le protocole pour qu'il réponde aux besoins des futurs utilisateurs.   Enfin, SNMP est basé sur le protocole de transport UDP, ce qui nécessite moins de ressources et

de connexions simultanées qu'avec TCP. 

9-2. Inconvénients

La puissance de SNMP à administrer un réseau n'est plus à démontrer, mais il faut avouer que ceprotocole souffre de quelques défauts : 

                 A chaque réponse reçue correspond une requête. Le transfert de données à travers le réseaus'avère donc assez important, ce qui surcharge ce dernier par rapport à ce qu'il aurait été en casde non administration.

                 Ce protocole n'est pas très pratique pour ramener une grosse quantité de données comme unetable de routage par exemple.

         Les alarmes ne sont pas acquittées et un agent n'est jamais sûr de bien avoir averti sa stationd'administration.

                 L'authentification reste très simple et donc non sécurisée. Le mot de passe et les données decontrôle sont envoyés sans chiffrement sur le réseau.

                 SNMP ne permet pas de "commander" un agent, cette manipulation ne peut se faire qu'enmodifiant une entrée de sa MIB.Exemple : On ne peut pas demander à une passerelle de terminer une connexion TCP donnée, maison peut modifier la valeur tcpConnState pour que cette connexion soit fermée.

         SNMP ne supporte pas la communication de station d'administration à station d'administration. Ilest donc impossible à une station d'administration de faire des requêtes à un périphériqueadministré par une autre station en passant par son intermédiaire.

 

1.10. SNMPv2 

Devant le succès de SNMP, il a vite semblé nécessaire de développer un successeur qui corrigerait sesnombreuses faiblesses, notamment en terme de sécurité.Une version améliorée a été proposée sous le nom SNMPv2. Elle apporte des mécanismesd'authentification et de chiffrement ainsi que des méthodes de consultation des informations réseauxplus efficaces. 

Plus complexe que SNMP (v1), qui est par ailleurs bien implanté, SNMPv2 ne connaît pas de réel succèsà ce jour. 

1.10.1. Domaine d'application 

SNMPv2 est conçu pour faciliter la gestion de n'importe quelle ressource, pas seulement deressources réseaux. SNMPv2 peut donc être utilisé pour gérer des applications, des systèmes etcommuniquer entre gestionnaires.Grâce à l'ajout des fonctions de communication de gestionnaire, SNMPv2 peut être aussi utilisé engestion distribuée. 

SNMPv2 propose un cadre concis et flexible pour décrire les informations en promouvantl'extensibilité dans la définition de MIBs.De même, SNMPv2 propose un moyen pour décrire les conditions de "conformance" à la définition de MIB

Page 10: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 10/20

standard ou bien, pour la MIB d'un agent donné, les capacités effectivement implémentées ou non. 

1.10.2. Taille, vitesse et efficacité 

SNMPv2 reste "simple" pour permettre le développement de petites et rapides implémentations. Leformat des messages de type trap n'est plus différent des autres messages afin de simplifier lesroutines d'interprétation des messages. 

Le changement majeur dans cette catégorie est l'ajout de la commande get bulk pour l'échange degrandes quantités d'informations. La commande get bulk est une requête de plusieurs get nextsuccessifs. Auparavant, on était obligé de faire une succession de get next pour lire une table, avecSNMPv2 une seule commande et réponse peuvent maintenant suffire pour cela. 

1.10.3. Sécurité et privautés 

SNMPv2 permet de garantir l'authentification des messages et/ou le chiffrement des messages. Cesystème est très riche et permet de définir l'accès à chaque variable, le type de sécurité et de protocoleutilisé pour chaque transaction. Il est ainsi possible de spécifier qui peut faire quelle opération sur quellevariable et avec quel degré de sécurité : non sécurisé, authentifié ou chiffré.     

1.10.4. Déploiement et compatibilité 

SNMPv2 a été conçu pour être utilisé sur TCP/IP, OSI et d'autres architectures de communication.SNMPv2 permet aussi de communiquer avec des plates-formes supportant le protocole SNMPv1.

 SNMPv2 va certainement compliquer l'image de la gestion réseau pour la plus part des utilisateurs.

Certaines personnes attendent que SNMPv2 devienne un standard, d'autres veulent profiterimmédiatement des avantages de SNMPv2 et enfin, comme toujours, d'autres refusent radicalement toutchangement ... en attendant OSI... Ceci conduira tôt ou tard à des problèmes d'interopérabilité. 

Aujourd'hui, SNMPv2 se met lentement en place, quelque fois de façon partielle, où la partie sécuritéest souvent délaissée. De ce fait, le contrôle d'accès se réduit à un accès non sécurisé pour toutes lesvariables. 

L'évolution de SNMPv1 vers SNMPv2 est une étape importante dans l'évolution de SNMP. Le champd'application couvert maintenant par SNMP s'est largement étendu.Toutefois, il faut bien se rappeler que SNMP est un standard d'échange d'informations de gestion. Cecin'est qu'une partie du problème de la gestion réseau. En ce qui concerne l'interface utilisateur, il resteencore beaucoup à faire. Il y a bien sur la présentation des informations mais aussi leur interprétation. 

Il serait bien de disposer, par exemple, d'un langage permettant à l'utilisateur ou aux vendeurs dedéfinir un traitement à effectuer avec les informations obtenues par SNMP. Par exemple, les dispositionsà prendre ou les actions à effectuer face aux conclusions que le système peut tirer de ces informations. 

Si SNMPv2 poursuit son évolution vers un protocole de gestion simple et performant, il reste encoredu chemin à parcourir avant de disposer de vrais outils de gestion réseau.

Page 11: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 11/20

  

      11. SNMPv3              1.11.1. Les améliorations de SNMPv3 

Comme nous avons pu le voir dans la partie précédente, le contrôle d'accès pour les versionsantérieures à SNMPv3 est approximatif et la confidentialité inexistante.  SNMPv3, quant à lui, résout leproblème de la sécurité et de la modularité. Les nouveautés apportées par SNMPv3 sont les suivantes :

Sécurité :         Authentification et chiffrement.         Autorisation et contrôle d'accès.

Administration :         Nommage des entités.         Gestion de la compatibilité.         Destinations des notifications.         Configuration à distance.

             1.11-2. Le fonctionnement de la sécurité dans SNMPv3 

Cette partie décrit les mécanismes de sécurité utilisés dans SNMPv3. Ils sont au nombre de quatre etchacun d‛entre eux a pour but d'empêcher un type d'attaque : L'authentification : 

L'authentification a pour rôle d'assurer que le paquet reste inchangé pendant la transmission, et quele mot de passe est valide pour l'usager qui fait la requête.Pour construire ce mécanisme, des fonctions de hachage à une seule direction sont nécessaires. Cesfonctions prennent en entrée une chaîne de caractères de longueur indéfinie, et génèrent en sortie unechaîne d'octets de longueur fixe (16 octets pour MD5, 20 octets pour SHA-1).

Ces fonctions de hachage à une seule direction ont la propriété suivante :

Étant donné une chaîne d'octets qui est le résultat d'une fonction de hachage à une direction. Il doit êtretrès difficile de trouver une quelconque chaîne d'entrée qui, une fois passée dans la fonction, donne cettemême chaîne en sortie.

    Pour authentifier l'information qui va être transmise, on doit aussi possédé un mot de passe qui est «partagé ». Celui-ci ne doit donc être connu que par les deux entités qui s'envoient les messages.

Les étapes d'authentification sont alors les suivantes :         Le transmetteur groupe les informations à transmettre avec le mot de passe.         On passe ensuite ce groupe dans la fonction de hachage à une direction.         Les données et le code de hachage sont ensuite transmis sur le réseau.         Le receveur prend le bloc des données et y ajoute le mot de passe.         On passe ce groupe dans la fonction de hachage à une direction.         Si le code de hachage est identique à celui transmis, le transmetteur est authentifié. 

Avec cette technique, le mot de passe est validé sans qu'il ait été transmis sur le réseau. Quelqu'un quisaisit les paquets SNMPv3 passant sur le réseau ne peut pas facilement trouver le mot de passe.  Pour ce

Page 12: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 12/20

qui est de SNMPv3, l'authentification se fait à l'aide de HMAC-MD5-96 et HMAC-SHA- 96.

     Il est important de rappeler que l'étape d'authentification ne vise pas à cacher l'existence du paquet ou à le rendre illisible. Si uniquement l'authentification est appliquée, les personnes qui saisissent les paquets passant sur le réseau peuvent encore voir le contenu du paquet. Toutefois, elles nepeuvent pas en changer le contenu sans connaître le mot de passe. La localisation des mots de passe : 

SNMP pose un problème de sécurité particulier. Une plate-forme de gestion peut communiquer avecdes dizaines ou quelquefois des centaines d'agents. Si le même mot de passe est utilisé par chaque agent,on court le risque qu'un des agents soit volé ou compromis. La connaissance du mot de passe compromettrait alors la sécurité entière du domaine d'administration.

        De la même façon, utiliser un mot de passe différent pour chaque agent n'est pas une solutionenvisageable : il n'est pas raisonnable pour un administrateur de connaître des dizaines ou des centaines de mots de passe différents. 

La solution adoptée par SNMPv3 est d'utiliser un seul mot de passe, mais de passer par une étape de « localisation ». Un mot de passe localisé ne fonctionne qu'avec un seul agent. Avant de localiser, il nous faut une chaîne de caractères qui soit unique à chaque agent. Avec SNMPv3, on utilise le « ContextEngineID ». Cette chaîne est générée par un ensemble de données commel'adresse MAC de la carte Ethernet, l'adresse IP, des nombres aléatoires ou une chaîne spécifiée par l'administrateur.

     On commence par trouver le ContextEngineID de l'agent auquel on veut envoyer une requête. On groupe le ContextEngineID et le mot de passe ensemble et on passe le groupe dans une fonction de hachage à une direction.

    C'est le mot de passe localisé qui est mémorisé dans l'agent et qui est utilisé par la plate-forme. Il estemployé dans l'authentification et le chiffrement des paquets SNMPv3. Les détails de la localisation sont décrits dans le RFC2274. Cette étape est très coûteuse en temps processeur. Les plates-formes de gestion sont donc instruites d'utiliser un cache pour éviter derépéter ce calcul plusieurs fois. Le chiffrement : 

Le chiffrement a pour but d'empêcher quiconque de lire les informations de gestion contenues dans unpaquet SNMPv3 en écoutant sur le réseau les requêtes et les réponses.Avec SNMPv3, le chiffrement de base se fait sur un mot de passe « partagé » entre la plate-forme etl'agent. Ce mot de passe ne doit être connu par personne d'autre. Pour des raisons de sécurité, SNMPv3 utilise deux mots de passe : un pour l'authentification et un pour le chiffrement. Onrecommande à l'usager d'utiliser deux mots de passe distincts. Ceci permet au système d'authentification et au système de chiffrement d'être indépendants. Un de ces systèmes ne peut pas compromettre l'autre.

     SNMPv3 se base sur le DES (Data Encryption Standard) pour effectuer le chiffrement. Contrairement à l'authentification qui est appliquée à tout le paquet, le chiffrement est seulementappliqué sur le «ScopedPduData», voir Figure ci-dessous : Description d'un paquet SNMPv3. 

Page 13: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 13/20

 L'estampillage du temps : 

L'estampillage du temps doit empêcher la réutilisation d'un paquet SNMPv3 valide que quelqu'un adéjà transmis. En effet, si une requête est transmise, les mécanismes d'authentification, de localisationet de chiffrement n'empêchent pas quelqu'un de saisir un paquet SNMPv3 valide du réseau et de tenterde le réutiliser ultérieurement, sans modification.  On appelle cette attaque le « replay attack ». 

Pour l‛éviter, le temps est estampillé sur chaque paquet. Quand on reçoit un paquet SNMPv3, oncompare le temps actuel avec le temps dans le paquet. Si la différence est supérieur à 150 secondes, lepaquet est ignoré.              1.11.3. Conclusion 

Contrairement à ce que l'on pourrait penser, SNMPv3 n'est pas compatible avec SNMPv1. Ceci n'empêche pas SNMPv1 de fonctionner à coté de SNMPv3 (« Dual stack »), il suffit de placer deux agents ou deux plates-formes de gestion côte à côte.Les standards SNMPv1 et SNMPv2c décrivent essentiellement un protocole de transport des données entre un agent et une plate-forme de gestion. Rien n'est mentionné sur l'architecture ou l'environnement dans lequel SNMP doit être utilisé. 

Avec l'arrivée de SNMPv3, le standard SNMP décrit maintenant une architecture pour la plate-forme de gestion et l'agent. Toutefois, SNMP reste un protocole simple, dont la vocation première est d'être placé dans les instruments de réseau. SNMP est donc un bon protocole pour obtenir des informations de gestion à partir des équipements de gestion, maintenant encore meilleur avec l'ajout de la sécurité. 2. Failles de sécurités du protocole SNMP 

2.1. Introduction 

Cette partie présente les différentes failles de sécurité rencontrées par l‛utilisation du protocoleSNMP (Simple Network Management Protocol) intégré et utilisé dans de nombreux dispositifs de diversconstructeurs.

Dans une première partie, je vais présenter les vulnérabilités rencontrées par l‛utilisation de ceprotocole et dans une deuxième, je vais montrer les différents moyens que l‛on peut utiliser pour seprémunir de ces failles de sécurités. Systèmes Affectés 

Des produits d‛un très grand nombre de fournisseurs peuvent être affectés. En plus des fournisseursqui ont fourni la rétroaction pour cette partie, une liste de fournisseurs entrés en contact avec le CERTconcernant ces problèmes est fourni dans la partie solution un peu plus loin.

Page 14: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 14/20

 De nombreux autres systèmes se servant de SNMP peuvent également être vulnérables mais n'ont pas

été spécifiquement examinés. Vue d'ensemble 

De multiples vulnérabilités ont été rapportées dans les réalisations de tests SNMP effectuées pardivers fournisseurs. Ces vulnérabilités peuvent permettre un accès privilégié non autorisé, des attaquespar déni de service, ou causer des comportements instables.

2.2. Description 

Le Simple Network Management Protocol (SNMP) est un protocole largement déployé qui estgénéralement employé pour surveiller et contrôler des dispositifs réseau. La version 1 du protocole(SNMPv1) définit plusieurs types de messages SNMP qui sont utilisés pour demander des changementsd'information ou de configuration, répondre aux demandes, énumérer des objets SNMP, et envoyer desalertes non sollicitées.

 Le groupe de programmation de l‛université d'Oulu (OUSPG, http://www.ee.oulu.fi/research/ouspg/) a

rapporté de nombreuses vulnérabilités dans l‛utilisation de SNMPv1 de différents fournisseurs. Plusd'informations sur  l'OUSPG peuvent être trouvées sur le cite du CERT  :http://www.cert.org/advisories/CA-2002-03.html . 

La recherche d'OUSPG s'est concentrée sur la façon dont les agents SNMPv1 et la poignée demanageurs demandent et emprisonnent des messages. En appliquant le PROTOS c06-snmpv1 à une variétéde produits populaires utilisant SNMPv1, l'OUSPG a indiqué les vulnérabilités suivantes:  VU#107186 - De multiples vulnérabilités dans SNMPv1 emprisonnent la manipulation 

Des messages d‛alarme SNMP sont envoyés des agents aux manageurs. Un message d‛alarme peutindiquer une condition d'avertissement, d'erreur ou autrement informer le manageur sur l'état del'agent. Les manageurs SNMP doivent correctement décoder ces messages d‛alarme et traiter lesdonnées résultantes. Dans l'essai, OUSPG a trouvé de multiples vulnérabilités sur de nombreuxmanageurs SNMP qui décodent et traitent des messages d‛alarme  SNMP.

 

VU#854306 - Vulnérabilités multiples dans la manipulation de requêtes SNMPv1 

Les messages de requêtes SNMP sont envoyés des manageurs aux agents. Ces messages sont utiliséspour obtenir l'information d'un agent ou pour demander à l'agent de configurer le dispositif d‛unemachine. Les agents SNMP doivent correctement décoder ces requêtes et traiter les donnéesrésultantes. Dans l'essai, OUSPG a trouvé des vulnérabilités multiples dans la manière dont denombreux agents SNMP décodent et traitent ces messages SNMP. 

Les vulnérabilités dans le décodage, le traitement des messages SNMP par les manageurs et les agentspeuvent avoir comme conséquence des états de déni de service, des vulnérabilités dans le format deschaînes de caractères, et des débordements de buffer. Quelques vulnérabilités n'exigent pas du messageSNMP d'employer la chaîne de caractères correcte de la communauté SNMP. Impact : 

Ces vulnérabilités peuvent causer des états de déni de service, interruptions de service, et dans

Page 15: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 15/20

certains cas peuvent permettre à un attaquant d'accéder au dispositif affecté. Les impacts spécifiqueschangeront suivant le produit.

    

2.3. Solutions 

Il faut noter que plusieurs des étapes recommandées ci-dessous peuvent avoir un impact significatifsur les opérations réseau et/ou architectures réseau journalières. Il faut s‛assurer que tous leschangements basés sur les recommandations suivantes n'affecteront pas irréversiblement les possibilitésd'opérations réseau. 1. Appliquer un patch conseillé par votre fournisseur 

La partie « 2.4. » contient l'information fournie par les fournisseurs. Veuillez consulter cette partiepour déterminer si vous devez contacter votre fournisseur directement. 2. Neutraliser le service de SNMP 

En règle générale, le CERT/cc recommande de neutraliser n'importe quel service ou les possibilités quine sont pas explicitement exigées, y compris SNMP. Cependant, certains produits affectés ont montré uncomportement ou un déni de service inattendu une fois exposés à la suite d'essai d'OUSPG même siSNMP n'était pas permis. Dans ces cas, la neutralisation de SNMP devrait être employée en même tempsque les pratiques de filtrage énumérées ci-dessous pour assurer une protection additionnelle. 3. Filtrer les entrées 

Comme mesure provisoire, il est possible de limiter la portée de ces vulnérabilités en bloquant l'accèsdes services SNMP au périmètre du réseau.

 Le filtrage d'entrée contrôle l'écoulement du trafic sur le réseau. Les serveurs sont typiquement les

seules machines qui doivent accepter le trafic provenant d‛Internet. Ainsi, le filtrage des entrées devraitêtre effectué à la frontière pour interdire le trafic d'arrivée lancé par des services non autorisés. PourSNMP, le filtrage d'entrée des ports suivants peut empêcher des attaquants extérieurs au réseaud'utiliser les dispositifs vulnérables dans le réseau. 

SNMP            161/udp                       # Simple Network Management Protocol (SNMP) SNMP            162/udp                       # système de gestion des messages SNMP 

Les services suivants sont moins communs, mais peuvent être employés sur certain produits utilisantSNMP :

  snmp                          161/tcp            # Simple Network Management Protocol (SNMP) snmp                          162/tcp            # système de gestion des messages SNMP smux                         199/tcp            # SNMP Unix Multiplexer smux                         199/udp           # SNMP Unix Multiplexer synoptics-relay          391/tcp            # SynOptics SNMP Relay Port synoptics-relay          391/udp           # SynOptics SNMP Relay Port

Page 16: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 16/20

agentx                       705/tcp           # AgentX snmp-tcp-port            1993/tcp          # cisco SNMP TCP port snmp-tcp-port            1993/udp         # cisco SNMP TCP port

 Remarque  : vous devez soigneusement considérer l'impact de bloquer les services que vous pouvezemployer. 

Il est important de noter que dans de nombreuses utilisations de SNMP, le démon SNMP peut être liéà toutes les interfaces IP sur le dispositif. Ceci a des conséquences importantes quand des mesures defiltrage de paquet exigées sont utilisées pour protéger un dispositif utilisant ou permettant SNMP. Parexemple, même si un dispositif rejette des paquets SNMP dirigés vers les adresses IP de ses interfacesréseaux normales, il peut encore être possible d'exploiter ces vulnérabilités sur ce dispositif parl'utilisation de paquets dirigés aux adresses IP suivantes : 

  " tout-ceux " qui ont une adresse d‛émission (broadcast),  adresse d'émission de sous-réseau (broadcast), toutes adresses internes de réception (loopback) (généralement utilisées pour la gestion desrouteurs, et ne pas confondre avec l'adresse 127.0.0.1 de boucle de retour de la pile IP).

 Une grande attention devrait être accordée aux adresses des types mentionnés ci-dessus par la

planification d'emplacements du paquet filtrant en tant qu'élément de la stratégie de sécurité pour cesvulnérabilités. 

En conclusion, les emplacements (l‛endroit où l‛on place le filtre) peuvent bloquer l'accès aux servicesRPC suivants liés à SNMP : 

snmp              100122             na.snmp snmp-cmc snmp-synoptics snmp-unisys snmp-utk snmpv2          100138             na.snmpv2         # SNM Version 2.2.2 snmpXdmid    100249

 Veuillez noter que ce travail peut ne pas protéger les dispositifs vulnérables contre des attaquesinternes. 4. Filtrer le trafic SNMP des hôtes internes non autorisés 

Dans de nombreux réseaux, seulement un nombre limité de systèmes de gestion réseau doit lancer desmessages de requêtes SNMP. Par conséquent, il peut être possible de configurer les agents systèmesSNMP (ou les dispositifs réseaux entre les systèmes de gestion et d'agents) afin qu‛ils rejettent lesrequêtes des systèmes non autorisés. Ceci peut réduire, mais pas complètement éliminer, le risque desattaques internes. 

Cependant, il peut avoir des effets néfastes sur la charge du réseau due à la charge accrue imposéepar le filtrage, ainsi une considération soigneuse est exigée avant exécution. Les avertissementssemblables au travail précédent concernant les adresses d'émission (broadcast) et de réception (loopbac)s'appliquent ici. 5. Changer la chaîne de caractères (nom) de la communauté par défaut 

La plupart des produits utilisant ou permettant SNMP utilisent la chaîne de caractères (nom) de lacommunauté par défaut " public " pour l'accès en lecture seulement et " privé " pour l'accès lecture/écriture. Comme avec n'importe quel mécanisme connu de contrôle d'accès par défaut, le CERT/cc

Page 17: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 17/20

recommande que les administrateurs réseau changent la chaîne de caractères (c‛est-à- dire le nom) de lacommunauté en un nom de leur propre choix.

 Cependant, même lorsque les noms de communautés sont changés par défaut, ils passeront toujours en

texte clair et seront donc sujets à des attaques de reniflement de paquet (sniffing). SNMPv3 offrentdes possibilités additionnelles pour assurer l'authentification et l'intégrité comme décrit dans leRFC2574 . 

Puisque plusieurs des vulnérabilités identifiées dans ce consultatif se produisent avant que les noms decommunauté soient évaluées, il est important de noter qu‛exécuter cette seule étape n'est pas suffisantpour atténuer l'impact de ces vulnérabilités. Néanmoins, elle devrait être exécutée en tant qu‛une bonneméthode en matière de sécurité. 6. Isoler le trafic SNMP sur un réseau séparé 

Dans les situations où le blocage ou la neutralisation de SNMP n'est pas possible, l'exposition à cesvulnérabilités peut être restreint en limitant l' accès SNMP aux réseaux séparés et en faisant unegestion isolée du réseau pour qu‛il ne soit pas publiquement accessible. Bien que ceci implique idéalementdes réseaux physiquement séparés, ce genre de séparation n'est probablement pas faisable dans laplupart des environnements. 

Des mécanismes tels que LANs virtuel (VLANs) peuvent être employés pour aider à isoler le trafic surun même réseau physique. Notez que les VLANs ne peuvent pas strictement empêcher un attaquantd'exploiter ces vulnérabilités, mais elles peuvent  rendre la tâche plus difficile pour un attaquant qui veutlancer des attaques. 

Une autre option est de limiter les sites le trafic SNMP pour séparer les réseaux privés virtuels(VPNs), qui utilisent l'authentification cryptographique forte.Notez que ces solutions peuvent exiger des changements étendus à l'architecture d‛un réseau. 7. Filtrer les sorties 

Le filtrage de sortie contrôle l'écoulement du trafic pendant qu'il laisse le réseau sous le contrôle del‛administrateur. Il a besoin en général de limiter les machines fournissant des services publiques pourlancer le trafic relié à l'Internet. Dans le cas des vulnérabilités de SNMP, l'utilisation d‛un filtrage desortie sur les ports énumérés ci-dessus à votre frontière de réseau peut empêcher votre réseau d'êtreemployé comme une source pour des attaques venant d'autres sites. 8. Outils et techniques de partage 

Puisque traiter ces vulnérabilités liés aux systèmes et aux réseaux est si complexe, le CERT/ccfournira un forum où les administrateurs peuvent partager les idées et les techniques qui peuvent êtreemployées pour développer des défenses appropriées. 

2.4. L'Information des fournisseurs 

Dans cette partie se trouve les principales solutions proposées par les fournisseurs qui ont effectuédes tests sur  leur produit. Nous présenterons ici seulement les fournisseurs qui nous intéressent commeHP par exemple. Des informations plus détaillées sont données sur le site du CERT  :

Page 18: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 18/20

http://www.cert.org/advisories/CA-2002-03.html 1. Bulletin Consultatif Général De DataComm

Site de référence : http://www.gdc.com/products/bulletin.shtml  Vulnérabilités multiples dans de nombreuses implémentations du protocole SNMP.

Les applications de l‛équipe GDC emploient le protocole SNMP de HP OpenView NNM pour la gestion de lacommunication de réseau SNMP avec sa carte Manager SpectraComm (SCM). Le SCM contient un agentproxy SNMP. Recommandations:

1. Le SCM n'a pas un nom de communauté en lecture/écriture par défaut " privé " qui permet d‛éviter quedes intrus changent les configurations du matériel ou prennent la main sur la gestion ou les données duréseau informatique. Le SCM lit par défaut seulement le nom de la communauté " public ". Il est conseilléau client de changer ceci.

2. Les clients principaux de gestion réseau de GDC emploient habituellement un LAN privé séparé pourleur trafic de gestion pour éliminer l'entrée à l‛exposition extérieure.

3. Obtenez et installez les patchs de HP et de HPOV des sites énumérés.

2. HP HpOV NNM (Network Node Manager)

Quelques problèmes ont été trouvés dans le produit NNM.

Système : HP-UX utilisant le démons snmpd ou OPENVIEW

Les patchs suivants sont disponibles maintenant:

Le patch PHSS_26137 s700_800 10,20 OV EMANATE14.2Le patch PHSS_26138 s700_800 11.x OV EMANATE14.2Le patch Psov_03087 EMANATE14.2 de Solaris 2.x Chacune des trois patchs est disponible : http://support.openview.hp.com/cpe/patches/ En outre les patchs PHSS_26137 et PHSS_26138 seront bientôt disponibles.

 NOTE: Les patchs sont marquées OV(OpenView). Cependant, les patchs sont également applicables auxsystèmes qui n‛utilisent pas OpenView. N'importe quel système HP-UX 10.x ou 11.x faisant tourner les démons snmpd ou snmpdm est vulnérable.Pour déterminer si votre système de HP-UX a les démons snmpd ou snmpdm installés, faites la commandesuivante : swlist -l file | grep snmpd Si un patch n'est pas disponible pour votre plate-forme ou vous ne pouvez pas installer un patchdisponible, les démons snmpd et snmpdm peuvent être neutralisés en enlevant leurs entrées de   /etc/services et les  permissions d'exécution de /usr/sbin/snmpd/ et  usr/sbin/snmpdm. 3. Hewlett-Packard Company

Page 19: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 19/20

PROBLÈME: Vulnérabilités dans la demande de SNMP et la manipulation des alarmes.

PLATEFORME: HP 9000 série 700 séries 800 HP-UX fonctionnant sous HP-UX 10.x et 11.x  MATERIEL: Commutateurs de HP Procurve  Progiciels Du ---->> JetDirect MC/ServiceGuard,Moniteurs SME HA

DOMMAGES: Déni de service possible, interruptions de service, accès non autorisé.

SOLUTIONS: Appliquez les patchs ou mettez en application les workarounds.

Pour HP-UX: Agent de PHSS_26137 s700_800 HP-ux 10,20 OV EMANATE14.2 Agent de PHSS_26138 s700_800 HP-ux 11.x OV EMANATE14.2 PSOV_03087 Solaris 2.X EMANATE Release 14.2 Pour des systèmes utilisant OV NNM: PHSS_26286 s700_800 HP-ux 10,20 pour fixer les pièges du démon ovtrapd PHSS_26287 s700_800 HP-ux 11.x pour fixer les pièges du démon ovtrapd PSOV_03100 Solaris 2.x pour fixer les pièges du démon ovtrapd NNM_00857 de NT 4.X/Windows 2000 pour fixer les pièges du démon ovtrapd

Les clients peuvent télécharger ces patchs sous forme de mises à jour de logiciel à: http://www.hp.com/rnd/software/switches.htm

Produit                                               Version Commutateur de HP Procurve 2524 (J481Á)                F.04.08 ou plus grand Commutateur de HP Procurve 2512 (J481À)                 F.04.08 ou plus grand Commutateur 4108GL (J486Ä)                                     G.04.05 de HP Procurve ou plus grand Commutateur 4108GL-bundle (J4861A)                        G.04.05 de HP Procurve ou plus grand

PROBLÈME : NNM (NETWORK NODE MANAGER)

Quelques problèmes trouvés dans le produit de NNM ont été rapportés pour éviter certainesvulnérabilités. Les patchs sont disponibles.

MATERIEL : Progiciels Du -->> JetDirectÉtat de la version du progiciel de JetDirect--->> version X.08.32 ou inférieur : VULNÉRABLE  (où X = A à K)--->> version X.21.00  plus supérieur : NON VULNERABLE (où X = L à P)

SYSTEMES: Systèmes de HP-UX utilisant le démon snmpd ou OPENVIEW

N'importe quel système HP-UX 10.x ou 11.x faisant tourner les démons snmpd ou snmpdm estvulnérable. Pour déterminer si votre système de HP-UX a les démons snmpd ou snmpdm installés,faites la commande suivante : swlist -l file | grep snmpd

SOLUTIONS: installez les patchs appropriés

Page 20: Le Protocole SNMP

3/3/2015 1) Le Protocole SNMP

http://d.nouchi.free.fr/SNMP/SNMP.htm 20/20

Les clients peuvent télécharger ces patchs sous forme de mises à jour du logiciel à : http://www.hp.com/rnd/software/switches.htm

Les problèmes trouvés dans le produit de sont corrigés dans les patchs disponibles à: http://support.openview.hp.com/cpe/patches/nnm/6.2/s700_800_11.X.jsp

Workaround: Changez le nom de communauté et employez la liste de contrôle d‛accès comme décritdans l‛impression de HP Jetdirect.

Sécurité  : SNMPv1 se fonde sur le nom de communauté. Il est important qu‛il soit configuré sur lematériel Jetdirect et maintenu secret.

les serveurs d'impression de Jetdirect offrent un Access Control List qui peut être employé pourindiquer quels machines peuvent faire des changement de configuration SNMP sur les serveursd'impression de Jetdirect. Les étapes ci-dessous peuvent aider à empêcher l'exploitation de vulnérabilités :-> NEUTRALISEZ SNMP SUR UN SERVEUR D'IMPRESSION DE JETDIRECT

1. Mettez à jour les progiciels au niveau le plus élevé comme décrit dans le document de mise à jourde Jetdirect : http://www.hp.com/cposupport/networking/support_doc/bpj06917.html

note: La neutralisation de SNMP peut affecter la découverte de matériel et le port des moniteurs quiemploient  SNMP pour obtenir le statut du matériel.

2. Telnet au dispositif de Jetdirect (sur les derniers progiciels) et tapez:           snmp-config: 0           quit

Ceci va neutraliser complètement SNMP sur le matériel de Jetdirect.

HP recommande toujours d‛upgrader ses progiciels de Jetdirect pour éliminer les derniers bugs etpour bénéficier d‛avantage de sécurité. Ceux-ci sont téléchargeables gratuitement sous leur dernierversion. Par exemple, le dernier progiciel pour le J3110A est G.08.32. 4. Microsoft Corporation Les documents suivants concernant cette vulnérabilité sont fournis par Microsoft:http://www.microsoft.com/technet/security/bulletin/MS02-006.asp