本案例由开发者:周周的奇妙编程提供,华为开发者空间案例中心优化并收录。

最新案例动态,请查阅【案例共创】AI驱动的代码安全卫士:CodeArts代码智能审计助手实战小伙伴们快来进行实操吧!

一、概述

1.1 案例介绍

华为云码道(CodeArts)代码智能体是基于智能生成、智能问答两大核心能力构建起一套全方位、多层次的智能开发体系。在智能生成方面,它能够依据开发者输入的需求描述,准确且高效地生成高质量代码;智能问答功能则如同开发者身边的专属技术顾问。本案例使用华为云码道自动生成SKILL,构建代码安全审计助手应用。

  • 华为云码道(CodeArts)代码智能体:一个理解项目需求,懂得编码之道,善用百器的实干派AI研发专家,开启你的编码自动驾驶模式。本案例中作为交互工具,自动生成项目代码。

  • 技能(Skill)是一种能力封装机制,用于将专业知识组织为可复用的模块。技能本质上是由指令、脚本和资源构成的集合,智能体可按需动态加载这些专业化的“技能包”,从而提升特定任务的执行能力与执行效率。本案例中使用码道生成代码安全审计的SKILL。

1.2 适用对象

  • 个人开发者
  • 高校学生
  • 企业开发者

1.3 案例时间

本案例总时长预计60分钟。

1.4 案例流程

flow.png

说明:

  1. 开发者下载安装AI IDE,完成华为云码道(CodeArts)代码智能体安装部署;
  2. 使用华为云码道(CodeArts)代码智能体,自动生成代码安全审计SKILL;
  3. 华为云码道结合SKILL,自动生成代码安全审计助手应用;
  4. 浏览器调试运行代码安全审计助手应用。

1.5 资源总览

本案例预计花费0元。

资源名称 规格 单价(元)
华为云码道(CodeArts)代码智能体 通用体验版 免费

二、基础环境与资源准备

2.1 AI IDE华为云码道安装部署

参考案例《Windows版AI IDE华为云码道(CodeArts)代码智能体安装部署》完成Windows版AI IDE华为云码道(CodeArts)代码智能体安装部署。

1.png

2.2 领取华为云MaaS平台大模型Tokens福利(任选其一)

方式一: 登录华为开发者空间,参考案例《华为开发者空间 - ModelArts Studio大模型通用代金券领取使用指导》中的“二、 开通MaaS平台大模型”章节内容领取代金券,获取到模型的API地址、模型名称和API Key

方式二: 登录华为开发者空间,参考案例《华为云MaaS平台大模型Tokens领取使用指导》中的“二、 领取MaaS平台大模型Tokens”章节内容,领取MaaS平台DeepSeek V3系列大模型Tokens代金券,购买ModelArts Studio DeepSeek Tokens套餐包,开通模型服务,最后获取到模型的API地址、模型名称和API Key

13.png

14.png

注意:记录API Key、API地址以及模型名称留作后面步骤使用。

三、基于CodeArts代码智能体高效构建自动化代码审计助手

3.1 代码审计SKILL构建

考虑到代码审计是专业性比较强的东西,所以这里计划使用SKILL来构建,先简单介绍一下SKILL。

Skill是由claude提出的概念,其核心是一份 Markdown 文件(SKILL.md)。当Skill被调用时,系统并不会去“运行”这个 Skill,而是读取这个文件,将其中的大量指令、工作流和知识“展开”并“注入”到当前的对话历史中。

Skill本质上来说是一种“提示词扩展”,而非具体的“代码执行”,与传统的提示词相比,只是加载方式不同。

那么,它与MCP之间究竟有何区别?

MCP刚兴起时,业界普遍将其比喻为给AI装上了“手”和“脚”,那如果说MCP是让AI具备“行动力”的肢体,那 Skill就像是它的“操作手册”或“行为指南”。

举例来说,一个“篮球 Skill”可能定义了:何时拍球、何时跨步、何时起跳投篮——它将复杂动作拆解为可执行的步骤,并指导AI在特定情境下做出恰当响应。

从这个角度看,Skill 确实具备类似workflow的结构化特征,但它又比传统workflow更具灵活性:它不仅描述“怎么做”,还隐含“为什么这么做”和“在什么条件下做”,更贴近人类专家的经验式决策逻辑。

这里,我们采用智能体的规范驱动模式,让CodeArts代码智能体理解我的意图,给出prompt如下:

核心诉求:我想做一个能"自动做代码安全审计"的Skill,请帮我实现。

任务背景:我经常需要做代码审计,找出源码中的安全风险,生成漏洞报告。报告需要给出完整的source到sink的调用链路径,并提供漏洞触发PoC。我希望这个工具能一键搞定。

