Dans le domaine de la sécurité applicative, la référence est l’OWASP (Open Web Application Security Project). L’OWASP constitue le référentiel et le guide à suivre en terme de sécurité applicative Web. Ce consortium d’experts en sécurité se réunit régulièrement et édicte dix points fondamentaux que doit respecter toute application Web : le Top 10 OWASP. Tout développeur devrait être sensibilisé dès ses débuts aux concepts d’injection ou de Cross Site Scripting (XSS). Ce cours parcourt les 10 points fondamentaux de l’OWASP et accompagne le stagiaire tout au long des deux jours au travers d’exercices pratiques en JAVA.
Sécurité applicative et OWASP
Sécuriser une application Java avec l'OWASP
Audience
- Architectes
- Développeurs
- Chefs de projet
Pré-requis
Connaitre le langage Java
Durée
2 jours
Répartition
- Pratique
- Théorie
Objectifs
-
- Sensibiliser les équipes de développement aux problématiques de sécurité applicative à travers l’OWASP
- Mettre en pratique les règles définies par l’OWASP sur l’injection, XSS, XXE, les défauts de configuration ou d’authentification d’accès, mais aussi les problèmes de sécurité liés à la sérialisation.
- S’assurer de la bonne compréhension des fondamentaux aux travers d’exercices personnalisés en JAVA
Présentation
Ce cours se déroule en 2 jours avec une première journée dédiée aux cinq premiers points fondamentaux de l’OWASP (Injection, XSS, …) suivi le lendemain des autres sujets (XXE, Serialisation, …). Chaque point est abordé de manière théorique puis ensuite traité de manière pratique via un exercice JAVA. Le stagiaire corrige ainsi une application truffée de trous de sécurité.
Plan du cours
Présentation de l’OWASP
Prérequis
Objectifs pédagogiques
Qu’est-ce que OWASP ?
La sécurité des applications web
A1 – 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
SQLi de type Blind
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
A7 – 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
A5 – 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
A10 – Traçabilité et Monitoring défaillant
Comment et quoi journaliser ?
Les sources de données
Les évènements à journaliser
L’injection de logs
Synthèse
A4 – 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
A6 – 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
A2 – 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
A3 – 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
A8 – 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
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