GuySananes/malware-sandbox
GitHub: GuySananes/malware-sandbox
基于 Docker 和 Python 的轻量级恶意软件行为分析沙箱,可在隔离环境中安全执行可疑文件并自动生成 HTML 监控报告。
Stars: 0 | Forks: 0
# 恶意软件分析沙箱
一个基于 Python 的沙箱,可在隔离的 Docker 容器内执行可疑文件,监控其行为,并生成详细的 HTML 报告。
## 工作原理
1. 通过 Web UI 上传可疑文件
2. 文件在一次性 Docker 容器内执行
3. 执行期间有三个监控器同时运行:
- **Filesystem(文件系统)** — 捕获文件创建、删除和修改操作
- **Network(网络)** — 捕获所有出站连接尝试
- **Processes(进程)** — 每 3 秒对所有生成的进程进行快照
4. 容器在 30 秒后销毁 —— 不留任何痕迹
5. 生成风险报告并在浏览器中显示
## 项目结构
```
malware-sandbox/
├── container/
│ ├── Dockerfile # Sandbox environment definition
│ └── fake_malware.sh # Test sample that simulates malware behavior
├── orchestrator/
│ ├── sandbox.py # Core logic: container lifecycle + monitoring
│ ├── report.py # Log parsing and HTML report generation
│ └── test_sandbox.py # CLI test script
├── ui/
│ └── app.py # Streamlit web interface
└── reports/ # Generated HTML reports (git-ignored)
```
## 环境要求
- Python 3.8+
- Docker
## 设置
```
# Clone the repo
git clone https://github.com/GuySananes/malware-sandbox.git
cd malware-sandbox
# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install docker streamlit
```
## 使用方法
### Web UI
```
streamlit run ui/app.py
```
打开 http://localhost:8501,上传文件并点击 Run Sandbox Analysis。
### 命令行
```
cd orchestrator
python3 test_sandbox.py
```
## 安全设计
- 容器运行在 **仅限内部的 Docker 网络**(`internal=True`)上 —— 出站流量被阻止,但连接尝试仍会被 tcpdump 捕获
- 恶意软件样本在容器内以 **只读** 方式挂载
- 容器在执行后 **始终会被销毁**,即使沙箱崩溃也是如此
- 主机文件系统永远不会被样本触碰
## 沙箱局限性
- 仅限行为分析 —— 无静态分析
- 无法检测内核级 rootkit
- 30 秒的执行窗口可能会遗漏延迟触发器
- 容器逃逸(罕见)理论上可能到达主机
标签:AMSI绕过, DAST, Docker容器, HTML报告生成, Kubernetes, Python安全工具, Streamlit, Web安全界面, 威胁检测, 安全测试, 恶意样本分析, 恶意软件分析, 搜索语句(dork), 攻击性安全, 攻击面发现, 文件系统监控, 沙箱技术, 结构化查询, 网络安全, 网络流量捕获, 自动化安全, 行为监控, 访问控制, 请求拦截, 逆向工具, 隐私保护, 隔离环境