Le projet OWASP Sébastien GIORIA @ OSSIR Paris le 08 Juillet 2008 OWASP Copyright © 2008 - The OWASP Foundation Permission is granted to copy,

Download Report

Transcript Le projet OWASP Sébastien GIORIA @ OSSIR Paris le 08 Juillet 2008 OWASP Copyright © 2008 - The OWASP Foundation Permission is granted to copy,

Le projet OWASP
Sébastien GIORIA @ OSSIR
Paris le 08 Juillet 2008
OWASP
Copyright © 2008 - 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
http://www.owasp.org
Agenda
L’OWASP
Les publications de l’OWASP
Les outils
Le Top 10
© 2008 - S.Gioria && OWASP
Sébastien Gioria
Consultant indépendant en sécurité des
systèmes d’informations.
+10 ans dans le domaine de la sécurité
informatique (banque, assurance, télécoms, …)
Représentant Français de l’association
américaine.
© 2008 - S.Gioria && OWASP
Le constat actuel
 Le système d’information s’ouvre :
 Architectures orientées services
 Intégration de partenaires
 « multi-play/multi-canal » : Internet, Téléphone, Mail, Vidéo, …
 La sécurité aujourd’hui
 Niveau
 Niveau
 Niveau
 Niveau
 Niveau
1
2
3
4
8
: Le cable
: VLAN
: Liste de contrôle d’accès
à 7 : Firewall, Proxy, IDS, IPS
: L’utilisateur
© 2008 - S.Gioria && OWASP
Making Application Security Visible
© 2008 - S.Gioria && OWASP
5
L’OWASP
 OWASP : Open Web Application Security Project
 Indépendant des fournisseurs et des gouvernements.
 Objectif principal : produire des outils, documents et
standards dédiés à la sécurité des applications Web.
 Toutes les documentations, standards, outils sont fournis
sous le modèle de l’open-source.
 Organisation :
 Réunion d’experts indépendants en sécurité informatique
 Communauté mondiale(plus de 100 chapitres) réunie en une fondation américaine pour
supporter son action. L’adhésion est gratuite et ouverte a tous
 En France : une association; pour supporter les problèmes juridiques francais.
 Le point d’entrée est le wiki http://www.owasp.org
© 2008 - S.Gioria && OWASP
Google Trends Data for:
 Buffer overflow
 XSS
© 2008 - S.Gioria && OWASP
Thank You
7
Organisation de l’OWASP
OWASP
OWASP
Conferences
OWASP Governance
OWASP
Wiki
OWASP
Tools
OWASP
Lists
OWASP
Books
OWASP
Community
OWASP
Chapter
Leaders
OWASP
Project
Leaders
OWASP Foundation
(501c3)
Board of
Directors
(Williams,
Wichers,
Brennan, Cruz,
and
Deleersnyder)
Board of
Advisors
Operation
s Director
(McNamee)
Technical
Director
(Casey)
© 2008 - S.Gioria && OWASP
Finances and Grants
OWASP Grants
OWASP Autumn of
Code 2006
$20,000 budget
100%
OWASP Spring of Code
2007
$117,500 budget
OWASP Summer of
Code 2008
55%
$126,000 budget
OWASP Foundation
45%
© 2008 - S.Gioria && OWASP
9
OWASP Is Alive!
2009
…
2007
2005
2003
2001
© 2008 - S.Gioria && OWASP
10
L’OWASP











420 000 pages vues par mois
15 000 téléchargements par mois
11 335 membres sur les listes
3 687 utilisateurs du Wiki
1 500 MAJ du Wiki par mois
110 chapitres mondiaux
100 membres individuels
48 outils/projets/documents
38 membres entreprise
25 projets fondés et soutenus dans
la communauté
1 employé
© 2008 - S.Gioria && OWASP
OWASP SoC 2008 – AppSec Innovation
AppSensor
Teachable Static Analysis Workbench
XML/WS Testing Tool
AntiSamy .NET
Positive Security Project
JSP TagLib Tester
Online Code Signing Service
Access Control Rules Tester
© 2008 - S.Gioria && OWASP
12
OWASP KnowledgeBase
•3,913 total articles
•427 presentations
•200 updates per day
•179 mailing lists
•180 blogs monitored
•31 doc projects
•19 deface attempts
•12 grants
© 2008 - S.Gioria && OWASP
OWASP Tools and Technology
• Vulnerability
Scanners
• Static Analysis
Tools
• Fuzzing
• Penetration
Testing Tools
• Code Review
Tools
• ESAPI
Automated
Security
Verification
Manual
Security
Verification
• AppSec Libraries
• ESAPI Reference
Implementation
• Guards and
Filters
• Reporting Tools
• Flawed Apps
• Learning
Environments
• Live CD
• SiteGenerator
Secure
Coding
AppSec
Management
AppSec
Education
Security
Architecture
© 2008 - S.Gioria && OWASP
14
OWASP en France
Un Conseil d’Administration (association loi
1901) :
Président/évangéliste/relations publiques : Sébastien
Gioria
Vice-Président et responsable du projet de traduction
: Ludovic Petit
Secrétaire et Responsable Juridique : Estelle Aimé
Un Bureau :
Le CA
Romain Gaucher : chercheur au NIST
Mathieu Estrade : développeur apache
© 2008 - S.Gioria && OWASP
OWASP en France
 Projets :
 Top 10 : finalisé, marketing viral en cours
 Guide : En gestation
 SoC 2008 : divers review de projets
 Questionnaire a destination des RSSI sur le sujet : en cours
 Interventions :
 Infosecurity 2007
 Microsoft TechDays 2008
 Infosecurity 2008
 Sensibilisation / Formations :
 Mutuelle d’assurance (Java/PHP)
 Société d’EDI (JAVA / .NET)
 Opérateur Téléphonie mobile (PHP)
 Ministère de l’intérieur – SGDN
 Conférences dans des écoles a venir
