一场专为MEV机器人设计的反向围猎

一个长期在以太坊上猎取普通交易者MEV收益的自动化机器人,最终被设计成陷阱的“定制版”攻击所击中。2024年6月21日,知名三明治套利机器人Jaredfromsubway.eth地址内的WETH、USDC等资产被转走,初步统计损失逾750万美元。此次攻击未涉及私钥泄露或传统智能合约漏洞,而是通过部署虚假代币与流动性池,诱导机器人在自动化执行过程中向恶意合约授予了ERC-20代币的无限授权(Approval),随后合法调用并转移资产。 攻击者利用该机器人持续扫描链上交易、快速构建交易路径的特性,提前数周布局虚假交易环境。他们模仿主流资产接口与行为,使机器人误判存在套利机会,逐步获取信任。当系统开始重复执行类似路径后,攻击者调整合约逻辑,使部分授权未被消耗且未归零,最终集中调用仍有效的授权额度完成资产转移。 这一过程精准针对机器人自动执行逻辑中的授权盲区,暴露出即便高度专业化的代码驱动系统,也可能因对新合约缺乏身份验证而中招。表面上是技术策略失败,实则是对“授权即权限”认知缺失的体现——无论是用户“未看清就确认”,还是机器人“未确认就自动执行”,本质都是对Approval机制风险的忽视。

Approval为何长期被低估?

在以太坊及EVM兼容链中,ERC-20的Approve机制是实现资产跨合约调用的基础。用户在使用DEX、借贷或质押服务时,必须先通过Approve赋予目标合约一定额度的调用权限,才能进行后续操作。 然而,这一看似常规的操作,却潜藏巨大风险。多数用户习惯于一次性设置高额甚至无限授权,以避免频繁确认和额外Gas成本。但一旦授权未被撤销,即使资金已离开原账户,后续转入的资产仍可能被恶意合约调用。 更关键的是,断开DApp连接、清除缓存或更换钱包应用,均不会自动失效已写入区块链的Approval记录。这意味着,哪怕用户已不再使用某协议,其授权仍可能长期有效,成为潜在攻击入口。 此外,即便是原本合规的合约,也可能在未来因密钥泄露、逻辑升级或路由合约被篡改而变得危险。因此,风险不仅来自“是否授权给坏人”,还在于“授权对象未来是否会出问题”。

如何管控Approval风险

面对此类风险,最根本的应对策略是将Approval从一次性操作转变为持续的权限管理机制。 对于普通用户,应遵循最小权限原则:每次授权应严格匹配实际交易需求,避免无限制开放。例如仅计划使用100 USDC,就不应授予全部余额权限。 建议区分储存钱包与交互钱包:大额资产长期存放于不频繁连接外部DApp的钱包中;参与空投、Mint或高风险项目时,使用独立地址隔离潜在损失。 同时,定期检查并撤销不再需要的授权至关重要。可通过Revoke.cash等工具,或在imToken等钱包中进入代币页面,点击「授权管理」查看并撤销来源不明或已废弃的权限。 然而,仅靠用户自律难以防范复杂攻击。钱包产品必须承担主动防御责任。如imToken会对风险代币、地址及DApp进行标记,在用户授权或转账时提供风险提示,并对签名内容进行结构化解析与可读化展示,确保“所见即所签”。 随着ERC-7730等Clear Signing标准推进,这种透明化签名机制有望成为行业通用规范,提升整个生态的安全边界。 最终,私钥控制账户所有权,Approval决定资产调用权。两者缺一不可,也同样重要。真正的安全防线不应只依赖私钥保护,还需从用户意识、权限管理到钱包功能全面协同,让每一个被遗忘的授权都不再成为隐患。