TLDR :
Les attaques de type "0-day", qui exploitent des vulnérabilités inconnues des éditeurs de logiciels, constituent une menace cybernétique importante. Les pare-feu d'applications web traditionnels (WAF) ne parviennent souvent pas à prévenir ces attaques, car ils nécessitent des correctifs fréquents. Runtime Application Self Protection (RASP) adopte une approche différente qui ne repose pas sur des règles écrites mais surveille activement le comportement des applications par le biais d'intégrations natives, ce qui conduit à une protection accrue contre les attaques de type "0-day".
L'objectif d'Aikido Zen pour NodeJS était de permettre aux développeurs d'adapter leurs applications et de les protéger par défaut contre les classes communes d'attaques par injection telles que les injections SQL, les injections shell, la traversée de chemin et le SSRF. Le développeur doit être protégé non seulement contre les erreurs dans son propre code, mais aussi contre les failles inconnues dans les bibliothèques qu'il utilise.
Pour en évaluer l'efficacité, nous avons évalué Zen par rapport à un certain nombre de CVE. Ce livre blanc explique l'approche, évalue l'efficacité et présente les compromis et les limites. Pour ce document, l'équipe a identifié 17 vulnérabilités dont 11 ont été bloquées par Zen sans aucune connaissance préalable de l'exploit spécifique.
Introduction
Les WAF ont toujours été le dernier espoir contre les attaques de type 0-day, car ils s'appuient sur une combinaison de chance et de schémas récurrents pour attraper les attaques de type 0-day pendant leur fenêtre "Zero-day attack" (comme indiqué ci-dessous). Ce n'est qu'après la divulgation publique des vulnérabilités (t0) que les règles du WAF peuvent être mises à jour pour bloquer la nouvelle attaque.

Un WAF examine les données de connexion entrantes (en-têtes, corps, ...) avant qu'elles n'atteignent votre application. Il analyse les données à la recherche de schémas suspects (injections SQL, traversées de chemin) et bloque ou supprime les données suspectes. Bien qu'efficace, il a tendance à créer de nombreux faux positifs, comme l'a montré une étude de System Weakness.

Si vous avez 10 000 clients, la meilleure solution pourrait encore en bloquer 56.
Aikido Zen adopte une approche fondamentalement différente de la sécurité des applications web. Au lieu de s'appuyer uniquement sur des signatures et des modèles connus, il se concentre sur la compréhension et l'atténuation des comportements d'attaque à un niveau plus profond de l'application.
L'approche zen de l'Aïkido
En se concentrant sur la surveillance et l'interception des activités malveillantes au moment où elles tentent d'accéder aux ressources critiques ou de les manipuler, Aikido Zen est en mesure de fournir une réduction significative des faux positifs en adoptant une stratégie qui ne bloque les attaques que lorsqu'elles interagissent avec les systèmes sous-jacents.
Pour ce faire, il faut mettre en œuvre un système qui examine minutieusement divers types d'interactions avec l'environnement sous-jacent. Ces interactions sont les suivantes
- Interactions avec les bases de données : La surveillance des appels aux bibliothèques de bases de données, qu'elles soient SQL ou NoSQL, permet de détecter les requêtes non autorisées, les tentatives d'exfiltration de données ou les attaques par injection. L'analyse du contenu et de la structure de ces appels à la base de données permet d'identifier les activités malveillantes et de les bloquer avant qu'elles ne causent des dommages.
- Appels externes : La surveillance des appels externes effectués via HTTP, HTTPS ou d'autres protocoles peut révéler des tentatives de communication avec des serveurs de commande et de contrôle, de téléchargement de logiciels malveillants ou d'exfiltration de données. L'inspection du contenu et de la destination de ces appels permet d'identifier et de bloquer le trafic malveillant.
- Accès au système de fichiers et exécution Shell : La surveillance de l'accès au système de fichiers permet de détecter les tentatives de lecture, d'écriture ou de modification de fichiers sensibles, ou d'exécution de codes malveillants. L'analyse des chemins d'accès aux fichiers, des autorisations et des opérations impliquées dans ces accès permet d'identifier et de bloquer les activités non autorisées.
- Tentatives de falsification des requêtes côté serveur (SSRF): Les attaques SSRF peuvent être dévastatrices, permettant aux attaquants d'exploiter la confiance de votre serveur pour accéder à des ressources internes ou même interagir avec des services externes en leur nom. En surveillant de près la destination et la nature des demandes internes provenant de vos serveurs, Zen est en mesure de bloquer les attaques SSRF.
En se concentrant sur ces points critiques d'interaction avec les systèmes sous-jacents, l'approche Zen permet une détection et un blocage plus précis et plus efficace des attaques, tout en minimisant le nombre de faux positifs qui peuvent perturber l'activité légitime. Cette stratégie fournit également des informations précieuses sur la nature et les cibles des attaques, qui peuvent être utilisées pour améliorer la posture de sécurité globale.
Recherche
Dans le cadre d'un effort continu, l'équipe d'Aikido Zen effectue des tests sur des vulnérabilités récemment découvertes afin de mesurer l'efficacité d'Aikido Zen. L'équipe identifie les nouveaux jours 0, crée un environnement de test reproductible, valide la vulnérabilité avec une injection de charge utile réussie, puis installe Aikido Zen pour vérifier que l'attaque est bloquée.
Pour cet article, l'équipe a identifié 17 vulnérabilités, dont 11 ont été bloquées par Zen et 6 ne l'ont pas été pour une myriade de raisons.
Les résultats de nos recherches peuvent être consultés ci-dessous et tous les environnements de test, les exploits et les ressources nécessaires à la reproduction ont été mis à la disposition de tous.
Bloqué
Non bloqué
Aikido poursuit ses recherches et étend la protection zero-day d'Aikido Zen avec un nouveau support de framework et des algorithmes améliorés.
Un principe fondamental est de maintenir un impact minimal sur les performances (≤ 5%) pour une protection continue. Bien que cela nous empêche d'implémenter immédiatement certains algorithmes de protection gourmands en ressources (qui pourraient augmenter les temps de requête de 2x-10x), nous développons activement des approches alternatives et efficaces.
Considérez Aikido Zen comme une couche *additionnelle* de protection, complétant les composants réactifs complets d'Aikido tels que l'analyse de code, les tests d'API, et d'autres capacités de sécurité robustes.
Conclusion
Aikido Zen est une avancée majeure dans la sécurité des applications web. Il offre une protection solide contre les attaques de type "zero-day" sans nécessiter de correctifs constants, en se concentrant sur les comportements d'attaque et en utilisant des technologies de pointe. Aikido Zen constitue une solution potentielle pour garantir la sécurité permanente des applications web face à l'évolution du paysage des menaces.