Fuzzing Intelligent de XSS Type-2 Filtrés selon Darwin: KameleonFuzzFabien Duchene,Jean-Luc Richier,Roland Groz,Sanjay Rawat

Nous présentons une approche de smart fuzzing (frelatage intelligent) en boîte noire afin de détecter des vulnérabilités de type cross-site scripting (XSS) dans des applications web. L’intelligence est fournie par deux composants principaux : l’inférence de modèle et la génération automatique d’entrées malicieuses. Le premier est un “crawler” conscient du macro-état qui modèle l’application par une machine à états finis étendue, capturant la relation entre les paramètres d’entrée et les sorties (pages HTML). Le second, appelé fuzzing évolutionaire, est implémenté par algorithme génétique (AG). Afin de limiter le domaine de recherche de l’AG, nous introduisons un facteur additionnel, la grammaire d’entrées d’attaques afin de générer des entrées sous forme de chaînes de caractères qui sont malicieuses par nature, pour reproduire le comportement d’un attaquant.


Un XSS est notamment caractérisé par une relation intrinsèque entre une entrée teintée et une sortie de l’application web. Comme nous faisons l’hypothèse de test en boîte noire, capturer précisément cette relation est une tâche difficile que nous résolvons en utilisant des techniques d’inférence de teinte. Grâce à ceci, nous pouvons - à la différence d’un fuzzing systématique - nous concentrer sur les transitions du modèle pour lesquelles cette relation semble vérifiée, en évitant intelligemment de fuzzer le système complet. L’AG automatise la génération des entrées en considérant les états de l’application et en évoluant intelligemment les entrées afin de révéler des vulnérabilités XSS, s’il y en a. Nous fournissons des preuves empiriques de l’intérêt de notre approche par des expérimentations avec des applications réelles et reportons des résultats encourageants.