Formation #DEV62

Formation Sécurité Java

Durée : 5 jours

Code : DEV62


Prochaines dates programmées :

Du 03 au 07 Juin 2024

Du 14 au 18 Oct. 2024

Fin d'Inscription :
Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email : Au minimum 15 JOURS OUVRÉS avant la date de formation.
Si vous avez un besoin URGENT et que vous souhaitez une date de formation plus proche que les sessions programmées (minimum 15 à 20 jours ouvrés à date de votre demande)

Objectifs

  • Identifier le périmètre de la sécurité des applications Java
  • Contrôler les actions de tout code java sur votre système (fichier .policy)
  • Mettre en oeuvre les API de cryptographie : JCA/JCE
  • Sécuriser l’accès à vos écrans web et vos EJB avec JAAS
  • Utiliser l’outil keytool pour manipuler des certificats
  • Sécuriser via SSL la communication entre client/serveur
Programme
1/ Les concepts clés
  • L'authentification et méthodes d'authentification
  • L'autorisation
  • La confidentialité
  • L'intégrité
  • L'empreinte
  • Le chiffrement
  • La signature
2/ Les failles et les remèdes
  • Les injections SQL
  • Cross Site Scripting (XSS)
  • Le détournement de sessions
  • La référence directe par URL
  • Cross Site Request Forgery (CSRF)
3/ Sécurisation de la JVM
  • Limites naturelles imposées par Java
  • Gestion mémoire
  • Contrôle du bytecode par la machine virtuelle
4/ La sécurité Plateforme
  • Exécution protégée
  • ClassLoader
  • SecurityManager
  • AccessController
  • Le fichier java.policy
  • Le fichier security.policy
  • L'outil PolicyTool
  • Surcharge des méthodes d'accès
  • Lecture, écriture, exécution, ouverture de socket
5/ Le chiffrement avec Java
  • Les bases du chiffrement en Java
  • Librairie JCE
  • Classe Cipher
  • Les services d’un provider
  • Les algorithmes de Chiffrement
  • Les algorithmes symétriques type AES
  • Algorithme asymétrique RSA
  • Les fonctions à sens unique type SHA
  • La génération de clés
  • La génération de certificats
  • Les outils GnuGPG, GPG4Win, Keytool
6/ La sécurité conteneur web et EJB
  • Sécurité Java EE
  • Authentification Web
  • Spécification JAAS
  • Realm DB, LDAP, LoginModule
  • HTTP BASIC, FORM, CLIENT-CERT
  • HTTPS et JSSE
  • Spécificités Tomcat / WILDFLY / GLASSFISH
  • @ServletSecurity, @HttpConstraint
  • @RunAs,DeclareRoles,@RolesAllowed
  • @DenyAll, @PermitAll...
  • Les limites de JAAS
  • Les outils : Apache Shiro, Spring Security
  • Rôles et domaines
  • Protection des URL
  • Protection des méthodes
  • Annotations de sécurité
  • Sécurité programmatique
  • Sécurité réseau et sécurité applicative
  • Firewall, proxy et DMZ
7/ Tester les failles d'une application
  • Anatomie d'une faille applicative
  • Open Web Application Security Project
  • Le Top 10 OWASP
  • CVE (Common Vulnerabilities and Exposures)
  • CWE (Common Weakness Enumeration)
  • CVSS (Common Vulnerability Scoring System)
  • Failles et remèdes
  • Injections SQL
  • Cross Site Scripting
  • Détournement de sessions
  • Référence directe par URL
  • Cross Site Request Forgery
  • La faille sur les API
  • IDOR
  • SSRF
8/ Contrôle
  • Rappel sur les ACL
  • Le paquetage java.security.acl
  • Ajout d'entrée, vérification d'accès
9/ Obfuscation
  • Principe
  • Techniques d'obfuscation
  • Solutions commerciales
10/ Mettre en place du secure code
  • Checklist des bonnes pratiques pour son application
  • Analyse des risques
  • Durcir son application avec OWASP ASVS
  • Les bons outils
  • DAST (Dynamic Application Security Testing)
  • SAST (Static Application Security Testing)
  • WAF (Web Application Firewall)
11/ L'audit Sécurité
  • Les scanners réseau / Ports
  • Les scanners de Vulnérabilité
  • La base de données d’exploits
  • Les normes PCI/DSS
  • Les normes CERT JAVA
  • Les outils : Nmap, OpenVAS, WebGoat
Approche Pédagogique

Approche Pédagogique

  • Pédagogie très opérationnelle fondée sur l'alternance entre théorie et pratique
  • Cas pratiques
  • Remise d’outils
  • Echanges d’expériences
Public Cible

Personnes Visées

  • Développeurs
  • Analystes programmeurs
  • Chefs de projets
Dates

Dates

  • Du 03 au 07 Juin 2024
  • Du 14 au 18 Oct. 2024
  • Fin d'Inscription :
    Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email : Au minimum 15 JOURS OUVRÉS avant la date de formation.