从灵感到落地:用ClaudeSkills实现”一键代码审计”全过程

admin 2026-05-07 05:07:52 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档详细介绍了作者利用ClaudeSkills开发自动化代码审计工具的全过程。通过结合LSP协议实现代码智能跳转,构建了包含12个模块、5个阶段的审计体系,支持双向数据流追踪和业务逻辑分析。实战测试表明该工具能发现真实项目中的未公开漏洞,但攻击链自动识别能力仍需优化。文章提供了完整的架构方案和与传统工具的对比,展示了AI辅助安全审计的可行性。 综合评分: 85 文章分类: 代码审计,安全工具,AI安全,安全开发,漏洞分析


cover_image

从灵感到落地:用Claude Skills实现”一键代码审计”全过程

Z2O安全攻防

2026年1月25日 20:54 北京

在小说阅读器读本章

去阅读

以下文章来源于Purpleroc的札记 ,作者Purpleroc

Purpleroc的札记 .

聊聊AI和安全,写写感受与经历。为了取代博客吧~

写在前面

先说结论:我用两天时间,让CodeBuddy帮我写了一套代码审计的Skill,拿去跑真实项目,还真能挖到未公开的漏洞。不过,离好用、通用,还需要不断优化和调整的。

这篇文章,我会从「为什么想做这件事」聊起,到「怎么一步步实现」,再到「实战效果如何」,最后把完整的技术方案也分享出来。如果你对AI辅助安全审计感兴趣,往下看。


一、起点:Skill到底是什么

去年10月,Claude提出了Skill的概念。那会儿我知道这回事,但没太在意。

直到12月,ui-ux-pro-max-skill火爆出圈,短视频刷到的全是各种Skill的使用介绍,GitHub也是一堆给Skill项目点star的动态。

于是想着,用ui/ux给小程序升级一下吧,让色调更活泼、交互更友好。用uipro init --ai cursor给cursor加了个command,之后用了起来。先不说效果吧——我当时最大的感受是:这东西,核心价值是把普通人口语化、不清晰、不规范的表达,转换成专业的、清晰的、规范的描述,让AI更懂你想要什么

所以,Skill本质上是个降低专业门槛的工具

那它和MCP什么区别呢?

还记得MCP火的时候,大家都说它给AI加上了「手」和「脚」,让AI有了更多输入和反馈能力。如果说MCP是手和脚,那Skill就是操作手册——比如篮球Skill可能就定义了什么时候拍球、什么时候跨步、什么时候起跳投篮。这么说,Skill有点workflow的意思了,但似乎又比workflow更加灵活一些。

所以叫「技能」嘛,有执行流程,也能调用「手」和「脚」。


二、灵光:Claude支持LSP了?

前几天刷视频,疯狂给我推Claude支持LSP了,说什么token减少40%之类的。

LSP是什么?全称Language Server Protocol(语言服务器协议)——就是把「跳转定义、自动补全、错误诊断、重命名重构」这些IDE的智能能力,从具体编辑器里抽出来,放进一个独立的服务进程,通过统一协议调用。

说人话就是:让Claude也能像你在VSCode里按Ctrl+点击一样,快速找到变量在哪声明的、函数在哪定义的——而不是每次都靠grep全局搜索

搜索不仅慢,结果还可能很多,多了就浪费token、浪费钱。


三、碰撞:这两个东西加一起,不就是我想要的吗?

等等——

  • • LSP能做各种代码跳转
  • • Skill能写流程、调用工具

那我很早之前想过的那个事,是不是能实现了?

当时我想写一个VSCode插件,辅助做代码审计:从HTTP请求处理的地方开始,挨个函数跟下去,自动看逻辑、找漏洞

现在,用Claude Code + Skill + LSP,似乎可以实现?

刚巧那天中午遛弯,又刷到另一个视频,大致是用CodeBuddy创建一个写PPT的Skill,能自动解析PDF、Excel,梳理内容,用指定风格生成PPT。

我想:那我是不是也可以创建一个「代码审计Skill」?

