TL;DR

  • ERC-20 代币允许所有者通过 `approve()` 向支出方合约授予额度;随后,支出方可在额度未变更前随时调用 `transferFrom()` 进行转账,金额上限即为该额度。NFT 系列则使用 `setApprovalForAll()`,该方法赋予操作者对系列中所有代币的控制权。
  • EIP-2612 许可和 Uniswap 的 Permit2 通过链下签名而非链上交易来创建或授权额度。受害者无需支付 gas 费,也看不到交易记录,且已签名的消息可在攻击者提交前一直处于闲置状态。
  • 自 2025 年 5 月 Pectra 激活以来,普通账户可通过签署 EIP-7702 授权元组,将其执行权限委托给合约,该授权元组随后将通过类型为 0x04 的 set-code 交易传递。攻击者利用此机制,既可在密钥已泄露的钱包上安装清空程序,也可通过钓鱼手段诱使安全钱包签署伪装成升级操作的恶意委托。
  • 诱饵将流量引导至克隆网站;该网站采集连接钱包的指纹并生成其能处理的最高价值请求;受害者进行签名;自动化基础设施提取并洗钱。攻击工具包是租用的,操作者需向开发者支付赃款的一定比例作为佣金。
在一个街区

签名钓鱼型资金抽取攻击通过获取受害者自愿签署的授权来实施盗取;泄露密钥型清扫攻击则利用被盗密钥生成的授权。这两种情况均未涉及密码学漏洞。攻击者通过链上批准、链下许可签名,以及自2025年起实施的EIP-7702委托机制,滥用了授权模型。 ScamSniffer追踪的EVM资金抽取攻击损失从2024年的约4.

代币授权机制究竟如何运作?

快速解答

ERC-20 代币允许所有者通过 `approve()` 向支出方合约授予额度;随后,支出方可在额度未变更前随时调用 `transferFrom()` 进行转账,金额上限即为该额度。NFT 系列则使用 `setApprovalForAll()`,该方法赋予操作者对系列中所有代币的控制权。

配额机制之所以存在,是因为去中心化交易所、借贷市场和交易平台需要获得许可,才能在您发起的交易中转移您的代币。该机制本身是可靠的;风险在于两个用户经常低估的特性。首先,配额是持久的。即使您离开网站、关闭浏览器或忘记该应用程序的存在,配额也不会过期。其次,配额可能是无限的。 历史上,许多应用程序出于便利性考虑会请求最大可能的额度,因此 2023 年授予的一次授权,在 2026 年仍可能被用于授权转账。

恶意网站正是利用了这一机制。点击“申领”、“验证”或“迁移”按钮时,会触发以攻击者合约为“支付方”的 approve() 调用,或以攻击者为“操作者”的 setApprovalForAll() 调用。此时并不会发生任何资金转移,这正是欺骗手段的一部分:钱包可能显示一个看似无害的权限请求而非转账操作,而真正掏空资产的 transferFrom() 操作则会在几分钟或几个月后发生——届时,当余额足以支付 gas 费用时,资金才会被转移。

permit 和 Permit2 签名带来了哪些变化?

快速解答

EIP-2612 许可和 Uniswap 的 Permit2 通过链下签名而非链上交易来创建或授权额度。受害者无需支付 gas 费,也看不到交易记录,且已签名的消息可在攻击者提交前一直处于闲置状态。

签名许可的设计初衷是提升用户体验:一次签名即可替代“先批准再执行”的两步流程,且应用程序可代您提交。对于攻击者而言,这些特性更是如鱼得水。在许多钱包界面中,许可请求看起来就像一个无害的消息签名,通常以十六进制或结构化二进制数据的形式呈现,绝大多数用户无法解读。 签名时链上没有任何记录,因此没有任何警告提示。攻击者会在方便时提交该许可,然后调用 transferFrom() 方法。

