Rails reste sur les rails : contrecarrer les attaques par injection de code
Chez Akamai, nous nous engageons à améliorer en permanence notre pare-feu d'application Web (WAF) afin de garantir le plus haut niveau de sécurité à nos clients. Dans le cadre de cet engagement, nous sommes heureux d'annoncer le lancement d'une nouvelle fonctionnalité de détection dédiée aux attaques par injection de code qui ciblent spécifiquement les applications Ruby on Rails (Rails).
Pourquoi est-il essentiel de protéger les applications Ruby on Rails ?
Ruby on Rails est devenu un framework populaire de développement d'applications Web en raison de sa facilité d'utilisation, de sa flexibilité et de son écosystème robuste. La capacité de Rails à accélérer le temps de développement tout en maintenant une base de code saine et facile à gérer l'a rendu très attractif pour les développeurs d'entreprises de toutes tailles. De nombreuses marques connues, telles que GitHub, Shopify, Airbnb et Basecamp, ont développé leurs plateformes en utilisant Ruby on Rails, ce qui souligne son importance dans le secteur de la technologie.
Cependant, Rails est également devenu une cible plus attrayante pour les cybercriminels, pour les mêmes raisons que celles qui séduisent les développeurs. L'automatisation croissante des processus et le besoin toujours plus grand d'interopérabilité des applications ouvrent aux pirates de nouvelles possibilités de masquer leurs attaques. La protection des applications Rails est essentielle pour protéger les données sensibles et les opérations commerciales de ces plateformes critiques.
Menaces croissantes contre Ruby on Rails
Au fil des ans, Rails a été confronté à plusieurs failles de sécurité et vecteurs d'attaque notables. L' Open Worldwide Application Security Project (OWASP) propose une fiche d'informations sur la sécurisation de Rails qui montre à quel point il est impératif que les développeurs et les équipes de sécurité restent vigilants.
Bien que les vulnérabilités les plus connues de Rails soient liées à la désérialisation non sécurisée des formats de données JSON et YAML , les développeurs peuvent, par inadvertance, exposer l'application et les données des utilisateurs à d'autres types d'attaques, telles que l'injection de code. Cela est particulièrement vrai avec la fonction « eval » du langage Ruby. Cette fonction génère dynamiquement du code Ruby à partir d'une chaîne d'entrée. Si une entrée contrôlée par le cybercriminel se retrouve dans cette fonction, ce dernier peut exécuter n'importe quel code Ruby arbitraire.
Voici un exemple :
def calculate
calc = params[:calc]
result = eval(calc)
render plain: result
End
Dans cet exemple extrêmement naïf, l'action calculate prend un paramètre calc à partir de la saisie de l'utilisateur, qui inclut une opération mathématique telle que « 1+2 » et utilise la méthode Ruby eval , qui renvoie à son tour le résultat de l'opération mathématique. Cela entraîne une vulnérabilité par injection de code, car un pirate peut fournir un code Ruby arbitraire à exécuter.
Comment un cybercriminel peut exploiter cette vulnérabilité
Un pirate peut exploiter cette vulnérabilité en soumettant une requête élaborée avec un code Ruby malveillant, tel que :
POST /calculate?ip=IO.popen('cat%20%2Fetc%2Fpasswd').read%20%23
Ou dans sa forme décodée :
IO.popen('cat /etc/passwd').read #
Cette commande permet de lire le contenu du fichier /etc/passwd (qui contient des informations sensibles sur les utilisateurs du système). Le symbole # à la fin est un commentaire Ruby qui ignore tout ce qui suit, évitant ainsi toute erreur de syntaxe dans le reste du code.
Atténuation avec l'Adaptive Security Engine d'Akamai
La prévalence croissante de cybermenaces sophistiquées rend impérative la mise en place de mesures de sécurité robustes. Notre dernière règle 3000404 de l'Adaptive Security Engine (Ruby on Rails Sensitive Operation Injection Attack Detected) offre un niveau supérieur de précision et de couverture dans la détection et l'atténuation des attaques par injection de code sur les applications Rails (Figure 1).
Principaux avantages
Précision accrue : des techniques de détection avancées identifient et bloquent avec précision les tentatives d'injection de code, en minimisant les faux positifs et en veillant à ne pas affecter le trafic légitime.
Couverture complète : la couverture étendue d'un large éventail de vecteurs d'injection de code offre une protection renforcée à vos applications Rails.
Attaques par injection de code Ruby on Rails contre nos clients
Notre nouvelle règle dédiée à Rails détecte quotidiennement des dizaines de milliers de tentatives d'injection de code Rails dans le monde entier. Ces dernières semaines, cette règle de l' Adaptive Security Engine a atteint un pic de près de 250 000 détections en une seule journée et une moyenne d'environ 70 000 attaques atténuées par jour (Figure 2).
Jusqu'à présent, nous avons détecté plus de 3 000 adresses IP attaquantes uniques et plus de 21 000 hôtes ont été ciblés par ces tentatives d'attaque. Ces tentatives proviennent du monde entier, la plupart d'entre elles étant originaires d'Allemagne (Figure 3).
Perspectives d'avenir
La sécurité est un aspect essentiel de votre entreprise, et nous nous engageons à fournir des solutions qui non seulement répondent à vos attentes, mais les dépassent. Notre WAF est conçu pour fournir une protection complète et l'ajout de la règle de détection d'injection de code Rails renforce encore nos mécanismes de défense pour protéger vos applications et vos données.
Alors que nous poursuivons nos innovations et l'extension de nos capacités WAF, nous veillons toujours à fournir à nos clients les solutions de sécurité les plus efficaces et les plus fiables. Attendez-vous à d'autres mises à jour, car nous travaillons sans relâche pour améliorer nos offres de produits et conforter notre position à l'avant-garde de la sécurité applicative Web.
Pour en savoir plus sur l'Adaptive Security Engine et les solutions de sécurité des applications Web et des API d'Akamai, contactez votre représentant Akamai.