Aller directement au contenu

GnuTLS : nouvelle faille sur les protocoles SSL/TLS

GnuTLS : nouvelle faille sur les protocoles SSL/TLS

Voici une devinette …

Quelle librairie de cryptage en open source SSL/TLS, très largement utilisée, a récemment réparé une faille critique causée par un « buffer overflow ».

Je vous donne un indice.GnuTLS

Le “buffer overflow” faisait en fait partie du protocole qui aide à gérer la connexion. Rien à voir donc avec l’envoi, et la réception de vos données personnelles.

Cependant, cette faille a pu être utilisée pour récupérer vos propres données, et celles d’autres personnes.

Bonne réponse, c’est bien l’OpenSSL GnuTLS.

En plus du bug Heartbleed, voici le dernier né :

…en fait ce bug n’a pas de logo rigolo, ou un nom médiatique accrocheur.

Nous l’appellerons pour l’instant CVE-2014-3466, ou encore 3466 pour faire plus court.

Comparaison avec Heartbleed

Heartbleed pouvait être exploité des 2 côtés de la connexion, soit du côté client (à savoir du côté de l’ordinateur qui a initié la connexion), soit du côté du serveur (auquel l’ordinateur se connecte). Chaque partie pouvait demander à l’autre de divulguer 64Ko de données, plus ou moins arbitraire, concernant le protocole d’échange.

3466, de son côté, travaille uniquement du point de vue du serveur, vers un client connecté. Ainsi, vous ne contrôlez pas le serveur, c’est le serveur qui vous contrôle.

Voilà comment cela se passe.

Quand vous vous connectez, le serveur envoi un paquet de données appelé l’ID de la session, comme faisant partie de ce qui est connu sous le nom de « Server Hello»

C’est une série de données magique, qui peut être utilisée pour des connexions TLS ultérieures, et pour le même client, dans le cas d’une reprise de la session actuelle, si les 2 parties (client et serveur) sont d’accord.

Reprendre une session est plus rapide que de redémarrer le processus de cryptage complet, avec tous les va-et-vient nécessaires à l’établissement d’une nouvelle connexion. Ainsi, c’est une optimisation qui peut être utilisée pour améliorer le débit.

A partir du moment où une ID de session n’est pas maintenue active trop longtemps, la sécurité en réalisant ce genre d’opération n’est pas réellement compromise.

On peut comparer cela aux 20 minutes que l’on vous donne, quand vous venez de payer votre stationnement dans un parking à plusieurs niveaux pour rejoindre votre véhicule et sortir.

Le “buffer overflow”

A l’exception que, dans le cas de GnuTLS, avant la sortie récente du patch, le client effectuait les tâches suivantes :

32 octets correspond à 256 bits. Ce choix est tout à fait raisonnable pour la longueur maximale de l’ID d’une session, et plus que nécessaire pour une ID de session choisie de manière aléatoire, sans la possibilité de générer 2 fois la même.

Cependant, 32 octets ne sont pas suffisant si, par exemple, un serveur malveillant décide d’envoyer une ID de session de 250 octets.

Nous avons ainsi affaire à un classique “buffer overflow” (il y a 25 ans, le fameux « internet worm » exploitait déjà ce type de faille).

Cette faille a été patchée depuis, mais un article posté sur le blog de Radare (un site web délivrant divers outils et conseils de reverse engineering en open source), explique pourquoi cette vulnérabilité peut, à coup sûr, être exploitée sur des systèmes non patchés.

En d’autres mots, la connexion à un serveur malveillant peut générer un déni de service en direction de votre ordinateur, du fait de l’échec du processus de connexion.

Une autre possibilité est l’exécution d’un code à distance, où les N octets de l’ID de session malveillante, incluent un shellcode exécutable qui prend tout simplement le contrôle sur le processus de connexion.

Ce code d’exécution à distance peut se résumer à une installation pirate, où la finalité est l’implantation d’un logiciel sur votre ordinateur, sans aucune notification de sécurité ou avertissement.

Quel est le risque ?

Tout comme Heartbleed, cette faille se glisse derrière les connections HTTP depuis votre navigateur.

Tout logiciel, côté client, qui utilise GnuTLS pour sécuriser ses transactions peut être concerné.

Sur un système Linux, par exemple, une grande partie, si pas tous les programmes reposant sur GnuTLS utilise une copie installée en central, connue comme étant une librairie partagée, qui peut être gérée par votre distro directement.

En mettant à jour cette librairie partagée et centrale, vous patchez indirectement tous les logiciels qui en dépendent.

Cependant, d’autres logiciels peuvent intégrés leurs propres copies de GnuTLS. Ainsi, ils devront être patchés séparément.

Les nouvelles versions de GnuTLS patchées sont : 3.1.25, 3.2.15 et 3.3.4.

Billet inspiré de : Move over Heartbleed – here comes another SSL/TLS bug par Paul Ducklin de Naked Security.

Partagez GnuTLS : nouvelle faille sur les protocoles SSL/TLS avec http://bit.ly/SFKPw7

Lire des articles similaires

1 commentaire

Les commentaires sont fermés.