Protections de couche 2 contre les attaques visant les réseaux IPv6

Spécialité(s)


Résumé

Les communications utilisant le protocole IPv6 sur Internet représentent un taux très minime de l'ensemble des communications. À titre d’exemple, les utilisateurs accédant à Google en IPv6 ne représentent que 1,78% de l'ensemble des connexions [1]. Cependant, ces communications sont souvent présentes dans la majorité des réseaux internes, soit d'une manière officielle, et cela après déploiement du protocole par les administrateurs, soit sous forme de trafic « non officiel » utilisant les adresses générées automatiquement par les nœuds du réseau. Ce dernier cas est souvent négligé par les administrateurs, même s'il peut être source d’attaques contre le réseau. Dans cet article, nous allons présenter quelques types d'attaques auxquelles les réseaux IPv6 sont vulnérables, ainsi que différents outils de protection et de supervision permettant de réduire le risque contre ces attaques.


Body

1. Introduction

La présence du protocole IPv6 dans les réseaux internes n'est pas négligeable. Cela est dû à l'activation par défaut de la pile IPv6 sur tous les OS, ainsi qu'au fait que le protocole repose sur une logique « plug & play ». Cette philosophie est traduite par les mécanismes d'auto-configuration qui donnent aux machines une certaine autonomie. Cette caractéristique du protocole a des effets à double tranchant. En effet, elle permet à la fois un gain de temps et d'effort considérable, mais complexifie la sécurisation et la supervision du comportement du réseau.

2. Présentation des messages malveillants et leurs impacts

Le protocole ICMPv6 (RFC 4443) définit cinq nouveaux types de messages permettant l'échange d'informations entre les différents nœuds du réseau. Ces messages sont utilisés par les protocoles associés à IPv6 comme les protocoles Neighbor Discovery Protocol (NDP) et Duplicate Address Detection (DAD). Ces messages, et ceux utilisés par le protocole DHCPv6, peuvent être utilisés pour réaliser des attaques de type MITM (Man-in-the-middle) ou DoS (Denial of service).

2.1 Message RA « Router Advertisement »

2.1.1 Présentation du message

Les messages RA utilisés par le protocole NDP, sont envoyés par les routeurs afin de fournir aux hôtes différentes informations nécessaires à leur bon fonctionnement sur le réseau comme :

  • l'adresse Mac du routeur ;
  • la MTU ;
  • le préfixe global.

Ces messages sont envoyés en réponse aux messages RS (Router Solicitation), ou automatiquement à intervalle régulier. Ce dernier est configurable selon le matériel ou logiciel utilisé.

2.1.2 Impacts des messages RA malveillants

Des messages RA spécialement conçus peuvent être utilisés afin de mettre en place une attaque de type MITM. La première phase de l'attaque est d'envoyer des messages RA avec le champ Prf (Default Router Preference) positionné à HIGH. Lors de la réception de ces messages par les nœuds du réseau, ces derniers vont considérer la machine de l'attaquant comme routeur par défaut possédant la priorité la plus élevée. La deuxième phase consiste à invalider le routeur légitime. Pour ce faire, l'attaquant envoie des messages RA en « spoofant » l'adresse du routeur légitime et en positionnant le champ Router Lifetime à 0.

L'envoi de ces deux messages à intervalle régulier permet l'altération du « neighbor cache » de l'ensemble des nœuds du réseau (ce qui correspond au cache ARP dans un réseau IPv4).

attaquemitm-RA

Fig. 1 : Schéma d'attaque MITM en utilisant les messages RA.

Sans chercher à effectuer une redirection de flux, l'attaquant peut se contenter d'envoyer des messages RA avec le champ Router Lifetime à 0 en « spoofant » l'adresse IP du routeur légitime pour réaliser une attaque par déni de service. Dès la réception des messages « spoofés », les hôtes du réseau vont supprimer le routeur par défaut de la table de routage et ne seront plus capables d’établir des communications vers l’extérieur de leur réseau local.

attaqueDOS-RA

Fig. 2 : Schéma d'attaque DOS en utilisant les messages RA.

Pour les deux cas d'attaques à base de messages RA, plusieurs outils peuvent être utilisés, parmi eux :

  • fake_router6 (MITM) ;
  • kill_router6 (DOS).

