Vous avez besoin du Cloud Computing ? Commencez dès maintenant

Rails reste sur les rails : contrecarrer les attaques par injection de code

Akamai Wave Blue

écrit par

Sam Tinklenberg, Maxim Zavodchik, et Aparna Mandal

November 06, 2024

Sam Tinklenberg

écrit par

Sam Tinklenberg

Sam Tinklenberg est un Senior Security Researcher au sein du groupe Apps & APIs Threat Research chez Akamai. Passionné par la recherche et la protection contre les vulnérabilités critiques, Sam a travaillé dans le domaine des tests de pénétration des applications Web. Lorsqu'il ne perce pas les vulnérabilités des applications Web, il aime jouer à des jeux vidéo et à des jeux de société, sortir au grand air et passer du temps avec ses amis et sa famille.

Maxim Zavodchik

écrit par

Maxim Zavodchik

Maxim Zavodchik est Senior Manager of Apps & APIs Threat Research chez Akamai.

Aparna Mandal

écrit par

Aparna Mandal

Aparna Mandal is the Lead Product Manager for Akamai Adaptive Security Engine, the core web application firewall engine for Akamai's web application and API security solution. She has more than a decade of experience in building and implementing innovative and efficient solutions.

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.
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.

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).

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). Figure 1 : Attaque par injection de code Ruby bloquée par la règle 3000404 de l'Adaptive Security Engine

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).

 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). Figure 2 : Détections quotidiennes par la règle 3000404 de l'Adaptive Security Engine

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).

Ces tentatives proviennent du monde entier, la plupart d'entre elles étant originaires d'Allemagne (Figure 3). Figure 3 : Carte des tentatives d'injection de code Rails observées

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.



Akamai Wave Blue

écrit par

Sam Tinklenberg, Maxim Zavodchik, et Aparna Mandal

November 06, 2024

Sam Tinklenberg

écrit par

Sam Tinklenberg

Sam Tinklenberg est un Senior Security Researcher au sein du groupe Apps & APIs Threat Research chez Akamai. Passionné par la recherche et la protection contre les vulnérabilités critiques, Sam a travaillé dans le domaine des tests de pénétration des applications Web. Lorsqu'il ne perce pas les vulnérabilités des applications Web, il aime jouer à des jeux vidéo et à des jeux de société, sortir au grand air et passer du temps avec ses amis et sa famille.

Maxim Zavodchik

écrit par

Maxim Zavodchik

Maxim Zavodchik est Senior Manager of Apps & APIs Threat Research chez Akamai.

Aparna Mandal

écrit par

Aparna Mandal

Aparna Mandal is the Lead Product Manager for Akamai Adaptive Security Engine, the core web application firewall engine for Akamai's web application and API security solution. She has more than a decade of experience in building and implementing innovative and efficient solutions.