云计算百科
云计算领域专业知识百科平台

代码漏洞还在逐行排查?用DeepAudit做一轮AI辅助审计

🔥承渊政道:个人主页

❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 《MySQL数据库学习》 《Python知识内容》

✨逆境不吐心中苦,顺境不忘来时路!✨

🎬 博主简介:

代码审计经常需要在大量文件中追踪参数来源、调用关系和权限判断.项目规模扩大后,只靠人工逐行查看,不仅耗时,也容易因为上下文复杂而遗漏潜在问题.DeepAudit是一套开源的AI辅助代码审计工具.它可以导入Git仓库或源码压缩包,通过多个智能体分析项目结构、技术栈和调用关系,并输出潜在漏洞、代码位置及修复建议.它提供Agent智能审计和即时分析两类功能.前者适合对完整项目进行较深入的检查,后者可以快速分析单个文件或代码片段.AI输出适合作为排查线索,最终结论仍需要结合业务逻辑和实际运行环境人工确认.本文将在Windows的Docker环境中部署DeepAudit,配置大语言模型与嵌入模型,导入一个Java项目完成审计并导出报告.随后再使用cpolar为前端页面建立公网入口,方便在其他网络环境中查看任务进度和审计结果.

目录

  • 1.DeepAudit是什么?
  • 2.Docker一键部署DeepAudit
  • 3.配置DeepAudit
    • 3.1LLM模型配置
    • 3.2嵌入模型配置
  • 4.使用DeepAudit进行AI代码审查
    • 4.1创建项目
    • 4.2Agent智能审计
    • 4.3查看审计报告
    • 4.4即时分析
  • 5.下载安装cpolar
    • 5.1什么是cpolar?
    • 5.2下载cpolar
    • 5.3注册及登录cpolar web ui管理界面
  • 6.穿透DeepAudit实现公网访问
  • 7.固定二级子域名
  • 9.总结

1.DeepAudit是什么?

DeepAudit Logo

DeepAudit 是国内首个开源的代码漏洞挖掘多智能体系统,它基于 Multi-Agent 协作架构,通过四个智能体的自主协作,实现对代码的深度理解、漏洞挖掘和自动化沙箱 PoC 验证.用户只需导入项目,DeepAudit 便全自动开始工作:识别技术栈 → 分析潜在风险 → 生成脚本 → 沙箱验证 → 生成报告,最终输出一份专业审计报告.

  • Orchestrator(总指挥):接收审计任务,分析项目类型,制定审计计划,协调其他 Agent 工作.
  • Recon Agent(侦察兵):扫描项目结构,识别框架、库和 API,提取攻击面.
  • Analysis Agent(分析师):结合 RAG 知识库与 AST 分析,深度审查代码,发现潜在漏洞.
  • Verification Agent(验证者):编写 PoC 脚本,在Docker沙箱中执行,验证漏洞是否真实可利用.

简单来说,DeepAudit 就像是一个 24 小时待命的安全专家团队,帮你把代码审计这件苦差事变得高效、精准、自动化.


2.Docker一键部署DeepAudit

本教程以 Windows 系统为例,演示如何在 Docker 环境中部署 DeepAudit.如果还没有安装Docker的小伙伴,可以去cpolar官网查看**《Docker安装——Linux、Windows、MacOS》**这篇文章进行安装一下哦.

首先,电脑按住 Win + R 键,打开运行窗口,输入 cmd 并回车,打开命令提示符.然后在命令提示符中输入以下命令,一键部署 DeepAudit:

curl -fsSL https://raw.githubusercontent.com/lintsinghua/DeepAudit/v3.0.0/docker-compose.prod.yml | docker compose -f – up -d

image-20260103185117425

接着输入如下命令,查看 DeepAudit 容器是否启动成功:

docker ps

image-20260103185258782

如果看到类似上面的输出,说明 DeepAudit 已经成功启动了!这里包含了 4 个容器:

  • admin-frontend-1:前端服务,运行在 3000 端口
  • admin-backend-1:后端 API 服务,运行在 8000 端口
  • admin-redis-1:Redis 数据库,用于缓存和队列
  • admin-db-1:PostgreSQL 数据库,用于存储审计数据

现在,打开浏览器,访问如下地址:

http://localhost:3000

image-20260103190623511

可以看到,DeepAudit 的登录页面已经成功显示出来了!


3.配置DeepAudit

3.1LLM模型配置

注册一个账号,并且登录DeepAudit,即可进入主界面.

image-20260103194724583

