Une porte dérobée découverte dans 11 gems Ruby
ven, 23/08/2019 - 15:50
Comme tous les langages de programmation, Ruby dispose d'un écosystème de bibliothèques dites gems. Ces gems, ou composants logiciels, sont gérés via le gestionnaire de paquet RubyGems.
Depuis le 14 août dernier, les responsables du projet RubyGems ont découvert une, puis 10 autres gems corrompues par une porte dérobée (backdoor). Ces portes dérobées ayant pour principale vocation d'injecter dans des applications du code Ruby faisant du minage de cryptomonnaie.
Les gems corrompues sont (au moins) :
- rest-client: 1.6.10, 1.6.11, 1.6.12 et 1.6.13
- bitcoin_vanity: 4.3.3
- lita_coin: 0.0.3
- coming-soon: 0.2.8
- omniauth_amazon: 1.0.1
- cron_parser: 0.1.4,
- coin_base: 4.2.1 et 4.2.2
- blockchain_wallet: 0.0.6 et 0.0.7
- awesome-bot: 1.18.0
- doge-coin: 1.0.2
- capistrano-colours: 0.5.5
Comment le ou les cybercriminels ont-ils procédé ? Tout simplement (à l'exception de rest-client) en prenant une gem existante et propre sur elle, en y ajoutant le code malveillant, puis en l’uploadant sur RubyGems sous un nouveau nom.
Les cybercriminels se sont faits repérer lorsque l'un d'eux a réussi à se connecter au compte RubyGems de l'un des développeurs de rest-client, pour y déposer quatre versions malveillantes de rest-client sur RubyGems.
rest-client est une gems téléchargée 113 millions de fois. C'était évidemment un gros coup pour les cybercriminels. Mais pour eux aussi le mieux peut être l'ennemi du bien.