一個支援 PE 和 ELF 檔案的全自動惡意軟體沙箱系統,使用 Docker 容器和 QEMU 實現多架構動態分析。
- ✅ PE (Portable Executable) - Windows 執行檔 (使用 Wine)
- ✅ ELF (Executable and Linkable Format) - Linux 執行檔 (使用 QEMU)
- x86 / x86_64 (Intel/AMD)
- ARM / AArch64 (ARM 32/64-bit)
- MIPS / MIPSel
- PowerPC / PowerPC64
-
📊 靜態分析
- 檔案格式解析 (PE/ELF headers)
- 區段 (Sections) 分析
- 匯入/匯出函數 (Imports/Exports)
- 字串提取與熵值計算
- Yara 規則掃描 (Mirai, Gafgyt, IoT malware)
-
🔬 動態分析
- 多架構執行 (QEMU user-mode emulation)
- 系統呼叫追蹤 (strace/sysdig)
- 網路流量捕獲 (tshark/pcap)
- GDB 遠端除錯支援
- 執行行為監控
-
📝 報告生成
- JSON 格式報告
- IoC 提取 (IP, URL, 檔案路徑)
- Yara 匹配結果
┌─────────────────────────────────────────────────┐
│ Sandbox Controller │
│ (自動檔案類型識別與路由) │
└─────────────┬───────────────────────────────────┘
│
┌───────┴────────┐
│ │
┌─────▼─────┐ ┌────▼──────┐
│ PE Sandbox│ │ELF Sandbox│
│ (Wine) │ │ (QEMU) │
│ │ │ + Yara │
└───────────┘ └───────────┘
│ │
└────────┬───────┘
┌─────▼──────┐
│ Output │
│ (Reports) │
└────────────┘
# 安裝 Docker 和 Docker Compose
sudo apt-get update
sudo apt-get install -y docker.io docker-compose
# 啟動 Docker 服務
sudo systemctl start docker
sudo systemctl enable dockercd Linux-qemu-GDB-container
# 使用 Docker Compose 建置所有容器
docker-compose build# 將樣本放入 samples 目錄
cp /path/to/malware ./samples/
# 執行分析 (自動 Yara 掃描)
docker run --rm \
-v $(pwd)/samples:/samples \
-v $(pwd)/output:/output \
linux-qemu-gdb-container_elf-sandbox-v2 \
python3 /usr/local/bin/analyze_elf_enhanced.py \
/samples/malware \
-o /output/report_$(date +%Y%m%d%H%M) \
--static-only# 結果輸出到 output 目錄
ls -la output/
# 查看 JSON 報告
cat output/report_*/report.json | python3 -m json.tool
# 查看 Yara 匹配
cat output/report_*/report.json | grep -A20 yara_matches- Yara 規則掃描指南 - Yara 規則使用、自訂規則、IoC 提取
- IDA Pro 整合指南 - GDB Server 設定、遠端除錯
- 進階使用指南 - 批次分析、自訂配置、網路流量分析
# 使用內建測試腳本
./test_yara_scan.sh
# 查看檢測結果
cat output/*/report.json | grep -A5 '"rule"'# 使用便捷腳本
./start_gdb_server.sh samples/malware 1234
# 在 IDA Pro 中連線
# Debugger → Remote GDB debugger
# Hostname: localhost
# Port: 1234詳細說明請參考:IDA Pro 整合指南
# 分析所有 ARM 樣本
for sample in samples/*arm*; do
docker run --rm \
-v $(pwd)/samples:/samples \
-v $(pwd)/output:/output \
linux-qemu-gdb-container_elf-sandbox-v2 \
python3 /usr/local/bin/analyze_elf_enhanced.py \
"/samples/$(basename $sample)" \
-o "/output/$(date +%Y%m%d%H%M)_$(basename $sample)" \
--static-only
done系統包含以下 Yara 規則集:
-
malware_common.yar - 通用惡意程式檢測
- 可疑網路活動
- Shell 命令執行
- 加密貨幣挖礦
- 後門指標
- 加殼/混淆檢測
- C2 通訊模式
-
mirai_botnet.yar - Mirai 殭屍網路檢測
- Mirai 通用模式
- 掃描模組
- 攻擊模組
- DDoS 指標
- Satori 變種
-
iot_malware.yar - IoT 惡意程式檢測
- Gafgyt/BASHLITE
- Hajime 蠕蟲
- VPNFilter
- UPnP 利用
詳細說明請參考:Yara 規則掃描指南
報告包含以下資訊:
{
"file": "/samples/malware",
"timestamp": "2025-12-03T14:30:00",
"static_analysis": {
"architecture": "ARM",
"entropy": 6.26,
"interesting_strings": {
"ips": ["192.168.1.1", "10.0.0.1"],
"urls": ["http://evil.com/payload"],
"suspicious": ["backdoor", "shell"]
}
},
"yara_matches": [
{
"rule": "Mirai_Generic",
"severity": "critical",
"meta": {
"description": "Detects Mirai botnet patterns"
}
}
]
}Linux-qemu-GDB-container/
├── README.md # 本文檔
├── docs/ # 詳細文檔
│ ├── YARA_GUIDE.md # Yara 規則指南
│ ├── IDA_INTEGRATION.md # IDA Pro 整合
│ └── ADVANCED_USAGE.md # 進階使用
│
├── docker-compose.yml # Docker 編排配置
│
├── elf-sandbox/ # ELF 沙箱
│ ├── Dockerfile
│ ├── analyze_elf_enhanced.py # 增強分析 (含 Yara)
│ └── yara-rules/ # Yara 規則庫
│ ├── malware_common.yar
│ ├── mirai_botnet.yar
│ └── iot_malware.yar
│
├── pe-sandbox/ # PE 沙箱
│ ├── Dockerfile
│ └── analyze_pe.py
│
├── controller/ # 控制器
│ ├── controller.py
│ ├── file_detector.py
│ └── report_generator.py
│
├── samples/ # 測試樣本目錄
│ └── .gitkeep
│
├── output/ # 分析報告目錄
│ └── .gitkeep
│
├── start_gdb_server.sh # GDB server 啟動腳本
└── test_yara_scan.sh # Yara 測試腳本
⚠️ 永遠在隔離環境中運行惡意程式⚠️ 使用 Docker 容器提供基本隔離⚠️ 建議使用獨立的 VM 或實體機器進行分析⚠️ 不要在生產環境或重要系統上運行⚠️ 分析完成後檢查並清理所有輸出
歡迎提交 Issue 和 Pull Request!
本專案採用 MIT 授權條款。
維護者: DYY 最後更新: 2025-12-03