Vous êtes sur la page 1sur 37

Retour d'exprience sur les outils d'audit

d'applications Web en boite noire

JSSI 2012 13 mars 2012


Laurent Butti Orange France DMGP/PORTAIL
laurent.butti@orange.com
propos

Exprience en R&D (Orange Labs)


> Scurit des rseaux
> Audits de scurit
> Recherche de vulnrabilits

Rle oprationnel (Orange Portails)


> Amlioration des principes de scurit au niveau dveloppement

Orange Portails
> Dveloppement et hbergement dapplications Web
> Moteur de recherche, annuaire 118712.fr, portail gnraliste
> Services aux abonns et sites vnementiels

France Telecom Diffusion Libre 2


Agenda

Contexte

Intgration des principes de scurit

Laudit en boite noire : principes et outils

Retour dexprience sur ce domaine avec un focus sur les Web Scanners

Conclusions

France Telecom Diffusion Libre 3


Contexte

Les applications Web sont intrinsquement exposes


> Peu ou pas de filtrage applicatif
> Accs privilgis : donnes sensibles (BDD)
> Responsabilit dvolue entirement aux dveloppeurs

Attaques la fois cibles et non cibles


> Attaques horizontales : script kiddies
> Attaques coordonnes vers une cible (activisme ou pas)

Consquences parfois lourdes


> Rcupration ou altration de donnes
> Compromission systme

France Telecom Diffusion Libre 4


Cycle de dveloppement logiciel (SDLC)

Security is a Process, not a Product (B. Schneier)


> Exemple : SDL de Microsoft

Les outils sont la disposition des processus pour fluidifier les rouages

France Telecom Diffusion Libre 5


Cycle de dveloppement logiciel (SDLC)

Influence positive de la qualit de dveloppement sur le niveau de scurit

France Telecom Diffusion Libre 6


La phase de vrification

Vrification de conformit par rapport un rfrentiel


> Top 10 de lOWASP (scurit Web)
> Exprience de lauditeur
> Exigences internes ou contractuelles

tape essentielle
> Point de passage oblig si lapplication suit le SDLC
> Positionne durant la phase de qualification
> Phase itrative avec lquipe de dveloppement (mise en uvre des correctifs)

France Telecom Diffusion Libre 7


La phase de vrification : comment ?

Audit classique Audit pentest

Dcouverte des faiblesses et vulnrabilits Trouver un ou plusieurs chemins


dexploitation

Ncessit dtre exhaustif Pas de ncessit dtre exhaustif

Prouver la faiblesse Prouver lexploitabilit

Approche SDLC : identifier tous les problmes avant mise en production

France Telecom Diffusion Libre 8


La phase de vrification : comment ?
Audit boite blanche Audit boite noire
Connaissance complte : Pas ou peu de connaissance sur la cible
spcifications, architecture, application
(code source), hbergement (configuration)

Audit code source, configuration Audit en aveugle des points dentre

France Telecom Diffusion Libre 9


Les outils : pourquoi faire ?

Objectifs
> Amliorer lefficacit des audits manuels (assister lauditeur)
> Industrialiser lapproche audit
> Couvrir des applications non audites manuellement (premire passe) ?

