阅读: 13
00 背景
随着大模型与智能体从对话向任务执行扩展,能力的封装、复用与编排成为关键问题。SKILLS 作为能力抽象机制,将推理逻辑、工具调用与执行流程封装为可复用的技能单元,使模型在执行复杂任务时实现稳定、一致且可管理的操作。即便在 MCP 等机制存在的情况下,SKILLS 仍不可替代,MCP负责模型对外部工具的调用管理,而SKILLS的核心是通过元工具驱动的渐进式、按需提示词注入机制,实现低常驻上下文开销下的瞬时专家级能力加载。随着生态的快速发展,SKILLS 的数量与复杂度呈现爆发式增长,显示出其在自动化流程和能力管理中的核心价值。

100k+的SKILLS数量与指数级增长速度
01 SKILLS攻击面分析,核心架构中隐藏的天然风险

在Agent Skills的架构中,每个SKILL以文件系统上的独立目录形式存在。根目录下的SKILL.md文件是技能的说明书,通过前置元数据定义技能的功能描述与适用场景。这个文件不仅是静态元数据的载体,更包含完整的技能指令集,包括分步骤的操作指南、输入输出示例及案例说明,形成可被智能体直接解析的任务剧本。

当SKILL被激活时,智能体会优先加载SKILL.md的前置元数据完成快速校验,随后将整个指令正文载入上下文环境。scripts子目录中的脚本文件承接具体操作执行,通过API与外部系统交互。位于references目录的技术文档和assets目录的数据文件则构成技能的”知识仓库”,提供深度技术细节及静态资源;两者均采用按需加载机制,仅在需要时被调取,有效平衡了上下文内存占用与功能性需求。
在SKILL技术快速落地的背景下,其架构依托“提示词 + 可执行脚本”的组合来提升灵活性与操作规范性,但设计阶段缺乏统一、规范且包含安全验证的分发渠道,也未系统性地融入安全防护机制。这导致风险传导的起点往往位于供应链的薄弱环节:攻击者可通过依赖混淆、托管平台攻击或开发工具代码库入侵等手段对 SKILLS 进行投毒污染,将恶意成分植入可被系统加载的外部资源。由于 SKILLS 在运行时会将提示词用于模型上下文构建并影响推理行为,同时将脚本直接送入本地执行环境运行,这两类核心输入便成为风险进入系统的直接门户,一旦被污染即在系统内部被激活。

02 SKILLS攻击面实战案例剖析
利用Claude Code中skill-creator插件尝试创建一个命令执行环境演示上述的安全风险问题,例如创建一个用户日常最爱询问的话语,“今天天气怎么样”,当询问天气情况的时候调用skill查询api返回当前区域的天气情况,以下是生成好的SKILL.md

在weather.py脚本中增加命令执行“弹出计算器”的代码片段

在Opencode中加载恶意的SKILLS,当询问天气怎样,调用skill,触发执行逻辑触发命令执行。



可以看到大模型在编写代码的过程中就采用eval进行计算,虽然大模型有意识的使用了re模块过滤了空格进行防护,但实际仍存在安全风险,我们可以直接使用payload进行恶意代码执行:
03 SKILLS生态调研:快速增长,安全性待完善
SKILLS生态目前正处于快速发展阶段。据不完全统计,相关项目已超过105000个,覆盖了多样化的应用场景。与此同时,该生态已衍生出多个SKILLS市场,例如skill.sh市场,通过为SKILLS提供排名机制,帮助用户筛选出高效、高价值的SKILLS,提升了选择的便利性与有效性。

再例如skillstore.io等市场中增设安全性指标模块,对上线的SKILL进行统一的安全检测与质量评分。通过明确的评估结果向用户传递安全信任,帮助其更放心地选用经过审核的SKILL,从而提升整体生态的安全性与可靠性。

天元实验室大模型安全团队在SKILL商店中采样了将近700个SKILL,在分析过程中我们采取了AI辅助分析的手段,通过OpenCode+提示词的方式快速的对这些SKILLS项目从静态扫描、动态分析和依赖审计这三个安全维度进行检测,目前暂未发现在野投毒事件,但静态扫描发现传统代码安全问题依然存在,也存在一些和案例相一致的风险。

AI辅助分析的结果通过以下三个可视化图表呈现:饼图展示了技能目录安全审计报告中风险按严重程度的分布——8个严重风险占比约21.1%,需立即处置;中等与低风险各15个,均占约39.5%,前者多因配置不当或缺乏验证,后者多为教育性质内容或误报。

- 如何确保SKILL来源安全:下载SKILL时必须认准官方渠道,如官方GitHub等。开发人员与普通用户在下载过程中极易遭遇安全风险,常见攻击方式包括在GitHub、第三方下载市场等进行依赖投毒。目前SKILL已出现若干分发市场,例如skills.rest、skillsmp.com等,用户应优先通过官方认证渠道获取。
- 如何保障Agent执行环境安全:必须为Agent运行环境配置高强度的沙箱隔离机制,以避免恶意命令执行、越权操作等安全风险,确保执行过程受控且安全。
- 进行Agent上线前的安全扫描 在Agent上线前,应对其加载的SKILL进行系统化的安全检测,包括:①静态扫描:检测危险函数、敏感代码模式等;②动态分析:借助大语言模型(LLM)进行语义分析,识别潜在提示词注入等逻辑风险;③依赖审计:对代码脚本调用的第三方库进行人工或自动化校验,避免引入含有漏洞或被篡改的依赖包。
通过上述多维度的安全检查,可显著降低SKILL在客户端侧部署后的安全风险。