Ce dimanche 4 mars, Egor Homakov a exploité une faille dans la façon dont le framework web Ruby on Rails gère ce qu'on appelle les "mass assignments" qui lui ont permis d'écrire ou supprimer un message et aussi de faire des modifications dans le code source de projets GitHub.
Homakov avait précédemment créé un ticket pointant la sécurité des "mass assignments" sur le bug tracker rails de GitHub mais celui-ci a été fermé par les développeurs car ceux-ci prétendaient que ce sont les développeurs qui doivent responsabiliser la sécurité de leurs applications. Il a alors décidé de démontrer que non en utilisant une application développée grâce à Ruby on Rails : GitHub
Il a d'abord créé un ticket sur le projet Rails intitulé 1001 years into the future afin d'attirer l'attention des développeurs de Rails. Ensuite, il a ajouté sa clé publique à la liste des committers Rails et a fait un commit sur le master repository. GitHub (bon prince) a suspendu le compte d'Homakov, tandis qu'ils résolvaient le problème. Après que GitHub ait résolu le problème, Homakov a publié un how-to sur la façon dont il avait manipulé les applications Rails de GitHub.
Ce problème connu sous le nom de mass assignment vulnerability a été vu il y a de cela quelques années et permettait de définir un certains nombres d'attributs en un seul appel. Le problème est d'ailleurs répertorié dans le guide de sécurité de Rails et qui détaille comment blacklister ou whitelister des attributs fixes mais cette fonctionnalité n'est pas activée par défaut donc de nombreuses applications Rails ont encore ce problème. Dans le cas de GitHub, Homakov a manipulé les enregistrements PublicKey et les identifiants des utilisateurs associés afin de créer une clé SSH qui serait la clé publique d'une victime en modifiant les résultats dans la page du formulaire PublicKey.
GitHub a dit qu'il a lancé un audit complet de son code. Dans un autre billet, GitHub a déclaré que Homakov avait révélé un problème deux jours auparavant, mais a ensuite constaté la vulnérabilité lors de la mise à jour du formulaire de la clé publique. La compagnie a aussi rajouté que vu que les intentions de @homakov n'étaient pas malveillantes, ils ont réactivé son compte. Un guide a également été ajouté sur leurs pages d'aide expliquant comment communiquer de manière responsable les problèmes de sécurité liés à leur application.
Malgré tout ça, ce problème de "mass assignment" reste toujours un problème pour les autres applications Rails et il est recommandé que les développeurs audit leur code pour être sûr qu'ils ne permettent leur système d'être manipulé de la même façon. Un récent commit dans le code de Rails mettra par défaut les attributs sur liste blanche mais seulement pour les nouvelles applications créées. Ce patch devrait être inclus dans une mise à jour vers la version 3.2 de Rails.
MISES A JOUR DE L'ARTICLE |