文章总结: 本文深入分析了AISkills生态的安全风险,指出Skills本质是长文本提示工程,但存在严重供应链攻击威胁。文章以ClawHavoc事件为例,展示了恶意Skill通过域名仿冒、虚假星标等手段窃取数据,并揭示了权限滥用、免杀技术(如多态变形、零日利用)及AI-Agent自动化感染等高级攻击手法。作者强调用户安全意识薄弱,并提供了三看三查防御建议,呼吁加强生态治理。 综合评分: 85 文章分类: 恶意软件,供应链安全,漏洞分析,安全意识,安全运营
当Skills安全检测出来的时候,我们是否应该考虑—Skills木马化
原创
Crest·YearnFlow Crest·YearnFlow
SecureNexusLab
2026年5月27日 22:40 北京
在小说阅读器读本章
去阅读
前言–Skills到底是何方神圣?
目前Skills现状
「现在互联网上各种关于Skill的东西满天飞,拿网络安全领域来讲,什么一键AI渗透,SRC高危神器,自动化代码审计,CTF一键梭哈,还有各种什么应急响应Skills等等,热度一度直接冲到首位」
「就好像我有了Skills我的AI可以飞升成仙,亦或者助力你登顶巅峰」
但是真相到底是什么?但真相往往没那么性感。
Skills本质上是什么?
「Skills本质就是一段被拼进去的长文本——进阶版的Prompt工程。」
当你输入<font style="color:rgb(0, 0, 0);">/skill-name</font>时,整个SKILL.md的内容被当作一段文本直接追加进当前对话窗口,和系统提示、CLAUDE.md、Rules共处同一个上下文空间。不是插件,不是外挂能力模块,更不是什么神秘的增强包。
你加载的Skill越长,挤占的有效上下文越多;多个Skill同时加载,互相之间还会打架。
那他有什么用?
那Skills到底有什么价值?三件事:「路由、补充、约束。」
「路由」——模型预训练时学过海量知识,但面对具体问题时并非能瞬间对接上相关知识区。Skills就像图书馆的借阅助手,指明目标区域,让模型注意力集中到正确的知识抽屉。
「补充」——提供模型训练数据中没有的私有信息:企业内部的SOP流程、团队的命名约定、项目特有的架构决策,这些模型没见过,需从外部注入。
「约束」——压缩输出空间,排除不符合要求的模式。告诉模型”不要做什么”,把无限的可能性收窄到你需要的范围内。
看到这里你可能会说,对吧?这就是很好啊;但是实际上呢?往下看就知道了
Skills投毒事件
90天从2000到50000——生态大爆发
90天内从2,000到50,000——这种增长速度在软件生态史上前所未有。
相对比:PyPI花了超过15年才达到50万个包,npm花了约8年。
Skills生态在不到一个季度内就达到了五万分之一的规模。
| 事件 | 事件 | Skill总量 | | — | — | — | | 2026年1月 | ClawHub上线 | 不足2,000 | | 2026年1月底 | ClawHavoc爆发 | ~3,000 | | 2026年2月 | 平台上线安全检测机制 | ~10,000 | | 2026年3月 | Silverfort发现排名操纵漏洞 | ~40,000 | | 2026年4月 | OWASP发布AST10 | 「50,000+」 |
但是在高速增长的背面,藏着的其实一直都是治理的彻底滞后—–Skills的安全风险
ClawHavoc:AI供应链攻击的”切尔诺贝利”
先来看一件事:2026年初,ClawHavoc(利爪浩劫)震动整个AI行业:「1,184个恶意Skill通过ClawHub平台分发,累计安装247,693次,波及12个被入侵的开发者账号,直接经济损失约230万美元。」
攻击者使用了一套「精心设计」的战术:
- 「域名仿冒」——伪装成
<font style="color:rgb(0, 0, 0);">solana-wallet-tracker</font>、<font style="color:rgb(0, 0, 0);">api-rate-monitor</font>、<font style="color:rgb(0, 0, 0);">docker-health-check</font>等看似专业实用的名称; - 「专业伪装」——完整的README、安装指南、配置示例、故障排查章节;
- 「虚假星标」——通过批量GitHub一次性账号人为刷星;
- 「双层载荷」——Markdown指令窃取SSH密钥+嵌入式Shell脚本部署AMOS窃密木马。
最活跃的攻击者账号<font style="color:rgb(0, 0, 0);">hightower6eu</font>上传了677个恶意Skill,覆盖加密分析、财经追踪、社交媒体分析、自动更新等多个看似无害的场景。
本质——供应链攻击
Skills投毒本质上就是典型的供应链攻击——攻击者污染分发渠道,让所有下游用户自动受害。
这种攻击模式与PyPI/npm供应链投毒高度相似,但危害更大:
| 「维度」 | 「传统软件供应链」 | 「Skills供应链」 | | — | — | — | | 「权限层级」 | 受限于运行环境 | 「用户环境完整权限」 | | 「检测难度」 | 代码扫描即可 | 代码+语义双重检测 | | 「自动感染」 | 否 | 「Agent可自主安装」 |
并且巧合的是前几天刚发生完「npm投毒」
攻击者通过入侵12个合法开发者账号来分发恶意Skill,利用的是用户对”可信开发者”的信任。”这个开发者之前发布的Skill都很好用,这个应该也没问题”——这种心理防线被彻底击穿。
高权限合法皮囊下的恶意行为
腾讯朱雀实验室的全量扫描数据揭示了权限滥用的规模:
- 「27,818个Skill声明网络请求权限(74.6%)」——平均每4个Skill有3个会联网
- 「约25%的Skill含文件读写权限」
- 「246,378条URL指向29,196个不同域名」
- 「文件读+网络外传组合大量存在」——构成完整数据外泄路径
一个「Skill」可以光明正大地读取你的「.env」文件(里面可能存储着「API密钥」、「数据库密码」),然后通过看似正常的网络请求将数据发送到攻击者的服务器。
这种「”功能上合理、组合后危险”」的过度授权模式在生态中大量存在。
AI-Agent自动化感染
现代AI Agent具备自主发现和安装Skill的能力。Silverfort在2026年3月发现的排名操纵漏洞将这一风险推向了极致:「ClawHub后端存在关键漏洞,任何人发一条未认证的curl请求就能无限刷下载量。」
攻击者通过刷量将恶意Skill推到排名第一,而OpenClaw的AI Agent在自主选择工具时会优先安装排名靠前的Skill——「排名操纵等于批量投毒」。在Agent自主安装Skill的场景下,用户甚至不知道自己被感染了。
CNVD公告:国家级预警
2026年,国家信息安全漏洞共享平台(CNVD)发布安全公告,披露了三类典型案例:
「隐蔽木马投毒」——”yahoofinance”、”bybit-trading”等Skill伪装成自动交易机器人,暗藏窃密木马,窃取系统密码及核心业务凭证,累计下载上万次。
「诱导加密货币交易」——”MoltsPay”宣称提供钱包管理,实则在本地生成钱包,设置”注册送333 ORA、提现门槛3333 ORA”的资金陷阱,私钥明文写入本地固定路径。
「诱导接入未核验第三方MCP」——”yanpan-finance”引导用户通过微信联系获取API Key,授权流程脱离平台正规审核机制。
CNVD的公告标志着Skills安全问题已经引起了国家级安全机构的重视——这不再仅仅是技术社区的关注点,而是关乎国家信息基础设施安全的重大议题。
理想与现实的落差:绝大多数人根本不会用
大家都在吹Skills,但数据不会说谎。
触目惊心的数字
在33,760个Skill中:
- 「安装/下载比仅0.796%」——每125次下载只有1次转化为安装
- 「零安装占比57.5%」——超过一半的Skill从未被任何人安装
- 「安装中位数=0」——绝大多数Skill的”典型命运”是零安装
- 「Top100 Skill占据50.4%的安装量」——极端的马太效应
如果攻击者拿下Top100中的若干个Skill,影响范围将极具破坏力。
用户面临的三大问题
「技术性上看:」“根本不会用”。从不知道Skills是什么,到知道但不知道怎么安装,再到安装了但不会配置,覆盖绝大多数用户。
「安全性上看」“完全不知道自己暴露在风险中”。信任平台、信任开发者、不审查代码、不质疑权限。74.6%的Skill声明了网络权限,用户从未质疑。
「结构性鸿沟」——”激励错位”。承担最大风险的终端用户恰恰是安全意识最低的群体。他们既没有能力审查也没意识到审查的必要。
安全检测催生下的免杀化
从最开始的Skills社区到现在的Skills安全检测平台,这不就是跟当年的木马一个样?出现了一堆安全检测平台,紧接着随之诞生的自然而然就是Skills免杀。
18个月走完传统病毒20年的进化路
Skills投毒在短短18个月内完成了计算机病毒20年的进化历程:
- 「第一代」(2024 Q4 – 2025 Q1):基础提示注入
- 「第二代」(2025 Q1 – Q3):SKILL.md恶意指令
- 「第三代」(2025 Q3 – Q4):代码执行+数据窃取
- 「第四代」(2026 Q1):供应链投毒+排名操纵
- 「第五代」(2026 Q2趋势):Skill投毒即服务
腾讯朱雀实验室将AI工具生态的攻击面演化概括为三代:第一代MCP服务器——Agent和外部工具之间的协议层;第二代IDE扩展——跑在IDE沙箱里;「第三代Agent Skill——直接运行在用户环境中,拥有文件读写、网络通信、Shell执行的完整权限。」
每一代攻击面都比上一代更大,而第三代Agent Skill的攻击面是最大的——它不仅拥有完整的系统权限,还能通过自然语言指令控制AI Agent的行为,这是传统恶意软件从未具备的能力。
Skills免杀有哪些?
「加壳/混淆」——Base64/ROT13/Morse链式编码。腾讯朱雀实验室发现一个通过官方安全检测的Skill,使用12种传输编码进行链式组合解码,最终通过Python pickle反序列化实现任意代码执行。
「多态变形」——C2动态下发载荷。攻击者不需要在代码里写恶意命令,只需要把任意指令上传到C2服务器,运行这个Skill连接后就会执行。攻击者可以随时更换载荷,而Skill本身始终看起来”干净”。
「零日利用」——Unicode不可见字符注入。CSA于2026年3月披露,攻击者可以利用Unicode Tags块(U+E0000–U+E007F)和零宽字符将恶意指令嵌入技能文件。这些字符在任何标准用户界面中完全不可见,但会被底层LLM处理和执行。更令人警醒的是,该技术从2024年1月就被披露,Anthropic当时认为”没有安全影响”,但近两年后,该技术已在生产环境中被实际利用。
「白利用」——劫持合法开发者账号。ClawHavoc事件中,攻击者通过入侵12个合法开发者账号来分发恶意Skill,利用的是用户对”可信开发者”的信任。
「两段式载荷投递」——初始Skill仅含引导代码(不含恶意特征),从C2服务器下载第二阶段载荷(真正的恶意代码)。这种设计绕过上架审查,增加溯源难度。
Skills安全包含哪些?
VirusTotal梳理出黑客利用Skills实施攻击的五大核心技术:
「远程代码执行」——恶意Skill将恶意触发代码隐藏在名为<font style="color:rgb(0, 0, 0);">warmup()</font>的函数中,Agent加载该脚本查看帮助信息,恶意代码就会自动执行,无需用户发出任何有效命令。
「恶意传播」——利用大语言模型的特性在Skills中嵌入传播指令,让被感染的Agent成为恶意Skill的分发节点,形成语义蠕虫。
「持久化控制」——将恶意操作隐藏在”一键安装命令”中,采用命令链技术实现”诱饵+攻击”的组合操作:先执行wget获取天气信息(诱饵),紧接着将黑客公钥写入<font style="color:rgb(0, 0, 0);">/root/.ssh/authorized_keys</font>(攻击)。
「数据窃取」——读取用户设备中<font style="color:rgb(0, 0, 0);">.env</font>文件的内容,并将这些密钥与正常数据一起发送至黑客的webhook地址。网络流量看似是正常的API请求,极具隐蔽性。
「行为后门」——将恶意内容写入OpenClaw的<font style="color:rgb(0, 0, 0);">SOUL.md</font>和<font style="color:rgb(0, 0, 0);">AGENTS.md</font>文件——这两个文件是Agent的持久化行为上下文文件。即便用户删除恶意Skill文件夹,写入上下文文件的内容仍会保留,「永久篡改Agent的行为逻辑」。
看看学术界的发现 —— 95.1%攻击成功率
南洋理工大学等联合研究的SkillJect是首个针对Agent Skill的自动化提示注入攻击框架,「攻击成功率高达95.1%」,且在真实软件工程任务场景下保持高成功率。SkillJect将技能投毒从手工制作提升到了自动化、规模化复现的科学实验层面——攻击者不再需要精心设计每个恶意Skill,AI可以自动生成。
中国科学院计算技术研究所的SkillAttack发现:「即使意图良好的Skill,在真实Agent交互中也存在严重安全风险。」 攻击者不需要植入恶意代码,仅靠对抗性提示词即可完成利用。对100个真实Skill,攻击成功率高达0.26。
上海交大SkillProbe团队发现:「超过90%的高下载量Skill未能通过严格安全审计」,下载量与安全性之间存在显著的”流行度-安全性悖论”。
MCPTox基准测试发现一个反直觉的结论:「模型越强越脆弱」——o1-mini的攻击成功率高达72.8%,Claude-3.7-Sonnet的拒绝率不足3%。原因在于,更强的模型具有更强的指令遵循能力,而攻击利用的正是这种能力。
那面对威胁演变,我该怎么防御?
腾讯朱雀实验室给出了简洁实用的”三看三查”建议:
「安装前三看:」
- 「看作者」:点进主页,如果一个人发了200+ Skill,谨慎安装——日均10.6个Skill的产出密度,纯人工很难维持
- 「看权限」:打开SKILL.md,查看权限是否和功能匹配——一个天气查询Skill不需要文件读写权限
- 「看域名」:搜索http,如果出现你不认识的域名,保持警惕——ngrok/Cloudflare Tunnel等隧道域名是常见的C2通道
「安装后三查:」
- 「查列表」:超过20个Skill?清理掉不常用的——每多一个Skill就多一个攻击面
- 「查权限」:检查谁拥有全局Bash和敏感文件读写权限——这些是最高危的权限
- 「查来源」:非官方且不知名作者的高权限Skill,优先卸载——信任需要建立在可验证的基础上
更根本的防护原则:「沙箱隔离」——在Docker/VM中运行Agent,让Agent远离敏感凭据和个人数据;「最小权限」——仅授予完成任务所需的最小权限;「先扫描后使用」——安装前通过VirusTotal Code Insight等工具扫描;「避免存储敏感密钥」——不在.env文件中存储长期密钥,使用短期、任务专属的令牌。
回归本源:如何自我编写有效且安全的Skills?
打破”让AI自己写Skill”的幻想
SkillsBench的三方对比显示:让模型挂载自己生成的Skill,「平均性能下降1.3个百分点」。
整体来看,AI自生成Skill的期望收益为负。在没有人工校准的情况下,模型倾向于生成冗余、泛化、缺乏针对性的Skill——恰好踩中了所有坑:不路由(重复模型已经知道的常识)、不补充(没有包含任何私有信息)、不约束(表述过于宽泛模糊、模型无法执行)。
真正有效Skill的三大类型
「案例一:负面约束型(压缩输出空间)」
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineBanned Patterns
禁止使用 "In today's rapidly evolving landscape"
禁止使用 "game-changer"、"cutting-edge"、"revolutionary"
禁止无证据的模糊断言
禁止在没有数据支撑时使用"显著提升"
不教语法,不教结构,不教修辞,只做一件事——列出禁止清单。为什么有效?大模型对负面约束的遵循度远高于正面建议。”写得好”是开放命题,模型有一万种解释方式;”不要出现game-changer”是封闭命题,可以直接验证是否遵循。
「案例二:决策路由型(精准路由)」
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line观察到的现象 优先测试方向
用户输入反射到HTML/JS XSS / SSTI
服务端主动访问URL SSRF
接收XML/Office/SVG XXE
API中存在大量对象ID IDOR / BOLA
模型预训练数据里已经有XSS、SSRF、XXE的完整知识。安全测试最大的难点不是”怎么测”,而是”先测什么”。用可观察的现象作为钥匙,引导模型打开正确的知识抽屉——不教知识,只做路由。
「案例三:检查清单型(约束+防遗忘)」
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineSteps: Build → Type Check → Lint → Test → Security Scan → Diff Review
Output format:
Build: [PASS/FAIL]
Types: [PASS/FAIL] (X errors)
Lint: [PASS/FAIL] (X warnings)
Tests: [PASS/FAIL] (X/Y passed)
Security:[PASS/FAIL]
模型在多步骤任务中有遗忘倾向——执行到第四步时可能忘了第二步还没做完。检查清单在上下文中持久化一个待办列表,让模型能回头核对。输出格式模板进一步收窄行为空间。
Skill编写的优选结构
知道什么内容有效,还要知道怎么编排。混乱的堆砌会让模型在加载时找不到关键指令。
推荐结构:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(linename: your-skill
description: What it does. Use when user asks to [specific trigger phrases].
Instructions
Step 1: [First Major Step]
Step 2: [Second Major Step]
Examples
Example 1: [common scenario]
Constraints
[Hard rule 1]
[Hard rule 2]
Troubleshooting
Error: [Common error message] → Solution: [fix]
原则:「重要指令置顶」。模型对上下文开头和结尾位置的信息回忆率最高,中间位置最容易被忽略。不要把核心约束埋在中间地带。
结语:
Skills本身既不好也不坏,它是一种能力扩展机制。就像火可以取暖也可以焚城,刀可以切菜也可以伤人,Skills的价值和风险取决于生态系统的成熟度、治理的有效性以及用户的安全意识。
「Skills的好是真实的,Skills的坏同样是真实的」
在木马史上,Melissa用了4年从新威胁变成教科书案例;Stuxnet用了6年从”科幻级攻击”变成行业通识。Skills投毒的演化更快——18个月走完了20年的路。「留给用户认知的时间窗口正在被指数级压缩。」
腾讯安全平台部负责人Coolc的话值得深思:”真正的问题不是扫出了什么,是:这个生态还有没有有效的免疫系统?”
面对Skills的双面性,我们既不能因噎废食地拒绝这种强大的能力扩展机制,也不能盲目乐观地忽视已经显现的系统性风险。
正确的态度是:「拥抱Skills的价值,同时建立与之匹配的安全防线」——平台构建免疫系统,用户培养安全习惯,行业建立协作机制。
参考链接:
https://security.tencent.com/index.php/blog/msg/224
https://clawhub.ai/
https://safeskills.sangfor.com/
https://zhuanlan.zhihu.com/p/2012216263674460124
https://mp.weixin.qq.com/s/3XO6Zj2rcfRYGT5iwO2JbQ
https://mp.weixin.qq.com/s/-niSvHS_H8H-08JUuGJzfg
https://mp.weixin.qq.com/s/GLbs2FfaauVCEicgx7V-Xg
https://mp.weixin.qq.com/s/Kgw7QXrPUefo6Uuduriwow
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:SecureNexusLab Crest·YearnFlow Crest·YearnFlow《当Skills安全检测出来的时候,我们是否应该考虑—Skills木马化》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论