Ou tout ce que vous pouvez faire des ondes qui se baladent alentour.

Article publié en 2002 dans MISC 6, co-écrit avec Cédric Blancher.

Aah, la magie du sans fil. Le plaisir d'arriver dans une salle de conférence, de s'installer avec son portable sur les genoux et d'être déjà relié au vaste monde sans avoir le moindre petit câble à brancher.Terminés, les câbles réseaux dans tous les sens pour les LAN-parties.Finis, ces fils disgracieux au milieu de votre cabinet médical.L'heure est à la légèreté et à la simplicité, les réseaux s'affranchissent de leurs traditionnels supports cuivrés.

Malheureusement, en l'état actuel des choses, l'utilisation d'ondes radio comme support pour des réseaux informatiques est sensiblement équivalente à l'affichage d'un panneau publicitaire géant invitant tout un chacun à venir s'y connecter. Pire encore, les rares mesures de sécurité présentes dans ces technologies sont à peu près aussi efficaces qu'une clôture en bois qui tenterait d'arrêter un char.

1. Maman, maman, regarde, y'a nos paquets à la radio !

Tout comme sur un réseau filaire, il est possible sur un réseau sans fil(ou wireless) d'observer passivement le trafic, ce que l'on appelle plus communément sniffer. Sur un réseau filaire, ethernet par exemple, il suffit d'avoir accès à un port d'un quelconque hub ou switch connecté auréseau local pour pouvoir tranquillement jouer les voyeurs (moyennant l'investissement dans une paire de jumelles adéquates dans le cas d'un switch). En règle générale, cela impose à un éventuel attaquant d'obtenir un accès physique aux locaux et un peu d'intimité pour établir une relation de confiance avec la prise réseau qu'il aura repérée.

Sur un réseau sans fil, c'est encore plus simple. Pas besoin de trouver une prise, ni même de se faire passer pour le livreur de pizzas pour pénétrer physiquement sur le site concerné. Les ondes radios, ayant un esprit libertaire assez développé, sont relativement délicates à confiner dans une enceinte fermée. Il suffit à notre méchant pirate de garer sa vieille Panda Fire noire (avec les pare-chocs violets) à proximité de l'immeuble dans lequel est déployé le réseau sans fil, et pour peu qu'il ait une carte réseau d'une puissance suffisante, il pourra accéder sans effort au trafic interne de ce réseau.

Voyeurisme organisé

Notre objectif n'est pas ici de parler des différents outils qui permettent de sniffer le trafic réseau. Les tcpdump et autres ethereal[1] sont des outils suffisamment courants et documentés pour qu'une énième présentation ne s'impose pas dans cet article. Nous allons en revanche nous intéresser de plus près à divers autres outils d'analyse de trafic dédiés aux environnements wireless.

Cependant, avant celà, il convient d'avoir une idée un peu plus précise de la façon dont un client peut se connecter à un point d'accès wireless. Dans la mesure où la technologie la plus répandue est de très loin le 802.11b[2], tous nos exemples s'appuieront sur ce support, qui,rappelons-le, travaille dans la bande des 2,4GHz. Le 802.11b supporte deux modes : le mode infrastructure (BSS) pour lequel chaque client se connecte à un point d'accès (AP pour Access Point), constituant un réseau centralisé, ou le mode ad-hoc (ou distribué, IBSS) où chaque client établit un lien point à point avec un autre client,constituant ainsi un réseau maillé. Dans la suite de l'article, nous discuterons du mode infrastructure puisque c'est le mode de fonctionnement par défaut des installations 802.11, et de fait la mise en œuvre la plus couramment constatée. Du point de vue de la sécurité, les mécanismes utilisés sont les mêmes, entre un client et un AP ou entre deux clients. Notre discours est donc tout à fait applicable aux deux mode de fonctionnements.

Pour pouvoir utiliser un point d'accès wireless, un client doit s'y associer. Pour ce faire, il lui faut simplement connaître le numéro de canal utilisé par le point d'accès d'une part, et d'autre part le SSID (ou ESSID). Précisons également à l'intention du lecteur averti que le cas des mesures cryptographiques sera étudié plus loin dans cet article.

