Sécurité applicative Java
Prérequis
Public admis
- Salarié en Poste
- Entreprise
Demandeur d'emploi et Etudiant non admis
Financement
- Votre OPCO
- Financement personnel
Financement CPF non pris en charge
Modalités
- En centre
- À distance
Objectifs pédagogiques
A l'issue de cette formation, vous serez capable de :
- Reconnaître les mécanismes de sécurité du JDK (Java Development Kit)
- Décrire les principales failles de sécurité applicative
- Distinguer la sécurité applicative de la sécurité système et réseau
- Mettre en oeuvre les principales stratégies de sécurité en Java
- Utiliser JCE (Java Cryptography Extension)
- Authentifier et autoriser l'accès aux composants Java EE
- Créer des tests visant à éprouver la sécurité des applications
- Formuler des exigences de sécurité aux autres corps de métiers.
Programme de la formation
Jour 1
Rappels sur la sécurité applicative
- Fonctionnement de la pile d'exécution
- L'analyse de code
- L'hijacking de ressources
- Les overflows
- Les protections lors de l'exécution
La sécurité des plateformes Java
- La sécurité de Java SE / ME / FX
- Le Java Class Loader
- Le Security Manager
- L'Access Controller
- Le Sandboxing
- Implémentation de la Default Policy
- La Policy File Syntax
- Contenu du Package java.security
Le chiffrement avec Java
- Rappel des bases du chiffrement
- Les fonctions de hash
- Les algorithmes symétriques type AES
- Les algorithmes asymétriques type RSA
- La librairie JCE (Java Cryptography Extension)
- La classe Cipher
- Générer des clés
- Générer des certificats
Exemples de travaux pratiques (à titre indicatif)
- Création d'un outil de chiffrement / déchiffrement symétrique
- Création d'un outil de vérification de l'intégrité de contenu d'un répertoire
Jour 2
La sécurité avec Java EE
- La sécurité de Java EE
- L'HTTPS avec JSSE (Java Secure Socket Extension)
- Gestion de l'authentification Web
- Exploitation des HTTP basic et HTTP form
- Utilisation du module JAAS (Java Authentication and Authorization Service)
- Utilisation du module LoginModule
- Définition des rôles et domaines
- Les fichiers .policy
- Créer des permissions avec Java Security Permission
- La protection des URL
- La protection des méthodes
- Les annotations de sécurité
- La sécurité programmatique de Java EE
Exemples de travaux pratiques (à titre indicatif)
- Mise en place d'une PKI
- Création d'un formulaire d'authentification
Tester les failles d'une application
- Anatomie d'une faille applicative
- Présentation de l'OWASP et de ses projets
- Les Security Cheat Sheets
- Le Top 10
- Les guides de l'OWASP (Test Guide, Dev Guide...)
- L'ASVS (Application Security Verification Standard)
- Les grandes familles de vulnérabilités
- Les CVE (Common Vulnerabilities and Exposures)
- Les CWE (Common Weakness Enumerations)
- Le scoring CVSS (Common Vulnerability Scoring System)
Exemples de travaux pratiques (à titre indicatif)
- Installation de WebGoat et ESAPI
- Estimation de la vunérabilité d'un produit commercial
Jour 3
Exemples de travaux pratiques (à titre indicatif) - Suite
- Exploitation :
- D'une injection d'entête HTTP
- D'une injection SQL
- D'une Cross-Site Scripting
- D'une Cross-Site Request Forgery
- D'une Server-Side Request Forgery
- D'un vol de session
- D'une désérialisation
- D'une référence directe à un objet
La sécurité du code externe
- Le cas des librairies
- Le cas des API
- La sécurité dans les API JDBC, JNDI, JTA, JMS et JCA
La sécurité des WebServices
- La sécurité des WebServices SOAP
- Utilisation de WS-Security avec WSS4J et XWSS
- Utilisation de WS-Policy
- La sécurité des WebServices REST
- Utilisation de JAX-RS
- Utilisation de OAuth 1.0 et 2.0
Mettre en place du Secure Code
- Durcir son application avec l'OWASP ASVS et l'OWASP Dev Guide
- Les bonnes pratiques de sécurisation du code
- La protection du bytecode
- Se protéger de la décompilation
- L'obfuscation du code
- Les descripteurs de déploiement XML
- L'authentification des conteneurs Web et EJB
- Les contrôles dynamiques
- Faire des tests et des validations
- Les tools des navigateurs
- La capture via proxy
- La capture via tcpdump ou Wireshark
- Les tests avec Postman
- Les vulnerability scanners
- Le DAST (Dynamic Application Security Testing)
- Le SAST (Static Application Security Testing)
- Sonatype Nexus
- Acunetix
- Contrast Security
- Filtrer les échanges
- Les WAF (Web Application Firewalls)
- Les IPS (Intrusion Prevention System) et les IDS (Intrusion Detection System)
- Limiter l'exposition
- Rôle des firewalls, proxies et DMZ
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation

Proposé par
M2I
"Un leadership dans le domaine de la formation"