Ne faites pas confiance à la localisation de votre navigateur

Image 1 : Ne faites pas confiance à la localisation de votre navigateurLa localisation dans Bing MapsAvez-vous déjà utilisé la fonction de localisation de votre navigateur, par exemple sur Google Maps ou Bing Cartes ? Si oui, avez-vous une idée de la façon dont elle fonctionne et savez-vous qu’il est assez simple de modifier cette position ?

Une histoire de Wi-Fi

Contrairement aux idées reçues, les systèmes de localisation, que ce soit sur PC ou sur un appareil mobile, n’utilisent que rarement l’adresse IP, cette dernière ne permettant pas une localisation précise. Dans les appareils mobiles, on a un mélange de trois techniques : le récepteur GPS (précis, mais lent), une localisation via le réseau GSM (peu précis, mais très rapide) et une localisation via Wi-Fi, qui est rapide et — en ville — très précise.

Le fonctionnement est simple : il existe des bases de données (Skyhook, Apple, Google, etc.) qui référencent des millions de points d’accès (via leur adresse MAC) et une position précise. Cette base est alimentée par des services de cartographie (Street View chez Google, par exemple) ou par crowdfunding (chez Apple, les iPhone alimentent la base). Quand une demande de localisation est effectuée, l’appareil envoie la liste des réseaux Wi-Fi qu’il détecte (leurs adresses MAC plus exactement)et la base de données renvoie en réponse la position des points d’accès référencés. Il suffit ensuite d’effectuer une triangulation sur la position des points d’accès (en estimant la distance avec la puissance d’émission) pour obtenir une position relativement précise. En ville, s’il y a beaucoup de réseaux visibles, la précision est très bonne. Bien évidemment, sans carte Wi-Fi ou dans des endroits isolés, la précision diminue, mais c’est une solution simple et efficace.

Modifier la position

Maintenant, que se passe-t-il si vous déplacez un point d’accès ? Tant que la base de données n’est pas à jour (ce qui peut prendre du temps), sa position n’est pas correcte et il peut donc fausser une localisation. C’est un problème que votre serviteur a connu : après un déménagement dans une zone isolée, il a fallu un mois avant que la localisation Wi-Fi prenne enfin en compte la nouvelle position du point d’accès.

Partant de là, il est assez simple de fausser une localisation. Le concept est simple : on va simplement créer de faux réseaux Wi-Fi virtuels dont les adresses MAC correspondent à un point précis. Un simple ordinateur sous Linux avec une carte Wi-Fi supportant l’injection (comme ce qu’on utilise pour attaque du chiffrement WEP) suffit, dans notre cas nous avons utilisé un Raspberry Pi et une carte Wi-Fi USB (environ 75 € de matériel).

La seule chose nécessaire est donc une liste d’adresses MAC correspondant à un endroit précis. On peut soit l’obtenir en allant physiquement dans l’endroit en question (la solution la plus efficace) soit en utilisant Wigle, une base de données publique qui référence des milliers de points d’accès.

Hack de la localisation d’un navigateur

Comme le montre la vidéo, c’est très efficace : il suffit de quelques secondes pour modifier la localisation dans un navigateur.

L’efficacité dépend de plusieurs choses. La première, c’est le nombre de réseaux visibles au départ : s’il est élevé, il faudra générer un nombre conséquent de réseaux Wi-Fi pour fausser la localisation. Typiquement, dans nos bureaux où nous captons plus de 25 réseaux Wi-Fi, il faut générer environ 60 faux réseaux pour commencer à avoir un résultat. A contrario, dans une zone où on capter au départ 6 réseaux, il suffit d’une vingtaine de faux réseaux pour fausser la localisation en quelques secondes. La seconde, c’est la précision de vos données de départ : l’idéal est de disposer d’une liste récupérée directement dans l’endroit que l’on veut simuler. Enfin, tous les appareils ne sont pas sensibles à l’attaque : un ordinateur portable classique est vulnérable, que ce soit avec la base de données de Google (Firefox, Chrome) ou celle d’Apple (sur les Mac), tout comme les tablettes Wi-Fi. A contrario, les appareils équipés d’une connexion 3G ou d’un récepteur GPS sont peu sensibles : le réseau GSM et le GPS sont prioritaires pour la localisation. Typiquement, un smartphone va être faussé pendant quelques secondes, avant de se positionner de façon peu précise via GSM et de façon précise avec un signal GPS quand c’est possible quelques minutes après.

Si l’attaque est aisément détectable pour une personne avertie, elle reste tout de même assez efficace dans l’absolu, surtout sur un ordinateur. Le mot d’ordre est donc simple : ne prenez pas pour argent comptant ce que vous envoie votre navigateur…