Compendre la notion de revue de code, et voir les impacts que peut avoir un code avec des failles.
1. Meilleures Pratiques de Développement de Code
• Gestion de la configuration logicielle (SCM)
• Documentation efficace (Javadoc, Doxygen)
• Utilisation des patrons de conception (Design Patterns)
• Tests unitaires et couverture de code (JUnit, Cobertura)
• Gestion des dépendances et CI/CD
• Réduction de la dette technique et revue de code par les pairs
2. Bug Hunting et Pentest
• Introduction à la chasse aux bugs et au pentesting
• Processus de pentest : reconnaissance, énumération, exploitation, reporting
• Les standards OWASP : Top 10, WSTG, ASVS
• CVE, CWE et CVSS : comprendre et évaluer les vulnérabilités
• Études de cas : Responsible disclosure pour Grafana et le Microsoft Security Response Center (MSRC)
3. Analyse et Débogage du Code
• Décompilation et instrumentation de code (Java, Python, .NET, C/C++)
• Techniques d’obfuscation et d’anonymisation du code
• Debugging avec des outils comme GDB, Xdebug, et JDWP
• Prévention et détection : anti-debugging et anti-sandboxing
• Utilisation de Frida pour l’instrumentation
4. Étude de Cas : Forgerock Access Management
• Architecture et fonctionnalités de Forgerock AM
• Analyse statique et dynamique des applications web
• Étapes pour identifier et exploiter les failles : CVE-2021-4201 sur Forgerock AM
5. Revue de Code Sécurisée
• Vulnérabilités courantes : injection SQL, XSS, SSTI, SSRF
• Détection et prévention des attaques XXE et Path Traversal
• Gestion des IDOR et des Broken Access Control
• Exploitation des failles de désérialisation et UFU (File Upload)
• Évaluation des pratiques de sécurisation par analyse manuelle et automatisée
6. Challenges et Études de Cas Pratiques
• Scénarios de challenges pour évaluer la compréhension des vulnérabilités
• Études de cas sur Spotify Backstage, PWM, et Microstrategy
• Analyse approfondie et post-exploitation des vulnérabilités
Mise en pratique des connaissances théoriques sur des exemples concrets.
Notion de développent en Java, en html et scripting shell.
la thématique de la sécurité est abordée (aspect "protection du consommateur" de la norme ISO 26000)