两个钱包,一个被掏空一个安然无恙:安全设置到底差在哪

· 币种支持

2023年3月,我认识的两个人都遭遇了钓鱼攻击。一个丢了4.2个ETH,另一个钱包里的18个ETH纹丝不动。同样的攻击手法,同一个钓鱼网站,结果天差地别。差别就在钱包安全设置上。

案例一:老张的教训

老张的私钥存在手机相册里,截图还带了定位信息。他习惯用同一个密码管理所有钱包,助记词抄在笔记本上,笔记本放在书房抽屉。

钓鱼网站伪装成某DeFi项目的空投页面,老张连了钱包,签了一笔approve交易。他以为是领取空投,实际上授权了对方无限支配他的USDC。三天后,钱包被清空。

问题出在哪?他用的钱包没有开启交易模拟功能,签名前看不到这笔交易的真实后果。私钥截图存在联网设备上,等于把钥匙挂在门上。

案例二:小李的做法

小李用的是硬件钱包,助记词手写在金属板上,存放在银行保险箱。他给每个DApp交互单独建了一个“热钱包”,里面只放够用的Gas费和少量代币。

钓鱼网站他也碰到了,同样点了连接。但他的硬件钱包在签名时要求物理确认,屏幕上显示的接收地址和网站声称的不一致,他直接拒签。热钱包里只有0.05个ETH,就算被盗也不伤筋动骨。

具体怎么设置

助记词存储:别偷懒

  • 手写两份,分开存放。一份家里,一份可信的第三方处(银行保险箱或亲属处)
  • 不要拍照、不要存云笔记、不要发微信给自己
  • 考虑金属助记词板,防火防水。200块钱的东西,能保住你几万块的资产

钱包分层:热冷分离

我自己的做法是三层:

冷钱包(硬件钱包):存大额资产,私钥永不触网。Ledger或Trezor都行,买官方渠道的,别贪便宜买二手。

温钱包(手机钱包):装MetaMask或Rabby,放中等额度,专门用于日常DeFi交互。每次交互前检查授权。

热钱包(浏览器插件小号):每个新项目用全新地址,里面只放0.1 ETH以内的资金。被骗了也不心疼。

交易签名前的三个必查项

  1. 看合约地址。钓鱼网站域名可以伪造,但合约地址伪造不了。在Etherscan上核对一遍。
  2. 看授权额度。approve操作尽量选精确额度,别点“无限”。很多钱包现在支持自定义授权数量。
  3. 开交易模拟。Rabby钱包默认开启交易预执行,签名前能看到代币余额变化。MetaMask需要手动在设置里打开“交易模拟”功能。

定期清理授权

去revoke.cash或者Etherscan的Token Approvals页面,把不用的DApp授权全部取消。我每季度清一次,上次清出来17个 forgotten approvals,其中3个是高风险合约。

双因素验证的坑

很多人以为开了谷歌验证器就万事大吉。实际情况是,如果你的谷歌账号本身没有开2FA,攻击者可以先拿下你的邮箱,再重置你的验证器。正确做法是:谷歌账号本身开启硬件密钥(YubiKey),验证器备份码打印出来存好。

一个容易被忽略的细节

钱包的“自动锁定”时间。默认设置通常是5分钟甚至永不锁定。改成1分钟。你离开电脑去倒杯水的功夫,足够别人转走你的资产。

还有,别在Discord和Telegram里点任何人发给你的“空投链接”。我统计过自己收到的钓鱼私信,2023年一年就有340多条。全部举报,一个没点。

出事了怎么办

如果发现资产被盗,第一时间做三件事:

  1. 把剩余资产转到安全地址(用新钱包,别用同一个助记词生成的)
  2. 去Revoke.cash取消所有授权
  3. 在Chainabuse上提交报告,标注被盗地址和黑客地址

追回的概率很低,但标记地址能帮到后面的人。

说到底,钱包安全没有一劳永逸的方案。硬件钱包也会被社工攻击,助记词板也可能被物理窃取。你能做的就是把攻击成本抬高到对方觉得不划算的程度。老张丢的4.2个ETH,够买20个硬件钱包了。