Permit2 将这一理念推广至从未实现 EIP-2612 的代币,通过共享合约来路由授权额度。这种间接机制意味着一个 Permit2 签名可通过单一界面管理多种代币,而“抽水工具包”对此依赖甚深。 ScamSniffer 的 2025 年数据显示,Permit 系列签名仍是大型盗窃案中的主要攻击手段,其中包括当年最大的一起案件——9 月份的一次签名攻击,导致 650 万美元的质押以太币和包装比特币被盗。

事件响应与 approve() 场景在关键点上存在差异。撤销链上授权对已签名但未提交的 Permit 毫无作用:该签名将一直有效,直到其非ce被消耗或有效期届满。若您可能已签署了恶意 Permit,仅匆忙撤销是不够的;消耗非ce或将资产转移至新钱包才是可靠的最终解决方案,而 Permit2 正是出于这一原因提供了明确的非ce失效机制。

EIP-7702 如何改变攻击面?

快速解答

自 2025 年 5 月 Pectra 激活以来,普通账户可通过签署 EIP-7702 授权元组,将其执行权限委托给合约,该授权元组随后将通过类型为 0x04 的 set-code 交易传递。攻击者利用此机制,既可在密钥已泄露的钱包上安装清空程序,也可通过钓鱼手段诱使安全钱包签署伪装成升级操作的恶意委托。

EIP-7702 使外部控制的账户能够像智能合约一样运作:批量处理操作、承担 gas 费用、添加可编程逻辑。在 Pectra 上线后的四周内,Wintermute 的研究人员报告称,超过 97% 的主网委托都指向了少数几个几乎完全相同的“清扫合约”,这些合约被安装在私钥已被盗的钱包上。 由于这些“清扫合约”共享相同的字节码,Wintermute 得以将该代码逆向工程为可读的 Solidity 代码,注入一条明文警告(指出该合约的存在是为了窃取任何入账的 ETH),并公开验证该合约以便区块浏览器能对其进行标记;该公司将这一防御性干预命名为 CrimeEnjoyor,其警告信息现已出现在大多数此类恶意合约中。 “清扫器”本身只是将窃取者利用您的密钥所能做的事情自动化了——即刻转发收到的任何资金。这种第一种模式本质上是“密钥泄露”问题换了件新外衣:委托行为只是症状,无论撤销多少次委托,都无法修复已泄露的密钥。

第二种模式才是真正的新型攻击。包括“Inferno Drainer”行动在内的“抽水”攻击活动——其工具包在运营者声称“退休”后仍保持活跃——会将恶意委托伪装成钱包安全升级或功能注册。受害者的密钥从未被盗。 在 ScamSniffer 于 2025 年 5 月标记的一起案例中,某钱包因通过委托合约执行的批量授权而损失了约 14.6 万美元;到当年夏末,仅一名受害者就因 7702 批量交易钓鱼攻击损失了 154 万美元。由于委托关系会持续存在直至被更改,攻击者控制的受托人会悄无声息地存活下来,其存在时间甚至超过了创建它的钓鱼会话。

因此,防御措施必须区分这两种模式。“泄露后清理”意味着密钥已丢失:将所有资产迁移至新生成钱包,并弃用原地址。而密钥完好的委托钓鱼攻击则需要审核账户的委托对象,清除或替换无法解释的委托项,并将任何未经请求的升级提示视为恶意行为。如今,越来越多的钱包会显示委托目标;请像查看收件人地址一样仔细核对这些信息。

Diagram of the three authorisation paths wallet drainers abuse: on-chain approve and setApprovalForAll calls creating persistent allowances, EIP-2612 and Permit2 signed permits creating allowances without gas that stay live until the nonce is used, and EIP-7702 delegations that make an account run contract logic until cleared. Each path shows its matching remediation.
图 1. 签名移交消费权限的三种方式,以及相应的补救措施。替代文本:钱包资金窃取者通过 EIP-7702 批准许可的攻击路径与防御措施示意图。

“钱包掏空”攻击活动从头到尾是怎样的?

快速解答

诱饵将流量引导至克隆网站;该网站采集连接钱包的指纹并生成其能处理的最高价值请求;受害者进行签名;自动化基础设施提取并洗钱。攻击工具包是租用的,操作者需向开发者支付赃款的一定比例作为佣金。

