- Il a été révélé qu’un masque de sommeil intelligent acheté sur Kickstarter transmettait les données d’ondes cérébrales des utilisateurs vers l’extérieur
- Le masque est constitué d’un matériel composite intégrant des capteurs EEG, une stimulation électrique (EMS), des vibrations, une fonction chauffante et de l’audio
- Lors de l’analyse de l’application, des identifiants d’authentification codés en dur pour un broker MQTT partagés par tous les appareils ont été découverts, permettant à un tiers de recevoir en temps réel les données de tous les appareils
- Il a effectivement été confirmé qu’environ 25 appareils transmettaient à un broker public des données d’ondes cérébrales en temps réel, de température, d’humidité, de CO₂ et de détection de présence
- Avec les mêmes identifiants, il était aussi possible d’envoyer des commandes de stimulation électrique, ce qui fait peser de graves risques sur la sécurité des utilisateurs et la protection de la vie privée
Structure et fonctions du masque de sommeil intelligent
- Le masque obtenu via Kickstarter est un produit fabriqué par une petite société de recherche chinoise ; il inclut la mesure des ondes cérébrales basée sur l’EEG ainsi que des fonctions de stimulation électrique musculaire (EMS), de vibration, de chauffage et de lecture audio
- Comme la qualité de l’application était médiocre et que la connexion se coupait souvent, le protocole Bluetooth a été rétroconçu afin de créer directement un panneau de contrôle web
- Le scan BLE a révélé l’existence de deux canaux de données (un pour l’envoi de commandes, un pour le streaming de données), mais il n’y avait pas de réponse car ils utilisaient un format propriétaire et non un protocole standard
Processus de rétro-ingénierie de l’application
- La décompilation de l’APK Android avec jadx a montré que l’application était développée sur une base Flutter
- Comme Flutter compile le code Dart en code natif ARM64, la restauration est plus difficile qu’avec une application Java classique
- À l’aide de la commande
strings sur le binaire, ont été extraits des identifiants de broker codés en dur, des endpoints d’API cloud, les noms de 15 fonctions de commande et des informations sur la structure des paquets
- Ensuite, l’outil blutter a été utilisé pour analyser le snapshot Dart et reconstituer l’intégralité des octets de commande
Contrôle de l’appareil réussi
- Après l’envoi d’une requête de 6 octets, l’appareil a renvoyé une réponse de 153 octets
- Elle comprenait le nom du modèle, la version du firmware, le numéro de série, la configuration de 8 canaux de capteurs (EEG 250Hz, respiration, accéléromètre 3 axes, gyroscope 3 axes) et une batterie à 83 %
- Le contrôle des vibrations, du chauffage, de l’EMS et de la musique fonctionnait normalement
- Une implémentation a été réalisée pour permettre de contrôler chaque fonction via des curseurs dans un tableau de bord web
Exposition du broker MQTT
- En se connectant au broker MQTT avec les identifiants codés en dur présents dans l’application, les données de tous les appareils ont été reçues
- Environ 25 appareils étaient actifs et transmettaient des données EEG pendant le sommeil, des mesures de qualité de l’air (température, humidité, CO₂) ainsi que des informations de détection de présence
- Il a été constaté que deux utilisateurs se trouvaient respectivement en sommeil paradoxal (REM) et en sommeil lent profond (ondes delta inférieures à 4Hz)
- Comme tous les appareils utilisent les mêmes identifiants, il existe une possibilité qu’un tiers externe envoie des commandes de stimulation électrique
Problèmes de sécurité et réponse
- Le nom du produit et celui de l’entreprise n’ont pas été divulgués, et le fabricant a été informé du problème
- Cet incident met en lumière de graves failles dans la protection des données personnelles et la gestion de la sécurité IoT
- L’auteur recommande de relire le texte de Karpathy, « Digital Hygiene », et souligne l’importance de l’hygiène numérique
Informations supplémentaires
- Le processus de rétro-ingénierie a été réalisé de manière autonome pendant environ 30 minutes par le modèle Claude (Opus 4.6)
- Par la suite, ce cas a atteint la 1re place sur Hacker News, et les logs de conversation associés ont été rendus publics
1 commentaires
Commentaires Hacker News
J’ai moi-même eu du succès avec quelques projets, mais j’ai toujours été très prudent au moment de les soutenir
Autrefois, des designers industriels voyaient l’ingénierie comme une simple ressource sous-traitable, levaient de l’argent puis cherchaient le prestataire le moins cher
Mais la plupart ont échoué ou y ont perdu de l’argent. Maintenant, avec les LLM, le logiciel et le firmware donnent l’impression d’être « gratuits », et des idées autrefois abandonnées parce que trop difficiles refont surface
Je suis neuroscientifique, donc je ne considère pas les données EEG comme de la « lecture de pensée », mais la non-confidentialité des données cérébrales crée un très mauvais précédent
Ce genre de fuite de données pourrait aussi avoir des effets sociaux négatifs
Avec des gens dans le monde entier qui vivraient simultanément les mêmes variations de rêve : comme idée de roman de science-fiction, c’est parfait
Ce serait encore mieux s’il n’était pas nécessaire d’appliquer du gel conducteur sur les électrodes à chaque fois
J’ai utilisé un MQTT ouvert pour faire du prototypage rapide avec des données non personnelles, mais mon fournisseur cloud m’a demandé d’arrêter à cause du risque de relais DDoS
Avec ce genre d’expérience, j’ai du mal à faire confiance à une entreprise de masques de sommeil, même si elle prétend avoir mis en place une authentification ou une gestion des autorisations
Ce cas illustre bien les failles de la réglementation des appareils de bien-être
Le récent assouplissement des règles autour des applications et des données est positif, mais des exigences de sécurité des données sont absolument nécessaires
Dans notre entreprise, tous les algorithmes et tous les traitements sont effectués sur l’appareil, et toutes les données envoyées au serveur sont chiffrées
Je me demande comment on peut faire confiance à une entreprise qui ne respecte même pas ce minimum
À lire le billet, on dirait que Claude a extrait l’APK et l’a décompilé de lui-même, mais j’aimerais savoir dans quelle mesure un humain est réellement intervenu
Si ce niveau d’analyse devient facile, cela pourrait avoir de nouvelles implications pour l’IA
stringset d’utiliser un décompilateur relève de la procédure de baseRépéter des essais au hasard n’est rien d’autre qu’un gaspillage de ressources de calcul
Ce qui est presque surprenant, c’est que cette entreprise ait utilisé MQTT en pensant à l’efficacité
Bien sûr, la sécurité est désastreuse, mais c’est intéressant de voir qu’ils ont au moins essayé d’économiser de la bande passante