刷到一个挺有意思的话题,结合自己之前的经验,整理了一下核心要点。
代码审计不只靠人工逐行看:用 DeepAudit 跑一遍项目级 AI 安全检查
前言
代码审计最容易让人疲惫的地方,不是看懂某一段代码,而是项目一大以后,谁也不敢保证自己把所有调用关系、参数流向和边界条件都盯住了。SQL 注入、XSS、权限绕过这类问题有时藏在很普通的业务逻辑里,靠人工逐文件排查既慢,也很容易被重复劳动拖垮。我愿意让 AI 参与这种工作,但不会把“模型给出高危结论”直接当成漏洞已经坐实;对安全审计来说,发现线索、定位代码、验证风险和给出修复建议,本来就是不同阶段。尤其是涉及权限、数据访问或真正可利用性的判断时,我更希望看到完整证据链,而不是只看一个风险标签。
这次我在 Windows + Docker 环境里部署 DeepAudit v3.0.0,配置通义千问 qwen-max 和 Qwen 嵌入模型,再上传一个旧的 Java SpringBoot 项目跑 Agent 智能审计,实际查看索引、Multi-Agent 协作流程、审计报告、高危问题和即时分析结果。确认本地 http://localhost:3000 可以正常用以后,再安装 cpolar,把前端页面映射到公网,先测试随机地址,最后切换到固定二级子域名 deepaudit。整篇更关注的是:AI 能不能把审计线索、代码位置、验证过程和报告串起来,而不是把“几秒扫完整项目”当成结论。 对我来说,只有这些环节能互相对得上,AI 审计才真正有参考价值。
1. DeepAudit 在这套流程里负责什么?
DeepAudit 是一套面向代码安全审计的 AI 工具。当前介绍把它定义为开源代码漏洞挖掘多智能体系统,通过多个 Agent 协作做好项目识别、代码分析、风险定位、验证和报告输出。
当前架构里主要有四个角色:
- Orchestrator:接收任务、识别项目类型并安排审计流程;
- Recon Agent:扫描项目结构、框架、库和 API,梳理攻击面;
- Analysis Agent:结合 RAG、AST 等信息继续分析代码;
- Verification Agent:生成 PoC,并在 Docker 沙箱中验证发现的问题。
真正值得看的,是它能不能把:
项目导入 → 索引 → 分析 → 验证 → 报告
这条链真正跑起来。
2. Windows 上先把 DeepAudit 跑起来
这次直接通过 Docker Compose 部署。
在 Windows 中按 Win + R,输入 cmd,打开命令提示符,然后执行:
curl -fsSL https://raw.githubusercontent.com/lintsinghua/DeepAudit/v3.0.0/docker-compose.prod.yml | docker compose -f - up -d
命令执行做好以后,检查容器:
docker ps
当前流程里可以看到 4 个容器:
admin-frontend-1:前端服务,端口3000;admin-backend-1:后端 API,端口8000;admin-redis-1:Redis;admin-db-1:PostgreSQL。
http://localhost:3000
DeepAudit 登录页面能正常显示以后,本地服务这一层才算跑通。
3. 先配置 LLM,再谈 AI 审计
注册账号并登录以后进入主界面。
打开【系统管理 → 系统配置】。
当前演示用通义千问。
阿里云百炼免费额度页面地址为:
https://bailian.console.aliyun.com/?tab=model#/model-usage/free-quota?modelType=Text
当前操作里,qwen-plus 的额度已经用完,因此改用:
qwen-max
接着进入密钥管理。
创建并复制 API Key。
把 API Key 填入 DeepAudit,点击测试。
出现连接成功以后,再保存所有更改。
这里有一个边界我算是在意:模型能连接成功,只代表 LLM 配置可用,不代表后面的漏洞判断一定正确。 安全审计还是要继续看代码位置、上下文和验证结果。
4. 再配置嵌入模型
切换到嵌入模型页面。
当前操作里:
- 提供商选择
Qwen; - 模型选择预设 v4 版本;
- API Key 继续用前面已经创建的密钥。
测试通过以后,保存配置和所有更改。
到这里,DeepAudit 后续做项目索引和语义检索得的模型层才算准备完整。
5. 项目级审计先从“创建项目”开始
进入【项目管理】。
第一次使用时,页面提示项目尚未初始化,可以点击【新建项目】。
当前支持两种导入方式。
5.1 Git 仓库导入
可以填写:
- GitHub、GitLab 等仓库类型;
- Git 仓库 URL;
- 默认分支,如
main或master; - 技术栈,例如 JavaScript、TypeScript、Python、Java、Go。
5.2 上传源码
也可以直接上传 ZIP 压缩包。
这次实际使用的是一个几年前写的 Java SpringBoot 项目,通过上传源码创建。
项目创建做好以后,会出现在项目管理列表中。
6. Agent 智能审计和快速扫描不是一回事
进入项目审计页面以后,当前提供两种模式:
Agent 智能审计
- 由 LLM 驱动;
- 多 Agent 协同分析;
- 支持更深的代码关系分析和验证;
- 更适合得继续追踪上下文的场景。
快速扫描
- 偏传统规则引擎;
- 更适合快速批量检查;
- 速度更快,但分析深度相对有限。
选择项目后,点击启动 Agent 审计。
随后可以看到项目先做索引和嵌入,再进入编排审计流程。
这一步说明 DeepAudit 并不是简单把所有代码一次性扔给模型,而是先建立项目索引,再让多个 Agent 分工工作。
7. 看 AGENT TREE,比只看“发现几个漏洞”更重要
审计过程中,侧面的 AGENT TREE 会展示 Multi-Agent 协作过程。
当前流程包括:
1. Orchestrator 分析项目并制定策略;
2. Recon Agent 扫描项目结构和攻击面;
3. Analysis Agent 继续深度分析;
4. Verification Agent 做沙箱验证。
同时还能看到:
- 审计进度;
- 已分析文件数量;
- 当前发现的问题数;
- 不同 Agent 的任务状态。
当前示例里还展示了跨方法联合审计:注册方法中调用了相关校验方法,Agent 会继续追到校验逻辑中检查是否存在问题。
这类跨方法关系,正是 AI 审计比单纯关键词扫描更值得观察的部分。
8. 报告里真正理应看的,是证据链
审计收尾后,底部会出现成功日志。
也可以点击右上角:
EXPORT
当前支持导出:
- Markdown;
- JSON;
- HTML。
HTML 报告可以直接预览。
继续看高危问题。
当前报告会给出:
- 漏洞描述;
- 关键代码位置;
- 修复建议。
DeepAudit 在这里更像是把“找线索、追代码、整理证据”这部分工作提前做掉。
9. 不想导入整个项目,也可以做即时分析
除了项目管理,DeepAudit 还提供即时分析。
进入【即时分析】以后,可以:
1. 选择编程语言;
2. 直接粘贴代码,或者上传文件;
3. 选择提示词模板;
4. 点击【开始分析】。
当前介绍里,分析结果会包括:
- 问题列表;
- 严重程度;
- 修复建议;
- 代码片段高亮。
即时分析更适合临时检查某段可疑代码、做代码 Review 前预检查,或者学习安全编码规范。
项目级 Agent 审计和即时分析解决的是不同规模的问题,不必强行只选一种。
10. 本地审计跑通以后,再考虑远程访问
前面已经能够通过:
http://localhost:3000
打开 DeepAudit。
如果只在当前电脑上使用,到这里已经够了。
但如果 DeepAudit 部署在家里的台式机,人在公司想看审计进度,或者希望从另一台设备打开管理页面,就得再补一层公网入口。
cpolar 在这里的职责很明确:
只把 DeepAudit 前端 3000 Web 页面提供到公网。
它不参与代码索引、LLM 分析、漏洞验证或报告生成。
11. Windows 安装 cpolar
打开 cpolar 下载页面,下载 64-bit 安装包。
解压并完成安装以后,在 CMD 里执行:
cpolar version
能够看到版本信息以后,继续注册账号。
进入注册页面。
注册完成后,在浏览器访问:
http://127.0.0.1:9200
登录 Web UI。
12. 把 DeepAudit 的 3000 端口映射到公网
进入【隧道管理 → 隧道列表】。
当前页面默认有:
remoteDesktop→3389/ TCP;website→8080/ HTTP。
编辑 website 隧道,把它修改成 DeepAudit 需要的配置。
更新以后,在在线隧道列表中可以看到两条 deepaudit 地址:
- HTTP;
- HTTPS。
使用 HTTPS 做访问测试。
DeepAudit 登录页面可以正常打开。
这一层验证的是:
DeepAudit 3000 → cpolar → 公网浏览器。
13. 长期使用再配置固定二级子域名
随机公网地址适合先验证。
当前说明里记录,免费随机域名大约每 24 小时会变化一次。
如果 DeepAudit 会长期远程使用,再切换到固定二级子域名更方便。
进入预留页面:
https://dashboard.cpolar.com/reserved
在【保留二级子域名】中填写地区、名称和可选描述。
当前记录为:
- 地区:
China Top - 二级域名:
deepaudit
然后回到【隧道管理 → 隧道列表】,找到:
deepaudit
点击编辑,把域名类型改成:
二级子域名
再填写前面已经保留好的名称。
更新以后,在线隧道列表会显示固定二级子域名形式。
继续使用 HTTPS 访问。
页面可以正常打开。
再登录验证。
登录成功以后,远程管理入口这一层也跑通了。
总结
DeepAudit 真正让我觉得有价值的地方,不是“AI 几秒扫完项目”,而是它尝试把代码审计里最费时间的几件事串起来:
项目导入 → 索引 → Multi-Agent 分析 → 代码关系追踪 → 沙箱验证 → 报告 → 即时分析。
这次实际跑通的主线是:
Windows → Docker Compose → DeepAudit v3.0.0 → localhost:3000 → 通义千问 qwen-max → Qwen 嵌入模型 → Java SpringBoot 项目 → Agent 智能审计 → AGENT TREE → 报告导出 → 高危问题查看 → 即时分析 → cpolar → 3000 → 随机公网 → 固定二级子域名 deepaudit。
我更愿意把 DeepAudit 当成“提高审计覆盖和整理效率的助手”,而不是把安全判断完全交给 AI。真正重要的漏洞,仍然理应继续做人工复核和环境验证。
cpolar 同样只负责远程 Web 入口,不改变 DeepAudit 的审计逻辑。把这两个边界分开以后,整套系统反而更容易理解:DeepAudit 负责找问题,cpolar 负责让你在别的设备上打开这个审计工作台。
暂时整理到这里。以上都是个人理解,可能有疏漏,欢迎指正。
评论 (0)
暂无评论