接着来到系统管理,在系统配置项可以看到如下页面: image-20260104132647406

接着选择LLM提供商,这里以通义千问为例,因为阿里云百炼如果您是新用户,享有每个模型百万Tokens,可以在如下页面查看免费额度剩余量和模型Code等,记得开启免费额度用完即停即可,页面地址:

https://bailian.console.aliyun.com/?tab=model#/model-usage/free-quota?modelType=Text

image-20260104133144511

由于我这里的qwen-plus模型额度用完了,演示将使用qwen-max来进行演示,在选择LLM提供商中选择通义千问,然后模型名称填写qwen-max模型:

image-20260104133355525

接着获取阿里云百炼的API Key,点击页面左下角的密钥管理菜单: image-20260104133646508

进入到密钥管理后,点击创建按钮进行创建即可,创建后即可复制API key密钥: image-20260104133815659

将复制的密钥填写到API key中,点击测试按钮,出现连接成功即代表配置成功: image-20260104133927626

连接成功后,点击底部的保存所有更改按钮即可!


3.2嵌入模型配置

前面已经配置好了LLM模型,接着切换到嵌入模型页面,然后在模型提供商选择Qwen,模型选择预设v4版本的模型即可,填写前面复制下来的API key密钥,点击测试: image-20260104134853587

接着点击底部的保存配置和保存所有更改按钮即可,这样就配置完成啦!


4.使用DeepAudit进行AI代码审查

配置好 LLM 模型后,我们就可以开始使用 DeepAudit 进行代码审查了.DeepAudit 提供了两种主要的使用方式:项目管理和即时分析.


4.1创建项目

首先,在左侧导航栏点击"项目管理",进入项目列表页面.如果是第一次使用,页面会提示"未初始化项目",点击"新建项目"按钮.

image-20260104141950858

在弹出的对话框中,你可以选择两种导入方式:

方式一:Git 仓库导入

  • 仓库类型:支持 GitHub、GitLab、等
  • 仓库地址:填写你的 Git 仓库 URL
  • 默认分支:通常为 main 或 master
  • 技术栈:选择项目使用的编程语言(JavaScript、TypeScript、Python、Java、Go 等)

方式二:上传源码

  • 直接上传 ZIP 压缩包
  • 适合本地项目或私有仓库

填写完项目信息后,点击"执行创建",DeepAudit 会自动拉取代码并初始化项目.

image-20260104142044140

这里以上传源码为例,用一个几年前写的一个Java的SpringBoot项目为例,填写完成相关信息,上传源码进行执行创建: image-20260104142428893

创建完成后,即可在项目管理页面查看,创建好的项目: image-20260104142502604


4.2Agent智能审计

项目创建完成后,点击项目下方的"审计"按钮,进入审计任务页面.这里有两种审计模式:

Agent 智能审计

  • LLM 驱动的多 Agent 协同深度审计
  • 支持智能漏洞挖掘与验证
  • 适合需要深度分析的场景

快速扫描

  • 传统规则引擎驱动的快速代码扫描
  • 适合大规模批量检测
  • 速度更快,但深度略浅

这里以Agent 审计 模式举例,选中要审计的项目,然后选择审计模式,点击下方的启动Agent 审计按钮:

image-20260104142733080

启动后,即可看到项目正在进行索引和嵌入,然后进行编排审计流程: image-20260104143003939