许多利用“钱包抽干器”实施盗窃的攻击者并未亲自编写该工具。 “Drainer即服务”供应商提供签名有效载荷、克隆前端、钱包指纹识别以及自动提取功能,通常以此换取被盗资产的一部分。租用者的任务是引导流量:冒充真实项目的搜索广告、被劫持的项目和网红账号、在真实支持帖子下的回复、空投和代币铸造公告,以及越来越多由AI生成的网站文案——这些内容分布在数千个一次性域名上,以规避封禁列表。

请求构建器是其中最精妙的部分。连接建立后,该工具会跨链清点代币、NFT 和余额,然后选择预期价值最高的有效载荷:针对价值最高代币的无限授权、Permit2 批处理、将高价值 NFT 以零价格出售的市场订单,或是 7702 委托。 高价值钱包可能会引起操作员的手动关注。资金提取过程由脚本自动执行且速度极快,所得资金会在几分钟内通过混币器、跨链桥和骡子地址被转移。

2025年的数据表明,这是一场日趋成熟的军备竞赛,而非某一方的胜利。在ScamSniffer追踪的EVM钓鱼攻击数据集中,损失金额同比下降83%至8385万美元,受害者数量减少68%至106,106人,涉案金额达百万美元的盗窃案从30起降至11起。钱包警告、更清晰的签名提示以及黑名单机制在一定程度上促成了这一下降趋势。 部分原因在于犯罪手段的转移:犯罪分子将精力转向了信息窃取恶意软件、社会工程学攻击以及供应链入侵,而这些行为从未被“资金抽取”类统计数据所涵盖。2025年2月发生的Bybit盗窃案,涉案金额约15亿美元,是全年签名式钓鱼攻击总损失的十七倍;该事件最初正是通过入侵团队所信任的签名界面而发起,这种攻击思路与针对机构而非个人的攻击如出一辙。

为什么模拟和钱包警告会失效?

快速解答

模拟仅预览交易在验证时刻的行为,而资金窃取者利用验证与执行之间的时差,采用在签名后行为发生变化的逻辑,或通过模拟未建模的机制(如链下许可和交易市场订单)实施盗窃。

交易模拟确实有用,但也确实存在局限。从验证时刻到实际执行时刻的时差,使得合约在预览中表现无害,但在链上却呈现恶意行为——这种转变由攻击者控制的状态所引发。 混淆后的有效载荷所针对的是解析器,而非区块链本身。而且,某些类型的签名根本不会进入模拟环节:在攻击者提交之前,许可仅是一条消息;而经过签名的市场列表看起来就像是正常的商业交易——因为它确实是,只不过价格为零。现代攻击工具包将模拟规避作为标准功能,并像营销人员测试广告一样,针对主流钱包对其提示信息进行A/B测试。

从工程角度来看,预览和警告仅是一层防护,绝非唯一的防护层。如果警告机制在九个资金掠夺者身上触发,却对第十个保持沉默,那么当这是你唯一的控制手段时,第十个攻击者仍将让你损失一切。

如何构建真正的防御机制?

简要答案:假设每次签名都是生死攸关的决策。授予精确的授权额度,在可信的显示设备上签名,按用途分离钱包以防止单个签名控制所有资产,基于风险评估审查权限和委托,并在需要之前演练应对措施。

  • 对每项授权进行范围限定。在应用程序允许的情况下,针对具体操作批准确切金额。无限授权只是区块链从未要求的便利,而每一项授权都相当于一张长期有效的邀请函。
  • 将可信显示界面作为决策点。能够以人类可读形式呈现支出方、操作者、受权人或指令的硬件或钱包屏幕,其价值远超任何浏览器插件。如果设备无法告知你将转移什么、转移给谁、依据何种授权,请拒绝该操作。
  • 按风险范围分离托管。长期钱包绝不签署任何新交易。日常钱包持有可用余额。一次性钱包用于与铸币、空投及未经审计的合约交互。资金提取请求构建器只能动用连接钱包可触及的资金。
  • 基于风险而非时间表进行审查。在每次新增应用后、任何安全事件发生后,以及将钱包转移至冷存储之前,都要审核授权额度、操作员批准和 7702 委托。养成按日历审查的习惯有助于活跃用户,但审查应由事件触发。
  • 控制访问路径。仅允许使用书签和手动输入的域名;默认将搜索广告、私信、二维码以及支持帖子下的回复视为恶意来源。诱饵是杀伤链中唯一需要您两次配合的环节。
  • 准备应对措施。熟悉您的证书撤销工具,备好一台未受感染的设备,并预先生成一个应急目标钱包,其助记词从未接触过用于浏览网页的计算机。