Les deux outils appartiennent à la célèbre suite THC-IPv6 [2].

2.2 Messages « Neighbor Advertisement »

2.2.1 Présentation du message

Les messages NA peuvent être envoyés par tous les nœuds. Ces messages sont envoyés en réponse aux messages NS (Neigbor Solicitation).

Ce type de message est utilisé par le protocole NDP (Neighbor Discovery Protocol) pour la résolution d'adresses MAC, cette procédure remplace la résolution des adresses MAC réalisée par le protocole ARP. Le protocole DAD (Duplicate Address Detection) utilise aussi les messages NA afin de détecter d’éventuels conflits d'adresses suite au mécanisme d’auto-configuration sans état des adresses IPv6 SLAAC (Stateless Address Autoconfiguration) [3].

2.2.2 Impacts des messages NA malveillants

Les informations envoyées grâce aux messages NA, notamment l'adresse MAC, facilitent la mise en œuvre d'attaques MITM. En effet, un attaquant peut « spoofer » les messages NA à destination du routeur et de la cible pour effectuer une redirection de flux.

attaquemitm-NA

Fig. 3 : Schéma d'attaque MITM en utilisant les messages NA.

Les messages NS sont utilisés par le protocole DAD afin qu'une machine puisse vérifier si l'adresse qu'elle souhaite s’attribuer (grâce au mécanisme d'auto-configuration), n'est pas déjà utilisée dans le réseau. Il est possible pour un attaquant de répondre à tous les messages NS pour annoncer qu’il possède déjà cette adresse. Cela provoque un DoS sur les machines se connectant au réseau, puisque la machine ne pourra pas s'attribuer une adresse IP et par conséquent, ne pourra pas réaliser des communications internes ou externes.

attaqueDOS-NA

Fig. 4 : Schéma d'attaque DOS en utilisant les messages NA.

2.3 Messages DHCPv6

2.3.1 Présentation des messages

Les nœuds appartenant à un réseau IPv6 peuvent être autoconfigurés de deux manières différentes. La première méthode consiste à utiliser le préfixe figurant dans les messages RA envoyés par le routeur. Ce préfixe permettra de générer une adresse IPv6 globale qui permettra à la machine de communiquer en dehors de son réseau local. La deuxième méthode repose sur l'envoi d'une demande de configuration réseau aux serveurs DHCPv6. La communication entre le client et le serveur DHCPv6 utilise les mêmes messages que ceux utilisés par DHCPv4 (liste non exhaustive) :

  • Solicit : message émis par un client pour localiser un serveur DHCPv6 ;
  • Advertise : message émis par un serveur DHCPv6 en réponse à un message Solicit ;
  • Request : message de demande de configuration émis par un client ;
  • Reply : message émis par un serveur contenant des informations liées à la configuration réseau d'un client suite à la réception d'un message Request.

2.3.2 Impacts des messages DHCPv6 malveillants

La communication entre le client et le serveur DHCPv6 s'effectue en utilisant le protocole de transport sans état UDP. Un attaquant peut répondre aux messages « Solicit » et « Request » en fournissant de fausses informations rendant la machine inaccessible ou permettant de réaliser d'autres attaques telles que la redirection des flux DNS.

Des attaques peuvent aussi être réalisées en se positionnant en tant que client, et cela par l'envoi de plusieurs messages « Solicit » avec différentes adresses Mac afin de consommer toute la plage d'adresses distribuée par le serveur. Cela causera une fuite d'adresses IPv6 ainsi que la consommation des ressources matérielles du serveur DHCPv6.

3. Présentation des outils de détection d’attaques

Dans cette partie, trois outils Open Source vont être présentés, Ramond, 6MoN et NDPMon. Ce dernier va être présenté plus en détail. L'objectif de cette partie est de donner un aperçu sur l’état de maturité actuel des outils open source.

3.1 Ramond

Ramond (Router Advertisement Monitoring Deamon) est un outil de détection de messages RA malveillants basé sur Rafixd. Ramond permet à l'utilisateur d’exécuter des actions comme la création de logs ou l'envoi d'e-mails à l'administrateur suite à la détection d'un message RA malveillant.

En plus, des mécanismes d’alerte, Ramond envoie des messages pour invalider les informations diffusées par un attaquant.