具体要求:
1. 仅针对Web框架,从HTTP请求入口出发作为source点
2. 支持正向审计:从source出发,完整分析代码逻辑,找调用链,理解业务,发现漏洞
3. 支持反向审计:通过规则梳理所有sink点,从sink往回找,最终必须能追溯到HTTP入口
4. 利用Claude LSP来做代码跳转和检索,而不是单纯搜索匹配
5. 最终漏洞必须可通过网络请求触发,需要完整调用链和PoC
6. 能组合多个漏洞/功能,构建完整攻击链

6.PNG

点击发送按钮后,码道按照需求规格设计->实现方案创建->编码任务规划->任务执行来帮助我们实现功能。

开始阶段1:生成需求规格说明文档(spec.md)

2.PNG

此时,我们选择开始实现方案创建,提交后,码道会先生成design.md,这是详细设计文档,包含了技术架构和具体模块和函数接口。

执行阶段2:实现方案创建(生成design.md)

3.PNG

design.md文件生成后,我们点击开始编码任务规划

执行阶段3:编码任务规划(生成tasks.md)

4.PNG

编码任务规划完成后,点击开始任务执行

最后阶段4:任务执行

已经完成了Web代码安全审计Skill的完整SDD规划,包括需求规格说明、实现方案设计和详细的编码任务规划,开始代码实现。

5.PNG

等待一段时间后,华为云码道帮助我们生成了代码审计SKILL。项目文件结构如下:

web-code-audit/
├── .codeartsdoer/specs/web_code_audit/ # SDD文档
├── src/
│ ├── types/index.ts # 类型定义
│ ├── services/ # 基础服务层
│ │ ├── ConfigManager.ts
│ │ ├── LogManager.ts
│ │ ├── LSPClient.ts
│ │ ├── CodeParser.ts
│ │ ├── RuleEngine.ts
│ │ └── CacheManager.ts
│ ├── index.ts # 主入口
│ └── cli.ts # CLI接口
├── config/config.yaml # 配置文件
├── examples/django-vulnerable-app/ # 示例应用
├── package.json # 项目依赖
├── tsconfig.json # TypeScript配置
├── README.md # 项目文档
└── PROJECT_SUMMARY.md # 项目总结

代码生成后,给码道发送“运行代码”的指令,码道自动帮助我们安装依赖、构建项目代码并解决编译错误。

7.PNG

Web代码安全审计Skill的基础框架已经成功实现并稳定运行!

3.2 创建代码审计助手WEB应用

在华为云码道对话框中,输入以下prompt。

创建一个Web应用,让用户可以上传代码包,然后利用我们刚开发的Web Code Audit Skill进行自动审计,并且需要集成大模型来执行审计流程。
AI功能使用ModelArts Studio的API实现,具体参数如下:​
API地址:YOUR_API_URL;
model参数:YOUR_MODEL_NAME;
​API KEY:YOUR_API_KEY

注意:

  • YOUR_API_URL:替换成步骤“2.2 领取华为云MaaS平台大模型Tokens福利”中获取的API地址。
  • YOUR_MODEL_NAME:替换成步骤“2.2 领取华为云MaaS平台大模型Tokens福利”中获取的模型名称。
  • YOUR_API_KEY:替换成步骤“2.2 领取华为云MaaS平台大模型Tokens福利”中获取的API Key。

几分钟后,华为云码道帮助我们生成了完整的代码,代码结构如下:

web-app/
├── server/ # 后端服务器
│ ├── server.js # Express服务器
│ ├── package.json # 依赖配置
│ ├── .env # 环境变量示例
│ └── services/
│ ├── auditService.js # 审计服务(集成Web Audit Skill)
│ └── aiService.js # AI服务(集成大模型)
├── client/ # 前端界面
│ ├── index.html # 主页面(现代化UI)
│ └── app.js # 前端脚本
├── uploads/ # 上传文件存储
├── start.bat # Windows启动脚本
├── start.sh # Linux/Mac启动脚本
├── README.md # 使用文档
└── WEB_APP_SUMMARY.md # 完成总结

应用启动后,打开浏览器访问:http://localhost:3000

8.PNG

注意:

  • 本项目运行需Node.js环境,请提前安装配置。
  • 如果生成的代码出现报错,可将具体错误信息发送给码道,码道会协助排查和解决。

3.3 测试验证代码审计助手

上传web-app/test-code.zip文件,测试代码审计助手。

点击开始审计

9.PNG

上传文件->解压文件->代码分析,开始审计。

10.PNG

审计结果:

11.PNG

12.PNG

注意:由于本应用是CodeArts代码智能体自动生成,每次提问生成的代码及最后的运行结果均存在出入,开发者可根据自己的需求,调教模型生成自己想要的结果。若想体验与案例一样的结果,请下载源码进行体验。

至此,AI驱动的代码安全卫士:CodeArts代码智能审计助手实战的案例已全部完成。

四、反馈改进建议

如您在案例实操过程中遇到问题或有改进建议,可以到论坛帖评论区反馈即可,我们会及时响应处理,谢谢!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