Articles

Chorizo scanner : revue

  • Ecrit par Damien Seguy
Image pour le titre du contenu

Chorizo Scanner est un nouveau service en ligne pour améliorer la sécurité des applications PHP. Il effectue des tests automatiques pour les vulnérabilités les plus courantes, et permet de rapporter rapidement les erreurs de validations les plus courantes. Nous avons testé ce nouveau service pour vous.
May Flower, une SSII allemande dédiée à PHP, publie Chorizo-scanner, un outil de détection automatique des vulnérabilités pour les applications Web PHP. Avec tout ce qui se dit sur la sécurité PHP actuellement, un tel outil est une bonne nouvelle, et Björn Schötte, responsable chez May Flower, m'a permis de tester le logiciel de manière complète.

Le principe de Chorizo est de faire des tentatives d'injections de valeurs invalides dans les scripts PHP, pour voir comment l'application se comporte. C'est en effet comme ceci que la majorité des vulnérabilités sont découvertes, que ce soit par des pirates ou par les chefs de projets. Durant la navigation sur le site, Chorizo reprend les paramètres des pages, et tente différentes insertions de données.

Comment ça marche?
Le scanner est constitué par un proxy : pour analyser votre application Web, il suffit de configurer votre navigateur pour utiliser le proxy de Chorizo : ce dernier s'installe entre vous et votre application. À partir de là, vous pouvez naviguer directement sur votre site, et demander au scanner de passer en revue différentes pages au fur et à mesure de votre navigation. C'est donc un outil facile à installer, et à utiliser.



À chaque page, le système produit un nombre impressionnant de tests. Une page simple peut engendrer jusqu'à 500 tests, et dès que plusieurs variables sont repérées automatiquement, on monte vers 800 tests. La machine produit alors une liste de résultats avec 3 niveaux de risques : risque maximum, risque modéré et risque mineur. Par exemple, sur www.directionphp.biz, le scanner a repéré un risque mineur sous la forme d'oeufs de Pâques PHP. Il est vrai qu'ils sont toujours actifs sur ce serveur.



Des tests complets
Les tests présentés sont complets : outre les classiques XSS, on trouve aussi des attaques HTTP, les sessions PHP, l'inclusion de code PHP et les injections. Des attaques plus mystérieuses sont aussi testées (Apache, Morcilla Base), mais la documentation fait encore défaut sur le site.



