Merci d'avoir envoyé votre demande ! Un membre de notre équipe vous contactera sous peu.
Merci d'avoir envoyé votre réservation ! Un membre de notre équipe vous contactera sous peu.
Plan du cours
1. Sécurité informatique et codage sécurisé
- Principes fondamentaux de la sécurité : Confidentialité, Intégrité et Disponibilité (CIA) dans le contexte des applications Java.
- Cycle de développement de logiciels sécurisé (SSDLC) : Intégration de la sécurité depuis les exigences jusqu'au déploiement.
- Paradigmes de codage sécurisé : Défense en profondeur, privilèges minimaux et valeurs par défaut sûres.
- Classifications standard des vulnérabilités : Compréhension de CWE (Common Weakness Enumeration) et OWASP.
2. Sécurité des applications web
- Approfondissement des OWASP Top Ten : Analyse détaillée des injections, des authentifications compromises et de l'exposition de données sensibles.
- Script intersite (XSS) : Scénarios de XSS réfléchis, stockés et basés sur le DOM en Java/JSP.
- Forgery de requêtes intersites (CSRF) : Mécanismes d'attaque et mise en œuvre de jetons Anti-CSRF.
- Gestion de session : Sécurité des cookies, fixation de session et gestion des expirations.
- Sécurité des API : Sécurisation des points d'entrée REST et SOAP contre les abus.
3. Sécurité des services web
- Services web vs Applications web traditionnelles : Différences dans les surfaces d'attaque.
- Sécurité de la couche de transport : Configuration SSL/TLS pour les clients et serveurs Java.
- Sécurité des messages : Intégrité et confidentialité au niveau de la charge utile.
- Normes d'authentification : Mise en œuvre d'OAuth 2.0, OpenID Connect et JWT (JSON Web Tokens).
4. Sécurité XML
- Vulnérabilités de l'analyse XML : Prévention des attaques par entités XML externes (XXE).
- Validation du schéma XML : Bonnes pratiques pour une application stricte du schéma.
- Signatures numériques XML : Mise en œuvre de signatures pour assurer la non-répudiation.
- Chiffrement XML : Approches standard pour le chiffrement du contenu XML.
5. Fondements de la sécurité Java
- Architecture de sécurité Java : Le package
java.securityet l'architecture des fournisseurs. - Fournisseurs de sécurité : Installation et configuration de fournisseurs comme Bouncy Castle.
- Contrôle d'accès : Fichiers de politique, Permissions et Security Manager (Légacy vs Moderne).
- Gestion des trousseaux de clés (Keystore) : Création et gestion de trousseaux de clés et de confiance pour les certificats.
6. Cryptographie pratique
- Algorithmes cryptographiques : Aperçu des algorithmes symétriques (AES), asymétriques (RSA, ECC) et de hachage (SHA-256/512).
- Génération de nombres aléatoires : Les dangers de
java.util.Randompar rapport àjava.security.SecureRandom. - Gestion des clés : Stratégies de génération, de stockage et de rotation des clés.
- Architecture de cryptographie Java (JCA) : Utilisation des classes
Cipher,MessageDigestetMac. - Extension de cryptographie Java (JCE) : Compréhension des fichiers de politique et de la force illimitée.
7. Services de sécurité Java
- SSL/TLS en Java : Utilisation de
SSLSocketFactoryetHttpsURLConnection. - Gestionnaires de confiance (Trust Managers) : Personnalisation de la vérification de la confiance pour les environnements PKI privés.
- Authentificateurs : Authentification programmatique à l'aide de
Authenticator.getDefault(). - Analyse des certificats : Lecture et analyse des certificats X.509 de manière programmatique.
8. Sécurité Java EE
- Sécurité déclarative : Contrôle d'accès basé sur les rôles (RBAC) à l'aide de
web.xmlet d'annotations. - Sécurité programmatique : Utilisation de
HttpServletRequest.isUserInRole()etgetRemoteUser(). - JAAS (Java Authentication and Authorization Service) : Configuration de
login.confet implémentation deLoginModules. - Sécurité Servlet : Contraintes de sécurité gérées par le conteneur et méthodes d'authentification (FORM, BASIC, DIGEST).
9. Erreurs de codage courantes et vulnérabilités
- Désérialisation non sécurisée : Risques de
ObjectInputStreamet contournement des contrôles de sécurité. - Injection de commandes : Atténuation des vulnérabilités d'exécution au niveau du système d'exploitation.
- Traversée de chemin (Path Traversal) : Sanitisation des entrées du système de fichiers pour prévenir la navigation dans les répertoires.
- Abus de la réflexion (Reflection) : Risques associés à
java.lang.reflectet contournement du contrôle d'accès. - Identifiants codés en dur : Identification et suppression des secrets du code source.
- Erreurs d'implémentation cryptographique : Utilisation du mode ECB, clés faibles ou vecteurs d'initialisation statiques.
10. Sources de connaissances
- Outils d'analyse statique : Utilisation de SonarQube, Checkmarx et Fortify pour le balayage automatisé.
- Outils d'analyse dynamique : Aperçu de Burp Suite et OWASP ZAP.
- Bases de données CVE : Comment suivre et réagir aux nouvelles vulnérabilités du framework Java.
- Lectures recommandées : Liste de livres, de documentation et de listes de contrôle de codage sécurisé.
Pré requis
Aucun.
21 Heures
Nos clients témoignent (4)
les connaissances du formateur étaient très élevées - il savait de quoi il parlait et avait les réponses à nos questions
Adam - Fireup.PRO
Formation - Advanced Java Security
Traduction automatique
Exercices pratiques
Olek - Fireup.PRO
Formation - Advanced Java Security
Traduction automatique
exercices de codage
Mirek - Fireup.PRO
Formation - Advanced Java Security
Traduction automatique
Cela ouvre beaucoup et donne de nombreuses perspectives sur la sécurité
Nolbabalo Tshotsho - Vodacom SA
Formation - Advanced Java Security
Traduction automatique