Pour ce qui est de trouver un canal sur lequel écouterait un hypothétique point d'accès, la plupart des cartes wireless du marché le font déjà lorsqu'elles cherchent à s'associer. Certaines comme les Aironet de Cisco permettent d'écouter simultanément sur tous les canaux,d'autres se contentant de sauter d'un canal à l'autre en rapide succession. Le point d'accès émettant régulièrement des trames spécifiques pour s'annoncer (nommées beacon frames par nos amis anglophones), il est aisé de déceler leur présence. Une fois l'animal repéré, il suffit de se tapir dans les fourrés quelques instants et d'observer le trafic avec un des sniffers susmentionnés pour obtenir leSSID qu'il utilise, ce dernier étant en effet transmis en clair avec chaque paquet. Pour ce faire, prenons par exemple l'un des nombreux scanners de réseaux sans fil existant, Wellenreiter (sous Linux,fig. 1) ou Aitraf (également sous Linux, en console). Ce dernier permet une analyse très complète, fournissant des statistiques très détaillées pour chaque point d'accès détecté comme l'analyse du trafic 802.11b, les stations associées voire même l'analyse du trafic réseau si celui-ci circule en clair (cf.fig. 2).

WellenreiterFig1 : Wellenreiter

Il y a deux façons d'écouter un réseau sans fil. La première est en tous points identiques à l'écoute d'un réseau filaire, c'est-à-dire qu'on passe l'interface en mode promiscuous, de sorte qu'elle remonte automatiquement toutes les trames (au format ethernet) reçues aux couches supérieures. Pour utiliser ce mode sur un réseau sans fil,il faut être associé au point d'accès. Il ne permet de sniffer que les trames émise sur le réseau auquel on est associé, exactement de la même manière qu'avec une interface ethernet classique, le réseau wireless étant à ce niveau là équivalent à un switch. L'autre mode utilisable est souvent appelé monitor, ou RFMON chez Cisco. Dans ce mode, ce sont les trames 802.11 brutes qui sont remontées,pour les canaux que la carte est en train d'écouter, sans avoir besoin de s'associer à un point d'accès. C'est donc le mode le plus discret et surtout le plus efficace des deux puisqu'il permet d'avoir accès aux trames de gestion (comme les beacon frames) en plus des trames de données. C'est le mode qu'on utilise pour scanner les réseaux wireless. Airtraf Fig2 : Airtraf, statistiques pour un AP

Le premier problème et le plus évident est la non-confidentialité des informations qui transitent. En soi, c'est déjà assez grave, d'autant plus que la plupart des utilisateurs de réseaux sans fils sont inconscients des risques qui les menacent, et donc n'hésitent pas à faire transiter des informations sensibles sur ces supports. Un exemple qui a frappé les esprits en 2002 est celui de la société américaine Best Buy (cf. VulnDev[3]), qui utilise entre autres des terminaux sans fil pour les transactions bancaires dans ses quelques centaines de magasins, et n'avait pas activé le moindre système cryptographique. Sam le pirate pouvait donc s'installer tranquillement sur le parking du magasin et obtenir diverses informations nominative, et occasionnellement un numéro de carte bancaire.

Plus grave encore, une fois associé, notre malfaiteur peut accéder aux mêmes ressources que n'importe quel client légitime du réseau sans fil, et très vraisemblablement à un certain nombre de ressources sur le réseau câblé qui existe certainement derrière : un point d'accès ne se contente pas de mettre en relation des clients wireless, il peut également servir de pont entre un réseau sans fil et un réseau filaire. Un certain nombre d'attaques seront présentées dans la suite de cet article, mais avant cela, il convient de s'intéresser au principal mécanisme de sécurité utilisé dans les réseaux 802.11b.

Sans fil mais pas sans filet?

