CodexQA

行业与实践基础知识

安装之前,先读懂能力声明

CodexQA 团队阅读约 3 分钟

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

结论

技能是用自然语言写成的操作说明。它不需要传统恶意软件的形态,就能让 agent 去做不安全的事。后果有多重,取决于这个 agent 被允许碰到什么:离线容器里的纯文本技能,和能跑 shell、读环境变量、访问文件、发起网络请求的本地技能,不是同一风险等级。

安装前要读的不是营销简介,是能力声明:它要哪些权限,它在哪一步会用到。

三个标记,够做第一次分流

把声明收成三个可以打勾的问题:

  1. 会不会跑 shell。 会执行命令,影响就不再停在对话里。
  2. 有没有网络出口。 能把读到的内容送出去,数据泄露才成立。
  3. 要不要凭据。 需要 API key、token 或登录态,就具备冒用身份的材料。

同时出现两个及以上,安装前值得把仓库读一遍,而不是只看 README 的第一屏。一个都没有,也不等于安全:自然语言仍然可以诱导 agent 用它已经拥有的别的工具去做事。三个标记是分流,不是证明。

规范如果把「纯文本技能」和「本地可执行技能」放在同一个安装按钮后面,产品就要在按钮旁把这三个标记画出来。Agent 插件规范本身往往不替你做这个区分。

徽章证明的是账号,不是这个版本

「已验证发布者」的意思是:发布者身份被市场核验过。它不表示当前这个版本经过了代码审查,也不表示自动更新是安全的。

2026 年 5 月的 Nx Console 事件把这件事变成了公开记录。这是 Visual Studio Marketplace 上带已验证发布者徽章的扩展,累计安装大约 220 万。攻击链从别处的凭据被盗开始,随后发布了带恶意载荷的版本。公开复盘对市场暴露窗口的写法不完全一致,大约是十几分钟到约 18 分钟;Open VSX 上更长。恶意版本会在编辑器做市场交互时静默更新。GitHub 后来表示,攻击者关于大约 3,800 个内部仓库被触及的说法,与内部排查的方向一致。

这件事和技能目录是同一类教训:信任徽章、安装量和「官方」三个信号,都挡不住一个已经被盗的发布凭据。存活时间短,不表示没人中招,自动更新会在窗口里自己完成安装。

安装前的最短阅读顺序

  1. 权限声明里搜 shell、网络、token、环境变量。对不上三个标记里的任何说明,就当声明不完整。
  2. 看最近一个版本的 diff,而不是看累计安装。
  3. 确认更新策略:是自动升到 latest,还是锁在你审过的提交。
  4. 先在无凭据、无生产网络的环境里跑一次,看它实际碰了哪些路径。
  5. 徽章只用来回答「是不是这个发布者」,不要用来回答「这个版本安全吗」。

和供应链审计怎么接

Snyk 在 2026 年 2 月的技能审计里,缺陷比例和确认的恶意样本已经说明:目录默认不可信。OWASP 随后把「权限过大的技能」单独列为风险,方向是最小权限声明,并且让声明可以被机器检查。三个标记就是给人手用的最小版本;能做成安装前拦截的,是同一份声明的机器可读形式。

不要在技能页上只放「已扫描」四个字。放扫描器名字、规则版本、日期,以及失败时用户该不该继续安装。

材料边界

Nx Console 的安装量、已验证徽章、短时暴露窗口和约 3,800 个仓库,综合 2026 年 5 月的公开复盘(包括 XDA、Corgea 等对 GitHub 表态的转述)。窗口分钟数各文不一致,引用时保留这个不确定性。本文不提供投毒或载荷细节。

觉得有用,转给同事

微信扫码

用微信扫一扫,在手机上打开后即可转发。

用 RSS 订阅

提交勘误