La sécurité est une compétence indispensable lorsqu’il s’agit de développer des applications Web déployées en production sur Internet. Une étude a démontré que 80% des applications en ligne possède au moins une vulnérabilité connue. La sécurité applicative est toujours un sujet peu maîtrisé par une majorité de développeurs. Combien d’entre eux sont en mesure de citer les 10 points de l’OWASP ? Connaissent-ils les dangers de l’injection, du Cross Site Scripting, de XSS ou de la Sérialisation ?
Sécurité des applications Web

Sécurité des applications Web et Top10 OWASP
Audience
- Architectes
- Développeurs
- Chefs de projet
Pré-requis
Notions basiques en Java, JavaScript et le monde du Web
Tarif et dates
Nous consulter
Durée
2 jours
Répartition
- Pratique
- Théorie
Objectifs
- Comprendre les vulnérabilités et se prémunir de l’injection
- Maîtriser le principe des attaques XSS et s’en prémunir
- Savoir sécuriser une application
- Eviter l’exposition de données sensibles sur le Web
- Découvrir les failles XXE (eXternal XML Entities) et se protéger
- Comprendre les défauts d’authentification et apprendre à gérer la session
- Comprendre certaines notions liées à la sécurité (chiffrement, hash, …)
Présentation
Ce cours s’articule autour d’un exercice fil conducteur : le Buggy Store. Cette application Java réalisée avec Spring Boot contient tous les défauts traditionnels d’une application Web. Des failles d’injection SQL, XSS, l’utilisation d’une gestion XML vulnérable aux failles XXE et des problèmes de configuration. Tout au long de la formation, le stagiaire joue tour à tour le rôle de PenTester (l’attaquant) et de développeur pour fixer les différentes failles détecté. Résolument pratique et tournée vers la plateforme JAVA, cette formation apportera une compétence appréciable et appréciée aux stagiaires.
Plan du cours
Présentation de l’OWASP
Prérequis
Objectifs pédagogiques pour la DNSCE
Qu’est-ce que OWASP ?
La sécurité des applications web
L’injection
Vulnérabilités par injection
Principe d’une attaque par injection
Détection d’une vulnérabilité par injection SQL
Les types d’attaques par injection SQL
SQLi de type In-band (1/2)
SQLi de type Blind (1/2)
Quelques exemples d’injections
Conséquences d’une vulnérabilité par Injection
Prévenir une attaque par injection
Limiter l’impact d’une attaque par injection
TP Injection – Mise en pratique
Cross Site Scripting
Sécurité des applications Web
Vulnérabilité XSS
Reflected XSS
Stored XSS
Client based XSS
DOM based XSS
Les conséquences d’une vulnérabilité XSS
Prévenir une attaque XSS
TP : XSS sur le Buggy Store
Security Misconfiguration (défaut de configuration)
Exemple de scénarios d’attaque
Attaque par utilisation de la pile d’erreur
S’en prémunir en JSP classique
S’en prémunir avec Spring Boot
Règles générales pour sécuriser Tomcat
Les entêtes HTTP
Les entêtes de sécurité
L’outil Wapalizer
Les outils en ligne disponibles
L’annuaire et l’extension Shodan
L’annuaire CVE
Le site Exploit-db
Le Dependency Tracker
Composants avec des vulnérabilités connues
Principe
Détecter les composants/dépendances vulnérables
L’outil Dependency Track
Les plugin SonarQube OWASP
Broken Access Control
Présentation de cette faille
Contournement des contrôles d’accès
Les conséquences d’une vulnérabilité Broken Access Control
Prévenir une attaque par Broken Access Control
TP Broken Access Control – Mise en pratique
XML eXternal Entities
Les entités en XML
Entités internes et externes XML
Qu’est-ce qu’une vulnérabilité XXE ?
Attaque par DoS, Billion Laughs
Comment s’en prémunir
Exercice XXE
Broken Authentication (Défaut d’authentification)
Principe
Guide de conformité
Problématiques de la session
Guide de gestion de la session
Vulnérabilités
Comment s’en prémunir
Exposition de données sensibles
Principe & Définitions
Chiffrement symétriques/asymétriques
Utiliser des algorithmes sûrs
Sécuriser les mots de passe
SSL et TLS
L’outil SSLlabs
Sérialisation non sécurisée
Principe de la sérialisation
Quel est le problème avec la sérialisation ?
Un exemple de vulnérabilité
Les transformateurs et gadgets
Un exemple de vulnérabilité
L’outil YsoSerial
Les vecteurs d’attaque (RMI, JMX, …)
S’insérer dans une DMZ
Comment s’en prémunir
Traçabilité et Monitoring défaillant
Comment et quoi journaliser ?
Les sources de données
Les évènements à journaliser
L’injection de logs
L'offre de DNG Consulting et son savoir-faire
DNG Consulting forme depuis plus de dix ans de nombreuses entreprises au travers de sessions intra-entreprises ou inter-entreprises.
Nos formateurs interviennent au quotidien sur des problématiques techniques au travers des projets de nos clients. La spécialité de DNG est l’accompagnement dans un contexte agile.
Pour plus de renseignements : formation@dng-consulting.com ou conseil@dng-consulting.com