AsafAvieli/malware_analysis_sandbox
GitHub: AsafAvieli/malware_analysis_sandbox
一个基于 Docker 隔离和 Streamlit 仪表板的全栈恶意软件动态分析沙箱,通过规则引擎对可疑脚本的运行时行为进行监控并给出结论。
Stars: 0 | Forks: 0
## 恶意软件分析沙箱
项目链接:https://github.com/AsafAvieli/task2_sandbox
一款全栈安全工具,可在隔离的 Docker 容器内执行可疑脚本,并分析运行时行为以寻找恶意软件特征。它将 Python 编排引擎与 Streamlit 仪表板相结合,让您能够快速运行动态分析并查看结果。
该系统提供两种方式来分析样本:
* **交互式仪表板**:通过 Streamlit 实时上传、执行、查看实时行为以及下载报告。
* **编程式分析引擎**:通过 `sandbox_manager.py` 直接编排,适用于脚本化运行和自动化报告。
## 技术栈
* **后端**:Python (Docker SDK + Threading) - 之所以选择它,是因为其具备简单的容器控制、强大的本地自动化以及清晰的监控编排能力。
* **前端 (Web)**:Streamlit - 提供纯 Python 的交互式分析 UI,可快速运行并随时用于演示。
* **隔离层**:Docker - 使用专用的运行时镜像在远离主机操作系统的环境中运行样本。
* **监控**:结合使用三个小型工具以清晰查看行为:
* `watchdog` 监视 `sandbox_workspace` 中的文件更改(创建 / 修改 / 删除)。
* `psutil` 提供主机级别的系统/进程信息,并协助进行运行时诊断。
* `/proc/net/tcp` 轮询读取*容器内部*的活动 TCP 连接,以检测出站通信。
这种组合为样本在执行期间的行为提供了可靠的可见性。
* **API**:FastAPI 提供了一个简单的 `/health` 端点,可快速确认后端已启动并准备就绪。
## 检测能力
引擎从多个维度扫描每个样本:
* **文件活动追踪**:记录样本在沙箱文件夹中创建、更改或删除的每一个文件。
* **隐藏文件检测**:标记隐藏文件(如 `.malware_lab_marker`),因为恶意软件经常使用它们来隐藏数据或实现持久化。
* **进程追踪**:检测样本启动的新子进程,这可能表明存在多阶段行为。
* **网络追踪**:检测到外部 IP 的新出站 TCP 连接,这可能表明存在信标/C2 流量。
* **将删除行为作为警告信号**:将可疑的删除操作视为可能的清理/自我删除行为。
* **噪音消除**:过滤内部的监控命令,使得 UI/报告中只显示样本的行为。
* **明确结论**:根据观察到的运行时证据,生成简单的**恶意 (Malicious)** 或**干净 (Clean)** 结果。
## 摘要和结论是如何生成的
本项目使用**基于规则的逻辑**来生成摘要和结论。
* **行为分析摘要**:由描述运行中发现的事件模板构建而成:
- 隐藏文件写入
- 外部网络连接
- 子进程执行
- 可疑文件删除
* **执行摘要**:由相同的过滤事件构建而成,并作为关键发现展示。
* **结论规则**:
- 如果检测到可疑指标(例如隐藏文件、外部连接、子进程或可疑删除),则为**恶意**。
- 如果未检测到这些指标,则为**干净**。
由于逻辑是确定性的,相同的行为将始终产生相同的摘要和结论。
## 如何运行
### 前置条件
- Python 3.9+
- 本地运行着 Docker Desktop
### 安装说明
```
git clone https://github.com/AsafAvieli/task2_sandbox
cd task2_sandbox
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
### 启动应用
**终端 1 - Streamlit UI:**
```
source .venv/bin/activate
streamlit run app.py
```
在 http://localhost:8501 打开
**终端 2 - 可选的 API 健康检查端点:**
```
source .venv/bin/activate
uvicorn api:app --reload --port 8000
```
### CLI 风格的样本运行(通过 UI 流程)
1. 上传 `malware_sample.py` 或 `clean_sample.py`。
2. 点击 **Run Analysis**。
3. 查看 **Live Behavior**、**Executive Summary**,并下载 **forensic_report.txt**。
## 工作流程
1. **初始化** - 启动容器、watchdog 和监控线程;捕获干净基线。
2. **执行** - 在 Docker 中运行样本,并且仅记录本次运行的行为增量。
3. **分析** - 生成结论、关键发现、行为描述以及取证报告。
标签:AV绕过, DAST, Docker SDK, Docker容器, FastAPI, IP 地址批量处理, Kubernetes, psutil, Python, Streamlit, watchdog, Web仪表盘, 前端界面, 后端开发, 威胁分析, 安全沙箱, 工具集, 恶意软件分析, 攻击面发现, 文件活动监控, 无后门, 沙箱, 网络信息收集, 网络安全, 网络连接监控, 自动化侦查工具, 自动化报告, 访问控制, 请求拦截, 运行时行为监控, 进程跟踪, 逆向工具, 隐私保护, 隐藏文件检测, 隔离环境