Analyse pédagogique de CVE-2023-4863 (dépassement de tampon de tas dans libwebp) avec des outils de détection Blue Team, un scanner WebP statique, un validateur Java défensif et un laboratoire Docker isolé avec analyse mémoire Valgrind.
| Nom complet | GitHub | Site web | ||
|---|---|---|---|---|
| Keyvan Arasteh | @keyvanarasteh | [email protected] | keyvanarasteh | qline.tech |
| Nom complet | Numéro d'étudiant |
|---|---|
| Batuhan Seydi Çelik | 2520****1006 |
| Nom du cours | Code du cours | Crédits | Prérequis | Semestre |
|---|---|---|---|---|
| Test d'intrusion et analyse de vulnérabilités | BGT006 | 3 ECTS | Bases des réseaux, Linux CLI | Printemps 2025-2026 |
Ce projet a été préparé pour analyser à des fins pédagogiques la vulnérabilité CVE-2023-4863 (libwebp Heap Buffer Overflow) et pour démontrer concrètement, côté défense (Blue Team), comment de telles anomalies peuvent être détectées dans les systèmes.
Cette vulnérabilité a directement affecté de nombreux écosystèmes dans le monde du web :
ReadHuffmanCodes alloue en mémoire un espace inférieur à celui nécessaire pour la table.BuildHuffmanTable), une écriture hors limites (Out-Of-Bounds Write) s'effectue au-delà de la zone mémoire allouée.Conformément aux principes de sécurité, aucun code Red Team réel et armé (exploit) n'est conservé dans le système. La vulnérabilité est testée de manière structurelle.
src/blue_team/webp_scanner.py : analyse statiquement les structures des chunks (fragments) WebP et détecte les tailles anormales.src/blue_team/WebpValidator.java : exemple de code défensif Java qui simule des scénarios d'upload de fichiers (file upload), empêche la falsification des tailles grâce à une logique fail-fast et fonctionne sans planter (sans lever d'exception) sur les fichiers corrompus.src/red_team/poc.py : générateur de tests à but pédagogique qui ne contient aucun payload réel, mais qui déclare délibérément une fausse taille de chunk de 60 Mo afin de tester si les outils d'analyse Blue Team se déclenchent.libwebp-1.3.1. Analyse dynamique avec Valgrind via le script analyze_memory.sh pour examiner les erreurs mémoire (Invalid Write).Les constats de sécurité sont enregistrés via l'infrastructure de journalisation JSON mise en place, puis visualisés de manière asynchrone et en temps réel grâce au tableau de bord Blue Team (HTML/JS/CSS) situé dans le répertoire src/public.