Les règles de détection ainsi que les actions à réaliser sont spécifiées dans le fichier de configuration passé en argument lors de l’exécution de Ramond. L'outil permet de détecter trois types de messages RA malveillants :

  • Messages RA visant à invalider le routeur légitime contenant un champ Routeur Lifetime égal à 0 ;
  • Messages RA contenant un préfixe malveillant ;
  • Messages RA envoyés par des routeurs non légitimes même s'ils ne contiennent pas de préfixe.

Exemple de fichier de configuration ramond.conf :

<?xml version="1.0" encoding="ISO-8859-15"?>
<!DOCTYPE ramond SYSTEM "ramond.conf.dtd">
<ramond>
 <!-- All Routers Mac List -->
 <mac-list name="legitimes">
 <entry>00:11:22:33:44:55</entry>
 <entry>00:11:22:33:44:66</entry>
 <!-- Préfixes légitimes -->
 <rule mac="legitimes" lifetime="0">
 <execute>/bin/echo "Legitimate router killed"</execute>
 </rule>
 <rule mac="legitimes" prefix="2001:5b1:c00:f000::/64">
 <!-- do nothing -->
 </rule>
 <!-- Préfixes malveillants -->
 <execute>/bin/echo "Rogue RA with unknown prefix was detected"</execute>
 <clear></clear>
 </rule>
 <!-- Cette règle s'applique sur tous les messages RA même ceux qui ne contiennent pas de préfixe-->
 <rule>
 <execute>/bin/echo "Rogue RA was detected"</execute>
 <clear></clear>
 </rule>

L'outil fake_router26 de la suite THC-IPv6 peut être utilisé pour envoyer des messages RA malveillants :

# fake_router26 -A dead:beef:dead:beef::/64 eth0

Startingadvertise router (Press Control-C to end) ...

Après la réception des messages malveillants par Ramond, ce dernier affiche l'adresse IPv6 de la machine de l'attaquant puis exécute les actions indiquées par l'utilisateur dans le fichier de configuration. Ensuite, il envoie un message RA en « spoofant » l'adresse de l'attaquant afin de l'invalider auprès des nœuds du réseau.

# ramond -c ~/ramond.conf -d

2013-08-02-15-11-40: {1} Loading configuration from '/home/dev/ramond.conf'

2013-08-02-15-11-40: {1} Loaded 4 rules

2013-08-02-15-11-40: {1} -- starting --

2013-08-02-15-11-40: {1} -- opening socket --

2013-08-02-15-11-40: {3} -- listening --

2013-08-02-15-11-45: {3} received a packet from fe80::a00:27ff:fe34:e705%eth0

2013-08-02-15-11-45: {3} Matched rule 3

2013-08-02-15-11-45: {4} Executing actions

2013-08-02-15-11-45: {4} executing: '/bin/echo "Rogue RA with unknown prefix was detected"'

2013-08-02-15-11-45: {4} Clearing route

2013-08-02-15-11-45: {3} -- listening --

Comme le montre la capture suivante, afin d'invalider le routeur malveillant, Ramond envoie un message RA avec le champ Router Lifetime à 0 en utilisant l'adresse IP de la machine de l'attaquant.

detailsinvalidationramon

Fig. 5 : Détail du message d'invalidation envoyé par Ramond.

Ramond est un outil facile à mettre en place et à configurer. Cependant, la détection d'un seul type de paquet malveillant ne permet pas de garantir un bon niveau de sécurité. De plus, l'affichage des messages indiquant la présence de paquets malveillants au niveau de la console rend la tâche de supervision très fastidieuse, ce qui limite fortement l’intérêt de l'outil.

3.2 6MoN

6MoN est un outil de monitoring qui propose une interface web facilitant la supervision des nœuds et des alertes survenues après détection de paquets malveillants circulant sur le réseau. En plus des fonctionnalités relatives à la détection de paquets IPv6 malveillants, 6MoN implémente d'autres fonctionnalités comme la supervision des requêtes ARP et des serveurs DHCP utilisant IPv4.

home6mon

Fig. 6 : Accueil et fonctionnalités de 6MoN.

