1
Principes fondamentaux de la sécurité des applications Java
- Introduction à la JVM.
- Utilisation de versions récentes de Java (Java 17+).
- Bytecode et obfuscation.
- Gestion des dépendances avec Maven et détection des vulnérabilités dans les bibliothèques.
- Mise en place d'un système de logging sécurisé (ex: SLF4J, Logback ou Log4J).
2
Gestion de l'authentification
- Les diverses méthodes d'authentification (mot de passe, 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 multifacteurs (MFA).
- Intégration d’un fournisseur d’identité.
Travaux pratiques
Mise en place d'un processus d'identification par mot de passe, d'une clé d'API et d'un token JWT avec Keycloak.
3
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).
Travaux pratiques
Mise en place d'une section sécurisée basée sur le principe du moindre privilège avec Spring Security.
4
Utilisation de SSL/TLS
- Utilisation de SSL/TLS pour sécuriser les communications.
- Configuration sécurisée des connexions de bases de données (utilisation de SSL/TLS pour la connexion à MySQL/PostgreSQL).
- Génération d'un certificat autosigné avec Java KeyStore.
Travaux pratiques
Génération d'un certificat autosigné avec KeyStore et hébergement d'une application avec SSL.
5
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).
Travaux pratiques
Création d'une base de données stockant des mots de passe chiffrés, connexions utilisateurs et utilisation de requêtes préparées.
6
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.
7
Les différents types d'attaque
- 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 et nettoyage des entrées utilisateurs.
- CSRF (Cross-Site Request Forgery) : mise en place de tokens anti-CSRF.
Travaux pratiques
Nettoyage des données utilisateurs avec OWASP.