Introduction au protocol SNMP

publicité
INTRODUCTION
AU
PROTOCOLE SNMP
( Simple Network Management )
Michaël VOLLERIN – Introduction au protocole SNMP
1
Sommaire
 Qu’est ce que le protocole SNMP ?
 Architecture de SNMP
 SNMPv1 et SNMPv2c
 SNMPv3 : La sécurité avant tout
 Synthèse
Michaël VOLLERIN – Introduction au protocole SNMP
2
Qu’est ce que le protocole SNMP ?
 SNMP est un protocole de gestion réseaux proposé
par l’IETF (Internet Engineering Task Force)
 Il s’appuie sur 4 composantes principales :
 Des agents
 Un ou plusieurs managers
 Une MIB (Management Information Base)
 Des trames
Michaël VOLLERIN – Introduction au protocole SNMP
3
Les différentes versions de SNMP
 SNMPv1
(ancien standard) :
Première version apparue en 1989.
 SNMPsec
version 1
(historique):
Ajout de sécurité par rapport à la
 SNMPv2p
(historique)
: Ajout de nouveau type de données.
 SNMPv2c
protocole
(expérimental)
: Amélioration des opérations du
 SNMPv2u (expérimental) : Implémente la version 2c en
ajoutant la sécurité utilisateurs.
 SNMPv2* (expérimental) : Combinaison des meilleures parties
de v2u et v2p.
 SNMPv3
(nouveau standard)
: La sécurité avant tout.
Michaël VOLLERIN – Introduction au protocole SNMP
4
Architecture de SNMP
Michaël VOLLERIN – Introduction au protocole SNMP
5
Le modèle OSI
Michaël VOLLERIN – Introduction au protocole SNMP
6
La remontée d’informations
 Nous avons le choix entre deux méthodes complètement
différentes mais qui peuvent être complémentaires :
 Le polling
 L’émission de trap
Michaël VOLLERIN – Introduction au protocole SNMP
7
Les requêtes SNMP
 Recherche d’informations :
 GetRequest :
recherche d’une variable sur un agent.
 GetNextRequest :
recherche de la variable suivante.
 GetBulkRequest :
recherche d’un groupe de variables
 Envoie d’informations
 Trap :
détection d’un incident
 Modification de valeurs :
 SetRequest :
permet de changer la valeur d’une variable d’un
agent.
A titre d’information, d’autres requêtes existent (ex:
InformRequest…) mais ne seront pas abordées dans
cette présentation.
Michaël VOLLERIN – Introduction au protocole SNMP
8
Les réponses SNMP
Une seule réponse existe.
Elle est différente s’il y a une erreur ou non.
 Aucune erreur :
GetResponse :
renvoie la ou les valeurs souhaitées
 En cas d’erreur :
GetResponse
mais accompagné d’un NoSuchObject
Michaël VOLLERIN – Introduction au protocole SNMP
9
MIB (Management Information Base)
 Ensemble d’objets structurés de manière arborescente
 Accès à un objet via un Object Identifier (OID)
 Deux MIB normalisées: MIB I et MIB II
 Références des informations réseau (interfaces, ip …)
 MIB privée sous le nœud enterprises
 Une MIB n’est pas une base de données mais une
« dispatch table »
Michaël VOLLERIN – Introduction au protocole SNMP
10
Exemple d’accès à un objet d’une MIB
 Objet de type simple (une seule variable)
+--accelance(9697)
+--general(1)
+-- -R-- String
release(1)
+-- -R-- INTEGER
nbeProcessus(2)
+-- -R-- String
currentDate(3)
Accès à la variable realease :
.1.3.6.1.4.1.9697.1.1.0
enterprises
Convention
Information souhaitée
Numéro défini par IANA
Correspond à l’entreprise Accelance
Michaël VOLLERIN – Introduction au protocole SNMP
11
Exemple d’accès à un objet d’une MIB (2)
 Objet complexe (ex : Tableau)
Accès à la variable ifSpeed :
.1.3.6.1.2.1.2.2.1.5.x
Index
interfaces
Information souhaitée
Michaël VOLLERIN – Introduction au protocole SNMP
12
ASN.1 (Abstrat Syntax Notation One )
 Standard ISO (ISO 8824) qui définit plusieurs types