说干就干。


四、动手:周末两天,从零到一

于是,周末两天,各种push各种编码客户端。我轻声细语地给AI说:

> 核心诉求:我想做一个能"自动做代码安全审计"的Claude Skill,请帮我实现。
>
> 任务背景:我经常需要做代码审计,找出源码中的安全风险,生成漏洞报告。报告需要给出完整的source到sink的调用链路径,并提供漏洞触发PoC。我希望这个工具能一键搞定。
>
> 具体要求:
> 1. 仅针对Web框架,从HTTP请求入口出发作为source点
> 2. 支持正向审计:从source出发,完整分析代码逻辑,找调用链,理解业务,发现漏洞
> 3. 支持反向审计:通过规则梳理所有sink点,从sink往回找,最终必须能追溯到HTTP入口
> 4. 利用Claude LSP来做代码跳转和检索,而不是单纯搜索匹配
> 5. 最终漏洞必须可通过网络请求触发,需要完整调用链和PoC
> 6. 能组合多个漏洞/功能,构建完整攻击链

很顺利,第一版Skill就这么跑起来了。


五、靶场验证:效果还真不错

原本想支持Python、Java、Go三种语言。想了想,先从Python开始吧。

于是找了个Python靶场——PyHackMe

随便一跑,你还别说,效果挺好,两三分钟跑完:

靶场测试结果和项目说明一对比,嘿,挺准的。信心来了。

但我转念一想:是不是因为它是靶场,漏洞名都写在路径上了?文件也少、代码量也小,不用Skill是不是也能找出来?

于是,去掉Skill再跑一次

⏺ 安全审计完成。我已经生成了完整的安全审计报告。
  审计结果摘要:共发现 16个安全漏洞

