Une équipe de chercheurs vient de publier une solution assez étonnante pour récupérer des données en douce : elle passe par le réseau Localiser (Find My, employé par les AirTags) d'Apple. La démonstration est intéressante, et elle est liée à une exploitation matérielle qui sert de démonstration.
Les explications détaillées sont disponibles sur un post de blog, mais nous allons tenter de résumer rapidement le principe. Le fonctionnement des objets connectés au réseau d'Apple est assez simple : ils émettent des données en Bluetooth qui contiennent essentiellement une clé publique.
Les appareils Apple qui captent les données ajoutent la localisation (chiffrée avec la clé publique) et envoient les données sur les serveurs d'Apple (plus exactement, un hash de la clé, c'est-à-dire une représentation issue d'une fonction mathématique non réversible). Ensuite, les serveurs d'Apple peuvent vous fournir les données reçues qui contiennent la clé publique de votre objet (et uniquement le vôtre, à travers le hash) et il est enfin possible de déchiffrer la localisation avec la clé privée, qui est en votre possession.
Le protocole est simple, employé par de nombreux objets tiers — nous avons un comparatif dédié sur JeVeuxLe.Top — et il existe des implémentations open source comme OpenHaystack.
Des clés publiques trafiquées
Pour transmettre des données, l'idée est de créer des clés publiques spécifiques et valides pour le réseau d'Apple contenant les données à transmettre. En simulant plusieurs objets, il est donc possible d'envoyer quelques octets en douce assez facilement. Les données passent donc littéralement par le réseau d'Apple et les périphériques Apple aux alentours, avec quelques contraintes. Dans l'exemple, l'équipe emploie une carte de développement ESP32 intégrée dans un clavier, qui va enregistrer les touches frappées. L'appareil peut encoder environ 3 octets par seconde avec les calculs nécessaires, et un Mac (avec le programme dédié) peut recevoir et décoder environ 16 octets en 5 secondes.
Il y a bien évidemment une latence inhérente au réseau, elle est entre 1 et 60 minutes selon ses essais. Ce point est lié au fonctionnement : son périphérique émet les données, ensuite elles doivent être captées par un appareil Apple, puis envoyées sur les serveurs, avant d'être récupérées. Le code nécessaire pour une petite démonstration est en ligne sur GitHub. Le keylogger n'est donc pas connecté à Internet, mais les données sont tout de même transmises.
Le principal problème pour Apple, c'est que cette technique ne peut pas être bloquée facilement. Une vérification de la validité d'un objet émetteur est compliquée, ne serait-ce que parce qu'Apple a ouvert le protocole à de nombreux fabricants et que le réseau ne peut pas faire de différence entre les messages d'un AirTag (par exemple) et d'un équivalent tiers ou open source. Pour le moment, la seule limite pratique est le fait qu'un compte ne peut être lié qu'à 16 objets, mais elle est visiblement inopérante ici et il est de toute façon possible de créer plusieurs Apple ID pour récupérer les données.
Reste la question : quel est l'intérêt et quels sont les risques ? L'équipe de Positive Security donne plusieurs voies de réflexion. Premièrement, le réseau pourrait servir pour des objets connectés qui envoient peu de données. Le réseau Sigfox, par exemple, repose sur l'idée de très bas débit, et Apple pourrait en profiter pour certains objets connectés. Du point de vue des risques, ils notent deux choses. La première idée serait simplement de forcer des utilisateurs d'iPhone à envoyer des données et donc « vider » le forfait de données. Mais même en envoyant énormément de messages, il semble peu probable d'arriver à atteindre des volumes de données équivalents aux limites des forfaits, au moins en France.
La seconde, bien évidemment, est l'exfiltration de données. En effet, les données sont transmises par les appareils Apple aux alentours et même si elles sont récupérées dans une zone qui n'est pas couverte (intentionnellement ou non) par un réseau de communication, elles sont transmises une fois que l'iPhone (l'iPad, le Mac, etc.) récupère un accès à Internet. Mais cette solution a tout de même un défaut : il faut un périphérique Bluetooth programmé pour transmettre les données. Dans les zones très sécurisées, nous pouvons supposer qu'un appareil émettant des messages en Bluetooth LE en permanence serait rapidement détecté. Dans la pratique, l'attaque nécessite tout de même un accès physique pour récupérer les données et, évidemment, la présence d'appareils Apple.