Les outils sont { la disposition de lauditeur


> Lauditeur interprte les rsultats de loutil
> Lauditeur se focalise alors sur les failles fonctionnelles

Connatre les avantages et inconvnients des outils : les utiliser bon escient !

France Telecom Diffusion Libre 10


Les outils boite noire

Crawling, brique dinjection, algorithmes


Web Scanners de dcouverte de failles, reporting

Proxies Interception et altration des flux (audit


intrusifs manuel ou semi-automatique)

Modules Mmes principes que prcdemment


navigateurs mais avec les primitives des navigateurs

Outils orients Si faille avre, outils daide {


exploitation lexploitation
France Telecom Diffusion Libre 11
Les outils boite noire
Gnralistes Open Source : w3af, arachni, skipfish, wapiti
Ddis Open Source : sqlmap, xsser
Web Scanners Commerciaux : IBM AppScan, Acunetix WVS, NetXpose,
NTOSpider, NetSparker, HailStorm

Proxies Paros Proxy, Burp Proxy (Free)


intrusifs

Modules XSS-Me, SQL Inject-Me, DOMinator


navigateurs

Outils orients modules Metasploit, SQLmap, BeEF, XSSF


exploitation France Telecom Diffusion Libre 12
Principes de fonctionnement dun web scanner
Recherche des points dentre de lapplication
Crawler Fonctionnalits de gestion de session (cookie,
authentification)

Support des vecteurs dinjection


Brique dinjection (GET/POST/COOKIES/HEADERS/URI)

Algorithmes de Support des failles Web (XSS, SQLi, LFI/RFI,


dcouverte de CSRF)
failles Dfaut de configuration

GUI
Reporting Formats de rapports
France Telecom Diffusion Libre 13
Crawling : propos

Crawling is the term used to describe the action taken by a program as it


browses from page to page on a website. The crawler will visit a starting
page and parse the provided links, crawling to those pages. (source : Web
Application Security Consortium)

Dans un mode automatique , lURL principale est renseigne { loutil


> Dcouverte des pages prsentes sur le site Web
> Dcouverte des points dinjection

Le crawler doit
> tre capable dinterprter des pages malformes
> Supporter les redirections (JavaScript, Meta Refresh, HTTP Redirect)
> Supporter les notions de session (cookies, formulaires authentification)

France Telecom Diffusion Libre 14


Crawling : Web Input Vector Extractor Teaser

WIVET is a benchmarking project that aims to statistically analyze web link


extractors. In general, web application vulnerability scanners fall into this
category. (source : WIVET)

Outil Score WIVET


w3af (SVN 4658) 50%
Arachni 0.4.0.2 14%
Wapiti 2.2.1 NOK
Skipfish 2.03b NOK
Wget 1.12 10%

Selon [http://code.google.com/p/wivet/wiki/CurrentResults], les scanners


commerciaux ont de bien meilleures notes (> 85%)

France Telecom Diffusion Libre 15


Crawling : puits de crawling

Certaines parties peuvent tre problmatiques


> e.g. application de type calendrier (infini)

Outil Puits de crawling


w3af (SVN 4658) OK
Arachni 0.4.0.2 NOK, lexception doit tre
explicitement renseigne
Wapiti 2.2.1 NOK, lexception doit tre
explicitement renseigne
Skipfish 2.03b NOK, mal crawl
Wget 1.12 NOK, crawling infini

France Telecom Diffusion Libre 16


Crawling : conclusions

Ne pas faire (aveuglement) confiance au crawler de loutil


> Support JavaScript trs limit
> Puits de crawling renseigner manuellement
> Incapacit simuler un parcours client

Contrler son mode de fonctionnement


> Lui signifier de ne pas scanner en dehors de lhte { scanner
> viter toute page de dconnexion (effacement cookies de session)

France Telecom Diffusion Libre 17


Brique dinjection : fonctionnalits

Outil Injection Injection Injection Injection Injection


GET POST URI HEADERS COOKIES
NOK, NOK,
w3af (SVN 4658) OK OK OK
partiel * partiel*

Arachni 0.4.0.2 OK OK OK OK OK

Wapiti 2.2.1 OK OK OK NOK NOK

NOK,
Skipfish 2.03b OK OK OK NOK
partiel **
(*) uniquement en CLI et trs limit
(**) en dur

France Telecom Diffusion Libre 18


Algorithmes de dcouverte de failles : que faut-il dcouvrir ?

Ne pas oublier : dcouverte exploitation !

Failles dimplmentation Failles de configuration

Injections (SQL, LDAP) Messages derreur

XSS (Reflected, Stored, DOM-based) Bannires verbeuses

File Include, File Disclosure Configuration SSL/TLS

Command Execution

France Telecom Diffusion Libre 19


XSS : propos

The software does not neutralize or incorrectly neutralizes user-controllable


input before it is placed in output that is used as a web page that is served to
other users. (source : CWE-79)

Failles prsentes dans de nombreuses applications


> Peu dassistance par les outils de dveloppement (e.g. moteurs de template)

Consquences
> Tout ce qui est faisable via du JavaScript !

Prvention
> Output Encoding en fonction du contexte (HTML, JS, CSS, URL)

France Telecom Diffusion Libre 20


Reflected XSS : dcouverte

La dcouverte des failles XSS doit tre contextuelle


> Mais les outils ne font gnralement pas de dcouverte contextuelle

Les outils ont souvent une approche brutale


> Injection de charges XSS prdfinies
> Recherche dans la page retour si la charge est retourne intacte

arachni est le seul faire de la dcouverte contextuelle

Failles qui devraient tre faciles dcouvrir automatiquement


> Peu de faux ngatifs / faux positifs

France Telecom Diffusion Libre 21


Stored XSS : dcouverte

XSS dont la source est issue dun stockage (e.g. base de donnes)

Pnible tester en boite noire


> Injection dune charge XSS
> Parcours des pages connues la recherche de la charge XSS
Peut tre trs long
Inefficace sur les failles issues de stockage commun plusieurs services

Tout comme les Reflected XSS : dangereux tester en boite noire !

Ncessit de connatre le service audit avant de scanner

France Telecom Diffusion Libre 22


DOM-based XSS : dcouverte

XSS ct client : la requte narrive pas au serveur

Plusieurs techniques de dcouverte des DOM-based XSS


> Analyse de code source statique
> Analyse dynamique via moteur JavaScript

w3af a un module de dcouverte des DOM-based XSS


> Recherche des points dentre (sources)
> Recherche des points de sortie (sinks)
> Identification dans le code source de la prsence des ces sources et sinks

Technique trs faillible : sujette des faux positifs et faux ngatifs

France Telecom Diffusion Libre 23


SQL Injection : propos

The software constructs all or part of an SQL command using externally-


influenced input from an upstream component, but it does not neutralize or
incorrectly neutralizes special elements that could modify the intended SQL
command when it is sent to a downstream component. (source : CWE-89)

Consquences lourdes
> Rcupration et/ou altration de donnes, compromission systme

Prvention
> Validation des entres non de confiance ET
> Protection lors de lutilisation des entres non de confiance
chappement de caractres spciaux
Utilisation de requtes prpares avec bind variables

France Telecom Diffusion Libre 24


In-band SQL Injection : dcouverte

Error-based SQL injection


> Ncessite davoir des retours derreur : ne devrait plus exister !

UNION-based SQL injection


> Les rsultats sont affichs dans la page retour

France Telecom Diffusion Libre 25


Blind SQL Injection : dcouverte

Time-based Blind SQL injection


> Injection dune condition avec une commande SQL impactant le temps de
rponse et comparaison du temps de rponse de la page retour entre deux
conditions vrais/fausses

Diff-based Blind SQL injection


> Injection dune condition et comparaison de la page retour entre deux conditions
vrais/fausses

Lexploitation est bien plus longue que la dcouverte !

France Telecom Diffusion Libre 26


Blind SQL Injection : dcouverte

Mthodologie
> Identifier si la page est stable en temps de rponse ou en contenu

> Injecter un vecteur dinjection SQL parmi un ensemble de vecteurs prdfinis

> Dtection dun temps de rponse lev (time-based) ou de diffrences de


contenu dans la page retourne (diff-based)

France Telecom Diffusion Libre 27


Blind SQL Injection : dcouverte

Mthode diff-based trs sujette aux faux positifs !


Mthode time-based plus efficace mais trs lente !

Axes damlioration des outils


> Enrichir les vecteurs possibles : rduction des faux ngatifs
> Adapter les vecteurs la cible (MySQL/MSSQL/Oracle) : meilleure rapidit

Les faux ngatifs sont lis { lincapacit de loutil {


> Construire une requte valide (time-based et diff-based)
> Identifier les changements dans la page retourne (diff-based)

France Telecom Diffusion Libre 28


Classement (benchmark)
w3af arachni arachni wapiti skipfish
(full) (default) (full) (default) (default)
Temps 3 minutes 90 secs 4 minutes 2 minutes 10 secs

Nb requtes 3300 14000 75000 1400 5500

Vecteurs 2/5 3/5 4/5 3/5 2/5

CSRF 1/1 1/1 1/1 0/1 1/1

XSS 1/3 2/3 2/3 1/3 2/3

LFI 1/1 1/1 1/1 1/1 1/1

SQLi 7/17 16/17 16/17 16/17 2/17

Redirections 3/3 2/3 2/3 1/3 0/3

Note globale 15/30 25/30 26/30 22/30 7/30


France Telecom Diffusion Libre 29
Faux ngatifs et faux positifs

Faux ngatifs Faux positifs

Faux sentiment de scurit Mauvais ressenti

Manques du crawler, brique dinjection et Problme surtout si non acquittables


algorithmes de dcouverte de failles entre plusieurs scans

La complmentarit des outils nest pas vidente

France Telecom Diffusion Libre 30


Problmatiques oprationnelles

Auditer des plates-formes en production : oui, mais


> Base de donnes en criture
> Configurer finement loutil
> Dclenchera les mcanismes de protection (les attaques sont issues du scanner)
> Perturbera les mtriques (audience, charge rseau/systme)
> Communiquer vers les quipes de supervision

En pratique, dlicat mettre en uvre


> Plus raliste sur les plates-formes de qualification (intgration continue)

France Telecom Diffusion Libre 31


Limitations des Web Scanners : rsum

Limites intrinsques Limites techniques Limites oprationnelles


(si tests en production)
Ddis la dcouverte de Sites difficiles crawler Impacts potentiels sur le
failles dimplmentation ou fonctionnement de
de configuration lapplication
Ne se focalisent que sur ce Technologies particulires Impacts sur les mtriques :
qui est visible de leur part (JSON, Flash, Action Message communication raliser
(boite noire) Format)
Temps de scan pouvant Impacts sur les mcanismes
exploser de scurit

France Telecom Diffusion Libre 32


Recommandations (pour une meilleure efficacit)

Assister la partie crawling


> Dcrire les points dentre la main
> Exclure les pages de logout
> Exclure les cookies de session/authentification
> Identifier les puits de crawling ou mettre un verrou par dfaut

Faire un scan lger en premire intention pour rduire le temps de scan

France Telecom Diffusion Libre 33


Conclusions

Utilisation des Web Scanners dlicate sur les architectures en production

considrer comme de lassistance { lauditeur (outillage)

Si le site est simple crawler alors


> arachni est trs efficace sur les failles dimplmentation (XSS, SQLi)
> w3af apporte la meilleure exhaustivit de tests

Si le site est complexe crawler alors


> la main et saider de proxies intrusifs (e.g. Burp)

SDLC : cette dmarche peut faire partie des tests de rgression

France Telecom Diffusion Libre 34


Liens

Web Application Security Scanner Evaluation Criteria


> http://projects.webappsec.org

Louis Nyffenegger & Luke Jahnke Harder, Better, Faster, Stronger


> http://www.ruxcon.org.au/assets/Presentations/2011-2/LNLJ-
Harder_Better_Faster_Stronger_V1.0.pdf

The Scanning Legion: Web Application Scanners Accuracy Assessment


> http://sectooladdict.blogspot.com/2011/08/commercial-web-application-
scanner.html

Why Johnny cant pentest?


> http://cs.ucsb.edu/~adoupe/static/black-box-scanners-dimva2010.pdf
France Telecom Diffusion Libre 35
Annexe : Application benchmark

Objectif
> Valider lefficacit des outils sur des failles simples et classiques
> Uniquement vis--vis des faux ngatifs
> Pas de pige particulier : toutes les failles devraient tre dcouvertes

Partie Vecteurs : identifier les outils ayant toutes les fonctions dinjection

Partie Failles : accessibles toutes en GET, donc valuation de la qualit des


algorithmes de dcouverte des failles (et leur configuration par dfaut)

Attention
> Toute application de benchmark peut tre biaise pour favoriser un outil

France Telecom Diffusion Libre 36


Annexe : Classement (briques)

Attention Reflte mon point de vue personnel

Crawling Injection Dcouverte Reporting Exhaustivit

w3af (SVN 4658) 1er 2me 2me 3me 1er

arachni 0.4.0.2 2me 1er 1er 1er ex. 2me

wapiti 2.2.1 3me 3me ex. 3me 4me 3me ex.

skipfish 2.03b 4me 3me ex. 4me 1er ex. 3me ex.

France Telecom Diffusion Libre 37

Vous aimerez peut-être aussi