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