Sécurité JVM - Protéger vos applications Java
Aperçu du cours
Le but de ce cours est d'aborder les notions de sécurité des langages de programmation, et plus particulièrement les mécanismes fournis dans l'environnement Java.
Les grandes notions abordées dans ce cours sont:
- La sécurité fournie par la JVM
- La sécurité dans Python
- Aspets de sécurité spécifiques à Android
Contenu détaillé du cours
Objectifs d'apprentissage
- Comprendre les mécanismes de sécurité intégrés à la JVM (Java Virtual Machine) et leur rôle dans la protection des applications
- Maîtriser les concepts fondamentaux de la sécurité des langages de programmation, avec un focus sur Java
- Analyser les différences entre les modèles de sécurité de la JVM et d'autres environnements comme Python
- Implémenter des bonnes pratiques de sécurité pour les applications Java et Android
- Évaluer les risques spécifiques aux applications JVM et développer des stratégies de mitigation
- Configurer et utiliser le Security Manager de Java efficacement
- Comprendre les aspects uniques de la sécurité sur la plateforme Android
Public cible
Ce cours s'adresse aux développeurs Java intermédiaires et avancés souhaitant approfondir leurs connaissances en sécurité applicative. Les administrateurs systèmes responsables du déploiement d'applications JVM bénéficieront également de cette formation. Une connaissance de base de Java et des concepts généraux de sécurité informatique est recommandée.
Contenu détaillé
La sécurité dans l'environnement JVM repose sur plusieurs couches de protection. Le modèle de sécurité de Java, souvent appelé "sandbox", permet d'exécuter du code non fiable de manière sécurisée en limitant ses permissions. Nous explorerons en détail le fonctionnement du Security Manager, des class loaders sécurisés et du système de permissions.
Le cours couvrira également les vulnérabilités spécifiques aux applications Java, telles que les attaques par désérialisation, les failles de type "type confusion", et les problèmes liés à la réflexion. Vous apprendrez à utiliser des outils comme FindSecBugs pour identifier ces vulnérabilités dans votre code.
Une comparaison approfondie sera faite avec le modèle de sécurité de Python, mettant en lumière les différences fondamentales d'approche entre ces deux écosystèmes. Contrairement à la JVM, Python n'a pas de sandbox intégrée aussi sophistiquée, ce qui conduit à des stratégies de sécurité différentes.
Pour les développeurs mobiles, nous aborderons les spécificités de la sécurité Android. Bien qu'Android utilise une machine virtuelle basée sur des concepts similaires (ART/Dalvik), son modèle de sécurité diffère significativement, notamment avec son système de permissions basé sur les capacabilités.
Approche pédagogique
Le cours combine théorie et pratique avec:
- Des démonstrations des mécanismes de sécurité de la JVM
- Des exercices pratiques de configuration de sécurité
- L'analyse de cas réels de vulnérabilités
- Des bonnes pratiques pour sécuriser les applications Java/Android
Résultats attendus
A l'issue de cette formation, les participants seront capables de:
- Configurer une politique de sécurité pour des applications JVM
- Identifier et corriger les vulnérabilités courantes
- Prendre des décisions éclairées sur l'architecture sécurité
- Adapter les bonnes pratiques aux besoins spécifiques de leur projet