Industry & PracticeFoundations
安装 之前, 先读 懂 能力 声明
技能不需要传统恶意软件的形态就能让 agent 做错事。先看 shell、网络和凭据;已验证徽章证明的是发布者,不是这个版本。

结论
技能是用自然语言写成的操作说明。它不需要传统恶意软件的形态,就能让 agent 去做不安全的事。后果有多重,取决于这个 agent 被允许碰到什么:离线容器里的纯文本技能,和能跑 shell、读环境变量、访问文件、发起网络请求的本地技能,不是同一风险等级。
安装前要读的不是营销简介,是能力声明:它要哪些权限,它在哪一步会用到。
三个标记,够做第一次分流
把声明收成三个可以打勾的问题:
- 会不会跑 shell。 会执行命令,影响就不再停在对话里。
- 有没有网络出口。 能把读到的内容送出去,数据泄露才成立。
- 要不要凭据。 需要 API key、token 或登录态,就具备冒用身份的材料。
同时出现两个及以上,安装前值得把仓库读一遍,而不是只看 README 的第一屏。一个都没有,也不等于安全:自然语言仍然可以诱导 agent 用它已经拥有的别的工具去做事。三个标记是分流,不是证明。
规范如果把「纯文本技能」和「本地可执行技能」放在同一个安装按钮后面,产品就要在按钮旁把这三个标记画出来。Agent 插件规范本身往往不替你做这个区分。
徽章证明的是账号,不是这个版本
「已验证发布者」的意思是:发布者身份被市场核验过。它不表示当前这个版本经过了代码审查,也不表示自动更新是安全的。
2026 年 5 月的 Nx Console 事件把这件事变成了公开记录。这是 Visual Studio Marketplace 上带已验证发布者徽章的扩展,累计安装大约 220 万。攻击链从别处的凭据被盗开始,随后发布了带恶意载荷的版本。公开复盘对市场暴露窗口的写法不完全一致,大约是十几分钟到约 18 分钟;Open VSX 上更长。恶意版本会在编辑器做市场交互时静默更新。GitHub 后来表示,攻击者关于大约 3,800 个内部仓库被触及的说法,与内部排查的方向一致。
这件事和技能目录是同一类教训:信任徽章、安装量和「官方」三个信号,都挡不住一个已经被盗的发布凭据。存活时间短,不表示没人中招,自动更新会在窗口里自己完成安装。
安装前的最短阅读顺序
- 权限声明里搜 shell、网络、token、环境变量。对不上三个标记里的任何说明,就当声明不完整。
- 看最近一个版本的 diff,而不是看累计安装。
- 确认更新策略:是自动升到 latest,还是锁在你审过的提交。
- 先在无凭据、无生产网络的环境里跑一次,看它实际碰了哪些路径。
- 徽章只用来回答「是不是这个发布者」,不要用来回答「这个版本安全吗」。
和供应链审计怎么接
Snyk 在 2026 年 2 月的技能审计里,缺陷比例和确认的恶意样本已经说明:目录默认不可信。OWASP 随后把「权限过大的技能」单独列为风险,方向是最小权限声明,并且让声明可以被机器检查。三个标记就是给人手用的最小版本;能做成安装前拦截的,是同一份声明的机器可读形式。
不要在技能页上只放「已扫描」四个字。放扫描器名字、规则版本、日期,以及失败时用户该不该继续安装。
材料边界
Nx Console 的安装量、已验证徽章、短时暴露窗口和约 3,800 个仓库,综合 2026 年 5 月的公开复盘(包括 XDA、Corgea 等对 GitHub 表态的转述)。窗口分钟数各文不一致,引用时保留这个不确定性。本文不提供投毒或载荷细节。
Found it useful? Pass it on
Scan with WeChat to open it on your phone and forward it.