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.