2. IBM Software Group | Rational software
2
Agenda
Paysage de la Sécurité des applications Web
Pirater un site web, est-ce facile?
Les tests de sécurité dans le processus de developpement
Questions réponses
3. IBM Software Group | Rational software
3
Nous utilisons des
scanners de vulnérabilité
de réseau
Nous utilisons des
scanners de vulnérabilité
de réseau
Le mythe : « Notre site est sûr »
Nous avons des
Firewalls en place
Nous avons des
Firewalls en place
Nous auditons nos
applications
périodiquement par des
auditeurs externes
Nous auditons nos
applications
périodiquement par des
auditeurs externes
SSéécuritcuritéé
4. IBM Software Group | Rational software
4
Architecture Globale d'une Application Web Sécurisée
L’Enterprise
Internet
Port
Scanning
DoS
Anti-
spoofing Known
Web Server
Issues
Pattern-
Based
Attacks
SQL
Injection
Cross Site
Scripting
Parameter
Tampering
Cookie
Poisoning
Serveur Web
Serveurs
d’Applications
Bases de données
Annuaire LDAP
Contrôle d’accès
et Firewall IDS/IPS
Firewall
applicatif
SSL
AV
5. IBM Software Group | Rational software
5
La couche application – Le maillon vulnérable
* http://www.webappsec.org/projects/statistics/
6. IBM Software Group | Rational software
6
Structure d’une application Web
La logique métier qui permet:
L'interaction de l'utilisateur avec le site Web
Transactions/interfaçage avec des systèmes
back-end de données (bases de données,
CRM, ERP, etc)
Sous la forme de:
Composants tiers; serveur web, serveur
d’application etc
Code développé en interne
Les données échangées traversent les différentes couches de l’application
Une faille présente dans une couche rend toute l’application vulnérable
Serveur Web
Code interface utilisateur
Application Front end
Application Back-end
Base de Données
Données
Entrée utilisateur
HTML/HTTP
Navigateur
7. IBM Software Group | Rational software
7
NetworkNetwork
Operating SystemOperating System
ApplicationsApplications
DatabaseDatabase
Web Server
Web Server Configuration
Web Server
Web Server Configuration
Third-party ComponentsThird-party Components
Web Applications
Client-Side Custom Web Services
Web Applications
Client-Side Custom Web Services
Où sont les Vulnérabilités?
Réseau
Sys. d’exploitation
Applications
Base de Données
Serveur Web
Configuration Serveur Web
Composants Tiers
Web Applications
Client-Side Spécifique Web Services
8. IBM Software Group | Rational software
8
Agenda
Paysage de la Sécurité des applications Web
Pirater un site web, est-ce facile?
Les tests de sécurité dans le processus de developpement
Questions réponses
9. IBM Software Group | Rational software
9
Pirater un site web, est-ce facile?
3 exemples:
Failles d’injection
Cross Site Scripting (XSS)
L’exécution de fichiers malicieux
10. IBM Software Group | Rational software
10
1 – Failles d’injection
Se produisent lorsqu’une donnée fournie par l’utilisateur est envoyée à un
interpréteur dans le cadre d’une commande ou d’une requête
Permet aux attaquants de créer, lire, modifier ou effacer toute donnée arbitraire de
l’application
Plusieurs types d’injection de données : SQL, LDAP, XPath, XSLT, HTML, XML
12. IBM Software Group | Rational software
12
SQL Injection
User input inserted into SQL Command:
Get product details by id:
Select * from products where id=‘+ $REQUEST[“id”]’;
Hack: send param id with a value of apostrophe (') or apostrophe equal sign ('=)
Resulting executed SQL:
Select * from products where id=‘’ or ‘’=‘’
All products returned
13. IBM Software Group | Rational software
13
SQL injection: exemple
Exemple: http://demo.testfire.net/bank/login.aspx
La commande SELECT :
Username: jsmith Password: asdf
SELECT _____
WHERE username=‘jsmith’ and password=‘asdf’
14. IBM Software Group | Rational software
14
SQL injection: exemple
Exemple: http://demo.testfire.net/bank/login.aspx
La commande SELECT :
Username: jsmith Password: asdf
SELECT _____
WHERE username=‘jsmith’ and password=‘asdf’
Username: jsmith’ Password: asdf
SELECT _____
WHERE username=‘jsmith’’ and password=‘asdf’
Username: ‘ or True -- Password: asdf
SELECT _____
WHERE username=‘’ or 1=1 --’ and password=‘asdf’
19. IBM Software Group | Rational software
19
2. Cross-Site Scripting (XSS)
Permet aux attaquants d'exécuter du script dans le navigateur de la victime
Commun dans les pages de recherche et d’erreur
Mais peut se retrouver dans n’importe quel type de page
Ceci permet au pirate de…
Voler les jetons de sessions (et donc détourner la sécurité du navigateur)
Défacer des sites web
Insérer du contenu hostile
22. IBM Software Group | Rational software
22
Exploitation du XSS
Un utilisateur malveillant pourrait créer une image de bannière, ou envoyer un e-mail en texte HTML
Caché par le script actif, ce code html envoie un code JavaScript à la fenêtre de recherche sur
l'application cible.
24. IBM Software Group | Rational software
24
Exploitation du XSS (suite)
Code JavaScript incorporé dans le corps l’e-mail
25. IBM Software Group | Rational software
25
Cross Site Scripting – Le processus d’exploitation
Evil.org
User banque.com
1) Lien vers banque.com
envoyé à l’utilisateur par
courriel ou HTTP
2) L’utilisateur envoi le script
3) Script est retourné et exécuté par le navigateur
4) Le script envoi les jetons
de session au pirate sans la
permission de l’utilisateur
5) Evil.org utilise l’information
volée pour se faire passer
pour l’utilisateur
26. IBM Software Group | Rational software
26
L’exploitation du XSS
En réusissant à exécuter du JavaScript sur un ordinateur, il devient possible de…
Voler les jetons de session du domaine concerné
Suivre toutes les actions qui seront réalisées dans ce navigateur
Rediriger l’utilisateur vers un site de phishing
Modifier le contenu d'une page visible par l’utilisateur
Exploiter les vulnérabilités du navigateur pour prendre le contrôle de la machine à
distance
…
XSS est la vulnérabilité la plus exploitée aujourd’hui
27. IBM Software Group | Rational software
27
3 - L’exécution de fichiers malicieux
Plusieurs plateformes autorisent l’utilisation d’objets externes, comme des URLs
ou des références au système de fichier. Lorsque les données ne sont pas
correctement vérifiées, cela peut conduire à l’exécution d’un fichier malicieux
Toute application web est vulnérable à l’exécution malicieuse de fichier si elle
accepte des fichiers ou des noms de fichiers donnés par un utilisateur
Permet à un attaquant :
D’exécuter du code à distance
D’installer des rootkits et compromettre un système
Défacer des sites web
29. IBM Software Group | Rational software
29
L’exécution de fichiers malicieux – Exemple
30. IBM Software Group | Rational software
30
L’exécution de fichiers malicieux – Exemple
31. IBM Software Group | Rational software
31
L’exécution de fichiers malicieux – Exemple
32. IBM Software Group | Rational software
32
Agenda
Paysage de la Sécurité des applications Web
Pirater un site web, est-ce facile?
Les tests de sécurité dans le processus de developpement
Questions réponses
33. IBM Software Group | Rational software
33
Vulnérabilités "Héritées" vs Vulnérabilités "Générées"
Code non sécurisé développé par les équipes
internes (ou les sous-traitants)
Code non sécurisé développé par les éditeurs
de logiciels
Origine
Instaurer un processus de contrôle sécurité sur tout
le cycle de vie du logiciel
Appliquer les patches fournis par les éditeursActions Correctives
Tests spécifiques à chaque page, chaque
paramètre, chaque cookie etc.
Vérification de signatures et contrôle des
configurations
Détection
Très élevé, si le processus reste manuel et réactif.
Relativement faible: coût de la gestion de
patches.
Coût de la
Sécurisation
Aucune
Descriptions publiées par les éditeurs et
répertoriées par différents organismes
(référence CVE)
Information
Disponible
Applications métier spécifiques à l'entreprise
Composants d'infrastructure et autres
progiciels tiers
Localisation
ASV
Application Specific Vulnerabilities
CWV
Common Web Vulnerabilities
34. IBM Software Group | Rational software
34
Modèle de maturité de la sécurité applicative
Experts internes, audits réguliers
Outils d'audit de type "desktop"TactiqueTactique
Équipe interne dédiée aux tests et audits de sécurité
des applications
Audits internesAudits internes
Contrôle sécurité sur tout le cycle
de vie des applications
Métriques au niveau entreprise pour
l'ensemble des applications
StratégiqueStratégique
Audits sous-traitésAudits sous-traités Consultants, tests de pénétration sur quelques applications
critiques
FormationàlasécuritéFormationàlasécurité
35. IBM Software Group | Rational software
35
Réduire les coûts de la détection , Étendre la couverture
Couverture des applications
Coût par
application
testée
Audits sous-traités
Tactique
Stratégique
100%0% 50% 75%25%
36. IBM Software Group | Rational software
36
Quel est le coût d'un défaut?
Au cours de la
phase de codage
€25/défaut
Au cours de la
phase d’intégration
€100/défaut
En Exploitation
€16,000/défautAu cours de la
phase de test/QA
€450/défaut
L'augmentation des coûts de correction d’une anomalie....
80% des coûts de développement sont
consacrés à identifier et corriger les défauts!
37. IBM Software Group | Rational software
37
Modèle de maturité de la sécurité applicative
Difficulté
et cout
des tests
% Applications Testées
élevée
bas
0% 100%
Equipe
Securité
Equipe
Securité
Equipe Securité
Equipe
Developpement
Phase 1 Phase 2 Phase 3
Criticité
et
Risques
pour les
App.
Equipe AQ
Equipe AQ
38. IBM Software Group | Rational software
38
Sécurité et conformité dans le processus de devp.
Build
Developers
SDLCSDLC
Developers
Developers
Coding QA Security Production
Enable Security
to effectively
drive
remediation into
development
Provides Developers and QA with
expertise on detection and
remediation ability
Ensure
vulnerabilities
are addressed
before
applications
are put into
production
Application Security Testing Maturity