
Инструмент статического анализа патчей на Python для изучения первопричины и устранения уязвимости CVE-2021-41773 (Path Traversal в Apache HTTP Server) путем сравнения исходного кода уязвимой версии Apache HTTP Server 2.4.49 с исправленной реализацией 2.4.51.
Инструмент статического анализа патчей на Python для изучения первопричины и устранения CVE-2021-41773 (Path Traversal в Apache HTTP Server) путём сравнения уязвимого исходного кода Apache HTTP Server 2.4.49 с исправленной реализацией 2.4.51.
Проект выполняет семантический анализ исходного кода вместо простого текстового сравнения. Он извлекает структурную информацию из целевой функции, сравнивает обе версии, выводит изменения, значимые с точки зрения безопасности, и формирует профессиональные отчёты об анализе.
Apache Source Code
│
▼
parser.py
│
▼
extractor.py
│
▼
comparator.py
│
▼
reasoning.py
│
▼
reports.py
cve-2021-41773-source-code-analysis
│
├── docker
│ ├── apache249
│ │ ├── Dockerfile # Создаёт контейнер с Apache HTTP Server 2.4.49
│ │ └── docker-compose.yml # Запускает контейнер с уязвимым Apache
│ │
│ └── apache251
│ ├── Dockerfile # Создаёт контейнер с Apache HTTP Server 2.4.51
│ └── docker-compose.yml # Запускает контейнер с исправленным Apache
│
├── labs # Хранит загруженный исходный код Apache
│
├── references
│ └── resources.md # Справочные материалы для исследования CVE
│
├── scripts
│ ├── patch_analysis
│ │ ├── __init__.py # Инициализирует пакет анализа
│ │ ├── parser.py # Извлекает целевые C-функции из исходников Apache
│ │ ├── extractor.py # Извлекает переменные, вызовы, условия и возможности безопасности
│ │ ├── comparator.py # Сравнивает структуры уязвимой и исправленной функций
│ │ ├── reasoning.py # Выполняет анализ безопасности обнаруженных изменений
│ │ ├── reports.py # Координирует генерацию отчётов
│ │ ├── markdown_report.py # Генерирует аналитический отчёт в Markdown
│ │ ├── json_report.py # Генерирует аналитический отчёт в JSON
│ │ └── html_report.py # Генерирует аналитический отчёт в HTML
│ │
│ ├── analyze_patch.py # Основная точка входа для анализа патча
│ ├── verify_lab.py # Проверяет конфигурацию Docker-лаборатории
│ └── debug.py # Выводит необработанные результаты сравнения для отладки
│
├── analysis # Сгенерированные аналитические отчёты
│
├── setup.sh # Автоматически подготавливает полную лабораторию
│
├── LICENSE
└── README.md
Клонируйте репозиторий
git clone https://github.com/KunalKhandelwal-dev/cve-2021-41773-source-code-analysis.git
Перейдите в проект
cd cve-2021-41773-source-code-analysis
Запустите автоматический скрипт настройки.
sudo bash setup.sh
Скрипт настройки автоматически выполняет следующие задачи:
Пример вывода
[INFO] Checking required tools...
[SUCCESS] Required tools found.
[INFO] Checking Docker...
[SUCCESS] Docker is running.
[INFO] Downloading Apache HTTP Server 2.4.49...
[SUCCESS] Apache 2.4.49 downloaded.
[INFO] Downloading Apache HTTP Server 2.4.51...
[SUCCESS] Apache 2.4.51 downloaded.
[INFO] Building Docker images...
[SUCCESS] Docker images built.
[INFO] Starting Apache containers...
[SUCCESS] Containers started.
=========================================================
[SUCCESS] Apache CVE Lab Setup Complete
=========================================================
Выполните
cd scripts
sudo python3 verify_lab.py
Успешная проверка
Инструмент проверки контролирует:
Перейдите в каталог scripts.
cd scripts
Выполните
sudo python3 analyze_patch.py
Пример вывода
Apache HTTP Server Patch Analysis Report
Security Findings
[MEDIUM]
Percent decoding introduced or modified
[MEDIUM]
Hexadecimal validation introduced or modified
[HIGH]
Directory traversal handling improved
[HIGH]
Path normalization pipeline updated
[CRITICAL]
Traversal protection strengthened
После успешного выполнения формируются следующие отчёты:
analysis/
├── analysis.md
├── analysis.json
└── analysis.html
Load Apache Source
│
▼
Extract Target Function
│
▼
Extract Structural Information
│
▼
Compare Vulnerable vs Patched
│
▼
Security Reasoning
│
▼
Generate Reports
Механизм анализа выявляет такие улучшения безопасности, как:
Проект предназначен для:
Этот проект распространяется под лицензией MIT License.
Kunal Khandelwal
B.Tech Computer Science Engineering (Cyber Security)
Security Research | Application Security | Docker | Source Code Analysis