La problématique de sécurité liée aux réseaux sans fil n'est pas nouvelle, et il y a longtemps qu'une réponse a été apportée, visant notamment les problèmes de confidentialité. Malheureusement, cette solution, qui répond au doux nom de WEP (signifiant Wired Equivalent Privacy, présente une faille majeure.

En effet, ce protocole, qui permet de chiffrer intégralement les données transmises entre des équipements 802.11b, utilise une clé de session commune au client et au point d'accès. La connaissance de cetteclé suffit donc à un client pour communiquer avec le point d'accès (sil'on y ajoute le canal et le SSID, qui comme il l'a été indiqué précédemment s'obtiennent plus qu'aisément). Or, pendant une communication protégée par WEP, certaines fuites d'information peuvent permettre de déduire cette clé de session. Pour une analyse cryptographique de cette faille, le lecteur se reportera à l'excellent article d'Éric Filiol et Frédéric Raynal dans MISC n°6 [4]. Nous nous contenterons ici de retenir qu'il existe des outils permettant d'observer passivement le trafic et potentiellement d'en déduire la cléau bout d'un certain temps, comme Airsnort. Comme l'indique la figure 3, Airsnort écoute le trafic réseau à la recherche de paquets dits "intéressants", qui peuvent permettre la déduction d'une partie de la clé.

Airsnort Fig3 : Airsnort

Une autre piste pour casser le WEP repose sur la phase d'authentification,qui repose sur un challenge permettant à l'AP de vérifier que le client est bien en possession de la clé WEP en vigueur. Pour cela, il génère une chaîne aléatoire qu'il enovie au client. Ce dernier la chiffre avec la clé et retourne le résultat qui sera utilisé pour valider ou non l'authentification. La faille est claire :si nous suivons toutes les phases d'authentification, nous obtenons d'un côté des challenges et de l'autre ces mêmes challenges chiffrés. Nous pouvons donc mettre en œuvre une attaque en texte clair (ou en clair connu). Une autre attaque en texte clair[5] consiste à récupérer le contenu des trames, soit en forçant la génération de messages par un client vers un site contrôlé) ou vers le réseau filaire ethernet se trouvant derrière l'AP si on y a accès, puisqu'en ce beau pays, les trames gambadent déchiffrées[6]...Enfin, énormément de logiciels de configuration de points d'accès ou de clients 802.11 dérivent leur clé WEP d'un mot de passe selon un algorithme connu, comme ici avec l'utilitaire nwepgen :

cbr@elendil:~$ /sbin/nwepgen mon_pass 13 e6:74:fa:02:8d:b5:d4:e6:d3:50:fd:b6:bd c2:55:e8:bb:4f:5a:0e:e5:3c:92:ab:84:3f 2a:45:d4:34:dc:bb:08:11:16:d9:8f:1c:58 2a:96:5c:dd:0d:ce:4d:7f:0b:6f:d8:d5:68

La première clé obtenue sera utilisée comme clé 0, la seconde comme clé 1, etc.Ainsi, lorsque nous voyons un AP protégé par du WEP, que nous l'avons identifiée et que nous savons qu'il permet ce genre de pratique, il sera nettement plus simple et souvent plus rapide d'attaquer l'éventuel mot de passe générateur par dictionnaire ou force brute.

WiFi spotting

C'est grâce à de tels outils de détection de réseaux sans-fil qu'a vu le jour le wardriving[8, 9]. Le wardriving consiste à localiser des points d'accès et enregistrer leur configuration. Le wardriver peut ainsi se constituer une carte des environs répertoriant tous les AP accessibles.Un outil comme Network Stumbler, associé à un périphérique GPS permet de générer automatiquement des cartes extrêmement lisibles[10] comme le montre la figure 4 (Kismet et Airsnort peuvent également tirer partie de ces modules). De telles cartes, selon les données collectées et celles retenues pour la génération peuvent montrer :

  • le fabricant et le modèle du point d'accès ;
  • le canal utilisé ;
  • le SSID utilisé ;
  • la présence ou non de WEP et, le cas échéant, sa force ;
  • etc.

Apmap Figure 4 : APmap

Vous chantiez? Eh bien dansez, maintenant.

Il est remarquablement aisé de créer un déni de service sur un réseau sans fil. Ainsi que l'indique l'article de ce dossier présentant le fonctionnement des standards 802.11, un type particulier de trames wireless appelées trames de gestion sert entre autres aux demandes d'association et de désassociation envoyées par un client à un point d'accès.

Or, les points d'accès sont généralement de grands naïfs, utilisant l'adresse MAC du client pour l'identifier de manière - théoriquement -unique. Ainsi, s'il reçoit une demande de désassociation en provenance d'une adresse MAC X, il obéit sagement et désassocie l'adresse MAC X. Vous l'aurez deviné, il suffit donc à notre pirate de s'attribuer l'adresse MAC d'une quelconque machine cible pour pouvoir l'empêcher d'utiliser le réseau sans fil, et ce sans bouger du fond de son hamac. Il ne reste qu'un petit pas à faire pour écrire un outil qui écouterait le réseau et émettrait une trame de désassociation aussitôt qu'il voit un client communiquer, et crac, plus de réseau.

Au delà du cyber-vandalisme, ces dénis de services sont fort utiles pour pénétrer un réseau sans fil. Nous avons vu que nous pouvions attaquer le WEP en observant les authentifications. Or, ces évènements ne sont pas fréquents, et notre pirate allongé va devoir les provoquer pour en tirer partie au maximum. La plupart des drivers essayent de se réassocier automatiquement en cas de problème. Il suffira donc de forcer des désassociations pour générer autant de dialogues que nécessaire.

Mais vous êtes qui, vous?

Puisque les points d'accès identifient les clients à partir de leur adresse MAC, il est assez peu surprenant que la majorité des technologies d'authentification s'appuient également sur l'adresse MAC. Ainsi, le point d'accès peut définir une liste de contrôle d'accès (ouACL) statique précisant les adresses MAC autorisées à s'associer.Dans ce cas, il suffit encore une fois de s'approprier l'adresse MAC d'un client autorisé, subtilement obtenue par une écoute discrète du réseau, et l'AP n'y verra que du feu.

De plus, le mécanisme d'authentification par challenge/réponse vu précédemment souffre d'une faille qui permet à un attaquant de s'associer sans connaître la clé WEP. Si celle-ci lui sera nécessaire pour communiquer de manière normale, cette association lui permettra d'injecter des trames valides sur le réseau en jouant avec une faille du système de contrôle d'intégrité[4, 11], qui lui permettra de modifier des trames arbitraires.De quoi mettre un peu le bazar dans ce monde hertzien.

Fort heureusement, des technologies d'authentification plus récentes et un tantinet plus évoluées existent. On peut citer parmi elles le802.1x, qui permet de contraindre un client à s'authentifier avant de l'autoriser à utiliser un port d'un équipement actif, c'est-à-dire par exemple un port sur un switch, mais aussi une association sur un point d'accès. Cette authentification peut utiliser différentes méthodes,allant du simple couple utilisateur/mot de passe aux certificats, en passant par l'utilisation de tokens physiques. Un peu moins heureusement, une fois un client authentifié et donc associé au point d'accès, ce dernier ne retient que son adresse MAC comme critère pour autoriser ou non les communications. Ainsi, une fois un client associé,notre méchant pirate (qui n'a toujours pas décollé de son hamac) peut s'approprier son adresse et profiter de son authentification. Il y a deux points intéressants à noter quant à cette attaque. D'une part,contrairement au cas précédent, ici, il faut que le client dont on s'approprie l'adresse MAC soit présent et associé à l'AP. D'autre part,l'attaque est non disruptive, c'est-à-dire qu'elle ne perturbe pas le fonctionnement du client légitime dont nous dérobons l'identité. En effet, même si et le client légitime et l'attaquant verront chacun l'intégralité des trames destinées aux deux machines, pour peu que l'on prenne soin d'utiliser une adresse IP sur l'attaquant différente de celle du client légitime, la couche IP se chargera d'effectuer le tri entre les paquets, évitant par exemple que le client légitime ne répondea vec un TCP RST dès que l'attaquant essaye d'ouvrir une session TCP.

En outre, l'association 802.1X/802.11 présente des failles découlant d'une part des spécifications 802.1X et d'autre part du manque caractérisé de confidentialité de 802.11 qui permettent de s'approprier des associations(hijacking) ou de mettre en place des attaques de type Man In The Middle pour s'authentifier[12]. Nous ne développerons pas ici ce type d'attaques, mais il est bon de savoir que parce que 802.1X ne peut pas être efficace en wireless parce que la phase d'authentification, pour être efficace, nécessite une confidentialité que les réseau 802.11 ne peuvent pas apporter.

3. Le monde sans-fil est à vous

Une fois que nous sommes capable d'accéder à un AP, nous pouvons commencer à nous promener sur le réseau qui nous est ainsi ouvert et regarder ce qu'on peut faire avec. Il n'y a pas à chercher bien loin : on peut faire tout ce qu'il est possible de faire sur un réseau ethernet classique, de l'usurpation d'adresse MAC comme vu précédemment, à la corruption de cache ARP qui entraine, comme vous avez pu le lire dans un article[13] d'un MISC précédent, la compromission complète de votre domaine de broadcast ethernet.

License to fake

Si les redirections de flux de niveau 2 et 3 peuvent être intéressantes,être capable de mettre en place une redirection de plus bas niveau ouvre même de nouvelles possibilités. Une attaque assez simple à réaliser est la mise en place d'un point d'accès illégitime, plus courament appelé rogue AP. Une fois activé, il sera capable de se substituer aux yeux d'un client 802.11 à tout AP de configuration équivalente dont le puissance reçue au point considéré serait plus faible. En effet, le mode de fonctionnement par défaut d'une carte 802.11est de s'associer au signal le plus fort présentant les paramètres d'accès désirés (canal, SSID et clé WEP essentiellement). Ceci peut se révéler d'autant plus intéressant que certains drivers s'associent automatiquement par défaut au point d'accès le plus puissant si sa configuration est acceptable. Ce qui veut dire en terme simple que mettre en place un AP puissant sans aucune protection peut drainer vers vous un nombre conséquent de clients... De fait,on comprend mieux ce que l'introduction d'un AP non autorisé, malicieux ou non,sur un réseau peut avoir comme conséquences en terme de sécurité. À côté, les implications d'un modem RTC/RNIS planqué font figure de pêché mignon.

Ma sécurité s'est envolée !

Nous pouvons nous appuyer sur la figure 5 pour dresser une liste (non-exhaustive) de tout ce que pourrait faire notre intrus (Joker) sur le réseau qu'il attaque :

  • écouter passivement tout le trafic généré par les trois clients wireless (mode monitor) ;
  • générer des DoS sur l'ensemble des clients wireless ;
  • intercepter localement le trafic généré par Robin et Batgirl ;
  • détourner, détruire et modifier localement le trafic généré par Robin et Batgirl ;
  • usurper localement l'identité de Robin et Batgirl ;
  • écouter, intercepter, détourner, détruire et modifier activement le trafic généré par d'une part les clients wireless et d'autre part les stations connectées au réseau filaire (ARP cache poisoning) ;
  • usurper l'identité des clients wireless et des stations filaires (ARP cache poisoning) ;
  • accéder à toutes les ressources accessibles depuis ce réseau.

De quoi faire devenir fou et/ou paranoïaque n'importe quel RSSI un peu tâtillon...

Rogue AP

Figure 5 : Rogue AP

4. Le toolkit

La liste des outils permettant différents types d'analyses et d'attaques sur des réseaux sans fil est longue, mais il est intéressantde présenter brièvement quelques-uns des plus répandus. Les chipsets supportés indiqués dans la table suivante correspondent au cœur des cartes wireless. Le chipset Hermes est principalement utilisé dans les cartes Orinico de Lucent, mais pas seulement. D'autre part, les références au chipset Prism2 d'Intersil incluent généralement les versions 2.5 et 3 dudit chipset.

Nom

Chipsets supportés

Plate-forme

Application

Airjack[14] Hermes, Prism2 Linux Emission de trames forgées (en particulier trames de gestion), simulation d'AP, déni de service
Airsnort[15] Hermes, Prism2, autres avec mode monitor Linux Détection de réseaux 802.11b, cassage de clés WEP
Airtraf[16] Cisco, Prism2 via HostAP Linux Détection et analyse de réseaux 802.11b
FakeAP[17] Prism2 via HostAP Linux Simulation de milliers d'AP
HostAP[18] Prism2 Linux Permet d'utiliser un client comme AP
Kismet[19] Tous ceux ayant un mode monitor Linux, BSD, Win32 (Cygwin), MacOS X Détection de réseaux 802.11a/b
Macstumbler[20] Airport MasOS X Détection de réseaux 802.11b
Mini Stumbler[21] Hermes PocketPC 3.0, 2002 Détection de réseaux 802.11b
Network Stumbler[21] Hermes Windows 9x, 2000, XP Détection de réseaux 802.11b
Wavestumbler[22] Hermes Linux Détection de réseaux 802.11b
Wellenreiter[23] Cisco, Hermes, Prism2 Linux, BSD Détectionde réseaux 802.11b, brute-force des SSID
WifiScanner[24] Prism2 Linux Détection de réseaux 802.11b

Pour la suite, les outils classiques que sont arp-sk[25],la suite dsniff[26] et un outil d'extraction/manipulation depaquets IP (Netfilter fera fort bien l'affaire) permettrons à notre intrus d'exploiter cet accès sans-fil.

5. Conclusion

Les réseaux sans-fil ont, de part la nature même de la méthode de transmission, à faire face à une problématique de sécurité qui tenait jusque là de la sécurité physique : l'accès physique au médium de communication. Lorsque cet accès est possible pour un intrus, il entraîne la compromission possible de toutes les données transmises sur le médium accédé (i.e. le domaine de broadcast ethernet).

Bien que le WEP ait été développé pour apporter une solution à ce problème, il échoue naïvement dans sa tâche. Les techniques mises en place sont faibles et insuffisantes pour garantir un accès sûr, à tel point que même des ajouts comme le 802.1X par exemple voient leur utilité réduite à néant.

Il est donc clair, et ce malgré les efforts des constructeur pour essayer d'améliorer la sécurité du 802.11 (suppression des IV faibles, support de clés 256bits ou protocoles propriétaires comme LEAP[27] de Cisco par exemple), qu'un réseau sans-fil 802.11 basé sur du WEP ne peut pas et ne doit pas être considéré comme sûr. Il en résulte que la sécurité ne peut venir que des couches supérieures, par la mise en place de méthodes d'authentification, de chiffrement et de contrôle d'intégrité au niveau réseau (liens IPSEC) ou applicatif (SSH, SSL, etc.).

Références

[1] http://www.ethereal.com/ [2] D. Polombo, "Introduction technique aux réseaux 802.11", MISC 6, mars-avril 2002 [3] Discussion "Wlan @ bestbuy is cleartext?" http://online.securityfocus.com/archive/82/270364/2002-04-28/2002-05-04/2 [4] É. Filiol et F. Raynal, "Les faiblesses du WEP, MISC 6", mars-avril 2002 [5] W. Arbaugh, An Inductive Chosen Plaintext Attack against WEP/WEP2, mai 2001 [6] N. Borisov, I. Goldberg et D. Wagner, "(In)Security of the WEP algorithm", 2000 http://www.isaac.cs.berkeley.edu/isaac/wep-faq.html [7] http://www.cs.umd.edu/~waa/wireless.html [8] http://www.wardriving.com/ [9] http://www.wifi-montauban.net/communaute/index.php/TrebucherSansFil [10] http://www.wifimaps.com/ [11] A. Wan, W. Arbaugh, N. Shankar et Y.C. Justin, "Your IEEE 802.11 Wireless Network Has No Clothes", IEEE International Conference on Wireless LAN's and Home Networks, Singapour, 2001 http://www.cs.umd.edu/~waa/wireless.pdf [12] A. Mishra et W. Arbaugh, "An Initial Security Analysis of the IEEE 802.1X Protocol", février 2002 http://www.cs.umd.edu/~waa/1x.pdf [13] C. Blancher, É. Detoisien et F. Raynal, "Jouer avec le protocole ARP", MISC 3, juillet-août 2002 [14] http://802.11ninja.net/ [15] http://airsnort.shmoo.com/ [16] http://airtraf.sourceforge.net/ [17] http://www.blackalchemy.to/project/fakeap/ [18] http://hostap.epitest.fi/ [19] http://www.kismetwireless.net/ [20] http://www.macstumbler.com/ [21] http://www.stumbler.net/ [22] "http://www.cqure.net/tools.jsp?id=8 [23] http://www.remote-exploit.org/ [24] http://wifiscanner.sourceforge.net/ [25] http://www.arp-sk.org/ [26] http://naughty.monkey.org/~dugsong/dsniff/ [27] http://www.cisco.com/warp/public/cc/pd/witc/ao350ap/prodlit/1515_pp.htm