Le langage Java contient intrinsèquement de nombreux mécanismes permettant l'élaboration de programmes sûrs. Ces mécanismes concernent les différentes facettes de la sécurité comme l'intégrité, laconfidentialité, l'identification et la protection contre les malveillances.
Objectif
L'objectif de cette formation est de permettre aux participants d’acquérir une compréhension complète de la sécurité des applications Java : identification des vulnérabilités, utilisation des API de sécurité (JCE, JAAS), mise en œuvre de pratiques de codage sécurisées et de mécanismes de cryptographie, d’authentification et d’audit. Elle intègre également les meilleures pratiques de développement sécurisé et la gestion des incidents et des risques.
Est-ce pour vous ?
Développeurs, concepteurs, chefs de projets, architectes techniques
Préalables
Avoir une expérience de programmation en langage JAVA.
Vos gains
Contenu
Introduction et rappels
Chargement et vérification des classes
- Rôle du compilateur Java
- Rôle des classloader
- Les différentes zones mémoires de la JVM et leur gestion par le garbage collector
- Hiérarchie des différents classloader
- Vérification du byte-code
- Chargement dynamique de classe
- Implémenter un class loader
- T.P. : Modification d'un fichier .class et exécution avec l'option -noverify, Implémentation d'un classloader chargeant des classes cryptées
Voir plus +/-
Gestionnaire de sécurité et permissions
- Opérations contrôlables
- Activation du gestionnaire de sécurité
- Domaine de protection, provenance du code et permissions
- Parcours de l'API
- Fichier. policy
- Les classes Permission
- Implémentation d'une classe Permission
- T.P. : Mise au point d'un fichier. policy, implémentation d'une classe Permission
JAAS, Authentification et Autorisations
- Présentation de JAAS
- LoginContext et LoginModule
- Configuration et empilement des login modules
- LoginModule disponibles
- Implémentation d'un login module spécifique, les CallbackHandler
- Packaging d'un login module
- Autorisations, Objet Subject et Principals
- Interface PrivilegedAction
- Configuration des permissions
- T.P. : Implémentation d'un LoginModule, Configuration des autorisations à partir de rôles utilisateurs
Signatures numériques et chiffrement
- Empreinte de messsage : SHA1 et MD5
- L'outil keytool et les keystore
- L'outil jarsigner
- Les autorités de certification
- Déploiement de code signé dans un intranet ou sur internet
- Permissions basées sur des keystore
- Chiffrement de données, les algorithmes AES et RSA
- T.P. : Vérification d'une empreinte, Déploiement d'une applet dans un intranet, Chiffrement symétrique et asymétrique
Application de la sécurité dans un environnement Web
- Sécurisation d'un serveur applicatif Java
- Sécurisation d'un serveur applicatif Java
- Authentification des utilisateurs, descripteur de déploiement d'une application web
- Configuration des logins modules dans les principaux serveurs applicatifs
- Sécurité déclarative des différents tiers de Java EE
- SSL
- T.P. : Sécurisation d'une application web
Les attaques WEB
- Les ressources de l'OWASP
- Les dix risques de sécurité applicatifs Web les plus critiques selon l’OWASP
- Identification des principaux risques dans la Cybersécurité
L’audit d'applications en mode dynamique avec APPSCAN Standard
- Configuration d’un scan
- Lancement de l’opération de Scan
- Analyse des résultats
💡 Informations utiles
Nos formations sont offertes à Montréal ou Québec en présentiel ou en format virtuel. Les dates et lieux sont précisés lors de votre choix de session ci-dessous. Si vous avez des questions concernant l'inscription, les horaires, la langue d’enseignement ou les modalités d’annulation, consultez notre FAQ .
Intervenants
Formation en entreprise
Vous avez plusieurs employés intéressés par une même formation? Que ce soit en présentiel dans vos bureaux ou à distance en mode virtuel, nous offrons des formations privées adaptées aux besoins de votre équipe. Des tarifs de groupes sont disponibles. Contactez-nous pour plus de détails ou demandez une soumission en ligne.
Demander une soumission