OWASP Testing Guide OWASP Training Paris – France 26 Avril 2011 Sébastien Gioria (French Chapter Leader & OWASP Global Education Committee Member) [email protected] Copyright © 2009 -

Download Report

Transcript OWASP Testing Guide OWASP Training Paris – France 26 Avril 2011 Sébastien Gioria (French Chapter Leader & OWASP Global Education Committee Member) [email protected] Copyright © 2009 -

OWASP Testing Guide
OWASP Training
Paris – France
26 Avril 2011
Sébastien Gioria (French Chapter Leader & OWASP Global
Education Committee Member)
[email protected]
Copyright © 2009 - The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License.
The OWASP Foundation
© 2011 - S.Gioria
http://www.owasp.org
Agenda
Historique
Cible
OWASP Testing FrameWork
OWASP Testing Guide
OWASP Risk Methodology Scoring
© 2011 - S.Gioria
Un peu d’histoire
 Juillet 2004 => v1 :
 OWASP Web Application Penetration Checklist
 Décembre 2006 => v2
 OWASP Testing Guide v2.0
Novembre 2008 => v3
OWASP Testing Guide v3.0
2011 => v4
OWASP Testing Guide v4.0
© 2011 - S.Gioria
Objectif du Guide v3
Améliorer la v2 
Créer un projet complet de test d’intrusions
Web
Devenir une référence pour le test des
applications Web.
Décrire la méthode de tests OWASP
© 2011 - S.Gioria
A qui s’adresse ce guide ?
Développeurs :
Eviter les failles
Equipes de Tests :
=> Améliorer les produits en ajoutant des tests sécurité
Spécialistes de la sécurité / Auditeurs Sécurité :
Vérifier que les produits/logiciels sont exempts de
failles.
Disposer d’un référentiel commun et exhaustif
© 2011 - S.Gioria
Le contenu
1. Introduction
2. The OWASP Testing Framework
3. Web Application Penetration
Testing
4. Writing Reports: value the real
risk
5. Appendix A: Testing Tools
6. Appendix B: Suggested Reading
7. Appendix C: Fuzz Vectors
8. Appendix D: Encoded Injection
© 2011 - S.Gioria
Le contenu des tests
66 tests répartis en 10 catégories :
Découverte d’informations
Gestion de la configuration
Logique Métier
Authentification
Habilitations
Gestion des sessions
Validations des données
Déni de service
Web Services
Ajax
© 2011 - S.Gioria
Le framework de test OWASP
Before testing
Definition and Design
Development
Deployment
Maintenance
© 2011 - S.Gioria
Le cout est important
© 2011 - S.Gioria
Inspections manuels et revues
Avantages
Flexible
Approprié a toute situation
Encourage le travail en groupe
Très tot dans le cycle
Pas nécessaire de connaître les technologies
Inconvénients
Peut etre trop long
La documentation n’est pas toujours disponible
Temps purement humain
© 2011 - S.Gioria
Modélisation des attaques
Avantages
Vu d’un attaquant
Flexible
Tot dans le cycle
Inconvénients
Technique assez récente
Un bon modèle ne veut pas dire un bon logiciel
© 2011 - S.Gioria
Revue de code source
Avantages
Rapide
Précis
Complet et efficient
Inconvénients
Nécessite de très bon développeurs connaissant la
sécurité
Il est possible de louper des failles du aux librairies
Difficile de détecter lors des executions
Le code déployé peut etre différent du code analuyser
© 2011 - S.Gioria
Tests d’intrusions
Avantages
Rapide (et parfois peu chers)
Connaissance plus faible que lors de la revue de code
Test du code exposé
Inconvénients
Trop tard dans le cycle
Visibilité uniquement de l’impact frontal
© 2011 - S.Gioria
Before Testing
People can only do the right thing, if
they know what the right thing is.
Policy Review
Standards Review
© 2011 - S.Gioria
Definition & Design
Requirement Review
Design & Architecture Review
Create & Review UML Review
Create & Review Threat Model
© 2011 - S.Gioria
Development
Code Review
Code Walkthroughs
Unit & System Tests
© 2011 - S.Gioria
Deploiement
Acceptance Tests
Units & Systems Tests
Config & Management Review
Penetration Testing
© 2011 - S.Gioria
Maintenance
Change Verification
Health Checks
Operationnal Management
reviews
Change Verification
© 2011 - S.Gioria
Découvertes d’informations
003 : Points
d’entrées
applicatifs
004 : Prises
d’empreintes
005 :
Découverte
de
l’application
002 :
Moteurs de
recherche
001 : Robots
OWASPIG
006 :
Analyse des
codes
d’erreurs
© 2011 - S.Gioria
© 2011 - S.Gioria
© 2011 - S.Gioria
Gestion de la configuration
004 :
Configuration
Applicative
005 : Gestion
des extensions
de fichiers
003 :
Configuration
de
l’infrastructure
006 : Fichiers
backups ou
anciens
002 :
Connecteurs
SGBD
001 : SSL/TLS
007 :
Interfaces
d’administration
OWASPCM
008 : Méthodes
HTTP
supportées
© 2011 - S.Gioria
Authentification
005 : Bypass de
l’authentification
006 : Remise a
zero des mots de
passes
007 : Gestion du
cache lors des
logout
004 : Brute force
003 : Comptes et
mots de passes
faibles
008 : Tests
CAPTCHA
002 :
Enumération des
utilisateurs
001 : Transports
d’authentifiants
sur des réseaux
peu surs
009 :
Authentification a
facteurs multiples
OWASP
-AT
010 : Conditions
aux limites
© 2011 - S.Gioria
Gestion des Sessions
003 : Fixation
des Sessions
004 : Exposition
de variables dans
les sessions
002 : Attributs
des cookies
001 : Jetons
d’authentification
faibles et gestion
de la session
OWASP-SM
005 : CSRF
© 2011 - S.Gioria
Habilitations
002 :
Bypass des
habilitations
001 :
Traversée de
répertoires
003 :
Elévation
des
privilèges
OWASP-AZ
© 2011 - S.Gioria
Logique Métier
001 :Tests
de la logique
métier
OWASP-BL
© 2011 - S.Gioria
Validation des données
005-11 : Injection
SQL/LDAP/XML/SSI/Xpath/IMAP/
SMTP
004 : Cross Site Flashing
013 : Injection de commandes
003 : XSS DOM
014 : Débordement de tampon
002 : XSS Stocké
001 : XSS Réfléchi
012 : Injection de code
015 : Vulnérabilité non définie
OWASP
-DV
16 : HTTP Splitting/Smuggling
© 2011 - S.Gioria
Déni de service
003 : Déni de
services par
débordement de
tampon
004 : Allocation
d’objet à la
demande
d’utilisateur
005 : Entrée
utilisateur
comme
compteur de
boucle
002 : Bloquage
des comptes
utilisateurs
001 : WildCards
SQL
006 : Ecriture de
données
utilisateur sur
disque
007 :Mauvaise
libération des
ressources
OWASP-DS
008 : Stockage
de données en
session trop
important
© 2011 - S.Gioria
Web Services
003 :
Structure XML
004 : Contenu
XML
006 :
Attachements
SOAP
malveillants
002 : WSDL
001 :
Découvertes
d’informations
WebServices
005 :
Paramètres
HTTP
GET/REST
OWASP-WS
007 : Rejeu
des
transactions
© 2011 - S.Gioria
Ajax
001 :
Vulnérabilités
AJAX
002 : Tests
AJAX
OWASP-AJ
© 2011 - S.Gioria
L’évaluation du risque
 Nous utilisons la méthodologie « OWASP Risk Rating » qui permet de s'adapter à
