Heartbleed.fr

Faille de sécurité OpenSSL

Qu'est-ce que la faille Heartbleed ?

Heartbleed est une faille SSL/TLS qui permet de lire une partie de la mémoire du serveur. Plus précisément, il s'agit d'un trou de sécurité dans OpenSSL, une librairie qui gère les échanges entre un client et le serveur en cryptant des informations.

La faille Heartbleed a été découverte par des ingénieurs de Codenomicon, qui l'ont révélée le le 7 avril 2014. Leurs tests sur leur propre système ont conclu qu'il était possible d'attaquer un système sans laisser de trace visible dans les logs. Sans connexion sécurisée, ils sont parvenus à dérober les clefs secrètes de leur serveur, les noms d'utilisateurs et leurs mots de passe ainsi que le contenu échangé par ces derniers sur les serveurs compromis.

Le développeur à l'origine du bug est un chercheur allemand du nom de Robin Seggelmann, auteur d'une thèse sur les stratégies de sécurisation des communications. Lors de la création d'un mise à jour OpenSSL dénommée "heartbeat", il aurait oublié de valider la longueur d'une variable. Il considère l'erreur triviale, mais reconnaît la gravité extrême de son impact. Le Britannique Stephen Henson, qui est l'un des quatre membres principaux du projet OpenSSL, reconnaît ne pas avoir détecté cette erreur.

La faille est-elle volontaire ?

Certains experts considèrent que la faille a été délibérément créée pour le compte de la NSA, ce que Robin Seggelmann dément catégoriquement. Il a participé à OpenSSL sur son temps libre, dans l'esprit du logiciel libre, et se dit en relation d'aucune manière que ce soit avec la NSA.


D'où vient le nom Heartbleed ?

Le mot "heartbeat" qui signifie "battement de coeur", désigne en informatique une façon pour un système de vérifier la présence d'un autre, sous la forme d'un envoi et d'une réponse rappellant le battement du coeur. La faille survient dans l'implémentation de cet échange, où un système pouvait demander à l'autre de ne pas renvoyer une simple validation de sa présence, mais jusqu'à 64 000 caractères (ou 64 k). D'où le nom "Heartbleed", qui signifie "saignement du coeur".

Schéma du fonctionnement de la faille Heartbleed

heartbleed1

heartbleed2

Source : xkcd.com