Avec votre mot de passe admin, une app a accès à vos mots de passe en clair
Par Didier Pulicani - Publié le
Le trousseau de Mac OS X est un outil formidable, permettant de centraliser vos mots de passe et surtout, de pouvoir les utiliser dans n'importe quel programme, tout en garantissant un certain niveau de sécurité.
Mais lorsque vous fournissez votre mot de passe administrateur à un programme, saviez-vous que ce dernier a potentiellement accès, en clair, à tous vos identifiant ?
Juuso Salonen a développé un mini-programme (non compilé) qui permet de démontrer que tout ceci est largement possible.
Voici un exemple de ce qu'est capable de fournir le programme :
Nous l'avons également testé de notre côté, avec succès et sur la dernière mise à jour de Mac OS X. Avec 500 petites lignes de code, il est donc possible pour n'importe quel développeur ayant les droits administrateurs, de récupérer tous vos mots de passe et identifiant, sans cryptage.
Voilà une nouvelle occasion de vous rappeler de rester prudent quand un programme vous demande votre mot de passe administrateur, sans raison apparente. S'il s'agit d'installer un pilote d'imprimante, rien de plus normal. Mais pour un petit jeu que vous avez téléchargé sur le net, il n'y a aucune raison que le développeur ait besoin de tels privilèges.
Tous les fichiers sources sont disponibles sur GitHub
Mais lorsque vous fournissez votre mot de passe administrateur à un programme, saviez-vous que ce dernier a potentiellement accès, en clair, à tous vos identifiant ?
Juuso Salonen a développé un mini-programme (non compilé) qui permet de démontrer que tout ceci est largement possible.
Keychaindump est une "preuve de concept" pour lire le trousseau de Mac OS X en tant que root. Son rôle est de trouver la clef principale du trousseau, stockée en mémoire du process securityd et de l'utiliser pour décrypter tous vos mots de passe
Voici un exemple de ce qu'est capable de fournir le programme :
$ sudo ./keychaindump
[[] Searching process 15 heap range 0x7fa809400000-0x7fa809500000
[]] Searching process 15 heap range 0x7fa809500000-0x7fa809600000
[[] Searching process 15 heap range 0x7fa809600000-0x7fa809700000
[]] Searching process 15 heap range 0x7fa80a900000-0x7fa80ac00000
[[] Found 17 master key candidates
[]] Trying to decrypt wrapping key in /Users/juusosalonen/Library/Keychains/login.keychain
[[] Trying master key candidate: b49ad51a672bd4be55a4eb4efdb90b242a5f262ba80a95df
[]] Trying master key candidate: 22b8aa80fa0700605f53994940fcfe9acc44eb1f4587f1ac
[[] Trying master key candidate: 1d7aa80fa0700f002005043210074b877579996d09b70000
[]] Trying master key candidate: 88edbaf22819a8eeb8e9b75120c0775de8a4d7da842d4a4a
[+] Found master key: 88edbaf22819a8eeb8e9b75120c0775de8a4d7da842d4a4a
[+] Found wrapping key: e9acc39947f1996df940fceb1f458ac74b877579f54409b7
xxxxxxx:192.168.1.1:xxxxxxx
xxxxxxx@gmail.com:login.facebook.com:xxxxxxx
xxxxxxx@gmail.com:smtp.google.com:xxxxxxx
xxxxxxx@gmail.com:imap.google.com:xxxxxxx
xxxxxxx:twitter.com:xxxxxxx
xxxxxxx@gmail.com:www.google.com:xxxxxxx
xxxxxxx:imap.gmail.com:xxxxxxx
...
[[] Searching process 15 heap range 0x7fa809400000-0x7fa809500000
[]] Searching process 15 heap range 0x7fa809500000-0x7fa809600000
[[] Searching process 15 heap range 0x7fa809600000-0x7fa809700000
[]] Searching process 15 heap range 0x7fa80a900000-0x7fa80ac00000
[[] Found 17 master key candidates
[]] Trying to decrypt wrapping key in /Users/juusosalonen/Library/Keychains/login.keychain
[[] Trying master key candidate: b49ad51a672bd4be55a4eb4efdb90b242a5f262ba80a95df
[]] Trying master key candidate: 22b8aa80fa0700605f53994940fcfe9acc44eb1f4587f1ac
[[] Trying master key candidate: 1d7aa80fa0700f002005043210074b877579996d09b70000
[]] Trying master key candidate: 88edbaf22819a8eeb8e9b75120c0775de8a4d7da842d4a4a
[+] Found master key: 88edbaf22819a8eeb8e9b75120c0775de8a4d7da842d4a4a
[+] Found wrapping key: e9acc39947f1996df940fceb1f458ac74b877579f54409b7
xxxxxxx:192.168.1.1:xxxxxxx
xxxxxxx@gmail.com:login.facebook.com:xxxxxxx
xxxxxxx@gmail.com:smtp.google.com:xxxxxxx
xxxxxxx@gmail.com:imap.google.com:xxxxxxx
xxxxxxx:twitter.com:xxxxxxx
xxxxxxx@gmail.com:www.google.com:xxxxxxx
xxxxxxx:imap.gmail.com:xxxxxxx
...
Nous l'avons également testé de notre côté, avec succès et sur la dernière mise à jour de Mac OS X. Avec 500 petites lignes de code, il est donc possible pour n'importe quel développeur ayant les droits administrateurs, de récupérer tous vos mots de passe et identifiant, sans cryptage.
Voilà une nouvelle occasion de vous rappeler de rester prudent quand un programme vous demande votre mot de passe administrateur, sans raison apparente. S'il s'agit d'installer un pilote d'imprimante, rien de plus normal. Mais pour un petit jeu que vous avez téléchargé sur le net, il n'y a aucune raison que le développeur ait besoin de tels privilèges.
Tous les fichiers sources sont disponibles sur GitHub