Aujourd’hui je voudrais vous intéresser au problème de sécurité posé par l’utilisation des cookies dans certaines conditions.
Sur Facebook, Gmail, WindowsLive, Wikipedia, etc.. ainsi que sur les forums vous ne rentrez qu’une seule fois vos identifiants et ensuite le site web se rappelle de vous tout au long de votre visite sur le site. Comment est-ce possible?
En fait, une fois vos identifiants envoyés au site web, celui-ci renvoie un cookie à votre navigateur web, une sorte de badge électronique personnel, et lui demande de le présenter à chaque nouvelle requête sur le site web. Ainsi le site web sait de qui vient la requête et quelles informations délivrer.
Maintenant imaginons un pirate qui veuille pouvoir devenir maitre de votre compte Facebook. Il n’a pas véritablement besoin de connaitre votre mot de passe. Il lui suffit d’aller sur Facebook avec votre cookie pour être reconnu comme vous ! Il reste donc à trouver ce cookie…
Sur des sites web comme ceux cités plus hauts, où tout le trafic est en clair passé l’authentification, il est très facile d’écouter vos communications sur un réseau local.
Il ne restait donc qu’à concevoir un petit programme qui automatise le sniff de cookies et l’injection de cookie dans un navigateur.
La parade est assez simple : Exigez auprès de ces sites web que les communications à caractère confidentiel et personnel soient chiffrées par SSL. Votre profil Facebook ou vos emails ont le droit à la confidentialité.
Même ce blog peut être consulté entièrement en SSL donc pourquoi pas Facebook, Gmail, etc…
Je ne sais pas pour facebook ou autre, mais GMail est accessible entièrement en SSL.
L’option n’est certes pas mise en avant, mais il est même possible de demander à GMail de n’accepter que les connexions sécurisée pour ton compte (dans paramètres : Toujours utiliser le protocole https).
On peut se poser la question pourquoi ce n’est pas par défaut?
Est ce le coût du chiffrement/déchiffrement ?
J’ai parcouru rapidement le code (je ne peux pas le lancer, il me manque des modules), et deux choses m’ont marqué :
– pourquoi tu n’utilises pas le module webbrowser http://docs.python.org/library/webbrowser.html
– pourquoi utilises-tu le compte de l’utilisateur root ? Chez toi tu fais tout en root ? Tu pourrais rechercher tous les utilisateurs présents sur le système à l’aide du fichier /etc/passwd.
Hello Erwan,
bigre, ça fait peur tes histoires de cookies.
Bonne année,
Xavier
Je me souviens d’une faille de sécurité comme ça sur phpBB, il suffisait d’installer en local en phpBB, de se connecter en tant qu’admin, de modifier légèrement le cookie pour que l’on soit également admin sur d’autres forums.
Je ne peux pas tester ton programme pour le moment, mais il n’empêche que la faille me paraît énorme surtout pour des sites tel que Gmail, Yahoo Mail, MSN et Facebook. Il existe des moyens de sécuriser ce genre de problème d’identification, je ne comprend pas comment ces sites pourrait se faire avoir aussi facilement qu’une injection de cookies.
@ olivier :
J »utilise firefox car je peux inclure des cookies dans son fichier de cookie (base sql). Le module webbrowser m’épargne juste de lancer os.system(‘firefox’) si j’ai bien compris.
Scapy a besoin d’etre en root pour pouvoir écouter sur la cate réseau en mode promiscious. C’est pareil pour Wireshark.
@ Xavier et Simon :
Ca fait peur peur mais ca marche…
Seul Yahoo Mail donne du fil à retordre.
Le code est ouvert, libre à vous de l’améliorer.
lol : http://www.numerama.com/magazine/14847-google-annonce-le-chiffrement-par-defaut-pour-gmail.html
@Tuxicoman : je viens de tester ton programme avec hotmail et ça marche parfaitement même si on prend soin de se déconnecter avant de lancer Firefox pour se connecter avec le cookie.
Je ne pourrais comprendre que le cookies sert à stocker l’identifiant de session et le fait de le récupérer permettrait de faire un vol de session (encore que cela se sécurise…) mais là, ma session devait être différente vu que je m’étais déconnecté, du coup je n’arrive pas à comprendre comme cela est possible.
Ils ne stockent quand même pas mon login et mot de passe directement dans le cookie (même de manière chiffré) ?
Tu as une idée d’où provient cette faille de sécurité (à part le fait de transmettre le cookie en clair) ?
@simon : Hotmail serait il encore plus bête ? Cela semble vouloir dire que lorsque tu demandes à te déconnecter ca supprime seulement le cookie de ton navigateur… sans pour autant le rendre invalide sur leur serveur.
Ce qui voudrait dire que sniffer le cookie d’hotmail est suffisant pour s’authentifier quand on veut sur leur service, le principe du mot de passe en quelque sorte.
Je ne sais pas si le couple login/mdp est chiffré dans le cookie mais le résultat est le même : le cookie sert de pass.
Bonjour,
en lisant votre article puis en me baladant de lien en lien, je suis tombé sur un article introuvable (provenant de votre blog sous blogspot). Ma question est la suivante: auriez vous fait un backup de votre précédent blog ?
Cordialement.
@Jack l’ass : Tous les articles du blog sous Blogspot ont été réintégrés dans celui-ci. As tu essayé l’outil de recherche tout en haut du site?
salut
pourquoi a chaque fois que je met mon ordi en veille je suis deconnecté a chaque fois il faut retapé le mot de passe , je suis sous windows 7 et yahoo pour ma messagerie
merci pour vos solutions a +
Aucune idée. Est-ce cette déconnexion apparait aussi après un manque d’interaction avec le site?
ben non , bizarre ,j’ai beau cocher la case 2 semaine rien ne change
ras le bol