tout environnement.
Risque = Probabilité * Impact
 Cette méthodologie se base sur 3 éléments principaux composés par différents
métriques, calculés par la méthode de la moyenne:
 La probabilité de l'attaque qui se base sur :
 Les menaces pesant sur le système: compétences de l'attaquant, motivations, ressources
nécessaires, type d'attaquant
 La description de la vulnérabilité : facilité d'exploitation et de découverte, connaissance
de la vulnérabilité, capacité de détection et de mitigation.
 L'impact Technique : pertes en confidentialité, disponibilité, intégrité et tracabilité
 L'impact Business : pertes financières, d'image, non conformité, et violation de la
vie privée.
31
© 2011 - S.Gioria
Evaluation du risque
Le calcul suivant permet ensuite d’évaluer le risque :
32
© 2011 - S.Gioria
Menace
Expertise
Vulnérabilité
Moyens
Découverte
Connaissance
None
1
Complexe
0
Impossible
1
Inconnu
1
Faible
3
Moyen
4
Dificile
3
Caché
4
Moyenne
4
Faible
7
simple
7
Evident
6
Avancée
6
Aucun
9
Très simple
9
Public
9
Expert
9
Motivation
Typologie
Exploitation
Contre Mesure
Faible
1
Développeur
2
Théorique
1
Applicative
1
Moyenne
4
Administrateur Système
2
Difficile
3
Loggé et revu
3
Elevée
9
Utilisateur interne
4
simple
5
Loggé et non revu
8
Partenaire
5
Très simple
9
Non loggé
9
Utilisateur authentifié
6
Utilisateur anonyme
9
Impact Technique
Confidentialité
Impact Business
Disponibilité
Financier
Non conformité
Faible sur données non critique
2
Faible sur services secondaires
1
Mineur
1
Faible
2
Faible sur données critiques
3
Faible sur services primaires
5
Faible
3
Avérée
5
Fort sur données non critiques
5
Fort sur services secondaires
5
Signifiant
7
Complète
5
Fort sur données critiques
7
Fort sur services primaires
7
Stratégique
9
Stratégique
7
Toutes les données
9
Tous les services
9
Intégrité
Tracabilité
Réputation
Données personnelles
Faible sur peu de données
1
Totalement tracable
1
Mineur
1
Une personne
3
Faible sur un fort nombre de données
3
En partie tracable
7
Majeur
4
Des centaines
5
Forte sur peu de données
5
Impossible a tracer
9
Fort
5
Des milliers
7
Fort sur un fort nombre de données
7
Stratégique
9
Des millions
9
© 2011 - S.Gioria
Exemple
Menace
Vulnérabilité
Impact technique
Impact Métier
Donnée
Non
s
Experti Motivat
Typolo Découv Exploit Connai Contre Confide Intégrit Disponi Tracabi Financi Réputa confor person
se
ion Moyens gie
erte
ation ssance Mesure ntialité
é
bilité
lité
er
tion
mité nelles
Valeur
AT-003
3
4
8
9
9
Métriqu
e
6
Probabi
lité
Elevé
9
5
1
Impact
Impact
Final
Risque
Final
9
3
0
1
5
9
3,25
7,5
Moyen
Elevé
Elevé
Critique
© 2011 - S.Gioria
7
9
Exemple
© 2011 - S.Gioria
© 2011 - S.Gioria
Exemple
Atteinte à la
confidentialité de
données
100.00%
75.00%
53.97%
50.00%
Conformité
56.11%
Atteinte à l'intégrité
72.22% des données
25.00%
0.00%
63.89%
83.33%
Image de marque
Interruption de
service
© 2011 - S.Gioria