Plusieurs failles de sécurité ont été découvertes récemment dans le framework Ruby on Rails. Elles sont très sérieuses, car elles concernent toutes les versions du framework et permettent à un attaquant de prendre le contrôle du serveur.
L’un des avantages à utiliser un framework reconnu est la réactivité de sa communauté. Une mise à jour a ainsi été publiée très peu de temps après la découverte des failles et installée sur l’ensemble de nos sites.
Les failles découvertes
Elles se basent sur le fait d’envoyer à une application Ruby on Rails des données au format XML contenant du code formaté de manière à être interprété et exécuté par l’application.
L’interprétation de ces paramètres permet différentes formes d’attaques :
Déni de service (DDoS)
Le but est d’inonder l’application de larges requêtes pour la rendre indisponible.
L’application vulnérable interprète le contenu de ces requêtes et se retrouve rapidement saturée en mémoire.
Modification de paramètres pour court-circuiter un système d’authentification
Le but est de contrefaire les paramètres envoyés à l’application pour faire lui croire que l’utilisateur à l’origine de la requête est connecté et possède des droits spécifiques.
Cela permet par exemple à un attaquant de se faire passer pour un administrateur ayant accès au back-office.
Injection SQL
Le but est d’envoyer à l’application des requêtes SQL en les déguisant à l’intérieur de paramètres d’habitude acceptés, comme l’identifiant d’une page du site.
Cela permet de faire exécuter des commandes sur le serveur de base de données, pour par exemple :
- supprimer des informations,
- créer des utilisateurs ayant les droits d’administration du site,
- voler des données normalement inaccessibles au public : renseignements clients, factures…
Exécution de code
Le but est de faire exécuter du code directement sur le serveur, en envoyant les commandes par l’intermédiaire de l’application.
Cette faille est extrêmement sérieuse car l’attaquant peut prendre le contrôle complet de la machine.
Correction des failles
Dès la découverte des failles, l’équipe responsable de Ruby on Rails a publié un correctif. Étant abonnés aux alertes de sécurité, nous avons installé ce correctif dès sa diffusion sur l’ensemble de nos sites concernés.
Ces failles sont rares, mais elles sont sérieuses et il est nécessaire d’être réactif pour les corriger.
C’est pourquoi nous conseillons à nos clients d’opter pour un contrat de maintenance technique incluant notamment ce type de mise à jour.
Détails techniques
Voici quelques liens expliquant les détails techniques des failles, les manières de les exploiter ainsi que les correctifs appliqués :
- Mise à jour de sécurité critique pour Rails (Synbioz – Français)
- Rails’ Remote Code Execution Vulnerability Explained (Code Climate Blog – Anglais)
- Rails PoC exploits for CVE-2013-0156 and CVE-2013-0155 (Ronin – Anglais)
- Multiple vulnerabilities in parameter parsing in Action Pack (CVE-2013-0156) (Ruby on Rails Security Google Group – Anglais)