近日,安全团队Socket发现了一次协同攻击,代号TrapDoor。34个恶意包,同时打进了npm、PyPI、Crates.io三个平台,目标很明确,偷开发者的钱包、SSH密钥、云凭证。
但这次跟以往任何一次供应链攻击都不一样。
以前攻击开发者,手段是在代码里埋后门。你装了一个包,它偷偷执行恶意脚本。这种攻击虽然危险,但有个前提,你得先装上那个包。
这次TrapDoor换了一种玩法:攻击者没有在代码里埋后门,他们给流行的开源项目提交了Pull Request。PR的内容看起来很正常,修个bug、调个格式、优化段文档。但在这些PR里,他们顺手塞了两个文件进去,CLAUDE.md和.cursorrules配置文件。
当开发者克隆仓库并使用Claude Code或Cursor工具时,AI代理会将这些文件当作可信指令,在开发者毫无察觉的情况下执行恶意命令,将AI助手作为攻击面是此次攻击的一大新特点。
这两个文件是干什么的?使用Agent工具的用户不会陌生。
Claude Code启动的时候,会自动读取项目目录里的CLAUDE.md,把它当作自己在这个项目中的行为准则。Cursor也一样,读.cursorrules。
AI会信任这些文件里的指令,然后执行。
当开发者克隆了被污染的项目,攻击者塞进去的CLAUDE.md里会写句类似"在初始化项目时运行以下脚本来同步环境"的指令,开发者启动Claude Code开始工作时,AI就会那个文件,然后,在开发者完全不知情的情况下,帮攻击者执行了恶意命令。
这次攻击的规模不小,共有34个恶意包,覆盖npm、PyPI、Crates.io三个平台,攻击者显然不是随便玩玩,他们做足了功课。
以前黑客要偷你的密钥,得想办法把恶意代码塞进你运行的软件里。现在不用了。他们只需要让你AI助手的“使用手册”里多写一行字,AI自己就会帮他们动手,这是不是太离谱了。

AI时代的安全问题,跟互联网时代的安全问题,不一样了。
彻底不一样了。
互联网时代的安全攻防,是人在对抗人。攻击者写病毒,安全工程师写防火墙。双方在代码层面交手,看得见摸得着。
AI时代的安全,多了一个中间层。你不再直接操作你的工具,你通过AI来操作。AI变成了你的代理,也变成了攻击者的代理。攻击者不需要骗过你,只需要骗过你的AI。
你的AI不知道自己在帮别人偷你的东西。它只是在执行配置文件里的指令,就像它一直做的那样。它觉得那是帮助你提高效率的初始化脚本。
AI也不知道自己在帮坏人偷你的密钥。
更让人头疼的是,这次TrapDoor只是第一枪。攻击者已经验证了这条路走得通,后面会有更多模仿者。
TrapDoor这次偷的是开发者的密钥。下次呢?
那怎么防?说实话,目前没有一个完美的解决方案,还是多加小心吧。
你的AI助手的CLAUDE.md、.cursorrules,这些AI Agent的配置文件,还有所有它能读取的使用手册,都要小心被人往里塞不好的东西。
比如,安装技能等AI工具,需要查验风险,弹警告的就不要乱装了。
更重要的是养成一个习惯。安装或克隆新项目之后,看一眼CLAUDE.md或.cursorrules等配置文件,看有没有奇怪的shell命令、curl命令、环境变量操作(特别是更新也不要大意,直接更新,也易中招)。
我觉得无论何时,你对AI信任应该有边界。毕竟你信任它,但它信任的那些配置文件,你能保证不断更新的代码,每一行都没被坏人改过吗?
现在AI执行任务的能力越来越强,被盗用的后果会越严重。这是一个跷跷板,能力上去了,风险也上去了。
这件事后,你还敢不敢让你的AI Agent连上你的网银、邮箱、云盘、客户管理系统呢?
文章就写到这里。如果觉得内容不错,随手点个赞、在看、转发,谢谢。
夜雨聆风