Une porte dérobée permettant l’exécution de code découverte dans la bibliothèque Ruby rest-client
Hayley Denbraver
21 août 2019
0 minutes de lectureLe 19 août 2019, [rest-client](https://snyk.io/vuln/rubygems:rest-client), un client HTTP et REST simple pour Ruby, a signalé une nouvelle menace pour la sécurité. Le compte RubyGem d’un mainteneur a été compromis et un tiers malveillant a installé une porte dérobée permettant l’exécution de code. L’exploit concerne les versions supérieures à 1.6.10 et antérieures à 1.7.0.rc1.
Que s’est-il passé ?
L’utilisateur GitHub [juskoljo](https://github.com/juskoljo) a signalé un problème dans le dépôt rest-client le 19 août. Après avoir examiné les différences entre les versions du package, il a découvert que les versions comprises entre 1.6.10 et 1.7.0.rc1 exécutaient du code distant hébergé sur pastebin.com et envoyaient des informations vers un site malveillant. Grâce à cet exploit, l’attaquant a pu récupérer l’URL des hôtes infectés, leurs variables d’environnement et d’autres informations sensibles.
Le fil de discussion sur GitHub mérite d’être lu. Il permet de voir comment un problème de sécurité lié à un logiciel open source a été traité. Le premier commentaire indique qu’une demande de CVE a été soumise ; le deuxième précise que la version compromise a été supprimée et que le compte du mainteneur compromis a été verrouillé. Plus loin dans le fil, les participants débattent des avantages de l’authentification à deux facteurs pour les comptes RubyGem.
Il est important de noter que la version compromise est assez ancienne. rest-client en est actuellement à la série 2.x.x : les versions exploitées ont donc une version majeure de retard. Cependant, compte tenu des réalités de la maintenance du code, de nombreux projets sont sans doute vulnérables à cet exploit.
Que dois-je faire maintenant ?
Les utilisateurs des versions infectées doivent effectuer une mise à niveau dès que possible. La version 1.7.0.rc1 corrige le problème. Vous pouvez utiliser Snyk pour vérifier si vous utilisez les versions vulnérables.
Si vous utilisez notre CLI, exécutez simplement $ snyk test dans le répertoire de votre projet. Vous obtiendrez la liste de toutes les vulnérabilités présentes dans vos dépendances, y compris celles de rest-client.
Vous pouvez également tester votre projet dans notre interface simple d’utilisation. Essayez dès aujourd’hui.
Je vous recommande également de tirer une leçon de cet exploit et d’activer l’authentification à deux facteurs sur tous les comptes qui le permettent.
Que pouvons-nous en retenir ?
Cette vulnérabilité illustre l’intérêt d’activer l’authentification à deux facteurs pour le compte de votre gestionnaire de packages. Les mainteneurs soucieux de la sécurité devraient même envisager de l’imposer aux personnes disposant d’un accès en écriture.
Par ailleurs, cette vulnérabilité montre pourquoi il est judicieux de maintenir ses dépendances relativement à jour. Les mises à jour automatiques peuvent aussi poser problème, mais il est clair que l’attaquant voulait « passer sous les radars », pour ainsi dire, en ciblant une ancienne version.
Dernière leçon à retenir de cet incident : il faut agir rapidement pour remédier à ce type de problème. Celui-ci ne touche peut-être pas un grand nombre d’utilisateurs, mais ses conséquences peuvent être considérables pour les personnes concernées. Il est important de faire circuler l’information afin qu’elles puissent résoudre le problème au plus vite.
J’espère que cet article contribuera à faire passer le message. Si vous vous demandez si vous utilisez une version infectée de rest-client, essayez Snyk dès aujourd’hui ! En exécutant un test Snyk, vous saurez si votre projet contient des versions infectées de rest-client et découvrirez les autres vulnérabilités connues présentes dans vos dépendances.
Les packages malveillants dans des dépôts open source populaires sont de plus en plus fréquents. Si vous pensez avoir repéré un package potentiellement malveillant, vous pouvez le signaler à Snyk conformément à notre politique de divulgation des packages open source : https://snyk.io/vulnerability-disclosure/
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.