autorisés dans SNMP
(ex : INTEGER, DisplayString …)
 Effectue la correspondance entre un OID et un nom
 ASN.1 se localise au niveau de la couche Présentation
dans le modèle OSI.
Michaël VOLLERIN – Introduction au protocole SNMP
13
Exemple de fichier ASN.1
Identification d’un
fichier ASN.1
ACCELANCE-MIB DEFINITIONS ::= BEGIN
…
accelance MODULE-IDENTITY
…
::= { enterprises 9697 }
Rattachement de la branche
Accelance à la branche enterprises via
l’OID 9697
Affectation de la branche
general à la branche
accelance via l’OID 1
general OBJECT IDENTIFIER ::= { accelance 1 }
…
release
OBJECT-TYPE
SYNTAX
DisplayString
MAX-ACCESS
read-only
Définition de la variable realease
STATUS
current
&
DESCRIPTION
"Type d’OS utilisé"
::= { general 1 }

Rattachement de celle-ci à la
branche general
Désormais nous pouvons accéder à la variable release de la manière suivante :
.iso.dod.internet.private.enterprises.accelance.general.release.0
Michaël VOLLERIN – Introduction au protocole SNMP
14
Présentation de
SNMPv1 et SNMPv2c
Michaël VOLLERIN – Introduction au protocole SNMP
15
La Trame
Michaël VOLLERIN – Introduction au protocole SNMP
16
Détail du PDU (Packet Data Unit)
Michaël VOLLERIN – Introduction au protocole SNMP
17
Les faiblesses de SNMPv1 – SNMPv2c
 L’authentification
 Le cryptage du PDU
 Le manque de confidentialité
En un mot :
LA SECURITE
Michaël VOLLERIN – Introduction au protocole SNMP
18
SNMPv3 : La sécurité avant tout
Michaël VOLLERIN – Introduction au protocole SNMP
19
Architecture d’un agent SNMPv3
Michaël VOLLERIN – Introduction au protocole SNMP
20
Le modèle de sécurité de SNMPv3
 Il est basé sur deux concepts :
 USM ( User-based Security Model )
 VACM ( View-based Access Control Model )
Michaël VOLLERIN – Introduction au protocole SNMP
21
USM (User Security Model)
Ce module de sécurité se compose en 3 opérations :
 L’authentification
 Le cryptage
 L’estampillage du temps
Michaël VOLLERIN – Introduction au protocole SNMP
22
L’authentification
 Nous avons deux méthodes à notre disposition :
 HMAC-MD5-96
 HMAC-SHA-96
(HMAC = Keyed-Hashing for Message Authentication)
Michaël VOLLERIN – Introduction au protocole SNMP
23
Le cryptage du PDU
 A l’heure actuelle un seul mécanisme de cryptage est
proposé :
 DES
(Data Encryption Standard)
Émetteur
Récepteur
Michaël VOLLERIN – Introduction au protocole SNMP
24
L’estampillage du temps
 Trame effective sur un temps restreint
 S’il y a une différence supérieur à 150 ms entre
la date de création de la trame et son traitement,
elle est détruite. Cette donnée est paramétrable.
 Empêche la réutilisation d’une trame (inhibe le système
contre le « replay attack »)
Michaël VOLLERIN – Introduction au protocole SNMP
25
VACM (View Access Control Model)
 Permet le contrôle d’accès au MIB.
 Possibilité de restriction d’accès en lecture et/ou
écriture pour un groupe ou par utilisateur.
Michaël VOLLERIN – Introduction au protocole SNMP
26
La trame de SNMPv3
Michaël VOLLERIN – Introduction au protocole SNMP
27
Synthèse
Michaël VOLLERIN – Introduction au protocole SNMP
28
Le moteur SNMP
Schema pasge 73. Si possible
faire un mix avec 76
Michaël VOLLERIN – Introduction au protocole SNMP
29
Conclusion
 Manque de sécurité évidente dans SNMPv1 & SNMPv2.
Ceci a été corrigé par SNMPv3 avec les systèmes de sécurité :
 User Security Model (USM)
 View Access Control Model (VACM)
 Depuis mars 2002, le standard est SNMPv3 mais SNMPv1
encore beaucoup utilisé.
 Conseil : Migrer vers la version 3 pour des raisons de
sécurité
Michaël VOLLERIN – Introduction au protocole SNMP
30
Téléchargement