jesuismarie/Automated-Malware-Analysis-Workflow
GitHub: jesuismarie/Automated-Malware-Analysis-Workflow
一个全自动化恶意软件分析系统,通过沙箱隔离和静态分析技术,实现可疑文件的实时检测与报告生成。
Stars: 1 | Forks: 0
# 自动化恶意软件分析与安全报告工作流
## 项目概述
**自动化恶意软件分析工作流**是一个模块化、全自动化的系统,用于实时**检测、分析并报告**可疑文件。
它持续监控指定目录,在**加固的Docker沙箱**中安全分析文件,并生成**全面报告**——全程无需人工干预。
专为网络安全研究和恶意软件取证设计,此工作流确保分析过程**安全、可复现且隔离**,具备完整可追溯性。
## 功能特性
* **持续监控** — 基于 `watchdog` 的实时目录监视。
* **隔离沙箱** — 使用非 root、无网络 Docker 环境进行容器化静态分析。
* **静态分析引擎** — YARA 扫描、字符串及 IOC 提取。
* **中心化队列系统** — 通过带文件锁的 `queue.json` 跟踪和处理文件。
* **自动生成报告** — 生成结构化 JSON 和人类可读的 Markdown 报告,并进行风险评分。
* **零手动配置** — 首次运行时通过 `Makefile` 和 `config.json` 完成全部配置。
* **可审计日志** — 工作流所有阶段(从检测到报告)的详细日志记录。
## 入门指南
### 前置条件
请确保系统已安装以下软件:
* **Python 3.10+**
* **Docker** 与 **Docker Compose**
* **Make**
### 安装说明
克隆代码库并构建环境:
```
git clone https://github.com/jesuismarie/Automated-Malware-Analysis-Workflow
cd Automated-Malware-Analysis-Workflow
make venv
make setup # Configure monitored directory, file types, and shared directory
make run
```
如需使用默认配置,只需运行:
```
git clone https://github.com/jesuismarie/Automated-Malware-Analysis-Workflow
cd Automated-Malware-Analysis-Workflow
make
```
这将执行以下操作:
* 创建虚拟环境。
* 安装所有 Python 依赖。
* 生成默认的 `config.json` 文件。
* 创建日志、报告、队列和输出目录。
## 使用方法
您可以通过 `make` 启动各个阶段或完整工作流:
| 命令 | 描述 |
| ------------------- | --------------------------------------------------- |
| `make help` | 显示帮助信息。 |
| `make venv` | 创建虚拟环境并安装依赖。 |
| `make config` | 如果缺失,则生成默认的 `config.json`。 |
| `make setup` | 设置目录和配置。 |
| `make run` | 执行完整工作流(监控 → 分析 → 报告)。 |
| `make sandbox-up` | 构建并运行 Docker 沙箱。 |
| `make clean` | 删除临时文件(保留虚拟环境)。 |
| `make clean-all` | 完全清理(包括虚拟环境)。 |
## 配置说明
系统使用 `config.json` 进行配置,该文件在首次启动时自动生成。
**示例:**
```
{
"monitoring": {
"watch_directory": "/home/user/Downloads",
"recursive": true,
"file_types": ["*"],
"shared_directory": "/home/user/malware-analysis"
}
}
```
### 可编辑参数
| 键 | 描述 |
| ------------------ | ------------------------------------------ |
| `watch_directory` | 要监视新文件的目录。 |
| `file_types` | 过滤文件类型(例如,`[".exe", ".pdf"]`)。 |
| `recursive` | 若为 `true`,则监视子目录。 |
| `shared_directory` | 用于沙箱 I/O 的共享文件夹位置。 |
## 工作流阶段
### **阶段 1 – 文件监控**
* 检测监视目录中的文件系统更改。
* 过滤临时/未完成的下载文件。
* 计算 SHA-256 并将文件元数据存储到 `queue.json`。
* 将文件安全复制到 `shared/queue/` 目录。
### **阶段 2 – 静态分析**
* 在 Docker 容器中执行,设置 `network_mode: none` 和 `cap_drop: ALL`。
* 使用以下方式分析文件:
* **YARA 规则** 进行模式匹配。
* **文件类型检测** (`magic`)。
* **IOC 提取**(URL、IP、注册表键)。
* 输出包含风险评估的 JSON 结果。
### **阶段 3 – 报告生成**
* 收集分析结果。
* 将数据合并为人类可读的 Markdown 和结构化 JSON 报告。
* 分配风险等级(低/中/高)并提供处置建议。
* 更新 `queue.json` 状态为 `reported`。
## 日志记录
日志同时存储在主机和容器中,用于调试和审计。
| 级别 | 用途 |
| ------- | -------------------- |
| INFO | 常规操作 |
| DEBUG | 详细调试输出 |
| WARNING | 非关键问题 |
| ERROR | 组件故障 |
**位置:**
* 主机: `~/malware-analysis/logs/`
* 容器: `/analysis/logs/`
## 项目结构
```
Automated-Malware-Analysis-Workflow/
├── analyzers
│ └── static_analyzer.py
├── docker-compose.yml
├── LICENSE
├── main.py
├── Makefile
├── monitoring
│ ├── config.py
│ ├── file_watcher.py
│ ├── queue_manager.py
│ └── utils.py
├── reporting
│ └── report_generator.py
├── requirements.txt
├── sandbox
│ ├── Dockerfile
│ ├── entrypoint.sh
│ └── requirements.txt
└── utils
├── constants.py
└── logger.py
```
## 未来改进
计划功能包括:
* **动态分析沙箱** — 安全的运行时行为观察。
* **Web 仪表板** — 分析指标的实时可视化。
* **机器学习集成** — 行为异常检测。
* **自动隔离与告警** — 阻断 C2 域名并通过邮件/Slack 发送警报。
## 依赖项
主要 Python 库:
* `watchdog` – 文件系统监控
* `filelock` – 安全文件访问
* `yara-python` – 恶意软件模式匹配
* `python-magic` – 文件类型检测
* `markdown` – 报告渲染
## 参与贡献
欢迎提交贡献、问题和功能请求!
请复刻代码库,创建分支,并提交拉取请求。
```
git checkout -b feature/new-analyzer
git commit -m "Add new feature"
git push origin feature/new-analyzer
```
## 许可证
本项目采用 **MIT 许可证** — 详情请参阅 [`LICENSE`](./LICENSE) 文件。
标签:DAST, DNS信息、DNS暴力破解, Docker容器, IOC提取, Python编程, SEO优化, YARA规则, 云安全监控, 威胁情报, 安全报告, 开发者工具, 恶意软件分析, 技术栈, 报告自动化, 攻击面发现, 数字取证, 文件监控, 沙箱技术, 版权保护, 网络安全, 自动化脚本, 请求拦截, 逆向工具, 隐私保护, 隔离环境, 静态分析