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 ReportTranscript 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