Prenez contact avec nous

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.security et 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.Random par 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, MessageDigest et Mac.
  • 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 SSLSocketFactory et HttpsURLConnection.
  • 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.xml et d'annotations.
  • Sécurité programmatique : Utilisation de HttpServletRequest.isUserInRole() et getRemoteUser().
  • JAAS (Java Authentication and Authorization Service) : Configuration de login.conf et implémentation de LoginModules.
  • 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 ObjectInputStream et 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.reflect et 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

Nombre de participants


Prix par participant

Nos clients témoignent (4)

Cours à venir

Catégories Similaires