
cve-2021-41773-source-code-analysis — Mis à jour !
Un outil d'analyse statique de correctifs basé sur Python pour étudier la cause racine et la remédiation de CVE-2021-41773 (traversée de chemin du serveur Apache HTTP) en comparant le code source vulnérable du serveur Apache HTTP 2.4.49 avec l'implémentation corrigée 2.4.51.
Analyse du Code Source d'Apache HTTP Server CVE-2021-41773
Un outil d'analyse statique de correctifs basé sur Python pour étudier la cause racine et la remédiation de CVE-2021-41773 (Path Traversal d'Apache HTTP Server) en comparant le code source vulnérable d'Apache HTTP Server 2.4.49 avec l'implémentation corrigée 2.4.51.
Le projet effectue une analyse sémantique du code source au lieu d'un simple diff basé sur le texte. Il extrait les informations structurelles de la fonction cible, compare les deux versions, déduit les changements liés à la sécurité et génère des rapports d'analyse professionnels.
Fonctionnalités
- Analyse statique du code source
- Extraction de fonctions à l'aide de la correspondance des accolades
- Comparaison structurelle entre les versions vulnérable et corrigée
- Détection des capacités de sécurité
- Moteur de raisonnement sur les correctifs
- Génération de rapports Markdown
- Génération de rapports JSON
- Génération de rapports HTML
- Configuration automatisée du laboratoire Docker
- Outil de vérification de l'environnement
Architecture du Projet
Code Source Apache
│
▼
parser.py
│
▼
extractor.py
│
▼
comparator.py
│
▼
reasoning.py
│
▼
reports.py
Structure du Projet
cve-2021-41773-source-code-analysis
│
├── docker
│ ├── apache249
│ │ ├── Dockerfile # Construit le conteneur Apache HTTP Server 2.4.49
│ │ └── docker-compose.yml # Démarre le conteneur Apache vulnérable
│ │
│ └── apache251
│ ├── Dockerfile # Construit le conteneur Apache HTTP Server 2.4.51
│ └── docker-compose.yml # Démarre le conteneur Apache corrigé
│
├── labs # Stocke le code source Apache téléchargé
│
├── references
│ └── resources.md # Matériel de référence pour la recherche sur la CVE
│
├── scripts
│ ├── patch_analysis
│ │ ├── __init__.py # Initialise le paquet d'analyse
│ │ ├── parser.py # Extrait les fonctions C cibles du code source Apache
│ │ ├── extractor.py # Extrait les variables, appels, conditions et capacités de sécurité
│ │ ├── comparator.py # Compare les structures des fonctions vulnérable et corrigée
│ │ ├── reasoning.py # Effectue le raisonnement de sécurité sur les changements détectés
│ │ ├── reports.py # Coordonne la génération des rapports
│ │ ├── markdown_report.py # Génère le rapport d'analyse Markdown
│ │ ├── json_report.py # Génère le rapport d'analyse JSON
│ │ └── html_report.py # Génère le rapport d'analyse HTML
│ │
│ ├── analyze_patch.py # Point d'entrée principal pour l'analyse des correctifs
│ ├── verify_lab.py # Vérifie la configuration du laboratoire Docker
│ └── debug.py # Affiche la sortie de comparaison brute pour le débogage
│
├── analysis # Rapports d'analyse générés
│
├── setup.sh # Prépare automatiquement le laboratoire complet
│
├── LICENSE
└── README.md
Prérequis
- Python 3.10+
- Docker
- Docker Compose
- Bash
- Linux (Testé sur Kali Linux)
Installation
Clonez le dépôt
git clone https://github.com/KunalKhandelwal-dev/cve-2021-41773-source-code-analysis.git
Entrez dans le projet
cd cve-2021-41773-source-code-analysis
Configuration
Exécutez le script de configuration automatisé.
sudo bash setup.sh
Le script de configuration effectue automatiquement les tâches suivantes :
- Vérifie les outils requis
- Vérifie l'installation de Docker
- Télécharge Apache HTTP Server 2.4.49
- Télécharge Apache HTTP Server 2.4.51
- Extrait les deux arborescences source
- Construit les images Docker
- Démarre les conteneurs Apache
- Crée l'environnement d'analyse
Exemple de sortie
[INFO] Vérification des outils requis...
[SUCCESS] Outils requis trouvés.
[INFO] Vérification de Docker...
[SUCCESS] Docker est en cours d'exécution.
[INFO] Téléchargement d'Apache HTTP Server 2.4.49...
[SUCCESS] Apache 2.4.49 téléchargé.
[INFO] Téléchargement d'Apache HTTP Server 2.4.51...
[SUCCESS] Apache 2.4.51 téléchargé.
[INFO] Construction des images Docker...
[SUCCESS] Images Docker construites.
[INFO] Démarrage des conteneurs Apache...
[SUCCESS] Conteneurs démarrés.
=========================================================
[SUCCESS] Configuration du laboratoire CVE Apache terminée
=========================================================
Vérifier l'Environnement
Exécutez
cd scripts
sudo python3 verify_lab.py
Vérification réussie
L'outil de vérification contrôle :
- L'installation de Docker
- Le démon Docker
- Les conteneurs en cours d'exécution
- Les versions d'Apache
- Le code source Apache
- La fonction cible
- Les services HTTP
- La disponibilité de GDB
Exécuter l'Analyse des Correctifs
Déplacez-vous dans le répertoire des scripts.
cd scripts
Exécutez
sudo python3 analyze_patch.py
Exemple de sortie
Exemple de Sortie d'Analyse
Rapport d'analyse des correctifs d'Apache HTTP Server
Constatations de sécurité
[MEDIUM]
Décodage de pourcentage introduit ou modifié
[MEDIUM]
Validation hexadécimale introduite ou modifiée
[HIGH]
Gestion du traversement de répertoire améliorée
[HIGH]
Pipeline de normalisation des chemins mis à jour
[CRITICAL]
Protection contre le traversement renforcée
Rapports Générés
Après une exécution réussie, les rapports suivants sont générés :
analysis/
├── analysis.md
├── analysis.json
└── analysis.html
Pipeline d'Analyse
Charger le Code Source Apache
│
▼
Extraire la Fonction Cible
│
▼
Extraire les Informations Structurelles
│
▼
Comparer Vulnérable vs Corrigé
│
▼
Raisonnement de Sécurité
│
▼
Générer les Rapports
Capacités de Sécurité Détectées
- Encodage / Décodage de Pourcentage
- Validation Hexadécimale
- Gestion des Segments de Points
- Normalisation des Séparateurs de Chemins
- Indicateurs de Normalisation URI
- Protection contre le Traversement de Répertoire
Constatations Générées
Le moteur de raisonnement identifie les améliorations de sécurité telles que :
- Décodage de pourcentage introduit
- Validation hexadécimale introduite
- Gestion du traversement de répertoire améliorée
- Normalisation des chemins mise à jour
- Protection contre le traversement renforcée
Objectif Pédagogique
Ce projet est destiné à :
- Aux chercheurs en sécurité
- Aux étudiants apprenant l'analyse de la cause racine des CVE
- À l'ingénierie logicielle sécurisée
- À l'analyse statique du code source
- À l'analyse de diff de correctifs
- À la recherche sur les vulnérabilités
Licence
Ce projet est publié sous la licence MIT.
Auteur
Kunal Khandelwal
B.Tech Génie Informatique (Cyber Sécurité)
Recherche en Sécurité | Sécurité des Applications | Docker | Analyse de Code Source