Scanner un réseau IPv6…


La sécurité en IPv6 est un sujet qui fait beaucoup parler.

L’absence de NAT et l’affectation d’une adresse IP publique à tous vos équipements peut vous donner l’impression d’être plus vulnérable.

En dehors des problématiques de filtrage que je traiterai dans un autre post, commençons par essayer de voir si votre adresse publique est vraiment visible ou facile à deviner.

Un certain nombre de choses ont été écrites sous l’égide de l’IETF à ce sujet :

On y voit clairement, que, en dehors de la connaissance préalable du schéma d’adressage utilisé sur votre LAN, ou d’un indice externe permettant de connaitre votre adresse (entrée DNS, présence dans un log…) aucun outil n’est vraiment efficace pour mener à bien cette opération.

En effet, avec un tel nombre d’adresses disponibles, scanner un réseau depuis le monde extérieur devient une opération beaucoup plus difficile qu’en IPv4, voire impossible…

Même en connaissant le /64 sur lequel réside une machine cible, parce que l’IID fait 64 bits, comment scanner 2^64 adresses sans y passer une éternité ??

Essayons de voir comment restreindre la plage de scan :
Si la cible utilise SLAAC et EUI-64, ce qui est assez courant on peut restreindre le scan à la partie variable, c’est à dire les 24 derniers bits.
Regardons le nombre d’OUI qu’il faudrait alors parcourir :

 
raspberrypi ~ $ 
raspberrypi ~ $ wget http://standards.ieee.org/develop/regauth/oui/oui.txt 100%[===================================>] 3 025 614 887K/s ds 3,5s 
raspberrypi ~ $ grep "base 16" oui.txt | wc -l 18057 
raspberrypi ~ $

Bon… cela fait quand même 18057 OUI
Ce qui signifife 18057*(2^24) =~ 302 946 189 312 adresses c’est beaucoup !!

D’autres techniques permettent de restreindre le scan à un schéma d’adressage bien spécifique, voir le draft ci dessus, mais il reste quasiment impossible de scanner une adresse IPv6 depuis le monde extérieur sans indice préalable…