Des chercheurs ont découvert que plusieurs gestionnaires de mots de passe majeurs, basés sur Android, pouvaient être dupés afin de saisir des identifiants de connexion dans de fausses applications de phishing.
Les gestionnaires de mots de passe peuvent être utilisés pour créer, stocker, saisir et remplir automatiquement des mots de passe au niveau d’applications et de sites web. En plus de permettre aux utilisateurs d’avoir accès à des mots de passe fiables et sécurisés, les gestionnaires de mots de passe peuvent également fournir une protection contre le phishing, en effet leurs fonctions de saisie automatique entreront alors les mots de passe au niveau des sites concernés (et de leurs applications mobiles associés), mais ils n’entreprendront rien si elles/ils sont fausses/faux.
L’étude “Phishing Attacks on Modern Android” de l’Université de Gênes et d’EUROCOM a étudié la différence entre l’accès à un service via son application mobile et l’accès via son site web, avec un navigateur de bureau.
Avec les navigateurs de bureau, quand un site est visité pour la première fois, le gestionnaire de mots de passe crée un lien entre son domaine (vérifié par son certificat électronique) et les informations d’identification utilisées pour y accéder.
Toutefois, lorsqu’une personne utilise les identifiants du site web pour se connecter à l’application associée, le processus de vérification de l’application est plus compliqué et potentiellement moins sécurisé.
Le principal moyen utilisé par les gestionnaires de mots de passe pour distinguer les bonnes applications des mauvaises applications consiste à associer le domaine du site web de cette application au nom du package de l’application en question, un ID de type métadonnées vérifié à l’aide d’associations statiques ou générées de manière heuristique.
Le problème (et donc la faille qui en découle) est que les noms des packages peuvent être usurpés. En effet, tout ce qu’un cybercriminel a à faire est de créer une fausse application avec le nom de package correct et le gestionnaire de mots de passe lui fera suffisamment confiance pour lui présenter les identifiants corrects.
Les chercheurs ont constaté que plusieurs gestionnaires de mots de passe populaires étaient vulnérables vis-à-vis de ce type de problème de cartographie : LastPass, 1Password, Dashlane et Keeper. A noter que seul Google Smart Lock (qui n’est pas à proprement parlé un gestionnaire de mots de passe) a été capable de résister.
Problème instantané
Lors des tests, l’équipe a découvert que même les applications instantanées, récemment introduites par Google, et conçues pour être essayées sans téléchargement, pourraient être utilisées de manière abusive par un site web de phishing pour déclencher la saisie automatique au niveau du gestionnaire de mots de passe.
Cette éventualité est particulièrement dangereuse car elle signifie qu’il serait possible de lancer une attaque de phishing sans avoir à installer une fausse application qui aurait usurpé le nom d’un package (une possibilité que Google Play ne permet pas).
Les chercheurs ont déclaré :
Nous pensons que cette stratégie d’attaque place la barre beaucoup plus bas en ce qui concerne toutes les attaques de phishing connues sur le web et les appareils mobiles : à notre connaissance, il s’agit de la première attaque n’impliquant pas une application malveillante déjà installée sur le téléphone !
Quoi faire ?
Le problème est que la façon dont les gestionnaires de mots de passe comprennent la correspondance des domaines légitimes avec les applications sur Android est régie par trois normes : l’Accessibility Service (a11y), l’Autofill Framework (Oreo 8.0 et ultérieur); ou bien l’utilisation d’OpenYOLO, une collaboration séparée Google-Dashlane.
La première, a été conçue pour les personnes handicapées et a finalement été utilisé par des applications malveillantes pour violer les droits d’administrateur, ce qui a conduit Google à implémenter Autofill Framework et Dashlane à s’orienter vers OpenYOLO. Malheureusement, les trois normes sont vulnérables vis-à-vis de la manipulation des noms de packages, laissant penser ainsi que la résolution de ce problème ne sera pas facile !
La solution proposée par les chercheurs est une nouvelle API getVerifiedDomainNames()
qui supprime les noms de packages au lieu de vérifier une association hardcodée entre le domaine d’un site web (et les sous-domaines) et l’application qui s’y connecte.
L’inconvénient est que les sites web vont devoir commencer à publier un fichier d’actifs contenant ces données, et les chercheurs ont découvert qu’à peine 2% des sites, parmi plus de 8 000 échantillons de domaines, s’étaient donnés la peine de le faire.
Pour le moment, cela oblige les gestionnaires de mots de passe à se fier à leurs propres défenses. LastPass, pour sa part, a déclaré à Sophos qu’il ne pensait pas que cette faiblesse avait compromis l’un de ses clients :
Notre application nécessite désormais l’approbation explicite de l’utilisateur avant de remplir les champs d’applications inconnues, et nous avons renforcé l’intégrité de notre base de données d’associations d’applications afin de minimiser le risque que de fausses applications ne soient remplies/acceptées.
Sophos estime que l’utilisation d’un gestionnaire de mots de passe reste l’une des mesures les plus simples et les plus efficaces en matière de sécurité informatique, et une intégration plus poussée avec les applications mobiles facilite l’utilisation de celui-ci.
Vous êtes beaucoup plus susceptible d’être mis en danger par la réutilisation des mots de passe que par une attaque de saisie automatique au niveau d’une fausse application. Toutefois, si vous êtes préoccupé par ce type d’attaque ou par des attaques similaires exploitant des fonctions de saisie automatique à l’aide de champs de mot de passe masqués, ne dites pas adieu tout de suite à votre gestionnaire de mot de passe, désactivez simplement la saisie automatique !
Billet inspiré de Android password managers vulnerable to phishing apps, sur Sophos nakedsecurity.