Brancher un boitier, connecter son smartphone à un réseau Wi-Fi et obtenir tout le trafic des applications qu'il porte. C'est ce que promet PiRogue, un projet tout juste sorti de l'œuf, qui veut simplifier la mise en place d'un proxy captant ce que reçoit et envoie un appareil. La première brique d'un système qui pourrait avoir de grandes implications.
Vous avez toujours voulu savoir ce que votre smartphone envoie sur Internet, mais pas de connaissance technique ? Le projet PiRogue pourrait être pour vous. Avec un Raspberry Pi et une distribution Linux à la configuration simplifiée, il ambitionne d'ouvrir cette activité au plus grand nombre. Il suffit de connecter le mini-PC à Internet, pour qu'il génère un réseau Wi-Fi ouvert, auquel se connecte l'appareil ciblé.
À son origine, la chercheuse indépendante Esther, qui mène déjà la conception de la plateforme d'analyse de pisteurs Exodus Privacy, sortie en novembre (voir notre entretien). « C'est une idée née quand j'ai commencé les cafés vie privée, il y a environ un an. Il y a une énorme barrière technique pour prendre conscience de l'envoi de données par les applications vers des serveurs tiers, voire du fait qu'elles sont connectées à Internet » nous explique Esther.
Tout part d'un Raspberry Pi 3 et de « mitmproxy », un proxy capable d'intercepter le trafic HTTP(S). La démarche : installer la distribution Kali Linux (conçue pour la recherche en sécurité) sur une carte SD, brancher le mini-ordinateur en Ethernet ou en Wi-Fi, puis télécharger et exécuter un script de configuration contenant quelques commandes « triviales pour des personnes administratrices système ». « Je n'ai fait que mettre du papier cadeau » assure encore Esther, qui propose une édition avec boitier dédié et écran.
Un objectif, « lever le maximum de barrières techniques »
Le projet est tout jeune. Publié il y a deux semaines, il est le fruit de trois weekends de travail, dont un pour la conception mécanique du boitier imprimé en 3D (aux plans fournis librement). Il descend d'HotSpoot, un chaudron connecté utilisé par Esther en conférence.
« Il s'illumine de couleurs différentes en fonction des sites visités par les participants à la conférence, rappelle-t-elle. Je l'utilise en café vie privée pour mettre en lumière ces fameuses communications auxquelles on ne s'attend pas forcément. » PiRogue suit aussi le travail sur un routeur 4G et Wi-Fi, aussi à base d'un Raspberry Pi.
Le projet se destine aux personnes assez techniques pour vouloir analyser l'activité réseau d'un appareil, ne sachant pas administrer un tel proxy. Le but : « lever le maximum de barrières techniques, comme la création d'un réseau Wi-Fi, l'attribution des adresses IP via un DHCP, la redirection du trafic vers mitmproxy en jouant avec le pare-feu... ». « Il n'y avait pas grand-chose à faire pour rendre l'opération beaucoup plus accessible » pondère-t-elle
Une telle capture est déjà possible sur Android, via des applications dédiées, dont certaines demandent de « rooter » l'appareil pour obtenir les droits d'administration. « C'est une première barrière. Puis, analyser des traces réseau sur un smartphone, ce n'est pas très folichon » estime encore la chercheuse. Par ailleurs, passer par son propre PC peut mener à bien des déconvenues en cas d'erreur de configuration.
Dans une vidéo, elle montre l'utilisation de l'outil via une invite de commandes. Créer un réseau Wi-Fi ouvert avec « mitmproxy » ne demande pas de manipulations complexes, la configuration étant prémâchée. À noter qu'il intègre mitmweb, une interface web pour visualiser le trafic en cours de capture.
Un jeune projet, une version vendue à prix coûtant
« C'est un projet tout jeune, je ne garantis pas qu'il n'y a pas de plâtre à essuyer » martèle Esther. Nous avons pu le constater sur un Raspberry Pi 2, qui a bloqué sur la configuration via une connexion SSH. Elle a par contre bien fonctionné sur un Raspberry Pi 3. Comptez tout de même deux heures pour tout installer. Notez aussi qu'un service se plaindra en permanence en l'absence du petit écran prévu.
Pour limiter certains de ces problèmes, Esther compte bientôt livrer une image complète, préconfigurée. Même si cela demandera plus de maintenance de sa part. Enfin, lors d'événements, elle vend le boitier préparé, à prix coûtant soit environ 64 euros.
Elle l'utilise actuellement dans le cadre d'Exodus Privacy, pour analyser l'activité de certaines applications. Même si, au fond, « PiRogue, c'est pour m'amuser ».
Des limites dans l'analyse du trafic
Malgré l'avancée que pourrait représenter le projet, il souffre de limites inhérentes à ses outils. Pour capter le trafic chiffré (HTTPS) d'un appareil, mitmproxy requiert l'installation d'un certificat spécifique sur celui-ci. Le « MITM » fait référence à l'attaque de l'homme du milieu, où l'attaquant se place entre Internet et sa cible.
Mais une application peut se prémunir de cette attaque : « Si elle fait du certificate pinning, c'est-à-dire qu'elle vérifie en dur qu'elle dialogue avec le serveur attendu, elle ne fonctionnera pas avec mitmproxy au milieu » explique Esther, qui trouve surtout ce comportement sur les applications bancaires. La logique est similaire à HSTS pour les sites web.
L'autre grande limite est que mitmproxy ne capte que le HTTP(S). La majeure partie des applications dialoguent avec des interfaces de programmation (API REST) par ce biais. D'autres passent par des outils autres, comme Protobuf de Google ou MQTT, un protocole très léger d'abord conçu pour l'Internet des objets industriel, exploité par Facebook.
Enfin, le HTTP(S) n'est qu'une partie d'un trafic plus global. « On peut lui adjoindre Wireshark, qui récupère l'intégralité du trafic, comme l'UDP ou les requêtes DNS, qui font partie de l'activité réseau mais passeront sous le radar de mitmproxy » note notre interlocutrice.
La première étape d'un plus grand outil
Le projet ne serait que la première brique d'un système plus large, qui devrait se construire au fil des mois. L'idée s'est matérialisée lors de discussions entre Esther et la consultante en sécurité Rayna « MaliciaRogue » Stamboliyska. Cette dernière cherche un moyen simple, accessible et reproductible de capturer le trafic d'objets connectés (Bluetooth et Internet). Son point de départ : les sextoys connectés et l'Internet des objets à visée médicale, à la sécurité fréquemment défaillante.
« L'idée centrale est la reproductibilité scientifique. Je veux que ma méthodologie, pour le recueil des données et leur traitement soit stable » nous explique-t-elle. Or, jusqu'ici, pour capturer le trafic Bluetooth, elle se voyait plutôt passer par des smartphones reconditionnés.
« Le problème de départ est la difficulté d'émuler du Bluetooth et de simuler le comportement d'un objet connecté à un smartphone. On y arrive, mais c'est du bricolage et les résultats sont plutôt médiocres. Bien sûr, acheter un smartphone reconditionné est une solution, mais c'est un objet avec plein d'autres fonctionnalités. Donc, le risque d'effets secondaires existe. Cette approche a un coût, notamment si on commence à réfléchir à des analyses iOS : même reconditionnés, les iPhone restent onéreux. La conclusion est qu'on a un tas de plateformes Android différentes et donc, la reproduction des résultats est compliquée », estime-t-elle.
Le travail d'Esther contribue ainsi à créer une infrastructure à bas coût, mobilisant des logiciels et du matériel open source. Une garantie importante, pour Rayna Stamboliyska. « L'objectif est de donner un outil simple au plus grand nombre » nous assure-t-elle. À terme, la capture de flux Bluetooth via de nouvelles versions du protocole ne pourrait requérir qu'un changement de clé sur un Raspberry Pi.
Pour la gestion des données collectées, elle s'inspire du modèle récemment présenté par le chercheur belge Xavier Mertens dans une conférence (PDF). Il y détaille un processus, à base de logiciels libres, pour exploiter des données de supervision réseau (PCAP). Pour Rayna Stamboliyska, la technique est adaptable à bien des sujets.
Elle voit ainsi des débouchés dans l'étude de la sécurité d'objets connectés ou des changements concrets dans des applications. Bien souvent, les développeurs se contentent de déclarer la « correction de bugs mineurs », alors que des modifications importantes peuvent être appliquées, comme le retrait de pisteurs ou l'ajout de portes dérobées. Pour la consultante, un outil comme PiRogue aide à automatiser l'analyse des échanges réseau, pour déceler de nouveaux comportements. Tout cela « se fera au fur et à mesure », nous répond Esther, sans contrainte de calendrier.