DeepAudit:用 Multi-Agent + Docker 沙箱做代码漏洞挖掘与 PoC 验证的平台
一、开源项目简介

DeepAudit
DeepAudit 是一个基于 Multi-Agent 协作架构的代码安全审计平台:导入项目后,多智能体自动协作完成审计、并在 Docker 安全沙箱里执行 PoC 验证,最后输出可导出的审计报告。
- 适合谁:安全工程师 / 开发者 / 运维 / 架构师(想把审计流程“跑起来”并可复现的人)
- 典型场景:
- 新项目上线前:做一次深度代码安全审计 + 验证真伪
- 外包/第三方交付:快速筛出可验证的高风险问题
- 私有环境:用本地模型(Ollama)审计敏感代码(以仓库说明为准)
二、开源协议
- AGPL-3.0(以仓库
LICENSE为准)
三、界面展示(如有 UI)
Agent 审计入口:进入多智能体深度审计流程
审计流日志:实时查看 Agent 执行过程
仪表盘:项目安全态势概览
报告示例:支持导出 PDF / Markdown / JSON(README 说明图为“快速模式”,非 Agent 模式报告)
四、功能概述
1) Multi-Agent 深度审计(核心)
- 是什么:由多个智能体协作完成“规划 → 信息收集 → 漏洞挖掘 → PoC 验证 → 报告生成”的完整流程。
- 怎么做:README 描述的 Agent 分工包括
Orchestrator / Recon / Analysis / Verification,由 Orchestrator 编排任务并汇总结果。 - 注意事项(依赖/权限):
- 需要配置 LLM(云端平台或本地 Ollama),否则无法进行 LLM 驱动分析。
- Agent 模式依赖 Redis(作为任务队列),部署时通常与后端一同启动。
2) Docker 沙箱 PoC 验证(减少“只看不证”)
- 是什么:对疑似漏洞自动生成并执行 PoC,在隔离环境里验证是否可利用。
- 怎么做:后端通过 Docker 调用沙箱镜像执行验证(README/Compose 中包含沙箱镜像与开关)。
- 注意事项(依赖/权限):
- Docker Compose 配置里后端会挂载
/var/run/docker.sock(沙箱执行必需),这意味着后端容器需要能调用宿主机 Docker。 - 沙箱网络是否禁用、资源限制等通过环境变量控制(以
backend/env.example为准)。
- Docker Compose 配置里后端会挂载
3) RAG 知识库增强(降低误报/提升上下文理解)
- 是什么:结合代码语义与漏洞知识库(CWE/CVE 等)做检索增强分析。
- 怎么做:文档提到向量库与嵌入模型配置(如
ChromaDB、EMBEDDING_PROVIDER/EMBEDDING_MODEL等)。 - 注意事项:
- 嵌入模型是独立配置(不一定等同主 LLM),需要相应 Key/端点(以
backend/env.example为准)。
- 嵌入模型是独立配置(不一定等同主 LLM),需要相应 Key/端点(以
4) 项目管理与导入(仓库/ZIP)
- 是什么:支持 GitHub/GitLab/Gitea 导入项目,也支持上传 ZIP;适合多项目协同管理。
- 怎么做:前端提供项目管理界面;后端通过 Token 拉取仓库内容(Token 配置见
backend/env.example与frontend/.env.example注释)。 - 注意事项(外部依赖):
- 拉取私有仓库通常需要 Token;Token 权限要求以 README 的说明为准。
5) 即时分析(贴代码/传文件快速出结果)
- 是什么:对代码片段或文件进行快速分析,适合作为“临时排查入口”。
- 怎么做:UI 页面提供粘贴/上传能力,调用后端 API 输出结果(前端 API 基础路径见
frontend/.env.example)。 - 注意事项:
- 依然依赖 LLM 可用性与调用额度;涉及敏感代码时建议使用本地模型(以仓库说明为准)。
6) 报告导出与可视化配置
- 是什么:报告支持导出
PDF / Markdown / JSON;运行时可在浏览器中配置 LLM 等参数(README 提到“无需重启服务”)。 - 怎么做:后端生成报告并提供导出;前端提供管理页面进行运行时配置。
- 注意事项:
- 报告格式、导出入口与权限机制以实际 UI/README 为准。
五、技术选型
以下来自 README 的技术徽章、致谢列表与文档描述;更细的版本号以仓库文件为准。
- 后端:
Python · FastAPI · Uvicorn - 前端:
React · TypeScript · Vite - 数据:
PostgreSQL - 队列/缓存:
Redis - RAG/向量库:
ChromaDB(文档提到向量库与持久化目录) - LLM/Agent 相关:
LangChain · LangGraph · LiteLLM(README 致谢/说明) - 代码解析:
Tree-sitter(README 致谢) - 安全工具集成(文档提到):
Semgrep · Bandit · Gitleaks · TruffleHog · OSV-Scanner - 容器化:
Docker · Docker Compose(含独立sandbox镜像;前端容器为Nginx承载)
六、如何使用项目
下面优先给出 README 中可复制运行的路径;细节参数与更多选项以仓库 README/文档为准。
0) 启动前准备(必须)
- 准备一个可用的 LLM 配置:
- 云端平台:需要
LLM_PROVIDER、LLM_API_KEY(以及可选的LLM_BASE_URL中转站) - 本地模型:文档提到支持
Ollama(需要本地 Ollama 服务可访问)
- 云端平台:需要
- 宿主机需要 Docker:
- Agent 的 PoC 验证会用到 Docker 沙箱(Compose 中后端需要访问 Docker socket)
1) Docker Compose(“一行命令部署”,README 推荐)
README 给出的方式是直接把生产 Compose 通过管道喂给 docker compose:
curl -fsSL https://raw.githubusercontent.com/lintsinghua/DeepAudit/v3.0.0/docker-compose.prod.yml | docker compose -f - up -d
建议在执行前通过环境变量提供 LLM 配置(避免使用 Compose 里的默认占位):
# 示例:把 Key 作为环境变量注入(变量名以 compose 文件为准)
LLM_PROVIDER=openai LLM_MODEL=gpt-4o LLM_API_KEY="your-api-key" \
curl -fsSL https://raw.githubusercontent.com/lintsinghua/DeepAudit/v3.0.0/docker-compose.prod.yml | docker compose -f - up -d
- 默认地址:
http://localhost:3000 - 后端端口(生产 compose 显式暴露):
8000:8000(即http://localhost:8000) - 查看状态:
docker compose ps
- 查看日志:
docker compose logs -f
国内加速部署(README 提供)
LLM_PROVIDER=openai LLM_MODEL=gpt-4o LLM_API_KEY="your-api-key" \
curl -fsSL https://raw.githubusercontent.com/lintsinghua/DeepAudit/v3.0.0/docker-compose.prod.cn.yml | docker compose -f - up -d
README 说明:国内加速方案将
ghcr.io替换为ghcr.nju.edu.cn(以仓库为准)。
2) Docker Compose(克隆代码后启动)
# 1. 克隆项目
git clone https://github.com/lintsinghua/DeepAudit.git && cd DeepAudit
# 2. 配置后端环境变量
cp backend/env.example backend/.env
# 编辑 backend/.env,填入你的 LLM API Key 等配置
# 3. 一键启动
docker compose up -d
- 默认地址:
http://localhost:3000 - 注意:仓库的
docker-compose.yml中后端会执行数据库迁移并以--reload启动(偏开发体验,具体以文件为准)。
3) 手动构建(源码开发,README 给出的流程)
环境要求(README 明确)
- Python
3.11+ - Node.js
20+ - PostgreSQL
15+ - Docker(用于沙箱)
3.1 启动数据库与依赖服务
docker compose up -d redis db adminer
3.2 启动后端(FastAPI)
cd backend
cp env.example .env
# 使用 uv 管理环境(README 推荐)
uv sync
source .venv/bin/activate
uvicorn app.main:app --reload
3.3 启动前端(React)
cd frontend
cp .env.example .env
pnpm install
pnpm dev
3.4 拉取沙箱镜像(开发模式)
# 标准拉取
docker pull ghcr.io/lintsinghua/deepaudit-sandbox:latest
# 国内加速(南京大学镜像站)
docker pull ghcr.nju.edu.cn/lintsinghua/deepaudit-sandbox:latest
七、二次开发注意事项
1) 环境依赖版本
- Python:
3.11+(README) - Node.js:
20+(README) - PostgreSQL:
15+(README) - Docker:用于 PoC 沙箱验证(README)
其他依赖的精确版本(如 Python/Node 依赖树)需要从仓库的依赖文件进一步确认;本文未展开,以仓库为准。
2) 本地开发启动方式(前后端)
- 后端配置入口:
backend/.env(由backend/env.example复制) - 前端配置入口:
frontend/.env(由frontend/.env.example复制) - 后端启动:
uvicorn app.main:app --reload(README) - 前端启动:
pnpm dev(README) - 前端 API 基础路径:
VITE_API_BASE_URL(见frontend/.env.example,默认/api/v1)
3) 常见坑(3 条内)
- Docker socket 权限:Compose 中后端挂载
/var/run/docker.sock用于沙箱执行;宿主机 Docker 权限不足会导致验证阶段失败(以日志为准)。 - LLM/嵌入模型配置:
LLM_API_KEY、EMBEDDING_*等为空或不可用时,Agent/RAG 能力会受影响(以backend/env.example为准)。 - 代理/网络问题:
docker-compose.prod.yml中显式清空了HTTP_PROXY/HTTPS_PROXY等变量;如果你的环境依赖代理访问外部 LLM,需要按实际情况调整(以仓库部署说明为准)。
八、目录结构与主要文件(可选)
结构来自 README 的“项目代码结构”示例与仓库根目录文件清单(以仓库为准)。
DeepAudit/
├── backend/ # Python FastAPI 后端
│ ├── app/
│ │ ├── agents/ # Multi-Agent 核心逻辑(orchestrator/recon/analysis/verification)
│ │ ├── core/ # 配置与沙箱接口等
│ │ ├── models/ # 数据库模型
│ │ └── services/ # RAG / LLM 服务封装
│ ├── tests/ # 单元测试(如有)
│ └── env.example # 后端配置模板(复制为 backend/.env)
├── frontend/ # React + TypeScript 前端
│ ├── src/ # 页面、组件、状态管理等
│ └── .env.example # 前端配置模板(复制为 frontend/.env)
├── docker/
│ ├── sandbox/ # 沙箱镜像构建(PoC 验证依赖)
│ └── postgres/ # 数据库初始化相关(如有)
├── docs/ # 文档(如 AGENT_AUDIT / LLM_PROVIDERS 等)
├── docker-compose.yml # 克隆源码后的 compose(包含本地构建与开发配置)
├── docker-compose.prod.yml # 生产 compose(README 提供“一行命令部署”)
├── docker-compose.prod.cn.yml # 国内镜像加速版 compose
└── LICENSE # AGPL-3.0
九、源码地址
- GitHub:
https://github.com/lintsinghua/DeepAudit
补充:项目还提供了文档与示例链接(例如 README 中的报告示例站点等),以仓库 README 为准。