Grâce aux informations d'auto-configuration envoyées en multicast par les nœuds sur le réseau, 6MoN permet à l'administrateur du réseau d'avoir une vision globale et en temps réel sur les nœuds appartenant à son réseau. Utiliser les messages multicast est particulièrement intéressant, car la détection de machines appartenant à un réseau IPv6 de préfixe /64 (ce qui peut être comparé au /24 dans les réseaux IPv4) peut s’avérer fastidieuse et coûteuse en termes de temps et de ressources matérielles.

machinesdureseau

Fig. 7 : Interface d'affichage et de gestion des nœuds du réseau.

Contrairement à Ramond, la configuration de 6MoN est réalisée via son interface web, ce qui facilite sa mise en place.

configuration module

Fig. 8 : Interface de configuration.

6MoN peut être intégré facilement dans un réseau complexe comportant plusieurs VLAN. En effet, l'outil effectue une analyse de Tag VLAN afin de permettre à l'administrateur d'attribuer des actions spécifiques en prenant en considération le Tag du VLAN et le type d'attaque. Les actions proposées par 6MoN sont :

  • Notification : ajout de log au fichier de journalisation ;
  • Mitigation : envoi de messages permettant l'invalidation des informations envoyées par l'attaquant ;
  • Notification et mitigation : réalisation des deux actions précédentes.
mitigationpanel

Fig. 9 : Interface d'affectation d'action aux réseaux.

6MoN implémente d'autres fonctionnalités intéressantes notamment la notification de l'administrateur par e-mail en cas d'attaque, ainsi que la détection de la relation entre une adresse MAC et un nom d'utilisateur dans le cas où l’accès au réseau est contrôlé par un équipement FreeRadius.

4. Présentation de NDPMon

NDPMon représente l'outil open source le plus complet à ce jour. L'outil implémente des fonctionnalités intéressantes permettant de réaliser des actions d’invalidation de messages envoyés par un attaquant et offre une certaine facilité d'utilisation à travers une interface web facilitant la supervision et l'exploitation des résultats.

NDPmon est un outil développé par l'INRIA [4] dans le but de surveiller les messages ICMPv6 qui circulent sur le réseau. Il implémente les actions de détection basique de la même manière que les outils cités précédemment. Cependant, NDPmon intègre aussi différentes fonctionnalités que nous allons détailler par la suite, comme l'ajout de règles de détection personnalisées ou la mise en place de contre-mesures.

4.1 Installation

NDPmon peut être utilisé sur les distributions Linux (disponible sur les dépôts officiels de Debian, Ubuntu), Mac OS X ainsi que sur *BSD (disponible sur FreeBSD en tant que port). L'outil peut être installé directement à partir des dépôts ou en utilisant les sources (la dernière version de NDPmon peut être récupérée sur le SourceForge du projet [5]). Dans notre exemple, la deuxième méthode sera utilisée pour permettre d'activer les plug-ins suivants lors de l'installation :

  • MAC Vendor Resolution : permet de détecter les paquets contenant des adresses Mac n'appartenant à aucun vendeur et ceci à travers la recherche des trois premiers octets dans le fichier manuf [6] de Wireshark ;
  • WEB interface : interface web permettant d'afficher les alertes ainsi que les nœuds du réseau en temps réel ;
  • SyslogFiltering : permet le filtrage des logs correspondant à NDPmon et leur redirection vers le fichier de log ndpmon.log ;
  • Countermeasures : comme son nom l'indique, ce plug-in permet de réaliser des actions afin d'atténuer et/ou éliminer les conséquences d'une attaque ;
  • Custom Rules : ce plug-in permet à l’utilisateur de définir des règles personnalisées.

Avant l'installation de l'outil, il faut créer le script de configuration puis lancer ce dernier avec les options nécessaires à l'activation des plug-ins cités ci-dessus :

# autoreconf -vi

# ./configure --prefix=/usr/local \

--with-var-datadir=/var/local/lib \

--with-confdir=/usr/local/etc \

--enable-mac-resolv \

--enable-webinterface --with-webdir=/var/www \

--enable-syslogfilter \

--enable-countermeasures \

--enable-countermeasures

Enfin, il suffit de compiler et d'installer :

# make && make install

4.2 Configuration

La configuration initiale de NDPmon lui permet d'avoir les informations relatives au réseau à superviser à savoir :

  • les routeurs légitimes du réseau ;
  • l'activation des notifications ;
  • les interfaces sur lesquelles NDPmon doit écouter ;
  • les informations concernant les routes ;
  • les serveurs DNS.