© 2008 - S.Gioria && OWASP
Les publications
Toutes les publications sont disponibles sur le
site de l’OWASP: http://www.owasp.org
L’ensemble des documents est régi par la licence
GFDL (GNU Free Documentation License)
Les documents sont issus de différentes
collaborations :
Projets universitaires
Recherche & développements des membres
© 2008 - S.Gioria && OWASP
Les publications majeures
Le TOP 10 des vulnérabilités applicatives
Le guide de conception d’applications Web
sécurisées
Le FAQ de la sécurité des applications
Le guide « les 10 commandements sur l’écriture
d’une application non sécurisée »
© 2008 - S.Gioria && OWASP
Les Guides
 100% Libres.
 Issus de l’expérience de milliers d’experts à travers le
monde
 OWASP guide
 Un ouvrage pour la création d’applications Web sécurisées à
l’intention des :
 Développeurs
 Architectes
 …
 Inclus les meilleurs pratiques dans différents langages (PHP,
Java, .Net, …)
 Plusieurs centaines de pages
 OWASP Testing guide
 Ouvrage dédié à l’audit sécurité des applications Web à
l’intention des pen-testeurs principalement.
© 2008 - S.Gioria && OWASP
OWASP Enterprise Security API (ESAPI)
 Un framework de sécurité pour
les développeurs
 Permettre de créer une
application Web Sécurisée
 Classes Java
 Disponible sur le site de
l’OWASP
 En cours de portage pour le
SoC 2008 sur .NET et PHP
© 2008 - S.Gioria && OWASP
WebGoat - WebScarab
WebGoat :
Application Java serveur (JSP, JEEE) non sécurisés.
Sert a démontrer les failles, leur principe et a éduquer
WebScarab :
Application Java permettant d’effectuer des tests de
sécurité :
 Sur les applications Web
 Sur les WebServices
© 2008 - S.Gioria && OWASP
Quelques outils
 Outil de génération de données aléatoires(Fuzzer)
permettant d’injecter des données pour les tests
 JBroFuzz :
 Fuzzer destiné à tester les applications Web
 WS Fuzz :
 Fuzzer destiné à tester les WebServices.
 Sprajax
 Outil destiné a tester la sécurité des applications AJAX
 Et bien d’autres :
 http://www.owasp.org/index.php/Category:OWASP_Project
© 2008 - S.Gioria && OWASP
Le Top 10
Liste les 10 vulnérabilités des applications Web
les plus rencontrées
Mis a jour tous les ans
D’importantes organisations l’ont adoptées dans
leurs référentiels





Federal Trade Commission (US Gov)
US Defense Information Systems Agency
VISA (Cardholder Information Security Program) – PCI/DSS
Le NIST
Des opérateurs Télécoms
© 2008 - S.Gioria && OWASP
Le Top 10
 A1 - Cross Site Scripting (XSS)
 A2 – Faille d'injection
 A3 – Exécution de fichier malicieux
 A4 – Référence directe non sécurisée à un objet
 A5 – Falsification de requête inter-site (Cross Site Request Forgery CSRF)
 A6 – Fuite d'information et traitement d'erreur incorrect
 A7 – Violation de gestion d'authentification et de session
 A8 – Stockage cryptographique non sécurisé
 A9 – Communications non sécurisées
 A10 – Manque de restriction d'accès URL
© 2008 - S.Gioria && OWASP
A1 - Principe d’une attaque XSS
 But :
 Envoyer l’utilisateur vers un site Web malicieux
 Récupérer des informations contenues dans le navigateur
 Principe :
 Mail ou lien malicieux
 Exécution de code dans le navigateur
 Récupération de données :
 cookies,
 objets(IE)
 Envoi des données vers l’attaquant.
 Dangerosité :
 Passe outre les contrôles de sécurité (Firewall, IDS, …)
 Coupler à certaines attaques, cela permet d’accéder au LAN
