marez8505/SandboxWatch
GitHub: marez8505/SandboxWatch
SandboxWatch 是一个动态恶意软件分析沙箱,通过在受控环境中运行可疑文件并捕获其实时行为,弥补静态分析无法揭示样本实际操作的不足。
Stars: 0 | Forks: 0
# SandboxWatch
**用于行为分析的动态恶意软件沙箱。**
## 它的功能
SandboxWatch 在受控环境中执行可疑文件,并
实时捕获其行为。它涵盖了动态分析的工作流程:
1. **进程监控器** — 生成目标进程,记录所有 API 调用(创建文件、写入注册表、网络连接、进程生成)
2. **网络流量捕获** — 记录 DNS 查询、HTTP 请求、C2 信标模式
3. **文件系统监控器** — 实时追踪文件的创建、修改和删除
4. **进程树记录器** — 捕获父子进程关系和注入指标
5. **IOC 提取器** — 从观察到的行为中自动生成 IOC(哈希、IP、域名、互斥锁、注册表项)
6. **行为报告生成器** — 包含所有操作的时间线和风险评分
## 为什么这些很重要
静态分析(文件头、字符串、哈希)只能告诉你二进制文件*看起来*是什么样。
动态分析告诉你它*做*了什么:
- **进程监控**揭示恶意软件在执行后试图做什么
- **网络捕获**显示 C2 通信——它连接回哪里
- **文件系统追踪**显示它释放、修改或删除了什么
- **进程树**揭示注入行为(例如,恶意软件生成 svchost.exe 子进程)
- **IOC 提取**将观察结果转化为检测特征
每个模块都包含解释性注释,说明它*捕获*了什么以及*为什么*它很重要。
## 安装说明
```
pip install -r requirements.txt
```
### 依赖项
| 包 | 用途 |
|---------|---------|
| `psutil` | 进程和系统监控 |
| `click` | CLI 框架 |
| `watchdog` | 文件系统事件监控 |
| `rich` | 终端输出格式化 |
## 用法
```
# 通过名称监控进程
python main.py monitor --name notepad.exe
# 监控特定 PID
python main.py monitor --pid 1234
# 监控目录中的 filesystem 更改
python main.py watch --path C:\Users\User\Downloads
# 捕获网络连接
python main.py capture --duration 60
# 对进程运行完整分析
python main.py analyze --name suspicious.exe --duration 120
# 生成行为报告
python main.py report --pid 1234 --format html
```
## 架构
```
SandboxWatch/
├── main.py # CLI entry point (Click)
├── core/
│ ├── monitor.py # Process monitoring (API calls, CPU, memory)
│ ├── capture.py # Network traffic capture
│ ├── watcher.py # Filesystem watcher (watchdog)
│ ├── process_tree.py # Parent-child process relationships
│ ├── ioc_extractor.py # IOC auto-extraction from observations
│ └── report.py # Behavioral report generation
├── data/
│ └── sandboxwatch.db # SQLite database (auto-created)
├── requirements.txt
└── README.md
```
## 学习路径
1. **monitor.py** — 从这里开始。了解进程监控揭示了什么。
了解 CPU 激增、内存分配和句柄访问模式。
2. **capture.py** — 网络指标。C2 流量是什么样的?
了解信标模式、DNS 异常和异常连接。
3. **watcher.py** — 文件系统痕迹。恶意软件释放了什么?
了解临时目录、启动文件夹和 DLL 侧加载。
4. **process_tree.py** — 进程注入。恶意软件家族如何隐藏?
了解父子进程异常和进程镂空。
5. **ioc_extractor.py** — 将观察结果转化为检测。
了解什么是好的 IOC 以及如何使其具有可操作性。
6. **report.py** — 文档记录。没有报告的分析只是噪音。
## 许可证
MIT 许可证 — 仅供教育使用。请参阅上方的隔离警告。
## 作者
Edward Marez — 网络安全作品集项目
标签:DAST, 动态沙箱, 威胁情报, 安全, 开发者工具, 恶意软件分析, 网络信息收集, 超时处理, 逆向工具