Objectifs de la formation
- Principes fondamentaux de la sécurité des applications Java
- Gestion de l’authentification
- Contrôle d’accès et autorisations
- Utilisation de SSL/TLS
- Sécurisation des données
- Infrastructures sécurisées modernes
- Les différents types d’attaques
Programme de la formation
Principes fondamentaux de la sécurité des applications Java
– Introduction à la JVM
– Utilisation de versions récentes de Java (Java 17+).
– Bytecode & obfuscation.
– Gestion des dépendances avec Maven + détection des vulnérabilités dans les librairies.
– Mise en place d’un système de logging sécurisé (ex: SLF4J, Logback ou Log4J)
Gestion de l’authentification
– Les diverses méthodes d’authentification (mot de passes, biométrique, Clé numérique
etc …)
– Utilisation du standard OAuth 2.0 pour une gestion moderne des accès.
– JWT (JSON Web Tokens) pour la gestion des sessions sécurisées.
– L’authentification multi-facteurs (MFA).
– Intégration d’un fournisseur d’identité
TP : Mise en place d’un processus d’identification par Mot de passe, d’une clé d’API et d’un
token JWT avec Keycloak
Contrôle d’accès et autorisations
– Principe du moindre privilège dans les applications.
– Utilisation de RBAC (Role-Based Access Control).
– Implémentation de contrôles d’accès dans les applications. (Spring Security)
TP : Mise en place d’une section sécurisée basée sur le principe du moindre privilège avec
Spring Security.
Utilisation de SSL/TLS
– Utilisation de SSL/TLS pour sécuriser les communications.
– Configuration sécurisée des connexions bases de données (Utilisation de SSL/TLS pour la
connexion à MySQL/PostgreSQL).
– Génération d’un certificat auto signé avec java keystore.
TP : Génération d’un certificat auto signé avec keystore & Hebergement d’une app avec SSL
Sécurisation des données
– SQL Injection : comment les éviter (utilisation des Prepared Statements, ORMs comme
Hibernate).
– Chiffrement des données sensibles dans la base de données.
– Gestion des accès à la base de données (séparation des rôles et privilèges).
– Gestion sécurisée des mots de passe (stockage avec des algorithmes comme md5, sha256
ou bcrypt).
TP: Création d’une BDD stockant des mots de passes chiffrés et connexion utilisateur &
utilisation de requêtes préparées.
Infrastructures sécurisées modernes
– Les différents certificats HTTPS
– Principe de Zero-trust models
– Sécurité Java au sein des conteneurs
– Les SIEMS
– Le Protocole CORS
– Les architectures sécurisées par design
Les différents types d’attaques
– Validation des entrées utilisateur (Never Trust User Input).
– Sécurisation des API RESTful avec des headers comme Authorization et X-XSS-Protection.
– Injections SQL
– XSS & Sanitisation des entrées utilisateurs
– CSRF (Cross-Site Request Forgery) : mise en place de tokens anti-CSRF.
TP: Sanitization des données utilisateurs avec OWASP.