Yahoo! a mis à la disposition de la communauté open source sous licence BSD son projet Gryffin, qui a pour objectif l’amélioration de la sécurité sur le web pour tous. Encore sous forme de bêta, Gryffin, qui « n’est pas encore un scanner », a été conçu pour résoudre deux problèmes spécifiques avec les scanners existants : la couverture et l’importance.
Dans la page du projet sur GitHub, Yahoo! avance qu’une meilleure couverture se traduit par moins de faux négatifs. Aussi, l’entreprise rappelle que la couverture a deux dimensions, notamment l’exploration (crawl) et le test de données aléatoires (fuzzing). Durant la phase d’exploration, « couverture implique être capable de trouver autant que possible des empreintes de l’application » tandis que la phase de test de données aléatoires « implique être capable de tester chaque partie de l’application pour un ensemble de vulnérabilités ».
Le fuzzing est une méthode permettant de traquer facilement des vulnérabilités dans des systèmes ou programmes. La technique est très simple : tout d'abord, il faut générer des données aléatoires à peu près conformes au protocole. Par exemple, ces données peuvent être de longues entrées comme 3425 x z, ou des indications de format tel que %a%a%a%, ou encore des valeurs d'entiers : 0,1,2, etc.., ou tout simplement des caractères Unicode (de U+0000 à U+0FFF). Cependant, ces données ne sont pas totalement aléatoires, car elles ressemblent aux spécifications du protocole. En effet, elles doivent obéir à la logique de programmation du système ciblé, notamment sur les limites dans les opérations de parsing. Si le fuzzer n'envoie que des données totalement aléatoires au système ciblé, celui-ci les rejettera dès qu'elles ne correspondront plus à ce qui est attendu. Généralement, grâce à l'utilisation de cette technique, des erreurs dans la gestion de la mémoire ou dans d'autres parties du système ciblé sont découvertes.
« Aujourd'hui, un grand nombre d'applications web sont orientés modèles, ce qui signifie que le même code ou le même chemin génère des millions d'URL. Pour un scanner de sécurité, il a juste besoin de l'une des URL parmi les millions générées par le même code ou le même chemin. Le robot d'exploration de Gryffin fait justement cela », explique Yahoo!
Comment ? « Au cœur de Gryffin se trouve un moteur de déduplication qui compare une nouvelle page avec une page qui a déjà été vue. Si la structure HTML de la nouvelle page est similaire à celles qui ont déjà été vues, alors elle est classée comme étant un doublon et l’analyse ne va pas plus loin ».
Le robot d’exploration de Gryffin fait également appel à PhantomJS pour le rendu et la navigation DOM, ce qui lui permet de découvrir des liens et des chemins de code dans les applications riches qui sont fortement orientées JavaScript côté client. Cependant, la plateforme de scan n’a pas de modules pour effectuer des tests de données aléatoires, même pour les vulnérabilités web les plus récurrentes comme les injections XSS et SQL.
« Ce ne serait pas intelligent de réinventer la roue quand vous n’avez pas à le faire. A l’échelle de production chez Yahoo, Gryffin utilises des Fuzzers open source et personnalisés », estime Yahoo ! Raison pour laquelle, pour des besoins de démonstration, Gryffin intègre sqlmap (pour des fuzzing SQLi) et arachni (pour des fuzzing XSS et des vulnérabilités web), même si « il ne supporte aucun scanner en particulier ».
éventail des différents outils de Fuzzing
Source : page GitHub du projet
Et vous ?
Qu'en pensez-vous ?
Gryffin : la plateforme de scan de sécurité conçue par Yahoo
Est disponible en open source
Gryffin : la plateforme de scan de sécurité conçue par Yahoo
Est disponible en open source
Le , par Stéphane le calme
Une erreur dans cette actualité ? Signalez-nous-la !