CVE-2024-3094 (XZ Utils बैकडोर) की सुरक्षा समीक्षा, जिसमें खतरा मॉडलिंग, स्थैतिक/गतिशील कोड विश्लेषण, AFL++ के साथ फ़ज़िंग, और एक प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट शामिल है। पुनरुत्पादनीय विश्लेषण के लिए Docker वातावरण शामिल है।
लेखक: इवान सुशिन
तिथि: मार्च 2026
यह रिपॉजिटरी CVE-2024-3094 (XZ उपयोगिताएँ लाइब्रेरी में आपूर्ति श्रृंखला हमला) भेद्यता की पूर्ण सुरक्षा समीक्षा के परिणाम प्रस्तुत करती है।
कार्य का उद्देश्य:
आर्टिफैक्ट्स:
| फ़ाइल | विवरण |
|---|---|
docs/ThreatModel.md | STRIDE खतरा मॉडल + आरेख |
docs/Report_Final.pdf | अंतिम रिपोर्ट (57+ पृष्ठ) |
exploit/PoC.py | भेद्यता का प्रूफ-ऑफ-कॉन्सेप्ट |
tests/ | स्वचालित परीक्षणों का सेट (pytest) |
reports/Findings.xlsx | सुरक्षा समीक्षा निष्कर्ष तालिका |
presentation/ | प्रस्तुति स्लाइड्स और वीडियो |
| घटक | संस्करण | उद्देश्य |
|---|---|---|
| Docker Engine | 20.10+ | पर्यावरण कंटेनरीकरण |
| Git | 2.20+ | संस्करण नियंत्रण |
| Python | 3.8+ | परीक्षण और स्क्रिप्ट |
| GCC/Clang | 9.0+ | XZ उपयोगिताएँ संकलन |
cd kaspersky_task_SushinIvan
# इमेज बनाएं
docker build -t cveanalysis:1.0 .
# इमेज जांचें
docker images | grep cveanalysis
# कंटेनर चलाएं
docker run -it --rm --privileged -v $(pwd):/work cveanalysis:1.0
cd /work/src/vulnerable-code/build
# कैश साफ़ करें
rm -rf CMakeCache.txt CMakeFiles/
# कॉन्फ़िगरेशन
cmake .. -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Debug \
-DUSE_ATTR_IFUNC=OFF -DENABLE_NLS=OFF
# निर्माण
make -j$(nproc)
# संस्करण जांच
./xz --version
# अपेक्षित आउटपुट: xz (XZ Utils) 5.6.1
cd /work/src/patched-code/build
# कैश साफ़ करें
rm -rf CMakeCache.txt CMakeFiles/
# कॉन्फ़िगरेशन
cmake .. -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Debug \
-DUSE_ATTR_IFUNC=OFF -DENABLE_NLS=OFF
# निर्माण
make -j$(nproc)
# संस्करण जांच
./xz --version
# अपेक्षित आउटपुट: xz (XZ Utils) 5.6.2
cd /work/src/vulnerable-code/build
# निर्माण
make -j$(nproc)
# परियोजना परीक्षण चलाएं
make test
# अपेक्षित परिणाम: All tests passed
# निर्भरताएँ स्थापित करें
cd /work
pip3 install -r tests/requirements.txt
# pytest चलाएं
python3 -m pytest tests/ -v
अपेक्षित परिणाम: 5 passed
Static Analysis
# प्रतीक विश्लेषण (nm)
nm -C liblzma.a | grep -iE "ssh|backdoor|hook|init"
# Cppcheck
cppcheck --enable=all --inconclusive src/liblzma 2> reports/cppcheck_log.txt
Dynamic Analysis
# AddressSanitizer (फ़्लैग्स के साथ निर्माण)
cmake .. -DCMAKE_C_FLAGS="-fsanitize=address -g"
# Valgrind
valgrind --leak-check=full ./exploit/test_trigger
# AFL++ Fuzzing (30 मिनट)
timeout 1800 afl-fuzz -i fuzzing/inputs -o fuzzing/outputs -- ./exploit/test_trigger_afl @@
.
├── Dockerfile # Docker इमेज
├── README.md # यह फ़ाइल
├── Report_Final.pdf # अंतिम रिपोर्ट
├── docs/
│ ├── ThreatModel.md # खतरा मॉडल
│ └── threat_model.png # आरेख
├── exploit/
│ ├── PoC.py # प्रूफ-ऑफ-कॉन्सेप्ट
│ ├── test_trigger.c # ASAN/AFL++ के लिए परीक्षण
│ ├── test_trigger # बाइनरी
│ └── test_trigger_afl # इंस्ट्रूमेंटेड बाइनरी
├── tests/
│ ├── src/
│ │ └── test_cve2024_3094.py # स्वचालित परीक्षण
│ ├── CMakeLists.txt # परीक्षण कॉन्फ़िगरेशन
│ └── requirements.txt # Python निर्भरताएँ
├── reports/
│ ├── Findings.xlsx # निष्कर्ष तालिका
│ ├── asan_test_output.txt # ASAN लॉग
│ ├── valgrind_log.txt # Valgrind लॉग
│ ├── cppcheck_log.txt # Cppcheck लॉग
│ ├── afl_fuzzing_log.txt # AFL++ लॉग
│ └── version_*.txt # निर्माण संस्करण
└── presentation/
└── slides.md # प्रस्तुति स्लाइड्स