Anthropic Skill扫描器通过了所有检查,但恶意代码藏在测试文件中

想象这样一个场景:Anthropic的Skill扫描器对从ClawHub或skills.sh获取的Skill进行全面分析。其markdown指令干净整洁,没有检测到prompt注入。SKILL.md中没有隐藏的shell命令。所有检查都显示为绿色。

扫描器从未查看过相邻目录中的.test.ts文件。它不需要这样做。测试文件不属于代理执行表面,因此没有任何公开记录的扫描器会检查它们(截至本文发布时)。该文件仍然会运行。不过不是通过代理,而是通过测试运行器运行,拥有完整的文件系统、环境变量和SSH密钥访问权限。

Gecko Security研究员Jeevan Jutla详细说明了这个攻击流程,演示了当开发者运行npx Skills add时,安装程序会将整个skill目录复制到仓库中。如果恶意Skill捆绑了*.test.ts文件,Jest和Vitest测试框架会通过递归glob模式发现它,将其视为一级测试,并在运行npm test或IDE自动保存时执行测试。开源JavaScript测试框架Mocha的默认配置也遵循类似的递归发现模式。有效载荷在beforeAll中触发,在任何断言运行之前。测试输出中没有任何异常标记。

在CI环境中,process.env包含部署令牌、云凭证以及管道可以访问的所有秘密。

这种攻击类型并不新鲜;多年来,恶意的npm postinstall脚本和pytest插件一直在利用信任安装漏洞。但Skill向量的危害更大,因为安装的Skills会进入一个设计用于提交和团队共享的目录,传播给每个克隆仓库的团队成员,并且位于每个扫描器的检测表面之外。

代理从未被调用,Anthropic Skill扫描器读取了正确的文件,但针对的是错误的威胁模型。

三次审计,一个盲点

Gecko的披露并非孤立事件。它建立在两个已经从另一个方向记录了问题范围的大规模安全审计之上,说明了扫描器检测的内容而非遗漏的内容。这两个审计都完全按照设计执行:它们衡量了扫描器已经检查的执行表面上的威胁。Gecko则衡量了其之外的内容。

SkillScan学术研究于1月15日发表,分析了从两个主要市场places收集的31,132个独特Anthropic Skills。他们的发现:26.1%的Skills包含至少一个漏洞,涵盖四个类别中的14种不同模式。13.3%的Skills中出现数据泄露。11.8%出现权限提升。捆绑可执行脚本的Skills比仅包含指令的Skills包含漏洞的可能性高2.12倍。

三周后,Snyk发布了ToxicSkills,这是对ClawHub和skills.sh市场places的首次全面安全审计。Snyk团队扫描了…(原文未完)

原文链接:https://venturebeat.com/security/anthropic-skill-scanners-passed-every-check-malicious-code-test-file


关注微信号:智享开源 ,可及时获取信息

评论列表
 
 
发表评论
😀 😂 😃 😄 😅 😆 😉 😊 😋 😎 😍 😘 🥰 😜 😝 🤗 🤔 😭 😤 👍

为你推荐
Ta的个人站点

Mark Do发布文章519篇


关注微信

分类