Faille OpenSSL critique dans l'extension TLS Heartbeat (CVE-2014-0160)

Une faille critique a été découverte dans l’implémentation d’OpenSSL de l’extension TLS/DTLS (transport layer security protocols) heartbeat (RFC6520). Cette faille est critique et est référencée par l’identifiant CVE (Common Vulnerabilities and Exposures) CVE-2014-0160.

L’exploitation de cette faille peut permettre l’accès au contenu de la mémoire du serveur au client et du client au serveur. Un attaquant peut récupérer à distance des données sensibles de la mémoire, y compris, mais pas seulement les clés privés utilisées par le chiffrement SSL et l’authentification par token.

Pour plus d’informations sur l’attaque, consultez heartbleed.com.

Comment Ruby est affecté ?

Ruby est affecté s’il a été compilé statiquement avec une version d’OpenSSL vulnérable via l’extension de la bibliothèque standard OpenSSL C.

Les versions OpenSSL 1.0.1 à 1.0.1f (inclus) sont concernées par cette faille. Pour vérifier quelle version de la bibliothèque OpenSSL est utilisée par Ruby, exécutez ceci :

ruby -v -ropenssl -rfiddle -e 'puts Fiddle::Function.new(Fiddle.dlopen(nil)["SSLeay_version"], [Fiddle::TYPE_INT], Fiddle::TYPE_VOIDP).call(0)'

Pour vérifier la version d’OpenSSL installée avec Ruby, exécutez ceci :

ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'

Vous pouvez vérifier si votre client ou vos services sont vulnérables en utilisant le script d’emboss.

Solutions

Pour mettre à jour à la dernière version d’OpenSSL 1.0.1g ou plus récent, vous devez vérifier le système de mise à jour de votre système pour vous assurer que vous utiliser une version à jour. Il se peut que vous ayez besoin de consulter l’éditeur de votre système d’exploitation pour vérifier que la version d’OpenSSL est corrigée, en comparant les numéros de version.

Si une mise à jour n’est pas possible, recompilez une version d’OpenSSL corrigée avec l’option -DOPENSSL_NO_HEARTBEATS.

Même avec une version d’OpenSSL corrigée, il est recommandé de recompiler Ruby pour vous assurer qu’il n’y a plus de lien avec une version vulnérable.

Ceci signifie mettre à jour tous les outils utilisés pour installer Ruby comme RVM ou ruby-build. Si vous installez Ruby vous-même, utilisez l’option --with-openssl-dir durant la compilation pour lier l’installation corrigée d’OpenSSL

$ ./configure --with-openssl-dir=/path/to/openssl
$ make
$ make install

Après un mise à jour d’OpenSSL et de Ruby, il est imporant de redémarrer tous les programmes utilisant une version vulnérable.

De nombreux éditeurs de systèmes d’exploitation fournissent (ou fourniront rapidement) une version corrigée et recompileront les bibliothèques vulnérables à cette attaque. Il est important de surveiller less mise à jour de votre éditeur pour garder votre système sécurisé.