项目规模小时,开发者还能通过逐文件阅读完成一次代码检查。随着接口、权限、数据库操作和第三方依赖不断增加,很多安全问题已经不再藏在某一行代码里,而是分散在多个方法和调用链
|
项目规模小时,开发者还能通过逐文件阅读完成一次代码检查。随着接口、权限、数据库操作和第三方依赖不断增加,很多安全问题已经不再藏在某一行代码里,而是分散在多个方法和调用链之间。 例如,入口参数看起来做了校验,但真正执行数据库查询的函数可能绕过了限制;某个接口表面上需要登录,关联的资源操作却缺少权限判断。只依赖关键词搜索或单文件检查,很容易忽略这些跨模块关系。 DeepAudit提供了一种AI辅助审计方式。它会先识别项目结构、技术栈和潜在攻击面,再由多个Agent分工分析代码、生成验证脚本,并尝试在隔离环境中确认问题是否真实存在。 本文会通过Docker Compose部署DeepAudit,完成大语言模型和嵌入模型配置,再分别演示完整项目的Agent智能审计、快速扫描,以及用于检查单段代码的即时分析功能。 本地审计流程跑通后,还会使用 cpolar 将前端服务的3000端口映射到公网,并配置固定二级子域名。这样不在部署电脑旁时,也能继续查看任务进度、审计结果和导出的报告。 1 DeepAudit是什么?
DeepAudit 是国内首个开源的代码漏洞挖掘多智能体系统,它基于 Multi-Agent 协作架构,通过四个智能体的自主协作,实现对代码的深度理解、漏洞挖掘和自动化沙箱 PoC 验证。用户只需导入项目,DeepAudit 便全自动开始工作:识别技术栈 → 分析潜在风险 → 生成脚本 → 沙箱验证 → 生成报告,最终输出一份专业审计报告。
简单来说,DeepAudit 就像是一个 24 小时待命的安全专家团队,帮你把代码审计这件苦差事变得高效、精准、自动化。 2 Docker一键部署DeepAudit本教程以 Windows 系统为例,演示如何在 Docker 环境中部署 DeepAudit。如果还没有安装Docker的小伙伴,可以去cpolar官网查看**《Docker安装——Linux、Windows、MacOS》**这篇文章进行安装一下哦。 首先,电脑按住 Win + R 键,打开运行窗口,输入 cmd 并回车,打开命令提示符。然后在命令提示符中输入以下命令,一键部署 DeepAudit:
接着输入如下命令,查看 DeepAudit 容器是否启动成功:
如果看到类似上面的输出,说明 DeepAudit 已经成功启动了!这里包含了 4 个容器:
现在,打开浏览器,访问如下地址:
可以看到,DeepAudit 的登录页面已经成功显示出来了! 3 配置DeepAudit3.1 LLM模型配置注册一个账号,并且登录DeepAudit,即可进入主界面。
接着来到系统管理,在系统配置项可以看到如下页面: 接着选择LLM提供商,这里以通义千问为例,因为阿里云百炼如果您是新用户,享有每个模型百万Tokens,可以在如下页面查看免费额度剩余量和模型Code等,记得开启免费额度用完即停即可,页面地址:
由于我这里的qwen-plus模型额度用完了,演示将使用qwen-max来进行演示,在选择LLM提供商中选择通义千问,然后模型名称填写qwen-max模型:
接着获取阿里云百炼的API Key,点击页面左下角的密钥管理菜单: 进入到密钥管理后,点击创建按钮进行创建即可,创建后即可复制API key密钥: 将复制的密钥填写到API key中,点击测试按钮,出现连接成功即代表配置成功: 连接成功后,点击底部的保存所有更改按钮即可! 3.2 嵌入模型配置前面已经配置好了LLM模型,接着切换到嵌入模型页面,然后在模型提供商选择Qwen,模型选择预设v4版本的模型即可,填写前面复制下来的API key密钥,点击测试: 接着点击底部的保存配置和保存所有更改按钮即可,这样就配置完成啦! 4 使用DeepAudit进行AI代码审查配置好 LLM 模型后,我们就可以开始使用 DeepAudit 进行代码审查了。DeepAudit 提供了两种主要的使用方式:项目管理和即时分析。 4.1 创建项目首先,在左侧导航栏点击"项目管理",进入项目列表页面。如果是第一次使用,页面会提示"未初始化项目",点击"新建项目"按钮。
在弹出的对话框中,你可以选择两种导入方式: 方式一:Git 仓库导入
方式二:上传源码
填写完项目信息后,点击"执行创建",DeepAudit 会自动拉取代码并初始化项目。
这里以上传源码为例,用一个几年前写的一个Java的SpringBoot项目为例,填写完成相关信息,上传源码进行执行创建: 创建完成后,即可在项目管理页面查看,创建好的项目: 4.2 Agent 智能审计项目创建完成后,点击项目下方的"审计"按钮,进入审计任务页面。这里有两种审计模式: Agent 智能审计
快速扫描
这里以Agent 审计 模式举例,选中要审计的项目,然后选择审计模式,点击下方的启动Agent 审计按钮:
启动后,即可看到项目正在进行索引和嵌入,然后进行编排审计流程: 在侧面的AGENT TREE中可以看到 Multi-Agent 协作流程:
在审计过程中,你可以实时查看审计进度、已分析的文件数、发现的问题数量等信息。
可以看到,AGENT审计 模式,会进行跨方法联合审计。如上图就是在注册方法中有调用相关校验方法,AGENT审计会根据逻辑关系,去查看校验方法是否存在问题。 4.3 查看审计报告审计完成后,底部会有输出成功的日志提示,也可以点击右上角EXPORT按钮进行导出报告:
点击EXPORT按钮后,可以将审计报告导出为 Markdown 或 JSON 以及HTML格式,方便分享和存档: 如下为导出为HTML格式的报告预览: 查看一下提到的高危漏洞等相关问题: 可以看到给出了漏洞描述,还有关键的代码位置,以及修复的建议,还是很不错的! 4.4 即时分析除了项目管理,DeepAudit 还提供了"即时分析"功能,适合快速检查代码片段。 点击左侧导航栏的"即时分析",进入即时分析页面:
几秒钟后,DeepAudit 就会返回分析结果,包括:
即时分析非常适合:
通过以上步骤,你已经掌握了 DeepAudit 的基本使用方法。无论是完整项目的深度审计,还是代码片段的快速检查,DeepAudit 都能帮你高效地发现安全问题,让代码审计变得简单、快速、精准! 5 下载安装cpolar通过前面的步骤,你已经成功在本地部署了 DeepAudit,并且能够通过 http://localhost:3000 访问它的界面。但问题来了:你在家里的台式机上部署了 DeepAudit,在公司想访问怎么办?或者你在公司电脑上启动了审计,回家想查看进度怎么办? 本地部署的 DeepAudit 就像一个"孤岛",只有部署它的那台电脑能访问,其他设备想用都进不来。远程办公受限、多设备无法访问……这些问题让 DeepAudit 的价值大打折扣。 这时候,cpolar 内网穿透 就派上用场了!它是一款轻量级隧道转发工具,能够将本地运行的服务安全地暴露至公网,实现无需公网 IP、无需复杂路由配置,就能随时随地访问你的 DeepAudit。 接下来,我将带你一步步安装并配置 cpolar,让 DeepAudit 真正实现"随时随地,想审就审"! 5.1 什么是cpolar?
5.2 下载cpolar打开cpolar官网的下载页面,点击立即下载 64-bit按钮,下载cpoalr的安装包:
下来下来是一个压缩包,解压后执行目录种的应用程序,一路默认安装即可,安装完成后,打开cmd窗口输入如下命令确认安装:
出现如上版本即代表安装成功! 5.3 注册及登录cpolar web ui管理界面访问cpolar官网,点击免费注册按钮,进行账号注册
进入到如下的注册页面进行账号注册: 注册完成后,在浏览器中输入如下地址访问 web ui管理界面:
输入刚才注册好的cpolar账号登录即可进入后台页面:
6 穿透DeepAudit实现公网访问点击左侧菜单栏的隧道管理,展开进入隧道列表页面,页面下默认会有 2 个隧道:
点击编辑website的隧道,修改成我们DeepAudit需要的信息:
接着,点击左侧菜单的状态菜单,接着点击在线隧道列表菜单按钮,可以看到有2个deepaudit的隧道,一个为http协议,另一个为https协议:
注意:每个用户创建的隧道显示的公网地址都不一样! 接下来在浏览器中访问deepaudit隧道生成的公网地址(http和https皆可),这里以https为例:
可以看到成功访问到DeepAudit的登录界面啦! 7 固定二级子域名通过前面的配置,我们已经成功实现了DeepAudit的远程访问,但免费随机域名方案的局限性也逐渐显现:每24小时左右自动更换域名地址,意味着你需要频繁更新书签、重新分享链接,甚至可能因为忘记更新而无法访问。固定域名方案正是为了解决这些痛点而生,能够让你拥有一个永久不变的专属地址。 好啦,接下来开始固定保留二级子域名教程! 首先,进入官网的预留页面:
选择预留菜单,即可看到保留二级子域名项,填写其中的地区、名称、描述(可不填)项,然后点击保留按钮,操作步骤图如下:
可以看到列表中显示了一条已保留的二级子域名记录:
注:二级域名是唯一的,每个账号都不相同,请以自己设置的二级域名保留的为主 接着,进入侧边菜单栏的隧道管理下的隧道列表,可以看到名为deepaudit的隧道,点击编辑按钮进入编辑页面:
修改域名类型为二级子域名,然后填写前面配置好的子域名,点击更新按钮:
接着,来到状态菜单下的在线隧道列表可以看到隧道名称为deepaudit的公网地址已经变更为二级子域名+固定域名主体及后缀的形式了:
这里以https协议做访问测试:
访问成功,让我们再进行登录测试一下: 成功登录啦,现在无论你在哪里,只要能上网,就能随时访问你的 DeepAudit 了! 总结完成部署后,DeepAudit可以承担代码安全检查中的第一轮筛查工作。它能够快速梳理项目结构、定位可疑代码,并将问题位置、风险说明和修复建议集中到审计报告中。 Agent智能审计更适合需要分析调用关系、业务逻辑和潜在利用路径的项目,快速扫描则适合在提交代码或批量检查时先发现常见问题。即时分析可以用来检查单个接口、工具函数或准备合并的代码片段。 但AI审计结果不能直接等同于最终安全结论。模型可能产生误报,也可能因为上下文不足而漏掉业务层漏洞。高危问题需要开发人员重新核对代码,并结合单元测试、依赖扫描、动态测试和人工渗透验证。 通过 cpolar 映射3000端口后,DeepAudit可以在其他设备上访问。随机域名适合临时查看,固定二级子域名更适合长期使用,但代码审计平台中通常包含源码、漏洞信息和模型配置,不能作为普通公开页面分享。 公网开放时应启用强密码和额外访问控制,限制可访问人员,并妥善保护大模型API Key、私有仓库凭据和审计报告。不再需要远程访问时,应及时关闭隧道或收回相关账号权限。 DeepAudit负责提高代码检查的覆盖面和整理效率,cpolar负责补上远程访问能力。更合理的定位不是让AI取代安全人员,而是先帮助团队发现值得重点检查的位置,把有限的人工精力集中到真正高风险的代码和业务逻辑上。 |
2022-11-25
2024-04-30
2024-10-18
2022-08-26
2022-09-23