Le proxy détecte les données utilisateurs qui sont fournis au site Web, et chaque variable est alors soumise à une série de valeurs de tests. Cela inclut, bien sûr, les variables GET (détectées dans l'URL), les variables POST, mais aussi les cookies. Je n'ai pas testé les téléchargements de fichiers.

Les tests sont exécutés très rapidement, depuis le proxy, et indépendamment du navigateur. Il est capable de lancer jusqu'à 100 scans simultanés sur un même site, et les tests sont organisés pour qu'un hit sur le serveur puisse réaliser plusieurs tests en même temps : en fait, outre la charge induite sur le serveur, cela permet de tester les pages sans ralentir vraiment la navigation.

Une fois une attaque détectée, un rapport est affiché, avec le détail de l'attaque réussie, et une explication sur son fonctionnement. Par exemple, dans l'illustration ci-dessous, une belle attaque XSS a été détectée. On y trouve le vecteur utilisé, le code d'attaque, et une explication pour faciliter la correction.



Les tests (ou sessions de travail) sont conservés dans l'interface utilisateur de www.chorizo-scanner.com et peuvent être consultées après avoir exécuté une série de tests, ou quelques jours après. Le document est disponible en ligne, ou bien sous forme de PDF, à imprimer ou à diffuser à un client ou une équipe de développement.



Chorizo-scanner est un projet qui mobilise actuellement cinq développeurs, dont trois à temps plein. Il a été conçu par Johann-Peter Hartmann. Son architecture est modulaire, et permettra l'ajout de nouveaux modules ultérieurement.

Documentation
Si l'expérience de détection des erreurs a été agréable, l'ensemble du projet montre encore des signes de jeunesse. D'abord, la documentation en ligne est encore succincte : beaucoup de tests sont faits, mais ils ne sont pas présentés du tout. Que fait le test HTTP? Il fait sûrement quelque chose, mais je ne sais pas quoi? Il faudra attendre que la documentation se complète.  

Profondeur de tests
Durant mes propres tests, j'ai été très fier d'exécuter des centaines de tests sur chaque page de mes sites sans produire d'autres alertes que des Easter Eggs ou des affichages de traces PHP (Stream failed to Open....). Les Easters Eggs ne sont pas un problème, et il est bon que Chorizo les signale. Les problèmes de traces PHP sont plus embêtants, car l'affichage des erreurs PHP est désactivés sur les sites de production : cette suite de tests devrait être retirée, car elle a tendance à produire trop de fausses alertes.

Après avoir été très fier du niveau de sécurité de mes applications, je me suis inquiété : comment se fait-il que tout soit si bien colmaté? Je suis sûr de moi, mais il faut savoir douter. J'ai donc testé un script outrageusement vulnérable (echo $_GET['variable']);

En fait, rien n'était détecté : c'est ennuyeux. Toutefois, l'équipe de support n'était pas loin, et en échangeant avec eux, une solution a été rapidement mise en place dès le lendemain : magic_quotes faisait encore des siennes. Comme le chorizo scanner est jeune, une grande réactivité est nécessaire de la part de l’équipe de développement. J'espère donc que leur expérience va croître avec l'age.

Rendement faible
Un autre aspect qui apparaît avec ce type d'outil en général est le rendement. Sur 700 tests, la machine détecte 3 attaques XSS possibles. En multipliant les tests, on peut facilement arriver à 5000 tests, pour 1 alerte : 0,02 % est un rendement très faible. Il faut donc bien évaluer l 'intérêt de cette approche : identifier les problèmes les plus courants, pour pouvoir fermer les vulnérabilités les plus évidentes.

Futures fonctionnalités
Dans la catégorie des améliorations à venir, deux fonctionnalités sont déjà à l'étude : la possibilité de rejouer une suite de tests. À partir des rapports déjà établis lors d'une visite précédente, il serait bon de pouvoir rejouer, à volonté ou bien sur une base régulière, les jeux de tests sur un site en production. En effet, une application vit et évolue sans cesse : nouvelle mise en production, changement de configuration du serveur, migration, etc. Il sera donc utile de réaliser interactivement une série de tests aussi complets que possible, puis de rejouer automatiquement cette série plus tard. Cette nouvelle fonctionnalité sera alors un gros avantage pour les chefs de projets qui cherche un système de surveillance permanent de leurs applications.

L'autre fonctionnalité à l'étude est une extension morcilla pour PHP. Cette extension s'ajoutera à PHP sur le serveur à étudier, pour effectuer des tests dynamiques sur les valeurs utilisées dans les injections SQL. En effet, il est difficile de mesurer l'impact des injections SQL actuellement, surtout sur un serveur qui n'affiche aucune erreur, ni PHP, ni SQL. L'extension Morcilla va donc noter des erreurs possibles, et les rapporter au proxy Chorizo de manière sécurisée.

Conclusion
Chorizo-scanner est un nouvel outil dans l'arsenal de la protection des applications Web. Il se range à côté de Nikto, et effectue des tests boîte noire pour identifier différents types d'attaques. Il est bien présenté, pratique à utiliser et rapide à mettre en place. Il sera très utile à ceux qui souhaitent encadrer leurs applications d'un minimum de tests lors de la production, ou bien lors de recettes.

L'outil est encore jeune. Il est en version beta et tout à fait utilisable. Il gagnera sûrement à être utilisé par les milles premiers inscrits pour gagner en robustesse et fiabilité. Un effort marqué est fait pour éviter les fausses alertes, mais cela reste un risque inhérent à ce type d'outils. L'autre risque est de passer à côté des alertes plus complexes, du type de celles qui sont rapportées sur les sites de sécurité pour les applications Open Source (securityfocus, frsirt, etc).

Vous pouvez tester chorizo-scanner.com gratuitement pour un de vos sites dès maintenant. Enregistrez-vous gratuitement sur le site www.chorizo-scanner.com puis laissez-vous guider. La version complète de Chorizo-scanner coûte 289 Euros par an, pour 5 sites.

Commentaires

Vous pouvez ajouter votre commentaire!


Vous devez vous connecter pour commenter