Accueil » Actualité » « OpenSSL n’est pas développée par une équipe responsable »

« OpenSSL n’est pas développée par une équipe responsable »

Image 1 : "OpenSSL n'est pas développée par une équipe responsable"Les conséquences du bug Heartbleed dans la bibliothèque OpenSSL sont encore difficiles à évaluer, mais il est acquis qu’il s’agit d’une des plus grosses failles de sécurité qui ait touché internet. Pourtant Heartbleed aurait pu ne jamais exister, ou du moins être beaucoup moins répandue. Afin d’améliorer les performances d’OpenSSL, l’équipe de développement de OpenSSL a en effet contourné une mesure de protection dans la gestion de la mémoire.

Sur le principe, Heartbleed exploite l’extension HeartBeat qui permet de maintenir une connexion SSL active sans renégociation. Le client envoie un packet HeartbeatRequest et doit recevoir immédiatement du serveur un packet HeartbeatResponse presque identique. Le contenu des paquets est censé être identique, le client envoyant un bout de mémoire qui est copié et réenvoyé par le serveur. Toutefois, il est possible de tricher en demandant au serveur de renvoyer une plus grande quantité de données que celle fournie dans la requête, jusqu’à 64 ko. Le serveur utilise alors une portion proche ou aléatoire de sa mémoire pour remplir la réponse Heartbeat, jusqu’à 64 ko. En multipliant les requêtes, un pirate peut donc pomper la portion de la mémoire du serveur, en tombant avec un peu de chance sur les clés SSL ou les mots de passe des utilisateurs.

Le bug peut être facilement corrigé en ajoutant une vérification simple : que la requête ne soit pas vide et que la réponse soit de taille correcte. Mais selon Theo de Raadt, le fondateur d’OpenBSD, le bug aurait aussi pu être évité si OpenSSL utilisait la fonction standard de gestion de la mémoire (malloc) et non pas la version spécifique créée par l’équipe d’OpenSSL (OpenSSL_malloc). Selon De Raadt, malloc est prévu pour crasher d’elle-même face à certaines anomalies. Mais cette protection entraînant une dégradation des performances sur certaines plateformes, OpenSSL a préféré créer sa propre fonction la désactivant pour toutes les plateformes.

Une démarche qui lui fait dire sévèrement que l’équipe d’OpenSSL est irresponsable.