Skip to content

DyLaiT/Linux-qemu-GDB-container

Repository files navigation

Multi-Architecture Malware Sandbox

一個支援 PEELF 檔案的全自動惡意軟體沙箱系統,使用 Docker 容器和 QEMU 實現多架構動態分析。

✨ 功能特色

支援的檔案格式

  • PE (Portable Executable) - Windows 執行檔 (使用 Wine)
  • ELF (Executable and Linkable Format) - Linux 執行檔 (使用 QEMU)

支援的 CPU 架構

  • 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 docker

1. 建置容器

cd Linux-qemu-GDB-container

# 使用 Docker Compose 建置所有容器
docker-compose build

2. 分析 ELF 樣本 (含 Yara 掃描)

# 將樣本放入 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

3. 查看分析結果

# 結果輸出到 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 掃描測試

# 使用內建測試腳本
./test_yara_scan.sh

# 查看檢測結果
cat output/*/report.json | grep -A5 '"rule"'

啟動 GDB Server 進行動態除錯

# 使用便捷腳本
./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 規則

系統包含以下 Yara 規則集:

  1. malware_common.yar - 通用惡意程式檢測

    • 可疑網路活動
    • Shell 命令執行
    • 加密貨幣挖礦
    • 後門指標
    • 加殼/混淆檢測
    • C2 通訊模式
  2. mirai_botnet.yar - Mirai 殭屍網路檢測

    • Mirai 通用模式
    • 掃描模組
    • 攻擊模組
    • DDoS 指標
    • Satori 變種
  3. 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