Retour aux mises à jour
UpdatedAug 3, 2026

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.

Partager

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

image

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

image

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

Catégories