Ces dernières années ont vu naître une multitude d’applications et services web, que ce soit les réseaux sociaux, emails, messageries instantanées ou encore home banking. Pour s’y connecter, ces services choisissent généralement l’authentification simple login/password où l’identifiant ou login de l’utilisateur est prédéterminé (p.ex. les initiales de son nom ou son email), et où l’utilisateur doit lui-même choisir son mot de passe. Pour cette dernière étape, on se rend facilement compte au travers des discussions que la plupart des gens ont tendance à toujours choisir le même (ou dérivés du même) mot de passe pour tous leurs comptes. Cela simplifie la vie de l’utilisateur qui ne doit mémoriser qu’un seul mot de passe.
Le problème de ce choix est malencontreusement assez simple : si une personne malveillante (i.e. un attaquant) retrouve ou s’empare du mot de passe Gmail d’un utilisateur, alors elle est tout à fait en mesure de se connecter aux autres comptes en ligne de ce même utilisateur. La meilleure façon de résoudre ce problème est de choisir un mot de passe unique pour chaque compte, de préférence “fort”, c’est-à-dire long, complexe et relativement aléatoire. Mais cette solution entraîne la difficulté pour l’utilisateur de mémoriser tous ces mots de passe.
Pour solutionner ce nouveau problème, il est maintenant possible d’utiliser un password manager (PM), outil informatique permettant de centraliser l’ensemble des credentials (i.e. triplet [compte ou site web, identifiant, mot de passe]) d’un utilisateur dans une base de données accessible via un mot de passe maître unique, afin de n’en avoir plus qu’un seul à mémoriser. Un PM permet éventuellement de générer des mots de passe forts, et il peut aussi autoriser l’utilisateur à chiffrer (une partie de) ses credentials (p.ex. uniquement les mots de passe) dans la base de données.
Dans ce blog, nous nous intéressons tout particulièrement aux online password managers (OPM), c’est-à-dire ceux où la base de données se trouve sur le serveur en ligne du fournisseur de service OPM. Pour récupérer ses credentials, l’utilisateur se connecte simplement sur son compte OPM via son navigateur web, que ce soit avec une extension, sur une page web, ou encore avec un bookmarklet [1]. Ces derniers sont généralement utilisés pour les navigateurs web mobiles qui ne supportent pas l’utilisation d’extension web.
Ces outils sont devenus très populaires et utilisés par des millions de personnes dans le monde. On peut citer LastPass, RoboForm, KeePass, 1Password comme produits phare. Des chercheurs de l’Université de Californie se sont intéressés à cinq OPM (LastPass, RoboForm, My1login, PasswordBox et NeedMyPassword) et leur ont trouvé un certain nombre vulnérabilités violant la vie privée des utilisateurs ou permettant de récupérer leurs credentials. Dans ce blog, nous souhaitons mettre en garde les lecteurs sur l’utilisation de ces OPM en présentant les résultats obtenus par ces chercheurs.
Les différentes vulnérabilités trouvées
Dans les bookmarklets
Le problème majeur des bookmarklets est qu’ils ne vérifient pas tous les composants (p.ex. les web API) qui sont intégrés dans l’environnement de la page web sur lequel ils s’exécutent. Un attaquant peut donc simplement remplacer certains de ces composants par du code malicieux.
Parmi les cinq OPM étudiés, trois d’entre eux proposent l’utilisation des bookmarklets, et chacun est vulnérable à des attaques basées sur les faiblesses des bookmarklets. En particulier, si la victime clique sur son bookmarklet quand elle visite une page web compromise, alors l’attaquant est capable de retrouver, à chaque fois, tous les credentials de la victime. Par exemple pour LastPass, l’attaque se fait en trois simples étapes :
- Tout d’abord, l’attaquant enregistre les informations envoyées par le bookmarklet (une fois que la victime a cliqué dessus).
- Ensuite, l’attaquant usurpe l’identité de la victime auprès de LastPass en lui envoyant une demande de credentials en utilisant les données récupérées à l’étape 1. LastPass lui renvoie les credentials chiffrés que l’attaquant a demandés.
- Enfin, avec toutes les informations récupérées aux étapes précédentes, l’attaquant recouvre les credentials en clair de la victime.
Notons qu’ici, l’attaquant n’a besoin d’effectuer l’étape 1 qu’une seule fois pour récupérer tous les credentials stockés par la victime sur le serveur de LastPass.
Dans le web
Comme les OPM s’exécutent dans un navigateur web, leur sécurité doit clairement tenir compte des vulnérabilités qui peuvent apparaître avec les plateformes web. Parmi les plus connues, on retrouve essentiellement des attaques de type cross-site request forgery (CSRF, attaque qui exploite la confiance qu’un site web peut avoir envers un utilisateur) ou cross-site scripting (XSS, attaque qui exploite la confiance qu’un utilisateur peut avoir envers un site web), toutes deux courantes dans les applications web.
Malheureusement, trois des OPM étudiés sont vulnérables à ces types d’attaques. Par exemple, il est possible de prendre le contrôle de n’importe quel compte NeedMyPassword avec une attaque de type XSS. Pour LastPass utilisé avec l’option one-time-password (OTP, mot de passe unique qui n’est valide que pour une seule authentification), une attaque CSRF classique permet à un attaquant de s’emparer de la base de données chiffrée des credentials de n’importe quelle victime dont il connait simplement le nom d’utilisateur.
Dans les autorisations de partage
Certains OPM autorisent les utilisateurs à partager des credentials entre eux. Or si cette fonctionnalité n’est pas bien implémentée au niveau des serveurs, cela peut entraîner des vulnérabilités supplémentaires, comme des erreurs logiques.
Ainsi on se rend compte que deux des OPM étudiés ne comprennent pas la différence entre les notions d’autorisation et d’authentification. Le résultat est assez catastrophique : aucun exploit de sécurité n’est nécessaire pour obtenir les credentials d’une victime quelconque. Par exemple pour My1login, il suffit de connaitre l’identifiant de la victime et de créer deux comptes utilisateur (qui sont authentifiés lors de leur connexion), un qui va faire la demande de partage et un qui va recevoir le partage. Comme aucune vérification n’est faite pour savoir si le premier compte a l’autorisation de partager les credentials de la victime, le partage est donc tout simplement accepté par le système.
Dans l’interface utilisateur
Un des avantages à utiliser un OPM est d’atténuer fortement la propension à subir une attaque de type phishing [2] au niveau de l’interface graphique du compte en ligne auquel on essaie de se connecter. Par exemple, l’OPM va vérifier que l’URL de la page sur laquelle on veut se connecter est bien correcte (p.ex. que l’URL est bien https://www.facebook.com/ pour Facebook). Ceci permet de se prémunir des imitations visuelles de sites web, leurre pas forcément détectable par l’œil humain. Cet avantage disparaît malgré tout complètement lorsque les OPM ne se protègent pas eux-mêmes contre ce type d’attaques.
Deux OPM sur les cinq ont été détectés vulnérables à ce type d’attaques. Par exemple pour RoboForm, quand la victime utilise un bookmarklet sans être au préalable connectée à son OPM, alors le bookmarklet génère une fenêtre contenant le formulaire d’authentification à RoboForm au sein même dans la page web courante. Si cette page web est compromise, alors l’attaquant n’a qu’à enregistrer les identifiants de connexion RoboForm que tape la victime, et le tour est joué.
Le tableau ci-dessous récapitule les vulnérabilités trouvées dans les cinq OPM étudiés par les chercheurs de l’Université de Californie. « NA » signifie que la vulnérabilité n’est pas applicable.
Bookmarklet | Web | Autorisation de partage | Interface utilisateur | |
LastPass | √ | √ | √ | |
RoboForm | √ | √ | NA | √ |
My1login | √ | √ | ||
PasswordBox | NA | √ | NA | |
NeedMyPassword | NA | √ | NA | NA |
Conclusion
Les OPM ont fait leur preuve sur les aspects pratiques et conviviaux pour les internautes. Ils permettent à quiconque de pouvoir s’authentifier à divers applications et services web via des mots de passe uniques et forts. Cependant, il est prudent de rester modéré quant à leur utilisation. Les vulnérabilités dévoilées par les chercheurs californiens sur les cinq leaders OPM du marché montrent que ces outils ne sont pas encore suffisamment matures et sécurisés. Notons néanmoins que la majorité de ces OPM ont répondu positivement à la publication de ces vulnérabilités et ont corrigé leur produit. Par exemple, LastPass (qui a fait l’objet d’un Quick Review par notre équipe de recherche) a publié une note reconnaissant officiellement les résultats de l’étude californienne.
[1] Un bookmarklet est un marque-page stocké dans un navigateur web qui contient un petit programme JavaScript permettant d’étendre les fonctionnalités du navigateur quand l’utilisateur se connecte à une page web.
[2] Le phishing est une méthode permettant de récolter des informations sensibles en se faisant passer pour une entité de confiance.
Bonjour,
Il est clair que rien n’est exhaustif et rien n’est sûr à 100% de nos jours voire récemment. Cependant, je suis satisfait de l’OPM Lastpass que j’utilise depuis un bon bout de temps, j’y gagne un temps précieux et elle rend le moment que je passe sûr la toile plus sûre avec sa barrière anti-phishing. Mais merci pour toutes ces explications Tania, cela nous permettra de doubler de vigilance 🙂
Bonjour,
En effet ces vulnérabilités sont propres aux PM en ligne (OPM).
Le but de ce blog est essentiellement de mettre en garde les utilisateurs des défaillances de ces derniers : les OPM sont très pratiques quand on souhaite accéder à sa base de données (contenant les mots de passe protégés) à partir de n’importe quel appareil, mais plusieurs vulnérabilités importantes ont été trouvées sur les OPM.
Il est clair qu’il est plus sûr d’utiliser un PN natif. L’inconvénient de ceux-ci est que la base de données des mots de passe n’est pas facilement transportable d’un appareil à l’autre. Pour KeePass, on peut néanmoins mettre sa base de données sur une clé USB, et l’utiliser sur n’importe quel PC où KeePass est installé. Mais on comprend bien qu’il y a un problème d’ergonomie si on veut utiliser cette base de données avec un smartphone par exemple.
Bien à vous.
Bonjour,
Ces vulnérabilités sont surtout d’application pour les Password Manager en-ligne. qu’en est-il des Password Manager natifs tels que KeePass (disponible sur presque tous les OS majeurs) ? Sont-ils également vulnérables ?
Ne conseilleriez-vous pas leur utilisation plutôt que celle des PM en-ligne ?
Bien à vous.