在侧面的AGENT TREE中可以看到 Multi-Agent 协作流程:

  • Orchestrator 分析项目,制定审计策略
  • Recon Agent 扫描项目结构,识别技术栈和攻击面
  • Analysis Agent 深度分析代码,发现潜在漏洞
  • Verification Agent 在沙箱中验证漏洞真实性
  • 在审计过程中,你可以实时查看审计进度、已分析的文件数、发现的问题数量等信息.

    image-20260104145037305

    可以看到,AGENT审计模式,会进行跨方法联合审计.如上图就是在注册方法中有调用相关校验方法,AGENT审计会根据逻辑关系,去查看校验方法是否存在问题.


    4.3查看审计报告

    审计完成后,底部会有输出成功的日志提示,也可以点击右上角EXPORT按钮进行导出报告:

    image-20260104145457647

    点击EXPORT按钮后,可以将审计报告导出为 Markdown 或 JSON 以及HTML格式,方便分享和存档: image-20260104145555460

    如下为导出为HTML格式的报告预览: image-20260104150016337

    查看一下提到的高危漏洞等相关问题: image-20260104150834343

    可以看到给出了漏洞描述,还有关键的代码位置,以及修复的建议,还是很不错的!


    4.4即时分析

    除了项目管理,DeepAudit 还提供了"即时分析"功能,适合快速检查代码片段.

    点击左侧导航栏的"即时分析",进入即时分析页面:

  • 选择编程语言:从下拉菜单选择代码的语言(JavaScript、Python、Java 等)
  • 输入代码:直接粘贴代码或点击"上传文件"按钮
  • 选择提示词模板:可以使用默认的"默认代码审计"模板
  • 开始分析:点击"开始分析"按钮
  • image-20260104151028103

    几秒钟后,DeepAudit 就会返回分析结果,包括:

    • 发现的问题列表
    • 每个问题的严重程度
    • 详细的修复建议
    • 代码片段高亮显示

    即时分析非常适合:

    • 快速检查可疑代码片段
    • 学习安全编码规范
    • 代码审查前的预检查

    image-20260104151137458

    通过以上步骤,你已经掌握了DeepAudit 的基本使用方法.无论是完整项目的深度审计,还是代码片段的快速检查,DeepAudit 都能帮你高效地发现安全问题,让代码审计变得简单、快速、精准!


    5.下载安装cpolar

    通过前面的步骤,你已经成功在本地部署了 DeepAudit,并且能够通过 http://localhost:3000 访问它的界面.但问题来了:你在家里的台式机上部署了 DeepAudit,在公司想访问怎么办?或者你在公司电脑上启动了审计,回家想查看进度怎么办?

    本地部署的 DeepAudit 就像一个"孤岛",只有部署它的那台电脑能访问,其他设备想用都进不来.远程办公受限、多设备无法访问……这些问题让 DeepAudit 的价值大打折扣.

    这时候,cpolar 内网穿透 就派上用场了!它是一款轻量级隧道转发工具,能够将本地运行的服务安全地暴露至公网,实现无需公网 IP、无需复杂路由配置,就能随时随地访问你的DeepAudit.

    接下来,我将带你一步步安装并配置 cpolar,让 DeepAudit 真正实现"随时随地,想审就审"!


    5.1什么是cpolar?

    image-20250910114418412

    • cpolar 是一款内网穿透工具,可以将你在局域网内运行的服务(如本地 Web 服务器、SSH、远程桌面等)通过一条安全加密的中间隧道映射至公网,让外部设备无需配置路由器即可访问.
    • 广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,并提供一键安装脚本方便部署.

    5.2下载cpolar

    打开cpolar官网的下载页面,点击立即下载 64-bit按钮,下载cpoalr的安装包:

    image-20250815171202537

    下来下来是一个压缩包,解压后执行目录种的应用程序,一路默认安装即可,安装完成后,打开cmd窗口输入如下命令确认安装:

    cpolar version

    image-20250815171446129

    出现如上版本即代表安装成功!


    5.3注册及登录cpolar web ui管理界面

    访问cpolar官网,点击免费注册按钮,进行账号注册

    image-20250804085039567

    进入到如下的注册页面进行账号注册: image-20250804085208319

    注册完成后,在浏览器中输入如下地址访问 web ui管理界面:

    http://127.0.0.1:9200

    image-20250815171734046

    输入刚才注册好的cpolar账号登录即可进入后台页面:

    image-20250815171846757


    6.穿透DeepAudit实现公网访问

    点击左侧菜单栏的隧道管理,展开进入隧道列表页面,页面下默认会有 2 个隧道:

    • remoteDesktop隧道,指向3389端口,tcp协议
    • website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

    image-20250914174356363

    点击编辑website的隧道,修改成我们DeepAudit需要的信息:

    image-20260104154717724

    接着,点击左侧菜单的状态菜单,接着点击在线隧道列表菜单按钮,可以看到有2个deepaudit的隧道,一个为http协议,另一个为https协议:

    image-20260104154752606

    注意:每个用户创建的隧道显示的公网地址都不一样!

    接下来在浏览器中访问deepaudit隧道生成的公网地址(http和https皆可),这里以https为例:

    image-20260104154816219

    可以看到成功访问到DeepAudit的登录界面啦!


    7.固定二级子域名

    通过前面的配置,我们已经成功实现了DeepAudit的远程访问,但免费随机域名方案的局限性也逐渐显现:每24小时左右自动更换域名地址,意味着你需要频繁更新书签、重新分享链接,甚至可能因为忘记更新而无法访问.固定域名方案正是为了解决这些痛点而生,能够让你拥有一个永久不变的专属地址.

    好啦,接下来开始固定保留二级子域名教程!

    首先,进入官网的预留页面:

    https://dashboard.cpolar.com/reserved

    选择预留菜单,即可看到保留二级子域名项,填写其中的地区、名称、描述(可不填)项,然后点击保留按钮,操作步骤图如下:

    image-20260104160122793

    可以看到列表中显示了一条已保留的二级子域名记录:

    • 地区:显示为China Top.
    • 二级域名:显示为deepaudit.

    注:二级域名是唯一的,每个账号都不相同,请以自己设置的二级域名保留的为主

    接着,进入侧边菜单栏的隧道管理下的隧道列表,可以看到名为deepaudit的隧道,点击编辑按钮进入编辑页面:

    image-20260104160210331

    修改域名类型为二级子域名,然后填写前面配置好的子域名,点击更新按钮:

    image-20260104160523136

    接着,来到状态菜单下的在线隧道列表可以看到隧道名称为deepaudit的公网地址已经变更为二级子域名+固定域名主体及后缀的形式了:

    image-20260104160551889

    这里以https协议做访问测试:

    image-20260104161215156

    访问成功,让我们再进行登录测试一下: image-20260104161246923

    成功登录啦,现在无论你在哪里,只要能上网,就能随时访问你的 DeepAudit 了!


    9.总结

    完成以上配置后,DeepAudit已经可以在本地Docker环境中运行.导入项目后,可以选择Agent智能审计或快速扫描,并在任务页面查看分析进度、发现的问题、代码位置和修复建议.

    审计报告可以导出为Markdown、JSON或HTML格式,便于后续复核、归档和分配整改任务.对于临时代码片段,也可以使用即时分析功能快速获得一轮安全检查结果.

    需要注意的是,AI识别出的高危问题不一定都能在真实环境中利用,也可能遗漏依赖漏洞、配置错误和复杂业务权限问题.审计结果应由开发或安全人员再次核对,必要时结合静态扫描、依赖检测、单元测试和人工验证.

    配置第三方大模型和嵌入模型时,部分源码内容可能被发送到对应服务.对于商业项目、未公开源码或包含密钥的数据,应先确认模型服务的数据处理规则,并在导入前删除API Key、数据库密码、证书和客户信息.

    通过cpolar为3000端口建立公网隧道后,可以在其他网络环境中打开DeepAudit.固定二级子域名能够避免地址频繁变化,但也会让入口长期保持可访问状态.

    DeepAudit后台中可能保存项目源码、审计报告和模型配置,因此公网开放前应关闭不必要的公开注册,使用高强度密码,并限制地址的分享范围.还应定期检查用户、项目和登录日志,不需要远程访问时及时关闭隧道.

    部署命令会直接读取远程Compose文件并启动容器.正式执行前,建议先下载文件进行检查,确认镜像、挂载目录、开放端口和容器权限,同时为数据库、上传项目和审计结果建立备份及恢复方案.

    🚀真正的勇者不是流泪的人,而是含泪奔跑的人!


    敬请期待下一篇文章内容


    每日心灵鸡汤: 真正的忠诚,从来都建立在现实之上!

    当无利可图、无路可行之时,有些人终会离开.这未必源于恨意,而更接近一种本能选择,一种古老而反复出现的法则.无知者将其称为背叛,智者则明白,那往往是对现实的觉醒.当你失去工作、方向或能力的支点,有人会悄然退场;当资源枯竭、前途封闭,那些曾誓言生死与共的人,也可能在沉默中寻找新的去处.并非誓言虚假,而是条件已变.敬意并非凭空存在,它如香火一般,需要现实的承载与持续的供奉.当目标消散、力量衰减,情感也会在神前慢慢冷却.人性本就趋向于力量、秩序与可能性,如百川归海,并非水流无情,而是在洪流必经之处筑屋,本就是对自然的误判.你可以理解水,却不该责怪它.所谓忠诚与爱情,从来都不是脱离现实而存在的美德.有人以忠诚为名坚守,有人以价值为锚停泊;差别不在性别,而在处境与选择权.夏娃并非单纯被果实诱惑,而是被果实背后那片未知的可能所吸引.人类所有的跨越,几乎都始于对"更多选择"的想象.因此,与其在失去之后控诉世界残酷,不如在被看穿之前,看清规则;与其祈求无条件的陪伴,不如让自己始终成为值得并肩的人.

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 代码漏洞还在逐行排查?用DeepAudit做一轮AI辅助审计
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!