JSSI 2012 - Protection du site Charlie Hebdo par le logiciel NAXSI
Thibault Koechlin (NBS)
« Protection du site Charlie Hebdo par le logiciel NAXSI »
Bon, la sécurité web, c’est super facile à exploiter, et les SQLi requièrent peut de compétences techniques. La tendance au « deface » et au « leaks » est en forte augmentation, mais ça reste la partie émergée de l’Iceberg.
D’un coté on à des scanners de vulnérabilité web dont l’efficacité et la qualité de la couverture est discutable (why johnny can’t pentest). Et de l’autre on à la qualité des applications, qui emploient divers frameworks ou carrément customisent des bases de logiciels open-source bien connus (wordpress et ses fameux plugins qui lui ont valu d’avoir son propre scanner de vulnérabilité). Et puis on à plus forcément de maintenances sur certaines de ces applications.
On en viens forcément au coeur du sujet le WAF, et ses avantages et défauts. NAXSI : Nginx Anti Xss & SQL Injection. le challenge, c’est la sécurisation d’une application sans modifier son code applicatif. Contrairement à l’approche par signatures lourdes de modsecurity & consorts avec un grand nombre d’expressions régulières à l’instar de l’analyse anti-virale, NAXSI se base sur des sets de caractères qui sont caractéristique des primitives de l’attaque.
NAXSI fonctionne avec un système de scoring lorsque les caractères spécifique aux attaques sont rencontré dans les requêtes. Quand ce score va atteindre un seuil défini, la requête se retrouve bloquée.
Nginx c’est bien, c’est hype, c’est performant et c’est fait pour tenir de fortes contraintes de charges avec peut de ressources. Comme tout les bons WAF, NAXSI possède un mode apprentissage pour générer des whitelist et éviter les faux positifs.
(reste la problématique du parcours de l’application web de façon complète).
NAXSI est prévu pour être bidoullé, et il accepte même des scripts LUA pour traiter certaines requêtes (comme mod_security :p).
Le re-déploiement du site Charlie-Hebdo s’est fait en un temps record (1 jour), et ce fut le baptême du feu pour NAXSI avec un grand nombre de scans de vulnérabilité, des scanners web, des attaquants chevronnés et des exploits complètement hors de propos pour la cible.
S’en suit une explication du fonctionnement de NAXSI et de ses mécanismes de configuration et d’apprentissage.
C’est un outil entièrement open-source, et l’effort est mis sur la configuration par les utilisateurs afin de ne pas les rendre dépendant des experts.