Une porte dérobée découverte dans la bibliothèque Ruby strong_password
Utilisée par les applications web RoR pour tester la force des mots de passe
Tute Costa, développeur chez Epion Health, a récemment découvert une porte dérobée dissimulée dans une bibliothèque utilisée par les applications web Ruby on Rails (RoR) pour vérifier la force des mots de passe. Bien que le langage de script Ruby et RoR ne soient plus aussi populaires qu’avant, ils sont toujours intégrés dans de nombreux environnements de développement d’entreprise, dont un nombre inconnu pourrait avoir utilisé la bibliothèque strong_password dans sa version infectée 0.0.7.
La découverte a eu lieu après que le développeur ait remarqué quelque chose d’inhabituel lors de la mise à jour d’une famille de bibliothèques utilisées par son entreprise pour corriger des bogues et des vulnérabilités de sécurité. En s’intéressant à la bibliothèque strong_password sur RubyGems.org, il n’a pas réussi à trouver un journal récapitulant les modifications qui lui permettrait de comprendre comment il est passé de la version 0.0.6 à la version 0.0.7 compromise.
En comparant les deux versions, il a remarqué que la mystérieuse version 0.0.7 intégrait un lien de téléchargement qui « récupère et exécute le code stocké dans pastebin.com, uniquement en mode production, avec une gestion des exceptions vides qui ignore toute erreur qu’elle peut générer.
La porte dérobée téléchargerait le code à partir de l’adresse de Pastebin pour les sites de production et donnait aux attaquants le pouvoir d’exécuter en toute discrétion du code distant en production à volonté. Cette vulnérabilité a été identifiée par le nom de code « CVE-2019-13354 ». La bibliothèque infectée a, par la suite, été extraite et remplacée dans la version 0.0.8.
Il ne s’agissait pas d’une attaque spéculative - quelqu’un a réfléchi à ce qu’il faisait et a installé cette porte dérobée de façon à ce qu’elle soit difficile à détecter. La mise à jour malveillante a été publiée par un compte vide sous un nom différent de celui du responsable officiel (probablement victime du piratage de son compte Pastebin mal sécurisé), Brian McManus. Ce dernier a confié à Costa dans un courriel : « La bibliothèque semble m’avoir été retirée… Lorsque je me connecte à rubygems.org, je ne semble plus avoir la propriété ».
Cet évènement survient dans un contexte inquiétant de ciblage des bibliothèques Ruby par des individus malveillants. En mars dernier déjà, une porte dérobée a été trouvée dans la bibliothèque Bootstrap-Sass Ruby, le hacker ayant semble-t-il piraté le compte de l’un des développeurs du projet. La version malveillante du package bootstrap-sass (version 3.2.0.3) a été publiée dans le référentiel officiel de RubyGems. Elle incluait une porte dérobée furtive permettant aux attaquants d’exécuter des commandes à distance dans les applications Rails côté serveur. Le code malveillant a été supprimé via une mise à jour de la bibliothèque.
Le grand nombre de bibliothèques utilisées par RoR (et d’autres frameworks de développement dans la ligne de mire) amène à se demander quel pourrait être le degré de surveillance approprié lorsque de nouvelles versions apparaissent. Heureusement que cette fois-ci un développeur faisait attention.
Source : With a Twist
Et vous ?
Qu’en pensez-vous ?
Voir aussi
Ruby 2.6 est disponible en version stable avec un nouveau compilateur JIT en mode expérimental et un nouveau module pour analyser du code Ruby
Partager