结果差别不大。(信心受打击了…


六、真刀真枪:拿真实项目试试水

靶场不够有说服力,那真实项目呢?

Python项目里跟大模型相关的挺多。我突然想起2月份的时候,WeDetect抓到过一个反序列化漏洞。去项目的issue和security看了看,似乎没人提CVE,可能还在。

于是clone下代码开跑。

结果出来一些漏洞,仔细看了一遍——都是些无伤大雅的,比如「存在沙盒的代码执行」之类。并没有出现我预期的那个反序列化漏洞。

仔细看了看代码,哦,某个版本被修掉了。

于是,回退到3月份的版本,再跑一次

这下有了:

反序列化漏洞发现

这么看,效果是有的


七、进阶挑战:能不能自动找出攻击链?

单点漏洞能找了,那复杂的攻击链呢?

想起之前RR挖的ComfyUI的洞,是多个步骤组合才能利用的。拿来试试。

于是把ComfyUI-Manager拉下来跑了一波。结果只找到了git下载和Python库安装的问题:

ComfyUI扫描结果1

ComfyUI扫描结果2

但并没有把完整攻击链组合起来。

手动看了看代码,发现是因为还需要ComfyUI主项目的代码一起分析。加上后,确实多跑出了几个漏洞。

但完整攻击链还是没出来。

于是我提示它:“那你看看userdata是不是可以用来更改安全级别呢?”

这下,它输出了完整的攻击链:

完整攻击链

看起来挺完美。

但问题是:怎么让它自动发现这个链路,而不是靠我提示?

我都知道洞在哪了,还需要你找啥呢?


八、自我进化:让AI反思,优化Skill

于是我反问它:

“反思一下,为什么第一次审计没有发现这个漏洞/攻击链路?结合当前Skill,站在通用漏洞发现的角度,给出优化建议——但不可以包含当前漏洞的信息和特征。”

于是它认真思考了一下:(下图是某个越权没找出来的反思,上面case的反思图没截到~

AI反思优化建议

就这样,一次一次让Skill反思、进化


九、最终成果:12个模块、5个阶段的完整方案

经过多轮迭代,最终形成了一套完整的代码审计Skill体系。

架构图

┌─────────────────────────────────────────────────────────────────┐
│              code-security-audit (主控协调器)                     │
│                                                                 │
│        协调所有Skill,按阶段执行审计流程,生成最终报告                 │
└─────────────────────────────────────────────────────────────────┘
                                 │
       ┌─────────────────────────┼─────────────────────────┐
       ▼                         ▼                         ▼
┌──────────────┐      ┌──────────────────┐      ┌──────────────────┐
│ Phase 1      │      │ Phase 2          │      │ Phase 3          │
│ 资产发现      │      │ 漏洞审计          │      │ 业务审计          │
├──────────────┤      ├──────────────────┤      ├──────────────────┤
│入口扫描       │      │Sink点扫描         │      │访问控制审计        │
│Sink点扫描    │      │数据流追踪(双向)    │      │业务逻辑审计        │
│安全资产扫描   │      │漏洞验证           │      └──────────────────┘
│数据模型分析   │      │PoC生成            │
└──────────────┘      └──────────────────┘
                                 │
                                 ▼
                      ┌──────────────────┐
                      │ Phase 4          │
                      │ 攻击链分析        │
                      └──────────────────┘

审计流程

Phase 1: 资产发现
├─ web-entry-discovery      → 发现所有HTTP入口
├─ sink-point-scanner       → 扫描危险Sink点
├─ security-asset-scanner   → 识别敏感配置和代码加载点
└─ data-model-analyzer      → 分析数据模型和所有权关系

Phase 1.5: 入口功能分析
└─ entry-function-analyzer  → 理解每个接口的业务逻辑

Phase 2: 技术漏洞审计 (反向追踪)
├─ dataflow-tracer          → 从Sink往回追到Source
├─ vulnerability-validator  → 验证漏洞是否真实可利用
├─ vulnerability-correlator → 搜索同类漏洞模式
└─ poc-generator            → 生成可验证的PoC

Phase 2.5: 正向数据流追踪
└─ forward-flow-tracer      → 从Source追到Sink

Phase 3: 业务逻辑审计
├─ access-control-auditor   → 发现越权漏洞(IDOR/垂直越权)
└─ business-logic-auditor   → 发现业务流程缺陷

Phase 3.5: 交叉验证
└─ 正向 + 反向结果交叉验证,减少漏报和误报

Phase 4: 攻击链分析
└─ attack-chain-analyzer    → 漏洞组合利用分析

Phase 5: 报告生成
└─ 整合所有发现,生成Markdown格式审计报告

十、核心价值:和传统工具的区别

| 维度 | 传统安全扫描 | 这套Skill方案 | | — | — | — | | 漏洞类型 | 只能发现注入类技术漏洞 | 技术漏洞 + 业务逻辑漏洞 | | 追踪方式 | 单向追踪 | 双向追踪 + 交叉验证 | | 误报率 | 高 | 多层验证,显著降低 | | 业务理解 | 无 | 结合数据模型,理解资源所有权 | | 攻击链 | 单独漏洞分析 | 支持漏洞组合分析 |


写在最后

两天时间,从一个想法到一套可用的代码审计Skill,这个过程本身就挺有意思的。

关键在于:不是我在写代码,而是我在”训练”AI写代码。我的角色更像是产品经理+QA,负责提需求、验收结果、反馈问题,让AI不断迭代。

这套Skill目前只支持Python,后续计划扩展到Java和Go。如果你也对AI辅助安全审计感兴趣,欢迎交流。


最后的最后,这套方案的核心思想其实很简单:

Skill定义”怎么做审计”的流程和规范 LSP提供”看懂代码”的能力 Claude负责”理解和执行”

三者结合,就有了一个能自动挖漏洞的AI安全研究员。

虽然离完美还有距离,但确实能用一些些了。当然,随着不断使用,这里肯定会遇到越来越多的问题,然后Skill或者项目也会越来越复杂,这是肯定的。

在做加法的同时,可能也需要做减法,比如,是不是把覆盖的漏洞类型,再聚焦一点?


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:Z2O安全攻防 《从灵感到落地:用Claude Skills实现”一键代码审计”全过程》

评论:0   参与:  0