© 2008 - S.Gioria && OWASP
A1 - Les protections
 Effectuer une validation en profondeur :
 Des headers,
 Des cookies,
 Des chaînes de requêtes,
 Des champs de formulaires,
 Et aussi des champs cachés,
 .NET: Utilisez la bibliothèque Microsoft Anti-XSS 1.5
disponible gratuitement sur MSDN :
http://www.microsoft.com/downloads/details.aspx?Famil
yID=efb9c819-53ff-4f82-bfafe11625130c25&DisplayLang=en
 Utiliser le projet des filtres OWASP(Java/PHP) :
http://www.owasp.org/index.php/Category:OWASP_Filte
rs_Project
© 2008 - S.Gioria && OWASP
A2 - Injection de données (SQL, LDAP,
commandes, …)
But :
Corrompre des données d’une base, d’un annuaire.
Récupérer des informations sensibles dans des bases
ou annuaires
Exécuter des commandes sur un système distant.
Principe :
Par la modification de la donnée attendue, la requête
d’accès à une base SQL est modifiée.
Dangerosité :
Est-il utile de l’expliciter ?
© 2008 - S.Gioria && OWASP
A2 - Les protections
Valider les données
Renforcer les mécanismes du plus faible
privilège.
Java EE : utilisation de Spring et Hibernate
.NET : utilisation de SqlCommand avec
SqlParameter ou Hibernat
PHP : utilisation de PDO
© 2008 - S.Gioria && OWASP
A3 - Exécution de fichier malicieux
But :
Installation de code sur le poste distant.
Installation de rootkits
Principe :
Par la modification d’une donnée, un fichier de
commande est envoyé sur le serveur et exécuté
Dangerosité :
Est-il utile de l’expliciter ?
© 2008 - S.Gioria && OWASP
A5 - Cross Site Request Forgery - CSRF
 But :
 Exécuter une action non désirée par un client sur un site.
 Récupérer des informations internes
 Principe :
 Exécution de requêtes sur un site malveillant de façon cachée
(via une iframe par ex).
 Dangerosité :
 Passe outre les firewalls/IDS
 Permet d'accéder au LAN Interne
 Pas besoin de Javascript
© 2008 - S.Gioria && OWASP
A5 - Comment se protéger
 Vérifier que le code est immune aux vulnérabilités XSS…
 Ne pas utiliser GET pour les traitements sensibles
 Ajouter des jetons aléatoires et uniques qui ne peuvent
être envoyés automatiquement par le navigateur
 Pour ASP.NET, utilisez ViewStateUserKey
 OWASP CSRF Guard,
http://www.owasp.org/index.php/CSRF_Guard
 OWASP PHP CSRF Guard,
http://www.owasp.org/index.php/PHP_CSRF_Guard
© 2008 - S.Gioria && OWASP
A6 - Fuite d’informations
But :
Récupérer de l’information sur l’application ou le
système.
Principe :
Envoie de données provoquant une exception
Dangerosité :
Faible, mais néanmoins très utile pour un attaquant
© 2008 - S.Gioria && OWASP
A6 - Comment s’en protéger
Désactiver ou limiter la gestion des
erreurs/exceptions.
Modifier le traitement d’erreur pour qu’il
retourne une code HTTP 200 Ok.
© 2008 - S.Gioria && OWASP
A7 - Violation de session ou
d’authentification
But :
Obtenir un jeton de session permettant alors de se
faire passer pour un autre
Principe :
Modification des données de type ASPSESSIONID
Dangerosité :
Est-il utile de l’expliciter ?
© 2008 - S.Gioria && OWASP
A7 - Protection
Utiliser uniquement des mécanismes de sessions
internes aux librairies ou Framework
Ne pas accepter des identifiants de sessions par défaut
Éviter d'utiliser ou limiter l'utilisation de cookies
personnalisés pour l'authentification
© 2008 - S.Gioria && OWASP
Les attaques sur les architectures
WebServices
XML Bomb :
Trivial à effectuer :
 Référence récursive à une entité du même document :
<?xml …
….
<!entity owasp0 « Owasp »>
<!entity owasp1 « &owasp0;&owasp0>
….
….
<!entity owasp424242 « &owasp424241;&owasp424241 »>
<owasptest>&owasp424242;</owasptest>
Peut provoquer un déni de service !
© 2008 - S.Gioria && OWASP
Les Attaques sur les architectures
WebServices
 Injection XML
 Permet de modifier les données d’entrée d’un WebService.
 Injection Xpath/Xquery
 Permet d'exécuter des requêtes de façon similaire à SQL
 XSS && Injection SQL
 Même principe que dans une architecture classique.
 Mêmes dégâts possibles !
 Bombes SOAP :
 Attaques en dénis de services via les tableaux SOAP
 Bombes XML + SOAP
 …..
© 2008 - S.Gioria && OWASP
Les protections ultimes ?
Former les développeurs au développement
sécurisé !
Vérifier les données !
Tester son code !
Débrancher la prise Réseau…..
© 2008 - S.Gioria && OWASP
Q&R
© 2008 - S.Gioria && OWASP