Heartbleed
Deux lignes de patch ajoutaient une fonction à OpenSSL. Une faute de frappe vieille de deux ans dans cette fonction permettait à n’importe qui de lire soixante-quatre kilo-octets dans n’importe quel serveur qui l’utilisait.
En avril 2014, des chercheurs de Google et de la société finlandaise de sécurité Codenomicon révèlent indépendamment une faille dans OpenSSL, la bibliothèque open source qui gère le chiffrement pour ce que l’on estimait être les deux tiers des serveurs du web. La faille est baptisée Heartbleed et gratifiée de son propre logo, un petit cœur qui saigne — première grande vulnérabilité commercialisée avec une charte graphique.
Soixante-quatre kilo-octets à la fois
L’erreur technique est petite. OpenSSL avait ajouté la prise en charge d’une extension TLS appelée Heartbeat, un mécanisme de maintien de connexion. L’implémentation négligeait de valider un champ de longueur. En envoyant une requête déclarant une charge plus longue que la charge réellement présente, un attaquant pouvait amener le serveur à renvoyer soixante-quatre kilo-octets de ce qui se trouvait par hasard dans la mémoire adjacente.
Cette mémoire contenait régulièrement des cookies de session, des identifiants et mots de passe en clair, et — dans certains cas — la clé privée TLS du serveur lui-même. Aucune entrée de journal n’était laissée derrière. La faille était présente dans le code livré depuis environ deux ans avant d’être découverte.
Une rotation de clés à l’échelle mondiale
Presque tous les services majeurs d’internet ont dû révoquer et réémettre des certificats TLS, forcer des réinitialisations de mots de passe et remplacer des clés SSH. Les fournisseurs cloud ont passé la semaine en rebuilds d’urgence. La Linux Foundation a fondé la Core Infrastructure Initiative peu après, en partie pour reconnaître qu’un logiciel sur lequel reposait l’essentiel du web était entretenu par un petit groupe de volontaires sous-financés.
Ce que la chronique retient
Heartbleed a recadré la sécurité de l’open source en problème de bien public. Les logiciels libres font tourner internet, mais le financement pour les auditer et les maintenir avait été discrètement présumé. Après 2014, cette présomption est devenue un peu plus difficile à tenir sans rougir.