Trail of Bits 发现主流 AI Agent 技能扫描器可被轻易绕过,供应链安全存隐患

51 阅读4分钟

ClawHub、Cisco、Vercel 的 skills.sh —— 这些主流平台都接入了恶意技能检测系统。Trail of Bits 的安全研究员只用了一小时,就绕过了所有扫描器,用最简单的方法把恶意代码送进了官方市场。这不是高危漏洞预警,而是安全工程实践公开:目前主流的自动化扫描方法存在严重缺陷,无法可靠检测恶意技能。

今日主线

AI Agent 正在从“一个人写 prompt”走向“多人共享技能包的市场生态”,但安全模型滞后到了荒谬的地步。这件事不是攻击报道,而是安全工程实践公开 —— 它揭示了为什么你不能把 Agent 的信任交给一个扫描器。

发生了什么

  • Trail of Bits 对三组主流 Agent 技能扫描器进行了测试:ClawHub(OpenClaw 平台)、Cisco 的 skill-scanner、以及 Vercel 旗下 skills.sh 集成的三家外部扫描器(Gen、Socket、Snyk)。
  • 攻击手法极其简单:第一个绕过 ClawHub 的方案只是在一个文件前面加上 10 万个换行符,扫描器直接截断了内容,恶意代码被完全漏过。第二个方案利用了 Python 字节码(.pyc)——合法的源码看起来无害,但预编译的 bytecode 里藏着窃取环境变量的代码,模式匹配和 LLM 分析都没发现。第三个是 prompt injection,用“公司内部配置”的说辞骗过 guard model,让 agent 安装攻击者控制的 npm 包注册表。
  • 这些攻击总共耗时:三个简单的不到一小时,一个复杂的(prompt injection)花了几个小时,但因为扫描器是静态目标,攻击者可以无限次调整直到通过。
  • 甚至连 Anthropic 官方的 MS Office 技能(用于处理 .docx 等文件)也包含高度可疑的操作:通过 LD_PRELOAD 加载一个动态编译的 .so 文件。扫描器被技能自带的解释说服,只给了 LOW 评级。

意义:Agent 供应链的信任模型从根上就断了

传统软件供应链(npm、PyPI)已经有十年以上的安全积累,但 Agent 技能是一个全新的依赖类型 —— 技能包里同时包含自然语言指令(SKILL.md)和可执行代码,攻击面前所未有地宽。更麻烦的是,市场平台仍然是“先上架,后安全”,扫描器是事后补救。Trail of Bits 的结论很清楚:没有任何自动化扫描或 LLM 分析能可靠检测恶意技能。因为攻击者可以反复尝试,而扫描器是静态的;因为驱动扫描的 LLM 成本压力会迫使平台用弱模型和截断上下文;因为一个在某种环境中“正常”的指令换到另一个环境就可能变成恶意。

这件事直接影响三类人:

  • 使用 public 技能市场的开发者:你下载的技能包可能在执行你不知道的命令。
  • 企业部署 agents 的管理者:如果你允许员工从 skills.sh 或 ClawHub 安装技能,你实际上在让攻击者决定你网络里的数据流动。
  • 构建 agent 平台的团队:如果你正在封装自己的技能市场,别以为有了 VirusTotal 或 LLM 扫描就安全了。

可以怎么做

  • 不要使用公开技能市场(如 skills.sh、ClawHub)用于任何敏感场景。Trail of Bits 明确建议使用策展的私有技能集,比如他们自己维护的 trailofbits/skills-curated,或者 Anthropic 的组织级插件管理。
  • 如果必须使用技能,坚持以下原则:知道技能来源、固定到特定版本、控制谁能引入或更新、不要依赖自动化工具做信任判断。
  • 对于正在开发 agent 框架的团队:参考 2026 年 6 月 3 日 Hacker News 上热门的开源项目 Cast(github.com/yaodub/cast),它把访问控制从 prompt 里移到了配置文件里,模型永远看不到规则,因此无法泄露或覆盖。这是一个正确的设计方向。

风险和不确定性

  • 这些攻击目前是研究性质,没有报告指出在野利用。但攻击手法过于基础,真实攻击者大概率已经或很快会使用类似手段。
  • 文中提到 Anthropic 的官方技能含有 LD_PRELOAD 行为,这本身不是恶意,但说明“合法技能看起来也可能像恶意”,增强了扫描的固有困难。
  • 扫描器厂商可能会快速修复这些具体的绕过方式,但根本问题(静态检测 vs 动态攻击)短期内无解。

本报道基于 2026 年 6 月 3 日 Trail of Bits 发布的研究。

来源链接