Quels outils pour évaluer la sécurité d’un réseau IPv6

Certains professionnels de la sécurité réseau sous-estiment l’importance des outils de test de la sécurité des réseaux IPv6. L’expert Fernando Gont illustre comment utiliser le kit de test gratuit de SI6 Networks.

La disponibilité d’outils de test et de diagnostic IPv6 constitue un élément clé de l’amélioration de la sécurité et de la résilience d’une implémentation IPv6. Sans ces outils, les administrateurs ne peuvent pas évaluer et tester leurs mises en œuvre et leurs réseaux comme un attaquant le ferait.

SI6 Network propose un kit gratuit, open source, pour cela. Il est supporté sur les principaux systèmes d’exploitation open source. Les outils regroupés dans ce kit sont ici présentés à l’aide d’exemples concrets pour aider à appréhender les techniques actuellement utilisées par les fournisseurs et les spécialistes du test d’intrusion, et pour améliorer la sécurité et la résilience des réseaux IPv6.

Créer le kit d’outils IPv6

Durant de nombreuses années, la suite d’attaque THC-IPv6 a été le seul kit d’outils IPv6 disponible pour tester les réseaux IPv6. Cette suite se concentrait sur quelques vecteurs d’attaque spécifiques et rendait leur exploitation assez simple : l’utilisateur n’avait besoin de préciser que quelques options clés, comme l’adresse IPv6 de la cible, et les outils se chargeaient du reste. Mais cette simplicité a par ailleurs réduit la flexibilité de THC-IPv6.

A son lancement en 2011, le kit de SI6 Networks est venu combler un vide en permettant d’évaluer les déploiements IPv6 y compris pour des failles non anticipées par les créateurs du kit.

Ce kit est né d’un effort visant à aider les équipementiers à améliorer la sécurité et la résilience de leurs produits, et les administrateurs à valider et éprouver leurs déploiements IPv6.

Cet objectif a implicitement défini 4 objectifs pour le développement du kit. Tout d’abord, il devait être suffisamment flexible pour exploiter autant de vecteurs d’attaque que possible. Ensuite, le kit devait être fourni comme un logiciel libre, pour qu’une large communauté puisse en profiter. Ensuite, il exigeait une documentation claire et efficace. Enfin, le kit devait supporter autant de plateformes que possible. Ce dernier objectif n’était pas uniquement motivé par celui de supporter une communauté la plus large possible : il devait également permettre d’aider à améliorer la qualité et la portabilité du code.

Le kit supporte actuellement la plupart des systèmes d’exploitation BSD, les distributions Linux, OS X, et OpenSolaris. Il est intégré au système de packaging présent dans la plupart de ces systèmes d’exploitation et peut être installé comme tout autre application supportée. Par exemple, les utilisateurs d’Ubuntu peuvent l’installer via la commande sudo apt-get install ipv6toolkit.

Contenu du kit

Tous les outils du kit IPv6 de SI6 s’accompagnent d’une documentation complète, qui peut être accessible via l’incontournable man. Chaque outil du kit propose sa propre documentation succincte, scan6 --help, par exemple.

La plupart des outils contenus dans le kit se concentrent sur chacun des différents messages de protocole d’IPv6. Par exemple, les outils ns6, na6, rs6, ra6 et rd6 permettent d’envoyer des messages arbitraires correspondant à la découverte du voisinage sur un réseau IPv6.

 

D’autres outils se concentrent sur certains mécanismes spécifiques à IPv6 qui peuvent être l’objet d’évaluation dédiées. Ainsi, frag6 est conçu pour tester les fonctions de fragmentation et de réassemblage de paquets IPv6, depuis le flooding d’une cible par des paquets IPv6 jusqu’à l’évaluation d’une stratégie de réassemblage sur un nœud donné.

Les autres outils touchent à des applications plus complexes. Scan6 est ainsi le scanner d’adresses IPv6 le plus complet à ce jour. Blackhole6 aide à diagnostiquer les pertes de paquets résultant de l’utilisation d’entêtes d’extension IPv6.

Utiliser des outils spécifiques

Les attaques par autoconfiguration d’adresse (SLAAC, ou Stateless address autoconfiguration) sont connues depuis des années. L’une des plus courantes consiste, pour un attaquant, à se faire passer pour le routeur local et à annoncer une durée de vie de 0 (ou une autre valeur petite). Cela conduit tous les hôtes locaux à délaisser le réel routeur local, provoquant une situation de déni de service. Pour maintenir cette situation, l’attaquant n’a qu’à périodiquement envoyer des paquets d’attaque afin que les hôtes ignorent les paquets d’annoncer du routeur légitime (RA). L’outil ra6 peut ainsi être utilisé pour envoyer des annonces malicieuses toutes les secondes.

 

L’outil traceroute est largement utilisé pour la reconnaissance et le diagnostique. Mais ses implémentations open source ne supportent pas les entêtes d’extension IPv6. L’outil path6 comble de manque en proposant une fonctionnalité similaire avec le support complet des extensions IPv6.

 

Qu’il s’agisse d’une opération de diagnostique ou d’évaluation de la sécurité, il peut être pratique d’isoler l’endroit où sont perdus les paquets avec entêtes d’extension IPv6. C’est l’objet de blackhole6 qui fournit des informations précises telles que les adresses IPv6 et le numéro ASN des nœuds concernés.

 

Les protocoles de transports disposent de leurs outils dédiés. Par exemple, l’outil tcp6 est entièrement dédié aux attaques basées sur TCP. Il peut être employé pour éprouver la résistance d’un service Web aux attaques par flood TCP SYN en IPv6.

 

Lors d’un test d’infiltration, il n’est pas rare d’explorer une liste de noms de domaines supportés par la cible. L’outil script6 peut aisément collecter les enregistrements DNS pour une liste de domaines figurant dans un fichier, afin d’obtenir par exemple les adresses IPv6 des serveurs Web ou de messagerie correspondants.

 

Une expérience limitée d’IPv6 peut rendre difficile, pour un responsable sécurité, l’identification du type des adresses en question. Par exemple, il peut être difficile de trouver les différences entre adresses globales et adresses Unicast locales, adresses SLAAC traditionnelles, et adresses aléatoires, etc. Le kit contient un outil spécifique, addr6, qui répond à cette situation. Par défaut, addr6 décode l’adresse et affiche le résultat selon la syntaxe suivante : AddressType=AddressSubtype=Scope=IIDType=IIDSubtype.

Mais une adresse IPv6 peut êtr écrite de plusieurs manières différentes. L’option --print-canonical d’addr6 permet de forcer la représentation canonique de l’adresse spécifiée.

 

Mais l’un des outils les plus intéressants de la suite est scan6. Il permet notamment d’évaluer automatiquement les schémas d’adressage d’un déploiement et ne cibler ensuite que ceux-ci. De quoi réduire le périmètre scanné.

 

La plupart des outils du kit de SI6 Networks nécessitent une connaissance approfondie des protocoles employés et peuvent être difficiles d’accès aux débutants. Mais certains outils comme scan6 ressemblent à des applications plus courantes et s’avèrent plus faciles d’accès.

Mais compte tenu de la documentation complète fournie avec le kit – sans compter les pages man fournissant des exemples concrets d’utilisation – le problème se réduit en définitive au temps investi pour prendre en main ses outils.

Adapté de l’anglais.

Fernando Gont travaille pour SI6 Networks. Il est consultant en sécurité et ingénierie des réseaux IP. Il participe activement à l’IETF où il contribue à plusieurs groupes de travail et a signé plusieurs RFC.

Pour approfondir sur Sécurité réseau (IDS, XDR, etc.)