
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.
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.
Code Source Apache
│
▼
parser.py
│
▼
extractor.py
│
▼
comparator.py
│
▼
reasoning.py
│
▼
reports.py
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
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
Exécutez le script de configuration automatisé.
sudo bash setup.sh
Le script de configuration effectue automatiquement les tâches suivantes :
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
=========================================================
Exécutez
cd scripts
sudo python3 verify_lab.py
Vérification réussie
L'outil de vérification contrôle :
Déplacez-vous dans le répertoire des scripts.
cd scripts
Exécutez
sudo python3 analyze_patch.py
Exemple de sortie
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
Après une exécution réussie, les rapports suivants sont générés :
analysis/
├── analysis.md
├── analysis.json
└── analysis.html
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
Le moteur de raisonnement identifie les améliorations de sécurité telles que :
Ce projet est destiné à :
Ce projet est publié sous la licence MIT.
Kunal Khandelwal
B.Tech Génie Informatique (Cyber Sécurité)
Recherche en Sécurité | Sécurité des Applications | Docker | Analyse de Code Source