Les appareils mobiles enregistrent plus de données qu'ils n'en ont réellement besoin. Le problème est que cet enregistrement n'est pas toujours signalé à l'utilisateur. De nombreuses applications réclament des permissions excessives et, dans le cas des navigateurs, elles extraient les valeurs des capteurs intégrés. Un groupe de chercheurs de l'Université de Newcastle a démontré qu'il est possible d'utiliser cela de manière malveillante avec une nouvelle attaque appelée PINLogger, qui interprète les données des capteurs et calcule le code PIN avec une précision de 94 % en seulement trois tentatives.
De nombreux jeux Android et iOS demandent l'accès aux capteurs du téléphone pour des raisons techniques, mais j'ai vu des exemples qui tombent directement dans l'abus. Pourquoi un jeu voudrait-il voir mon calendrier ou ma liste de contacts ? La première chose qui nous vient à l'esprit est ce mot magique : la publicité. L'utilisateur moyen n'accorde pas beaucoup de valeur à ces données secondaires qu'il génère, mais il y a des gens prêts à payer pour les obtenir et offrir « une expérience plus personnalisée ». Maintenant, que se passe-t-il si quelqu'un trouve le moyen d'utiliser ces données à des fins malveillantes ? Que peut livrer notre smartphone sans que nous nous en apercevions ?
Comment fonctionne le PINLogger ?
Pour commencer… le code PIN. Selon un groupe de chercheurs stationné à l'Université de Newcastle, l'attaque PINLogger basée sur JavaScript peut « écouter » le mouvement et l'orientation d'un appareil Android sans la permission de l'utilisateur, analyser le flux de données envoyé par les capteurs avec un réseau neuronal, et à partir de là calculer le code PIN. L'étude indique que face à un code PIN à quatre chiffres, PINLogger parvient à découvrir le numéro 74 % du temps au premier essai, 86 % au deuxième, et 94 % au troisième essai. Contrairement à d'autres attaques, PINLogger ne nécessite pas l'installation de logiciel sur le smartphone. Tout ce qu'il faut, c'est qu'un navigateur avec le code malveillant sur une page web reste ouvert pendant que l'utilisateur entre son code PIN.
Efficacité et limites
Bien sûr, l'efficacité de PINLogger dépend du niveau d'accès aux capteurs qu'a le navigateur, et cela varie beaucoup selon le logiciel et le système d'exploitation. Les exemples partagés se concentrent sur iOS 8 et Android Lollipop, techniquement sans support mais encore très utilisés. En général, les navigateurs les plus invasifs sont les navigateurs alternatifs, avec Baidu et CM Browser en tête. Pour le moment, l'accès via JavaScript est limité à quelques capteurs, mais cela pourrait changer à l'avenir. Il est peut-être temps de mettre en œuvre des restrictions d'accès aux capteurs « par application », un système de listes blanches, ou pourquoi pas, la manipulation directe des permissions.