【案例共创】AI驱动的代码安全卫士:CodeArts代码智能审计助手实战
本案例由开发者周周的奇妙编程提供华为开发者空间案例中心优化并收录。最新案例动态请查阅【案例共创】AI驱动的代码安全卫士CodeArts代码智能审计助手实战小伙伴们快来进行实操吧一、概述1.1 案例介绍华为云码道CodeArts代码智能体是基于智能生成、智能问答两大核心能力构建起一套全方位、多层次的智能开发体系。在智能生成方面它能够依据开发者输入的需求描述准确且高效地生成高质量代码智能问答功能则如同开发者身边的专属技术顾问。本案例使用华为云码道自动生成SKILL构建代码安全审计助手应用。华为云码道CodeArts代码智能体一个理解项目需求懂得编码之道善用百器的实干派AI研发专家开启你的编码自动驾驶模式。本案例中作为交互工具自动生成项目代码。技能Skill是一种能力封装机制用于将专业知识组织为可复用的模块。技能本质上是由指令、脚本和资源构成的集合智能体可按需动态加载这些专业化的“技能包”从而提升特定任务的执行能力与执行效率。本案例中使用码道生成代码安全审计的SKILL。1.2 适用对象个人开发者高校学生企业开发者1.3 案例时间本案例总时长预计60分钟。1.4 案例流程说明开发者下载安装AI IDE完成华为云码道CodeArts代码智能体安装部署使用华为云码道CodeArts代码智能体自动生成代码安全审计SKILL华为云码道结合SKILL自动生成代码安全审计助手应用浏览器调试运行代码安全审计助手应用。1.5 资源总览本案例预计花费0元。资源名称规格单价元华为云码道CodeArts代码智能体通用体验版免费二、基础环境与资源准备2.1 AI IDE华为云码道安装部署参考案例《Windows版AI IDE华为云码道CodeArts代码智能体安装部署》完成Windows版AI IDE华为云码道CodeArts代码智能体安装部署。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。注意记录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. 能组合多个漏洞/功能构建完整攻击链点击发送按钮后码道按照需求规格设计-实现方案创建-编码任务规划-任务执行来帮助我们实现功能。开始阶段1生成需求规格说明文档(spec.md)此时我们选择开始实现方案创建提交后码道会先生成design.md这是详细设计文档包含了技术架构和具体模块和函数接口。执行阶段2实现方案创建生成design.mddesign.md文件生成后我们点击开始编码任务规划。执行阶段3编码任务规划生成tasks.md编码任务规划完成后点击开始任务执行。最后阶段4任务执行已经完成了Web代码安全审计Skill的完整SDD规划包括需求规格说明、实现方案设计和详细的编码任务规划开始代码实现。等待一段时间后华为云码道帮助我们生成了代码审计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 # 项目总结代码生成后给码道发送“运行代码”的指令码道自动帮助我们安装依赖、构建项目代码并解决编译错误。Web代码安全审计Skill的基础框架已经成功实现并稳定运行3.2 创建代码审计助手WEB应用在华为云码道对话框中输入以下prompt。创建一个Web应用让用户可以上传代码包然后利用我们刚开发的Web Code Audit Skill进行自动审计并且需要集成大模型来执行审计流程。 AI功能使用ModelArts Studio的API实现具体参数如下 API地址YOUR_API_URL; model参数YOUR_MODEL_NAME; API KEYYOUR_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注意本项目运行需Node.js环境请提前安装配置。如果生成的代码出现报错可将具体错误信息发送给码道码道会协助排查和解决。3.3 测试验证代码审计助手上传web-app/test-code.zip文件测试代码审计助手。点击开始审计上传文件-解压文件-代码分析开始审计。审计结果注意由于本应用是CodeArts代码智能体自动生成每次提问生成的代码及最后的运行结果均存在出入开发者可根据自己的需求调教模型生成自己想要的结果。若想体验与案例一样的结果请下载源码进行体验。至此AI驱动的代码安全卫士CodeArts代码智能审计助手实战的案例已全部完成。四、反馈改进建议如您在案例实操过程中遇到问题或有改进建议可以到论坛帖评论区反馈即可我们会及时响应处理谢谢