5月20日凌晨,AI代理平台Bankr发布公告称,平台14个用户钱包遭到攻击,损失超过44万美元。目前,所有交易已临时暂停。慢雾创始人余弦随后确认,此次事件与5月4日针对Grok关联钱包的攻击性质相同,问题并非源于私钥泄露或智能合约漏洞,而是“针对自动化代理间信任层的社会工程攻击”。Bankr表示将从团队金库全额赔偿用户损失。
此前,5月4日,攻击者利用类似逻辑,从Bankr为Grok关联的钱包中盗取约30亿枚DRB代币,折合约15万至20万美元。当时攻击流程曝光后,Bankr曾暂停对Grok的响应,但不久后似乎恢复了集成。不到三周,攻击者再次出手,利用类似的代理间信任层漏洞,影响范围从单一关联钱包扩大至14个用户钱包,损失规模也随之翻倍。
攻击路径并不复杂。Bankr是一个为AI代理提供金融基础设施的平台,用户和代理可以通过在X(原Twitter)上向@bankrbot发送指令来管理钱包、执行转账和交易。平台使用Privy作为嵌入式钱包提供商,私钥由Privy加密管理。关键设计在于,Bankr会持续监控特定代理——包括@grok——在X上的推文和回复,并将其视为潜在的交易指令。尤其是当该账户持有Bankr Club Membership NFT时,这一机制会解锁高权限操作,包括大额转账。
攻击者正是利用了这个逻辑的每一个环节:
整个过程在短时间内完成。没有人入侵任何系统。Grok完成了翻译任务,Bankrbot执行了指令,它们仅仅按照预期运行。
“自动化代理之间的信任”是问题的核心所在。Bankr的架构将Grok的自然语言输出等同于经过授权的金融指令。这个假设在正常使用场景下是合理的,如果Grok真的想转账,当然可以说“send X tokens”。但问题在于,Grok并没有能力区分“自己真正想做什么”和“被人利用来说什么”。
LLM(大型语言模型)的“乐于助人”与执行层的信任之间,存在一个没有被填补验证机制的空白。摩尔斯码(以及Base64、ROT13等任何LLM能够解码的编码方式)是这个空白的绝佳利用工具。直接要求Grok发出转账指令,可能触发其安全过滤;但要求它“翻译一段摩尔斯码”,则是一个中性的帮助任务,没有任何防护机制会介入。翻译结果包含恶意指令,这不是Grok的错误,而是预期行为。Bankr接收到这条带有转账指令的推文,同样按照设计逻辑执行了签名。
NFT的权限机制进一步放大了风险。持有Bankr Club Membership NFT等同于“已授权”,无需二次确认,无限额约束。攻击者只需完成一次空投操作,就获得了近乎无限制的操作权限。
两个系统都没有出错,错的是把两个各自合理的设计拼接在一起时,没有人想过中间那个验证空白会发生什么。
5月20日的攻击将受害范围从单一代理账户扩展至14个用户钱包,损失从约15万至20万美元增至超过44万美元。
目前没有类似Grok公开可追溯的攻击帖子流传。这意味着攻击者可能已经改变了利用方式,或者Bankr内部的代理间信任机制存在更深层的问题,不再依赖Grok这一条固定路径。无论如何,防御机制即便存在,也没能阻止这次变体攻击。
资金在Base网络上完成转账后,迅速跨链至以太坊主网,分散到多个地址,部分换成ETH和USDC。已公开的主要获利地址包括0x5430D、0x04439、0x8b0c4等开头的三个地址。
Bankr快速响应,从发现异常到全局暂停交易、公开确认、承诺全额赔偿,团队在数小时内完成了事件处置,目前正在修复代理间验证逻辑。但这掩盖不了根本问题:这套架构在设计时,就没有把“LLM输出被注入恶意指令”当作一个需要防御的威胁模型。
AI代理获得链上执行权,正在成为行业的标配方向。Bankr不是第一个,也不会是最后一个这样设计的平台。