Drainer 工具 2026 怎么彻底防住?多签、模拟交易、授权清理一套完整流程

安全 · 2026-05-30 · 比特三棱镜编辑部
AI 搜索

Drainer 工具——专门用来清空钱包的钓鱼工具集——在 2025-2026 年已经完全 SaaS 化。攻击者不再写代码,而是按月订阅"Inferno Drainer"、“Pink Drainer”、“Angel Drainer” 这类服务,得到一整套钓鱼站模板 + 签名陷阱 + 资金归集脚本,分成给上游服务方。结果就是:钓鱼站越做越像真站,签名陷阱越来越精,被清空的钱包越来越多。这一篇不停留在"小心钓鱼"的口号,而是把攻击链拆开,给一套真正能跑下来的三层防御流程。

Drainer 攻击链与三层防御:多签隔离模拟交易授权清理的对照示意

先看 Drainer 的标准攻击链

绝大多数 Drainer 的攻击都按这个节奏走:

  1. 触达:通过 Google Ads、Discord/Twitter 假账号、空投活动链接、邮件等渠道让你点进钓鱼站;
  2. 诱导连接钱包:站点 UI 高度仿真,要求 connect wallet;
  3. 第一次签名陷阱:用 EIP-712 permit、setApprovalForAll、ERC-20 increaseAllowance 之一让你授权代币转出权限;
  4. 快速归集:拿到授权后,攻击者用机器人脚本立刻把所有授权代币、NFT 转到中间钱包,再分散到多个混币入口。

整个流程从你点击到资产消失,平均时间不到 90 秒。这意味着事后发现再补救几乎来不及。防御只能放在签名那一刻之前。

防线一:多签 / 多账户隔离——把鸡蛋分到不同篮子

最有效但执行最少的一条防线。原则只有一个:用一个钱包做所有事,等于把所有资产押在一次失误上。合理的资产分层是:

钱包类型 持有资产 使用场景
主冷钱包 > 80% 总资产,长期持仓 几乎不签名,只接收
中转热钱包 < 15% 总资产 把资金从冷转到操作钱包
操作钱包 < 5% 总资产 日常 DeFi 交互、空投、NFT mint
一次性钱包 50-200 USD 试新协议、可疑链接

操作钱包再怎么被 Drainer 清空,也只是损失 5%。风险隔离不是事后补救,是默认架构

对于大额资产,进一步推荐用多签——Safe 三签二的配置能挡住绝大部分单点钓鱼,因为攻击者需要同时拿到两把私钥的签名。多签的代价是 UX 麻烦、链上交易需要每个签名者各自批准;但 5 万美元以上的仓位,这个麻烦值得。可以对比 硬件钱包供应链风险 里讲到的"硬件不是唯一防线"的逻辑。

防线二:模拟交易——签名前看清你到底在签什么

第二条防线是签名预审。2026 年模拟交易工具已经成熟,主流方案有三类:

  • 钱包内置:Rabby、OKX Web3 钱包、MetaMask Snaps 都集成了交易模拟;
  • 第三方插件:Blockaid、Wallet Guard、Pocket Universe;
  • 专用安全 dApp:Revoke.cash 既能清理授权,也能预览签名。

它们做的事情很简单:把你即将签的交易放到 fork 链上跑一次,告诉你真正会发生什么——会转走哪些 token、给谁授权、最终钱包里多了什么少了什么。

为什么这一步关键?因为 Drainer 最常用的伎俩是让签名内容看起来无害

  • permit 签名展示的可能只是 “Sign in to App”,但内含 EIP-712 授权;
  • setApprovalForAll 在 NFT 市场是合法操作,但授权对象可能是恶意合约;
  • 钱包默认 UI 显示"transfer 0 USDC",但实际签的是 permit 给攻击者无限额度。

启用模拟预审后,这些都会被翻译成人话:“这笔交易会把你 10,000 USDC 的支配权交给地址 0xabc…”。一旦看到陌生地址收到无限授权,立刻拒绝。

签名预审工具把混淆签名翻译为人话效果的对照示意

防线三:授权周期清理——把过去埋下的雷一颗颗拆掉

第三条防线针对历史授权。即使你以后所有签名都谨慎,过去几年里授权过的合约依然存在。Drainer 经常利用的就是用户早就忘了的旧授权——某个早已 rug 的项目,攻击者拿到它的 owner key 后调用合约把所有授权代币转走。

清理流程:

  1. 每月一次例行检查:用 Revoke.cash、Etherscan 的 Token Approvals 页面,列出所有未撤销的授权;
  2. 优先撤销三类
    • 不再使用的协议;
    • 授权额度为 unlimited 的;
    • 授权给非协议合约地址的(看不出来是哪个项目的);
  3. 撤销前再次模拟:撤销也是签名,确认目标是真的 revoke 函数;
  4. 多链分别清理:以太坊、Arbitrum、Base、BSC、Polygon 每条链都要单独走一遍。

授权撤销本身要付 gas,但比起被 drain 清空,几美元 gas 是最便宜的保险。可以参考 Etherscan 浏览器使用指南 学会自己查授权记录。

一份月度安全例行检查表

把三层防线落到月度习惯里,下面这份清单我自己每月第一周走一遍:

  • [ ] 操作钱包余额是否仍 < 5% 总资产,超出则拨回中转
  • [ ] 检查并撤销所有不再使用的 token approval(每条链分别走)
  • [ ] 检查所有 NFT 的 setApprovalForAll,撤销过期或非主流市场的
  • [ ] 检查浏览器扩展列表,移除一切不需要的钱包/Web3 扩展
  • [ ] 更新主钱包 + 模拟工具到最新版本
  • [ ] 把最近一个月有大额交互的 dApp 列出来,确认 URL 是官网
  • [ ] 多签配置:阈值、签名者地址是否还正确
  • [ ] 备份冷钱包种子词的位置仍可访问且无泄露迹象

走一遍大约 30 分钟。考虑到 Drainer 平均 90 秒清空一个钱包,这 30 分钟性价比极高。

行为规则:永远预设"这是钓鱼"

防线再多,最终还是回到个人行为习惯。下面这几条我自己执行了 4 年,没出过事:

  • 永远从书签或手敲 URL 进入主流 dApp,不点 Google Ads
  • 任何"领取奖励"、“账户异常”、"必须立刻签名"的链接默认假定恶意;
  • 任何要求 setApprovalForAll 的非头部 NFT 市场,统一拒绝;
  • 看不懂的签名就离开站点先,回来研究清楚再做;
  • 大额操作前用一次性钱包先做一遍流程,确认没问题再切换主钱包。

MetaMask 钓鱼防御 这一篇里讲的具体识别技巧仍然适用,可以做补充阅读。

防御不是技术问题,是流程问题

很多人在被 drain 之后总结教训说"下次更小心",但下次还是会出问题。原因是**"小心"不是一个可执行的指令**——它依赖你当时的注意力、情绪、对站点是否熟悉。真正可执行的,是把这套防御写进固定流程:哪个钱包做什么用、签名前必跑预审、每月必清授权。当它变成肌肉记忆,你才真的安全。Drainer 在 2026 年已经是工业化产品,对应的防御也必须是工业化流程。