Le populaire gestionnaire de mots de passe KeePass est vulnérable à l’extraction du mot de passe principal de la mémoire de l’application, permettant aux attaquants qui compromettent un appareil de récupérer le mot de passe même si la base de données est verrouillée.

Le problème a été découvert par un chercheur en sécurité connu sous le nom de « vdohney », qui a publié un outil de preuve de concept permettant aux attaquants d’extraire le mot de passe principal KeePass de la mémoire en tant que preuve de concept (PoC).

Les gestionnaires de mots de passe permettent aux utilisateurs de créer des mots de passe uniques pour chaque compte en ligne et de stocker les informations d’identification dans une base de données facile à rechercher, ou un coffre-fort de mots de passe, afin que vous n’ayez pas à vous souvenir de chacun. Cependant, pour sécuriser correctement ce coffre-fort de mots de passe, les utilisateurs doivent se souvenir du mot de passe principal utilisé pour le déverrouiller et accéder aux informations d’identification stockées.

Ce mot de passe principal crypte la base de données de mots de passe KeePass, l’empêchant d’être ouverte ou lue sans avoir d’abord saisi le mot de passe. Cependant, une fois que ce mot de passe principal est compromis, un acteur malveillant peut accéder à toutes les informations d’identification stockées dans la base de données.

Par conséquent, pour qu’un gestionnaire de mots de passe soit correctement sécurisé, il est essentiel que les utilisateurs gardent le mot de passe principal et ne le partagent avec personne d’autre.

Une nouvelle vulnérabilité KeePass identifiée comme CVE-2023-3278 permet de récupérer le mot de passe maître KeePass, à l’exception du ou des deux premiers caractères, sous forme de texte en clair, que l’espace de travail KeePass soit verrouillé ou éventuellement, même si le programme est fermé.

« KeePass Master Password Dumper est un simple outil de preuve de concept utilisé pour vider le mot de passe principal de la mémoire de KeePass. En dehors du premier caractère du mot de passe, il est surtout capable de récupérer le mot de passe en clair », prévient le chercheur en sécurité sur le GitHub. page de l’outil d’exploit.

« Aucune exécution de code n’est requise sur le système cible, juste un vidage de mémoire. Peu importe d’où vient la mémoire – il peut s’agir du vidage de processus, du fichier d’échange (pagefile.sys), du fichier d’hibernation (hiberfil.sys) ou de la RAM vidage de l’ensemble du système. Peu importe que l’espace de travail soit verrouillé ou non. »

La faille existe parce que le logiciel utilise une boîte de saisie de mot de passe personnalisée nommée « SecureTextBoxEx », qui laisse des traces de chaque caractère saisi par l’utilisateur dans la mémoire.

« KeePass 2.X utilise une zone de texte développée sur mesure pour la saisie du mot de passe, SecureTextBoxEx. Cette zone de texte n’est pas seulement utilisée pour la saisie du mot de passe principal, mais également à d’autres endroits dans KeePass, comme les zones d’édition de mot de passe (afin que l’attaque puisse également être utilisé pour récupérer leur contenu) », explique vdohney.

La vulnérabilité affecte la dernière version de KeePass, 2.53.1, et comme le programme est open-source, tous les forks de projet sont probablement affectés.

KeePass 1.X, KeePassXC et Strongbox ne semblent pas être affectés par CVE-2023-32784, selon le développeur de l’outil de vidage de mot de passe.

De plus, alors que le PoC a été testé sur Windows, l’exploit devrait également fonctionner pour Linux et macOS, avec quelques modifications, car le problème n’est pas spécifique au système d’exploitation mais à la façon dont KeePass gère les entrées de l’utilisateur.

Facile à exploiter
Étant donné que les vidages de mémoire doivent être récupérés pour que le mot de passe principal KeePass soit récupéré, l’exploitation de CVE-2023-32784 nécessite un accès physique ou une infection par un logiciel malveillant sur la machine cible.

