Professional Documents
Culture Documents
1.
Dfinition et Fonctionnement
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.
1.8.
1.9.
1.10.
1.11.
2.4.
Introduction
Description
Solutions
a. Appliquer un patch conseill par votre fournisseur
b. Neutraliser le service de SNMP
c. Filtrer les entres
d. Filtrer le trafic SNMP des htes internes non autoriss
e. Changer la chane de caractres (nom) de la communaut par dfaut
f. Isoler le trafic SNMP sur un rseau spar
g. Filtrer les sorties
h. Outils et techniques de partage
L'Information des fournisseurs
p3
p 3
p 3
p 4
p 4
p 7
p 7
p 8
p 8
p 9
p 10
p 11
p 14
p 14
p 15
p 16
p 16
p 16
p 16
p 17
p 17
p 18
p 18
p 18
p 19
Ce rapport de DESS de fin dtude sur la scurit des systmes dinformation prsente le
protocole SNMP utilis dans le logiciel HP OpenView que jai tudi durant mon stage la DGA
Toulon au Centre Technique des Systmes Navals.
Dans une premire partie je vais dcrire le fonctionnement gnral du protocole SNMP ainsi que
ses diffrentes versions avec leurs avantages et leurs inconvnients respectifs.
Dans une deuxime, jtudierai ses failles de scurit ainsi que les mthodes appliquer pour sen
prmunir.
Enfin dans une dernire, janalyserai les faiblesses du logiciel HP OpenView ainsi que les
diffrentes solutions mettre en place pour les contourner.
1. Dfinition et Fonctionnement
1.1. Fonctionnement gnral de SNMP
Le protocole SNMP (Simple Network Management Protocol) a t dvelopp pour permettre
ladministrateur dinterroger les lments de son rseau sans se dplacer. Le principe de SNMP est
trs simple : sur chacune des machines, on installe un petit programme : lagent SNMP. Cet agent
enregistre en permanence des informations relatives la machine. Il stocke ces informations dans
une base de donnes appele MIB (Management Information Base).
Ainsi, de son ordinateur, ladministrateur peut interroger chacune de ses machines et obtenir les
informations souhaites, comme par exemple le nombre doctets reus et envoys... Il peut aussi en
modifier certaines.
Le protocole SNMP fonctionne au niveau 7 du modle OSI, mais se situe directement au-dessus
dUDP. Il fonctionne sur un modle client serveur, o il ny a quun seul client, la station
dadministration (NMS = Network Management Station) et de nombreux serveurs (chaque agent
SNMP), le client interrogeant les serveurs pour rcuprer les informations.
Chaque agent est plac sur un nud du rseau administrable (MN : Managed Node). Ces
nuds peuvent tre soit des htes (stations de travail ou serveurs), soit des lments
dinterconnexion (switchs, hubs, routeurs), soit des supports physiques (cbles).
Supposons que vous souhaitiez consulter la variable System dun hte, vous pouvez soit lui
demander la variable System directement, soit lui demander la variable ayant pour OID (Object
IDentification) 1.3.6.1.2.1.1 correspondant larborescence de la variable (ISO, Identified
Organization, dod, Internet, Management, MIB2, System).
Cela peut paratre assez contraignant premire vue, mais le nombre de variables tant
important, on ne peut se souvenir de chaque nom. Par contre, il existe de nombreux logiciels
permettant dexplorer la MIB de faon conviviale, en utilisant cette classification.
Voici ci dessous un exemple darbre MIB :
Les types derreurs sont les suivants : NoAccess, WrongLenght, WrongValue, WeongType,
WrongEncoding, NoCreatio, NoWritable et AuthorisationError.
Les alertes (traps) sont ColdStart, WarmStart, LinkUP et AuthentificationFailure.
Nom
GetRequest
GetNextRequest
SetRequest
GetResponse
Trap
Le paquet SNMPv1
(La version 1 est la plus utilise)
SNMP est un protocole, comme son nom lindique, pour effectuer de la gestion de rseau. Il
permet de contrler un rseau distance en interrogeant les stations qui en font partie sur leur
tat et modifier leur configuration, faire des tests de scurit et observer diffrentes
informations lies lmission de donnes. Il peut mme tre utilis pour grer des logiciels et
bases de donnes distance. Depuis quil est devenu un standard TCP/IP, son utilisation a beaucoup
augment. Dailleurs, il est le protocole le plus utilis pour grer des quipements de rseau
(routeurs, ponts, etc.) et beaucoup de logiciels de gestion de rseau sont bass sur ce protocole.
Le champ Version prcise la version du protocole SNMP utilise. Le champ Communaut est utilis
afin d'identifier le manageur et filtrer l'accs aux informations. Le champ PDU SNMP est constitu
par l'une des trois PDU suivantes:
PDU GetRequest, GetNextRequest et SetRequest
Le champ Type indique s'il s'agit d'une PDU GetRequest, GetNextRequest ou SetRequest. La
rponse la requte sera retourne avec la valeur fournie par le champ Request-Id, afin d'associer
la rponse la requte. Le champ Affectation des variables est une suite de couples
d'identificateurs et de valeurs associes. Les valeurs sont fournies uniquement dans le cas d'une
PDU SetRequest.
PDU GetResponse
Le champ Type permet de reconnatre une PDU SetResponse des PDU prcdentes (dont le format
est identique). Les champs error-status et error-index nous informent sur le rsultat de la
requte.
PDU Trap
Affectation
Pas d'accs
Read-Only
Read-Write.
Le nom de communaut circule en clair sur le rseau. Beaucoup d'administrateurs prfrent ainsi
limiter l'accs sur les MIBs en lecture seule, et se dplacent sur les quipements pour modifier
certaines valeurs.
ISM
Tivoli
Les constructeurs de solutions pour rseaux locaux :
9-2. Inconvnients
La puissance de SNMP administrer un rseau n'est plus dmontrer, mais il faut avouer que ce
protocole souffre de quelques dfauts :
L'authentification reste trs simple et donc non scurise. Le mot de passe et les donnes
de contrle sont envoys sans chiffrement sur le rseau.
SNMP ne permet pas de "commander" un agent, cette manipulation ne peut se faire qu'en
modifiant une entre de sa MIB.
Exemple : On ne peut pas demander une passerelle de terminer une connexion TCP donne,
mais on peut modifier la valeur tcpConnState pour que cette connexion soit ferme.
SNMP ne supporte pas la communication de station d'administration station
d'administration. Il est donc impossible une station d'administration de faire des requtes
un priphrique administr par une autre station en passant par son intermdiaire.
1.10. SNMPv2
Devant le succs de SNMP, il a vite sembl ncessaire de dvelopper un successeur qui
corrigerait ses nombreuses faiblesses, notamment en terme de scurit.
Une version amliore a t propose sous le nom SNMPv2. Elle apporte des mcanismes
d'authentification et de chiffrement ainsi que des mthodes de consultation des informations
rseaux plus efficaces.
Plus complexe que SNMP (v1), qui est par ailleurs bien implant, SNMPv2 ne connat pas de rel
succs ce jour.
Le changement majeur dans cette catgorie est l'ajout de la commande get bulk pour l'change
de grandes quantits d'informations. La commande get bulk est une requte de plusieurs get next
successifs. Auparavant, on tait oblig de faire une succession de get next pour lire une table, avec
SNMPv2 une seule commande et rponse peuvent maintenant suffire pour cela.
Si SNMPv2 poursuit son volution vers un protocole de gestion simple et performant, il reste
encore du chemin parcourir avant de disposer de vrais outils de gestion rseau.
11. SNMPv3
1.11.1. Les amliorations de SNMPv3
Comme nous avons pu le voir dans la partie prcdente, le contrle d'accs pour les versions
antrieures SNMPv3 est approximatif et la confidentialit inexistante. SNMPv3, quant lui,
rsout le problme de la scurit et de la modularit. Les nouveauts apportes par SNMPv3 sont
les suivantes :
Scurit :
Authentification et chiffrement.
Gestion de la compatibilit.
Configuration distance.
tant donn une chane d'octets qui est le rsultat d'une fonction de hachage une direction. Il
doit tre trs difficile de trouver une quelconque chane d'entre qui, une fois passe dans la
fonction, donne cette mme chane en sortie.
Pour authentifier l'information qui va tre transmise, on doit aussi possd un mot de passe qui
est partag . Celui-ci ne doit donc tre connu que par les deux entits qui s'envoient
les messages.
Les tapes d'authentification sont alors les suivantes :
Avec cette technique, le mot de passe est valid sans qu'il ait t transmis sur le rseau. Quelqu'un
qui saisit les paquets SNMPv3 passant sur le rseau ne peut pas facilement trouver le mot de
passe. Pour ce qui est de SNMPv3, l'authentification se fait l'aide de HMAC-MD5-96 et HMACSHA- 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 applique, les personnes qui
saisissent les paquets passant sur le rseau peuvent encore voir le contenu du paquet. Toutefois,
elles ne peuvent pas en changer le contenu sans connatre le mot de passe.
La localisation des mots de passe :
SNMP pose un
avec des dizaines
chaque agent,
La connaissance
d'administration.
De la mme faon, utiliser un mot de passe diffrent pour chaque agent n'est pas une solution
envisageable : il n'est pas raisonnable pour un administrateur de connatre des dizaines ou
des centaines de mots de passe diffrents.
La solution adopte 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 chane de caractres qui soit unique chaque agent. Avec
SNMPv3, on utilise le ContextEngineID . Cette chane est gnre par un ensemble de donnes
comme l'adresse MAC de la carte Ethernet, l'adresse IP, des nombres alatoires ou
une chane spcifie par l'administrateur.
On commence par trouver le ContextEngineID de l'agent auquel on veut envoyer une requte.
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 mmoris dans l'agent et qui est utilis par la plate-forme.
Il est employ dans l'authentification et le chiffrement des paquets SNMPv3.
Les dtails de la localisation sont dcrits dans le RFC2274. Cette tape est trs coteuse en
temps processeur. Les plates-formes de gestion sont donc instruites d'utiliser un cache pour viter
de rpter ce calcul plusieurs fois.
Le chiffrement :
Le chiffrement a pour but d'empcher quiconque de lire les informations de gestion contenues
dans un paquet SNMPv3 en coutant sur le rseau les requtes et les rponses.
Avec SNMPv3, le chiffrement de base se fait sur un mot de passe partag entre la plate-forme
et l'agent. Ce mot de passe ne doit tre connu par personne d'autre. Pour des raisons de
scurit, SNMPv3 utilise deux mots de passe : un pour l'authentification et un pour le chiffrement.
On recommande l'usager d'utiliser deux mots de passe distincts. Ceci permet
au systme d'authentification et au systme de chiffrement d'tre indpendants. Un de ces
systmes ne peut pas compromettre l'autre.
SNMPv3 se base sur le DES (Data Encryption Standard) pour effectuer le chiffrement.
Contrairement l'authentification qui est applique tout le paquet, le chiffrement est seulement
appliqu sur le ScopedPduData, voir Figure ci-dessous : Description d'un paquet SNMPv3.
L'estampillage du temps :
L'estampillage du temps doit empcher la rutilisation d'un paquet SNMPv3 valide que quelqu'un
a dj transmis. En effet, si une requte est transmise, les mcanismes d'authentification, de
localisation et de chiffrement n'empchent pas quelqu'un de saisir un paquet SNMPv3 valide du
rseau et de tenter de le rutiliser ultrieurement, sans modification. On appelle cette attaque le
replay attack .
Pour lviter, le temps est estampill sur chaque paquet. Quand on reoit un paquet SNMPv3, on
compare le temps actuel avec le temps dans le paquet. Si la diffrence est suprieur 150
secondes, le paquet est ignor.
1.11.3. Conclusion
Contrairement ce que l'on pourrait penser, SNMPv3 n'est pas compatible avec SNMPv1.
Ceci n'empche pas SNMPv1 de fonctionner cot de SNMPv3 ( Dual stack ), il suffit de
placer deux agents ou deux plates-formes de gestion cte cte.
Les standards SNMPv1 et SNMPv2c dcrivent essentiellement un protocole de transport des
donnes 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'arrive de SNMPv3, le standard SNMP dcrit maintenant une architecture pour la
plate-forme de gestion et l'agent. Toutefois, SNMP reste un protocole simple, dont la vocation
premire est d'tre plac dans les instruments de rseau. 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 scurit.
Systmes Affects
Des produits dun trs grand nombre de fournisseurs peuvent tre affects. En plus des
fournisseurs qui ont fourni la rtroaction pour cette partie, une liste de fournisseurs entrs en
contact avec le CERT concernant ces problmes est fourni dans la partie solution un peu plus loin.
De nombreux autres systmes se servant de SNMP peuvent galement tre vulnrables mais
n'ont pas t spcifiquement examins.
Vue d'ensemble
De multiples vulnrabilits ont t rapportes dans les ralisations de tests SNMP effectues
par divers fournisseurs. Ces vulnrabilits peuvent permettre un accs privilgi non autoris, des
attaques par dni de service, ou causer des comportements instables.
2.2. Description
Le Simple Network Management Protocol (SNMP) est un protocole largement dploy qui est
gnralement employ pour surveiller et contrler des dispositifs rseau. La version 1 du protocole
(SNMPv1) dfinit plusieurs types de messages SNMP qui sont utiliss pour demander des
changements d'information ou de configuration, rpondre aux demandes, numrer des objets
SNMP, et envoyer des alertes non sollicites.
Le
groupe
de
programmation
de
luniversit
d'Oulu
(OUSPG, http://www.ee.oulu.fi/research/ouspg/) a rapport de nombreuses vulnrabilits dans
lutilisation de SNMPv1 de diffrents fournisseurs. Plus d'informations sur l'OUSPG peuvent tre
trouves sur le cite du CERT : http://www.cert.org/advisories/CA-2002-03.html .
La recherche d'OUSPG s'est concentre sur la faon dont les agents SNMPv1 et la poigne de
manageurs demandent et emprisonnent des messages. En appliquant le PROTOS c06-snmpv1 une
varit de produits populaires utilisant SNMPv1, l'OUSPG a indiqu les vulnrabilits suivantes:
VU#107186 - De multiples vulnrabilits dans SNMPv1 emprisonnent la manipulation
Des messages dalarme SNMP sont envoys des agents aux manageurs. Un message dalarme peut
indiquer une condition d'avertissement, d'erreur ou autrement informer le manageur sur l'tat
de l'agent. Les manageurs SNMP doivent correctement dcoder ces messages dalarme et
traiter les donnes rsultantes. Dans l'essai, OUSPG a trouv de multiples vulnrabilits sur de
nombreux manageurs SNMP qui dcodent et traitent des messages dalarme SNMP.
VU#854306 - Vulnrabilits multiples dans la manipulation de requtes SNMPv1
Les messages de requtes SNMP sont envoys des manageurs aux agents. Ces messages sont
utiliss pour obtenir l'information d'un agent ou pour demander l'agent de configurer le
dispositif dune machine. Les agents SNMP doivent correctement dcoder ces requtes et
traiter les donnes rsultantes. Dans l'essai, OUSPG a trouv des vulnrabilits multiples dans
la manire dont de nombreux agents SNMP dcodent et traitent ces messages SNMP.
Les vulnrabilits dans le dcodage, le traitement des messages SNMP par les manageurs et les
agents peuvent avoir comme consquence des tats de dni de service, des vulnrabilits dans le
format des chanes de caractres, et des dbordements de buffer. Quelques vulnrabilits
n'exigent pas du message SNMP d'employer la chane de caractres correcte de la communaut
SNMP.
Impact :
Ces vulnrabilits peuvent causer des tats de dni de service, interruptions de service, et
dans certains cas peuvent permettre un attaquant d'accder au dispositif affect. Les impacts
spcifiques changeront suivant le produit.
2.3. Solutions
Il faut noter que plusieurs des tapes recommandes ci-dessous peuvent avoir un impact
significatif sur les oprations rseau et/ou architectures rseau journalires. Il faut sassurer que
tous les changements bass sur les recommandations suivantes n'affecteront pas irrversiblement
les possibilits d'oprations rseau.
161/udp
162/udp
Les services suivants sont moins communs, mais peuvent tre employs sur certain produits utilisant
SNMP :
snmp
snmp
smux
smux
synoptics-relay
synoptics-relay
agentx
snmp-tcp-port
snmp-tcp-port
161/tcp
162/tcp
199/tcp
199/udp
391/tcp
391/udp
705/tcp
1993/tcp
1993/udp
Remarque : vous devez soigneusement considrer l'impact de bloquer les services que vous pouvez
employer.
Il est important de noter que dans de nombreuses utilisations de SNMP, le dmon SNMP peut
tre li toutes les interfaces IP sur le dispositif. Ceci a des consquences importantes quand des
mesures de filtrage de paquet exiges sont utilises pour protger un dispositif utilisant ou
permettant SNMP. Par exemple, mme si un dispositif rejette des paquets SNMP dirigs vers les
adresses IP de ses interfaces rseaux normales, il peut encore tre possible d'exploiter ces
vulnrabilits sur ce dispositif par l'utilisation de paquets dirigs aux adresses IP suivantes :
" tout-ceux " qui ont une adresse dmission (broadcast),
adresse d'mission de sous-rseau (broadcast),
toutes adresses internes de rception (loopback) (gnralement utilises pour la gestion
des routeurs, et ne pas confondre avec l'adresse 127.0.0.1 de boucle de retour de la pile IP).
Une grande attention devrait tre accorde aux adresses des types mentionns ci-dessus par la
planification d'emplacements du paquet filtrant en tant qu'lment de la stratgie de scurit pour
ces vulnrabilits.
En conclusion, les emplacements (lendroit o lon place le filtre) peuvent bloquer l'accs aux
services RPC suivants lis SNMP :
snmp
snmpv2
snmpXdmid
100122
100138
100249
Veuillez noter que ce travail peut ne pas protger les dispositifs vulnrables contre des attaques
internes.
Cependant, mme lorsque les noms de communauts sont changs par dfaut, ils passeront
toujours en texte clair et seront donc sujets des attaques de reniflement de paquet (sniffing).
SNMPv3 offrent des possibilits additionnelles pour assurer l'authentification et l'intgrit comme
dcrit dans le RFC2574 .
Puisque plusieurs des vulnrabilits identifies dans ce consultatif se produisent avant que les
noms de communaut soient values, il est important de noter quexcuter cette seule tape n'est
pas suffisant pour attnuer l'impact de ces vulnrabilits. Nanmoins, elle devrait tre excute en
tant quune bonne mthode en matire de scurit.
N'importe quel systme HP-UX 10.x ou 11.x faisant tourner les dmons snmpd ou snmpdm est
vulnrable. Pour dterminer si votre systme de HP-UX a les dmons snmpd ou snmpdm installs,
faites la commande suivante : swlist -l file | grep snmpd
Si un patch n'est pas disponible pour votre plate-forme ou vous ne pouvez pas installer un patch
disponible, les dmons snmpd et snmpdm peuvent tre neutraliss en enlevant leurs entres
de /etc/serviceset les permissions d'excution de /usr/sbin/snmpd/ et usr/sbin/snmpdm.
3. Hewlett-Packard Company
PROBLME: Vulnrabilits dans la demande de SNMP et la manipulation des alarmes.
PLATEFORME: HP 9000 srie 700 sries 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: Dni de service possible, interruptions de service, accs 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 systmes utilisant OV NNM:
PHSS_26286 s700_800 HP-ux 10,20 pour fixer les piges du dmon ovtrapd
PHSS_26287 s700_800 HP-ux 11.x pour fixer les piges du dmon ovtrapd
PSOV_03100 Solaris 2.x pour fixer les piges du dmon ovtrapd
NNM_00857 de NT 4.X/Windows 2000 pour fixer les piges du dmon ovtrapd
Les clients peuvent tlcharger ces patchs sous forme de mises jour de logiciel :
http://www.hp.com/rnd/software/switches.htm
Produit
Commutateur de HP Procurve 2524 (J481)
Commutateur de HP Procurve 2512 (J481)
Commutateur 4108GL (J486)
Commutateur 4108GL-bundle (J4861A)
Version
F.04.08 ou plus grand
F.04.08 ou plus grand
G.04.05 de HP Procurve ou plus grand
G.04.05 de HP Procurve ou plus grand
Quelques problmes trouvs dans le produit de NNM ont t rapports pour viter certaines
vulnrabilits. Les patchs sont disponibles.
MATERIEL : Progiciels Du -->> JetDirect
tat de la version du progiciel de JetDirect
--->> version X.08.32 ou infrieur : VULNRABLE (o X = A K)
--->> version X.21.00 plus suprieur : NON VULNERABLE (o X = L P)
snmp-config: 0
quit
Ceci va neutraliser compltement SNMP sur le matriel de Jetdirect.
HP recommande toujours dupgrader ses progiciels de Jetdirect pour liminer les derniers bugs
et pour bnficier davantage de scurit. Ceux-ci sont tlchargeables gratuitement sous leur
dernier version. Par exemple, le dernier progiciel pour le J3110A est G.08.32.
4. Microsoft Corporation
Les documents suivants concernant cette vulnrabilit sont fournis par Microsoft:
http://www.microsoft.com/technet/security/bulletin/MS02-006.asp