gobivenkateshs/ai-memory-forensics-framework
GitHub: gobivenkateshs/ai-memory-forensics-framework
一个基于Python的自动化内存取证框架,用于分析Windows内存转储以检测恶意软件和提取IOC。
Stars: 0 | Forks: 0
# AI 内存取证与恶意软件调查框架
### 版本 2.1 · Python + FastAPI + ML
一个用于自动化 Windows 内存转储分析的全栈数字取证工具。专为 SOC 分析师、DFIR 研究人员和学术研究设计。
## 功能特性
| 模块 | 描述 |
|------|------|
| **内存解析器** | 集成 Volatility 3 — 提取进程、DLL、句柄、网络连接、注册表、命令行、注入代码 |
| **进程分析器** | 启发式检测 — 域名仿冒、错误的父子进程关系、重复的单例进程、可疑路径 |
| **AI 检测引擎** | 隔离森林 (scikit-learn) + 基于规则的异常评分与 MITRE ATT&CK 映射 |
| **恶意软件扫描器** | YARA 规则引擎 (内置 + 自定义 `.yar` 文件) + VirusTotal API 哈希查询 |
| **IOC 提取器** | 提取 IP、域名、URL、文件路径、注册表键、命令、互斥体和文件哈希 |
| **时间线引擎** | 按 MITRE 战术阶段组织的按时间顺序的攻击重构 |
| **报告生成器** | 专业 PDF 报告 (ReportLab),包含严重性评分、IOC 表格和修复步骤 |
## 快速开始
### Linux / macOS
```
git clone
cd forensics-framework
chmod +x run.sh
./run.sh
```
### Windows
```
run.bat
```
然后在浏览器中打开 **http://localhost:8000**。
## 要求
- Python 3.10+
- 最低 4 GB RAM(建议处理大型转储使用 8 GB)
- (可选)[Volatility 3](https://github.com/volatilityfoundation/volatility3) 用于实时内存分析
- (可选)[yara-python](https://pypi.org/project/yara-python/) 用于实际 YARA 扫描
- (可选)VirusTotal API 密钥用于云端哈希信誉查询
### 手动安装
```
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cd backend
uvicorn main:app --reload --port 8000
```
## 内存转储输入
该工具接受两种输入方式:
1. **文件上传** — 在浏览器中直接拖放 `.raw`、`.dmp`、`.mem`、`.vmem`、`.bin` 文件
2. **文件路径** — 输入服务器上已存在的转储文件的绝对路径(例如 `/mnt/evidence/win10.raw`)
## 分析模式
### 实时模式(需安装 Volatility 3)
对转储文件运行实际的 Volatility 3 插件:
- `windows.pslist` — 进程列表
- `windows.dlllist` — 已加载的 DLL
- `windows.netscan` — 网络连接
- `windows.handles` — 打开的句柄
- `windows.cmdline` — 命令行参数
- `windows.malfind` — 注入的代码区域
- `windows.registry.hivelist` — 注册表配置单元
### 模拟模式(无需 Volatility)
生成代表已入侵 Windows 系统的逼真取证工件 — 用于测试、演示和在没有真实转储的情况下理解工作流程。
## 项目结构
```
forensics-framework/
├── backend/
│ ├── main.py # FastAPI application + background job runner
│ └── modules/
│ ├── memory_parser.py # Module 1 — Volatility integration
│ ├── process_analyzer.py # Module 2 — process heuristics
│ ├── ai_detection.py # Module 3 — ML anomaly detection
│ ├── malware_scanner.py # Module 4 — YARA + VirusTotal
│ ├── ioc_extractor.py # Module 5 — IOC extraction
│ ├── timeline_engine.py # Module 6 — timeline reconstruction
│ └── report_generator.py # Module 7 — PDF report generation
├── frontend/
│ ├── templates/index.html # Single-page application
│ └── static/
│ ├── css/main.css
│ └── js/app.js
├── yara_rules/
│ └── forensics_rules.yar # Builtin detection rules (add more here)
├── uploads/ # Uploaded memory dumps (auto-created)
├── reports/ # Generated PDF reports (auto-created)
├── requirements.txt
├── run.sh # Linux/macOS launcher
└── run.bat # Windows launcher
```
## 添加自定义 YARA 规则
将任何 `.yar` 文件放入 `yara_rules/` 目录。它们将被自动编译并应用于每次扫描。
```
rule MyCustomRule {
meta:
description = "My detection rule"
severity = "high"
strings:
$s1 = "suspicious_string" nocase
condition:
$s1
}
```
## VirusTotal 集成
在 **分析选项** 面板中输入您的免费/高级 VirusTotal API 密钥。该框架将计算内存转储的哈希值并查询 VT 获取信誉数据。留空则跳过此步骤。
获取免费 API 密钥:https://www.virustotal.com/gui/join-us
## API 端点
| 方法 | 端点 | 描述 |
|------|------|------|
| `POST` | `/api/analyze` | 提交分析任务(多部分表单) |
| `GET` | `/api/job/{job_id}` | 轮询任务状态和结果 |
| `GET` | `/api/jobs` | 列出所有任务 |
| `GET` | `/api/report/{job_id}` | 下载 PDF 报告 |
### cURL 示例
```
# 文件上传
curl -X POST http://localhost:8000/api/analyze \
-F "file=@/path/to/dump.raw" \
-F "virustotal_api_key=YOUR_KEY"
# 文件路径
curl -X POST http://localhost:8000/api/analyze \
-F "file_path=/mnt/evidence/dump.raw"
# Poll 状态
curl http://localhost:8000/api/job/
```
## 技术栈
| 类别 | 工具 |
|------|------|
| 语言 | Python 3.10+ |
| 后端 | FastAPI, Uvicorn |
| 取证 | Volatility 3, Autopsy 兼容输出 |
| AI/ML | scikit-learn (隔离森林), NumPy, Pandas |
| 恶意软件 | YARA, VirusTotal API |
| 报告 | ReportLab PDF |
| 前端 | 原生 HTML/CSS/JS (无需构建步骤) |
## 免责声明
本工具仅用于**授权的数字取证调查**、学术研究和防御性安全操作。在分析任何系统的内存之前,请务必获得适当的法律授权。作者对误用不承担任何责任。
## 许可证
MIT 许可证 — 免费用于研究和商业 DFIR 用途。
标签:多模态安全, 数据可视化, 逆向工具