Ces informations sont stockées dans le fichier config_ndpmon.xml, qui peut être créé automatiquement ou manuellement.

Afin d'activer le mode apprentissage « learning » lors du lancement de l'outil, ce dernier doit être exécuté avec l'option -L :

# ndpmon -L

Suite à l'exécution de la commande, NDPmon va écouter les messages ICMPv6 circulant sur le réseau afin de collecter les différentes informations du réseau à travers l'interface d'écoute eth0. Cette interface est ajoutée automatiquement au fichier de configuration config_ndpmon.xml, créé dans le dossier /usr/local/etc/ndpmon/.

# ndpmon -L
----- Initialization -----
NDPMon starts in LEARNING mode.
Reading configuration file: "/usr/local/etc/ndpmon/config_ndpmon.xml" ...
[settings] NDPMon general settings: {
 actions high priority {
 syslog
 actions low priority {
 no pipe program
 }
 admin mail root@localhost
 ignor autoconf
 syslog facility LOG_LOCAL1
 no use reverse hostlookups
}
[parser] Finished reading the configuration.
Reading neighbors file: "/var/local/lib/ndpmon/neighbor_list.xml" ...
[parser] Finished reading the neighbor cache.
------------------
[capture_pcap] Listening on interface eth0.
----- ND_NEIGHBOR_ADVERT -----
[parser] Writing cache...
------------------
[webinterface]: Exporting alerts to "/var/www/ndpmon/alerts.html".
[webinterface]: Exporting neighbor cache to "/var/www/ndpmon/neighbors.html".
----- ND_ROUTER_ADVERT -----
Reset timer for 0:21:6a:92:e4:56 fe80::958c:1cd6:98c8:2402
------------------
----- ND_ROUTER_ADVERT -----
Router (8:0:27:34:e7:5,fe80:0:0:0:a00:27ff:fe34:e705) :
 curhoplimit: 255
 flags: []
 router lifetime: 2048
 reachable timer: 0
 retrans timer: 0
 mtu: 1500
 Address(es):
 flags: [ONLINK AUTO ]
 valid time: 99999
 Search domain(s):

Le fichier XML généré automatiquement suite à la phase d'apprentissage possède la structure suivante :

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="config.xsl"?>
<!DOCTYPE config_ndpmon SYSTEM "config_ndpmon.dtd">

Le fichier de configuration contient plusieurs éléments qui permettent à NDPmon, de connaître les informations légitimes qui doivent être envoyées par les routeurs et les contre-mesures à exécuter lors de la détection de messages malveillants.

L’élément « settings » contient des informations basiques comme les actions à réaliser lors d'une attaque, l'adresse e-mail de l'administrateur :

<settings>
 <actions_high_priority sendmail="1" syslog="1" exec_pipe_program=""/>
 <actions_low_priority sendmail="1" syslog="1" exec_pipe_program=""/>
 <admin_mail>anas.chanaa@intrinsec.com</admin_mail>
</settings>

Un élément principal nommé « probes » contient les informations relatives aux interfaces sur lesquelles NDPmon doit écouter et les routeurs légitimes du réseau :

<probes>
<probe name="eth0" type="interface">
 <countermeasures_enabled>1</countermeasures_enabled>
 <routers>
 <router>
 <mac>8:0:27:34:e7:5</mac>
 <lla>fe80::a00:27ff:fe34:e705</lla>
 <param_curhoplimit>255</param_curhoplimit>
 <param_flags_reserved>8</param_flags_reserved>
 <param_router_lifetime>2048</param_router_lifetime>
 <param_reachable_timer>0</param_reachable_timer>
 <param_retrans_timer>0</param_retrans_timer>
 <param_mtu>1500</param_mtu>
 <params_volatile>1</params_volatile>
 <addresses/>
 <prefixes>
 <prefix>
 <mask>64</mask>
 <param_flags_reserved>192</param_flags_reserved>
 <param_valid_time>99999</param_valid_time>
 <param_preferred_time>49999</param_preferred_time>
 </prefix>
 </prefixes>
 </router>
 </routers>
 </probe>
</probes>

L’élément relatif à la configuration des contre-mesures sera présenté par la suite.

L'utilisation du mode automatique représente un risque potentiel sur le réseau. Ce risque réside dans le cas où des paquets malveillants sont envoyés par un attaquant en même temps que l’exécution de la phase de collecte d'informations automatique. Pour remédier à ce problème, il est conseillé de combiner les deux méthodes d'initialisation du fichier de configuration en vérifiant et ajoutant manuellement les informations nécessaires au fichier après sa génération automatique.

4.3 Interface web

Le plug-in WEB Interface fait partie des points forts d'NDPmon. Grâce à ce plug-in, les informations collectées par le cœur de l'outil sont accessibles par le biais de pages web. L'aspect « user friendly » rend la tâche d'analyse des résultats moins fastidieuse pour les administrateurs.

Le plug-in permet d'avoir une vision en temps réel sur les alertes déclenchées. NDPmon définit trois types d’alerte : information, avertissement et attaque.

alert

Fig. 10 : Exemple d’alertes.

L'affichage des règles de configuration sur une page web facilite la vérification de la configuration en cas de problème.

config_ndpmon

Fig. 11 : Informations de configuration d'NDPmon.

Dans l'onglet Neighbors, l'administrateur du réseau a accès à une liste qui répertorie l'ensemble des nœuds appartenant au réseau.

neighborlist

Fig. 12 : Liste des nœuds appartenant au réseau.

4.4 Capacité de détection et alertes

NDPmon est capable de détecter plusieurs types de messages malveillants que nous pouvons classer en trois catégories :

  • Alertes liées aux messages envoyés par des routeurs : dans cette catégorie, nous trouvons des alertes relatives aux messages RA avec une alerte spécifique à chaque champ du message pouvant contenir des anomalies, ainsi qu'une alerte concernant les messages Redirect. Ces derniers sont utilisés par les routeurs pour indiquer à une machine le meilleur chemin vers sa destination.
  • Alertes liées aux messages NA : cette catégorie d'alertes informe l'administrateur des différents messages NA malveillants essayant d’altérer le « neighbor cache » des nœuds du réseau ou lors de la réalisation d'une attaque DoS contre les nouvelles machines qui tentent d’accéder au réseau.
  • Alertes diverses : cette catégorie contient plusieurs types d'alertes informatives.

Une liste exhaustive des alertes pouvant être générées par NDPmon se trouve sur le site officiel [7] de l'outil.

4.5 Traitement des logs

En plus des mécanismes de notification, NDPmon propose le plug-in SyslogFiltering qui permet de filtrer et de rediriger les logs contenant l’étiquette NDPmon vers le fichier /var/log/ndpmon.log.

Ce plug-in utilise logrotate pour réaliser la rotation des logs. Lors de l’installation, le fichier de configuration ndpmon suivant est créé dans le dossier /etc/logrotate.d.

/var/log/ndpmon.log
 rotate 52
 weekly
 missingok
 notifempty
 compress
 invoke-rc.d rsyslog reload >/dev/null 2>&1 || true
 endscript

4.6 Contre-mesures

Les actions réalisées par NDPmon après la détection d'une attaque ne se limitent pas au déclenchement d'alertes ou à l'enregistrement de logs. L’outil est capable d'exécuter des contre-mesures préalablement configurées.

Il existe six contre-mesures :

  • cm_kill_illegitimate_router : cette contre-mesure est exécutée suite à la détection d'un message RA en provenance d'un nœud qui ne figure pas dans la liste des routeurs valides dans le fichier config_ndpmon.xml. Elle permet d'invalider le routeur malveillant en envoyant un message RA avec un champ Router Lifetime égal à 0.
  • cm_kill_wrong_prefix : celle-ci permet d'invalider les messages RA contenant un préfixe invalide qui provient d'un routeur légitime par l'envoi de deux messages RA. Le premier est envoyé avec les paramètres valides contenus dans le fichier de configuration. Le deuxième message est envoyé avec le champ Router Lifetime à 0 afin d'invalider les messages malveillants envoyés précédemment.

Les quatre contre-mesures restantes ont pour but d'arrêter la propagation de paramètres erronés. Elles sont exécutées lorsque NDPmon intercepte un message RA avec des paramètres différents de ceux récupérés lors de la phase de configuration. Les contre-mesures concernent les paramètres suivants :

  • cm_propagate_router_params : paramètre de base du message RA ;
  • cm_propagate_router_dns : paramètres relatifs aux options DNS (RFC 6106) ;
  • cm_propagate_router_routes : paramètres relatifs aux options de routes (RFC 4191) ;
  • cm_propagate_neighbor_mac : paramètres relatifs à l'option contenant l'adresse Mac du routeur.

L'élément de configuration des contre-mesures au niveau du fichier config_ndpmon.xml est le suivant :

<countermeasures>
 <kill_illegitimate_router>RESPOND</kill_illegitimate_router>
 <kill_wrong_prefix>SUPPRESS</kill_wrong_prefix>
 <propagate_router_params>CEASE AFTER max</propagate_router_params>
 <propagate_router_dns>LAUNCH AFTER min</propagate_router_dns>
 <propagate_router_routes>RESPOND</propagate_router_routes>
 <propagate_neighbor_mac>RESPOND</propagate_neighbor_mac>
</countermeasures>

Chaque règle appartenant à la politique de contre-mesure est liée à une stratégie d'exécution. NDPMon implémente les quatre stratégies suivantes :

  • RESPOND : La contre-mesure est exécutée à chaque appel.
  • SUPPRESS : La contre-mesure n'est jamais exécutée.
  • CEASE AFTER N : La contre-mesure est exécutée à chaque appel, une fois le Nième appel atteint, la contre-mesure ne sera plus exécutée.
  • LAUNCH AFTER N : Avant d’atteindre le Nième appel, la contre-mesure n'est jamais exécutée. Une fois le nombre minimum d'appels atteint, la contre-mesure est exécutée après chaque appel.

4.7 Ajout de règles

Grâce au plug-in Custom Rules, un administrateur peut créer ses propres règles afin de déclencher des alertes suite à la détection de paquets contenant des options spécifiques.

La définition des règles se fait au niveau du fichier de configuration de la manière suivante :

<config_ndpmon>

 <rule description="<describe the purpose of this rule>">

 <match field="ethernet.source" value="f4:f5:a5:ba:54:e4"/>

 <match field="inet6.destination " value="ff02::1"/>

 <no-match field="icmp6.type" value="135" />

 </rule>

</config_ndpmon>

Dans cet exemple, la règle créée alertera l'administrateur lors de la détection d'un message ICMPv6 ayant comme adresse Mac source f4:f5:a5:ba:54:e4, comme adresse de destination ff02::1 et avec un type de message différent de 135 (NS). Une liste complète des champs pouvant être testés ainsi que leurs types est disponible sur le site officiel de l'outil.

Conclusion

Cet article a pour principal objectif d'introduire les outils open source de monitoring comme Ramond ou 6MoN, il s'intéresse et aborde avec plus de détail l'outil NDPmon de par son efficacité (ce qui ne remet pas en cause l'efficacité des autres outils). Il est à constater que tous les outils présentés dans cet article ne traitent pas les messages DHCPv6. Le seul outil qui existe sur le marché capable de réaliser la détection des messages DHCPv6 malveillants est DHCPv6 Guard de Cisco qui fait partie d'une solution complète appelée « First-Hop Security ».

Même si les communications entre les nœuds en IPv6 se limitent aux protocoles NDP et DAD lorsque IPv6 n'est pas officiellement déployé, il existe tout de même des attaques qui peuvent nuire au bon fonctionnement du réseau en exploitant uniquement ces deux protocoles comme nous avons pu le constater.

En ce qui concerne les outils d'attaques, nous avons assisté ces dernières années à l’émergence de nouveaux outils spécialisés sur IPv6 comme les suites THC-IPv6 et IPv6 Toolkit. En parallèle, de nombreux outils ont subi une mise à niveau pour être compatibles avec les spécifications d'IPv6 comme le fameux Nmap.

Références

[1] http://www.google.fr/ipv6/statistics.html

[2] http://www.thc.org/thc-ipv6/

[3] http://tools.ietf.org/html/rfc4862

[4] http://www.inria.fr/

[5] http://sourceforge.net/projects/ndpmon/files/ndpmon/

[6] http://anonsvn.wireshark.org/wireshark/trunk/manuf

[7] http://ndpmon.sourceforge.net/index.php?n=Doc.Alerts



Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous