Skill赋能代码审计初探

admin 2026-01-17 01:17:06 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文探讨结合CodeQL与ClaudeAgentSkills进行代码审计的思路,即利用CodeQL静态扫描生成JSON报告,再通过Skill加载特定工作流送入Claude进行漏洞验证、修复及Payload生成。文章详细解析了Skill的运作原理与编写格式,并通过Python项目演示了从扫描到利用验证的全流程,实现了静态工具与AI智能体的有效联动,提升了审计效率。 综合评分: 88 文章分类: 代码审计,AI安全,安全工具,安全开发,解决方案


cover_image

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运作流程

整个过程可以看作是一个 “动态加载特定领域大脑” 的过程:

  1. 用户请求: 例如:用户输入“帮我分析这个 PDF。”
  2. LLM 决策: 看到 Skill 工具里有 pdf 技能的描述,决定调用 command: “pdf”。
  3. 系统介入:
  • 读取 pdf/SKILL.md。
  • 生成一条给用户的“正在加载…”消息。
  • 生成一条给 AI 的“你现在是 PDF 专家,你的工作流是 1,2,3…”的隐藏消息。
  • 修改当前 Session 的权限,允许使用 Bash 中的 PDF 工具。
  1. 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赋能代码审计初探》

评论:0   参与:  0