Cependant, les logiciels malveillants voleurs d’informations pourraient rapidement vérifier si KeePass existe sur un ordinateur ou est en cours d’exécution, et si c’est le cas, vider la mémoire du programme et le renvoyer ainsi que la base de données KeePass à l’attaquant pour une récupération hors ligne du mot de passe en clair à partir du vidage mémoire.

Breachtrace a testé l’outil « keepass-password-dumper » de vdohney en installant KeePass sur un appareil de test et en créant une nouvelle base de données avec le mot de passe principal « password123 », comme indiqué ci-dessous.

Nous avons ensuite verrouillé notre espace de travail KeePass, ce qui empêche l’accès à moins que vous ne saisissiez à nouveau le mot de passe principal.

Dans nos tests, vous pouvez utiliser Process Explorer pour vider la mémoire du projet KeePass, mais cela nécessite un vidage mémoire complet, et non un minidump, pour fonctionner correctement. Aucun privilège élevé n’est nécessaire pour vider la mémoire des processus.

Après avoir compilé l’outil de vdohney à l’aide de Visual Studio, nous l’avons exécuté sur notre vidage de mémoire, et il a rapidement récupéré la majeure partie de notre mot de passe en clair, avec seulement les deux premières lettres manquantes.

Bien que ce ne soit pas le mot de passe complet, il serait assez facile de déterminer quels caractères manquent.

Le chercheur avertit également que les mots de passe principaux utilisés dans le passé peuvent rester en mémoire, de sorte qu’ils peuvent être récupérés même si KeePass ne fonctionne plus sur l’ordinateur piraté.

Correctif à venir
Le développeur de KeePass, Dominik Reichl, a reçu le rapport de bogue et a promis de déployer un correctif pour CVE-2023-32784 sur la version 2.54, prévue en juillet 2023.

Cependant, Reichl a déclaré à Breachtrace que la version 2.54 de KeePass est plus susceptible d’être publiée pour les utilisateurs dans environ deux semaines, elle devrait donc être disponible début juin.

Sur la base d’une discussion au cours de laquelle Reichl a développé ses réflexions sur la faille de sécurité et les stratégies d’atténuation potentielles, deux améliorations de sécurité sont mentionnées pour la prochaine version de KeePass :

  • Effectuez des appels directs à l’API pour obtenir/définir le texte de la zone de texte, en évitant la création de chaînes gérées en mémoire susceptibles de divulguer des secrets.
  • Créez des fragments factices contenant des caractères aléatoires dans la mémoire de processus qui auront approximativement la même longueur que le mot de passe principal de l’utilisateur, obscurcissant la vraie clé.

KeePass 2.54 pour Windows aura les deux, tandis que les versions macOS et Linux n’obtiendront que la deuxième amélioration.

Le développeur a publié une version de test avec les nouvelles améliorations de sécurité qui atténuent le problème, afin que ceux qui peuvent accepter un comportement instable puissent le trouver à partir d’ici.

Le créateur du PoC a confirmé qu’il ne peut plus reproduire l’attaque avec les deux améliorations de sécurité en place, donc le correctif semble être efficace.

Même après la sortie de la nouvelle version, le mot de passe principal peut toujours être stocké dans des fichiers mémoire. Le chercheur avertit que pour être sûr à 100% qu’il ne se cache pas sur le système, vous devez supprimer les fichiers d’échange et d’hibernation de votre système, formater votre disque dur en utilisant le mode « écraser les données » pour empêcher la récupération des données, et faire un nouveau Installation du système d’exploitation.

Pour la plupart, cependant, redémarrer l’ordinateur, effacer votre fichier d’échange et vos fichiers d’hibernation et ne pas utiliser KeePass jusqu’à la sortie de la nouvelle version sont des mesures de sécurité raisonnables pour le moment.

Même dans ce cas, pour une protection optimale, soyez extrêmement vigilant à ne pas télécharger de programmes à partir de sites non fiables et méfiez-vous des attaques de phishing susceptibles d’infecter vos appareils, en donnant aux acteurs malveillants un accès à distance à votre appareil et à votre base de données KeePass.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *