YaCnDehfuli/memory_triage_app
GitHub: YaCnDehfuli/memory_triage_app
MemTriage 是一个以分析师为中心的内存取证工作区,结合 Volatility 工件提取、ATT&CK 对齐评分和可解释的 VADViT 进程内存分析,将原始内存镜像转化为结构化的 DFIR 调查流程。
Stars: 0 | Forks: 0
# MemTriage
[](https://www.python.org/)
[](https://react.dev/)
[](https://www.docker.com/)
[](LICENSE)
**技术焦点:** DFIR · memory forensics · Volatility 3 · ATT&CK-aligned triage · analyst workflow · explainable ML
MemTriage 是一个以分析师为中心的 memory forensics 工作区,它可以将一个原始的内存镜像,或来自同一主机的短序列快照,转化为可追溯的调查。它在一个可导出的 workflow 中结合了基于 Volatility 的广泛 artifact 提取、可调节的 ATT&CK-aligned 评分、进程清单审查以及针对性的 VADViT 进程内存分析。
本项目旨在用于 DFIR 研究、可重复的安全工程,以及全栈 forensic pipeline 的作品集级展示。它不是 EDR 的替代品,也不是 AV 产品或实时的 endpoint 监控系统。

## 功能简介
- 接收单个内存转储或来自同一主机的最多五个间隔快照。
- 运行基于 VolMemLyzer 的提取,以构建 artifact 摘要、IoC 证据、ATT&CK 对齐以及进程/PID 清单。
- 使用透明的规则对证据进行评分,保留严重性、置信度、source artifacts 以及每条规则触发的 reason。
- 让分析师能够调整灵敏度并重新对缓存的证据进行评分,而无需重新运行 Volatility。
- 仅对选定的进程运行 VADViT,将昂贵的模型分析控制权交还给分析师。
- 将进程 VAD 区域渲染到模型网格中,并在有兼容的模型结果时将 attention 映射回具体的内存区域。
- 生成适合审查、导出和跟进的综合报告。
## 调查工作流
MemTriage 遵循两阶段 workflow,因此自动化 triage 不会让分析师淹没在不透明的判定中。
1. **接收:** 上传一个原子转储或一个短间隔序列。文件以流式传输到磁盘,并进行大小、数量、扩展名和 magic-byte 检查。
2. **Triage:** 运行一次基于 Volatility 的提取,规范化证据,并对呈现的 objects 进行评分。
3. **清单审查:** 审查排名后的进程列表,并选择需要进行更深入解释的 PID。
4. **深度分析:** 为该进程组装 VAD 区域,选择具有最丰富区域集的快照,渲染 VADViT 网格,进行分类,并将模型 attention 归因回相关区域。
5. **报告:** 将每个选定的进程分析汇总到一条调查记录中。

## 架构
MemTriage 包装了两个独立发布的组件,而不是 fork 它们:
- [VolMemLyzer3](https://github.com/YaCnDehfuli/VolMemLyzer3-CLI_forensic_tool)
用于基于 Volatility 3 的内存 artifact 和 IoC 提取。
- [VADViT](https://github.com/YaCnDehfuli/VADViT) 用于对进程 VAD 区域进行 explainable Vision Transformer 分析。
应用层通过面向服务的本地 stack 连接这些组件:
```
frontend/ React + TypeScript analyst workspace
backend/ FastAPI API, SQLAlchemy models, and evidence/scoring services
deploy/ Dockerfiles, nginx config, and docker-compose stack
components/ Wrapped VolMemLyzer3 and VADViT source trees
models/ Optional VADViT checkpoint placement and model notes
```
FastAPI 暴露 investigation、upload、process、result、scoring、artifact 和 event 路由。Celery 和 Redis 协调长时间运行的 forensic 任务,PostgreSQL 存储 investigation 状态,而前端将调查呈现为一个引导式工作区,而不是一堆原始 plugin 输出的集合。
## 安全边界
内存镜像被视为不受信任的输入。上传受到文件数量、大小、扩展名的限制,并拒绝可执行文件/container 的 magic bytes。转储派生的字符串在持久化和渲染之前会进行清理。worker container 设计用于隔离的解析工作,没有互联网出口,drop 了 Linux capabilities,无权限提升,并且限制了内存。
模型输出也以保守的方式处理。如果 VADViT checkpoint 或 runtime 不可用,MemTriage 会返回明确的不可用结果,而不是伪造 family label 或 attention map。
## 截图
### Triage 评分
Triage 视图展示了评分后的 objects、风险带、置信度和 ATT&CK 对齐,同时保持规则证据可展开和审计。

### VADViT 深度分析
深度分析视图展示了选定的进程网格、attention 覆盖图、模型置信度分布以及 patch 到区域的归因。

## Demo 模式
前端包含一个自包含的 demo 数据集,因此无需后端、Volatility 安装、内存镜像或 PyTorch runtime 即可审查工作区。Demo fixtures 位于 `frontend/src/demo/` 中,并与生产环境 API 路径隔离。
```
cd frontend
npm install
npm run dev
```
打开 `http://localhost:5173`。应用以 demo 模式启动;在针对 API stack 进行测试时,请使用 header 中的 Demo/Live 切换开关。
## 完整技术栈
使用 submodules 进行 clone,以便包含被包装的 forensic 组件:
```
git clone --recurse-submodules https://github.com/YaCnDehfuli/memory_triage_app.git
cd memory_triage_app
```
如果 clone 仓库时没有包含 submodules:
```
git submodule update --init --recursive
```
运行本地 stack:
```
docker compose -f deploy/docker-compose.yml up --build
```
## 质量检查
后端检查:
```
cd backend
python -m pytest
```
前端检查:
```
cd frontend
npm run typecheck
npm run build
```
## 当前状态
MemTriage 是一个正在开发中的安全工程项目。仓库包含 API、worker workflow、scoring 层、React 分析师工作区、demo 模式、Docker stack 和测试。真正的 VADViT 分类需要通过文档中的 model 路径挂载兼容的 weights。
## 许可证
[MIT](LICENSE)。被包装的组件保留其各自的许可证和引文。
标签:AV绕过, FastAPI, React, SecList, Syscalls, 内存取证, 凭据扫描, 搜索引擎查询, 测试用例, 请求拦截, 逆向工具