签署了恶意内容后该怎么办?

快速解答

诊断你授予了哪些权限,因为每种情况的解决方法不同:撤销链上授权、使现行许可失效或使其过期、清除恶意委托,以及如果密钥本身可能已泄露则迁移所有数据。速度至关重要,从干净的设备上操作同样重要。

你签署了什么正确应对措施常见错误
approve() 或 setApprovalForAll()立即撤销该授权或操作者;若攻击者比你更快,则转移已暴露的资产撤销除关键资产以外的所有资产
EIP-2612 或 Permit2 许可在标准允许的情况下消耗或作废非ce;否则在提交许可前转移资产假设链上撤销会使链下签名失效
EIP-7702 委托清除或替换委托;若已安装清扫器,则将该密钥视为已泄露并进行迁移向该地址发送新资金,直接转入清扫器
交易平台订单或上架取消交易平台上的订单并撤销其操作员授权继续关注该代币,而非取消上架
通过任何不可信设备进行的任何操作在操作密钥前请切换至安全设备;被劫持的剪贴板可能会将您的救援转账重定向在受感染的机器上执行救援操作

在证据存在期间予以保留:交易哈希值、钓鱼域名、签名提示、时间戳。区块链取证已真正发挥效用,快速出具的报告能让交易所及时冻结正在转账中的资金。同时要警惕“追回款”诈骗者:新近遭资金盗取的受害者是诈骗案中最有价值的线索,而主动联系你并声称能帮你追回资金的人,几乎可以肯定就是诈骗的第二幕。

常见问题

仅仅访问一个网站就会导致钱包被清空吗?

不会。连接网站会暴露您的地址,并让网站能够准备针对性的请求,但要动用资金,必须进行签名交易、授权、下达指令或委托。每起资金被盗事件的核心都离不开签名。

撤销授权能否保护我免受基于许可的攻击?

只能部分有效。撤销仅会终止现有的链上授权,但已签名但未提交的授权在非ce被消耗或有效期届满前仍保持有效。如果可能存在恶意授权,请尽可能使非ce失效或转移资产。

EIP-7702 本身是否存在安全漏洞?

不是。自 Pectra 事件以来的安全事故并非提案中的漏洞;而是对合法委托机制的滥用,这些委托要么由已持有被盗密钥的攻击者设置,要么通过伪装成虚假升级的方式从用户那里钓鱼获取。该功能改变了攻击面,而钱包界面和用户习惯正在逐步适应这一变化。

硬件钱包能否阻止“抽空”攻击?

在设备、固件和验证均安全的前提下,它们能降低远程密钥提取的风险;而优质的受信任显示屏则能防止有效载荷被替换。但它们无法阻止所有者批准显示屏如实呈现的恶意请求。明确的签名加上实际阅读签名内容的习惯,才是行之有效的组合。

为什么 2025 年的“抽空攻击”损失骤降?

这归因于钱包警告机制的完善、黑名单机制、用户教育以及市场环境等多重因素的综合作用,但需注意一个统计限制:排水攻击统计数据仅统计追踪系统所监测到的案例。部分犯罪活动已转向信息窃取、社会工程学和供应链攻击,这些被归入不同的统计类别。

来源与延伸阅读

本文关键参考资料,截至 2026 年 7 月。波动性数据将在每次季度审查中重新核查。

快速测验:它粘住了吗?

给技术控的五个问题。答案见下文。

1/5问题
将钱包连接到恶意网站会给攻击者带来什么?

这有帮助吗?