CVE-2024-3094(XZ Utils バックドア)のセキュリティレビュー。脅威モデリング、静的/動的コード解析、AFL++を使用したファジング、および概念実証エクスプロイトを含みます。再現可能な分析のためのDocker環境を含みます。
| ファイル | 説明 |
|---|
docs/ThreatModel.md | STRIDE脅威モデル + 図 |
docs/Report_Final.pdf | 最終レポート (57ページ以上) |
exploit/PoC.py | 脆弱性のProof-of-Concept |
tests/ | 自動テストセット (pytest) |
reports/Findings.xlsx | セキュリティレビューの発見事項一覧 |
presentation/ | プレゼンテーションスライドと動画 |
| コンポーネント | バージョン | 目的 |
|---|---|---|
| Docker Engine | 20.10+ | 環境のコンテナ化 |
| Git | 2.20+ | バージョン管理 |
| Python | 3.8+ | テストとスクリプト |
| GCC/Clang | 9.0+ | XZ Utilsのコンパイル |
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
静的解析
# シンボル分析 (nm)
nm -C liblzma.a | grep -iE "ssh|backdoor|hook|init"
# Cppcheck
cppcheck --enable=all --inconclusive src/liblzma 2> reports/cppcheck_log.txt
動的解析
# 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 # Proof-of-Concept
│ ├── 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 # プレゼンテーションスライド