文章总结: 本文探讨结合CodeQL与ClaudeAgentSkills进行代码审计的思路,即利用CodeQL静态扫描生成JSON报告,再通过Skill加载特定工作流送入Claude进行漏洞验证、修复及Payload生成。文章详细解析了Skill的运作原理与编写格式,并通过Python项目演示了从扫描到利用验证的全流程,实现了静态工具与AI智能体的有效联动,提升了审计效率。 综合评分: 88 文章分类: 代码审计,AI安全,安全工具,安全开发,解决方案
Skill赋能代码审计初探
原创
俗说君 俗说君
鹿鸣安全团队
2026年1月16日 18:09 江苏
前言
最近在学Skill,就想尝试找个场景将其进行应用。也算是填一下之前Codeql+LLM应用的坑了。
总体的思路:利用CodeQL先实现静态代码扫描输出扫描的json数据,而后基于Skill文档的步骤送入到Claude中加载运行进行验证及修复方案和参考攻击payload生成。
前置配置
CodeQL
CodeQL实现静态代码分析效率还是可以的,但是它对查询语法的编写要求很高,导致难度就比较大,且对于编译性语言和非编译性语言的项目审计难度也不一样。
对于java,C,C# 等需要指定构建方式
对于python等项目则可以直接进行扫描审计
具体的搭建流程可以看《CodeQL代码审计初探》一文中的过程,主要就是保证执行codeql指令的时候可以正常运行即可,并且针对python、java等语言包的查询扩展库也要指定好。
Claude Skill
简单介绍
Skill执行需先在本地搭建Claude,我是利用的中转站(https://api.code-relay.com/register?aff=3V9T),依据其教程完成安装即可。出现如下界面就说明安装成功了
Skill本质上来说是一种“提示词扩展”,而非具体的“代码执行”,与传统的提示词相比,只是加载方式不同。
Agent Skills 是一种轻量级、开放的格式,用于通过专业知识和工作流扩展AI智能体的能力。
Skill 的核心是一份 Markdown 文件(SKILL.md)。当 Skill 被调用时,系统并不会去“运行”这个 Skill,而是读取这个文件,将其中的大量指令、工作流和知识“展开”并“注入”到当前的对话历史中。
Skill运作流程
整个过程可以看作是一个 “动态加载特定领域大脑” 的过程:
- 用户请求: 例如:用户输入“帮我分析这个 PDF。”
- LLM 决策: 看到 Skill 工具里有 pdf 技能的描述,决定调用 command: “pdf”。
- 系统介入:
- 读取 pdf/SKILL.md。
- 生成一条给用户的“正在加载…”消息。
- 生成一条给 AI 的“你现在是 PDF 专家,你的工作流是 1,2,3…”的隐藏消息。
- 修改当前 Session 的权限,允许使用 Bash 中的 PDF 工具。
- LLM 执行: 带着新注入的记忆(Prompt)和新获得的权限(Tools),Claude 仿佛变了一个人(Agent),开始执行具体的 Bash 命令来处理 PDF。
小结:Claude Agent Skills 的原理是通过“元工具”动态地将“静态的知识文件(Markdown)”转化为“动态的对话上下文(Prompt)”。
它并没有创造新的“程序执行”方式,而是极其聪明地利用了 LLM In-Context Learning(上下文学习) 的能力,实现了功能的无限扩展和按需加载。
SKill编写格式
一个 Skill = 任务说明书 + 工具代码 + 专业知识 + 素材资源。
本质上就是一种代码和资源的组织方式。
skill.md包含以下字段:
name:必填(是) 【最多64个字符。仅允许小写字母、数字和连字符。不能以连字符开头或结尾。】
description:必填(是) 【最多1024个字符。非空。描述该 Skill 的功能及适用场景。】
license:必填(否) 【许可证名称或引用的捆绑许可证文件。】
compatibility:必填(否) 【最多500个字符。说明环境要求(目标产品、系统包、网络访问权限等)。】
metadata:必填(否) 【用于附加元数据的任意键值映射。】
allowed-tools:必填(否) 【Skill 可使用的预批准工具列表(空格分隔)。(实验性功能)】
落地实现
这里只是先做了一个简单的demo,主要就是为了能跑通skill的运行流程,因此整体项目的结构不是很大(仅仅以python为例,因为不用编译,可以直接检测)。 目录结构如下:
codeql-sast/
├── SKILL.md # 主指令文件(必须有)
├── queries/ # 一些查询相关的文件
└── scripts/
└── codeql_scan.py # 工具脚本
效果展示
直接跟claude对话,帮我审计一下这个python项目,项目路径是“C:\Users\xxxx\codeql_vlun.py”
依据给出的payload参考进行漏洞利用验证
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:鹿鸣安全团队 俗说君 俗说君《Skill赋能代码审计初探》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论