在以太坊链上投资者可以将比特币 (BTC) 换成 WBTC 以便在不同的跨链接桥上流转,日前就有投资者在以太坊区块链上被黑客钓鱼 1155 个 WBTC,目前价值超过 7000 万美元或人民币 5.066 亿元。此次黑客发起钓鱼的方式非常特别,可以说是币圈领域的大力出奇迹。
以太坊钱包地址非常长,有些用户在执行转账的时候会习惯性到区块浏览器里复制自己最后一次交易记录中的地址,只核对前几位和后几位,如果匹配的话那就转账。
黑客通过生成大量以太坊钱包地址最终成功生成了与用户真实钱包类似的地址:
用户真实钱包地址:0xd9A1b0B1…cB2853a91
黑客生成的地址是:0xd9A1C378…244853a91
因此如果只检查钱包地址前四位 (不含 0x) 和后六位的话,黑客生成的钓鱼地址看起来几乎和真实钱包地址一致,这名倒霉的投资者就不幸遇到了这种钓鱼骗局,在没有仔细核对真实钱包地址的情况下,将 1155 个 WBTC 转入了黑客的钱包地址。
此次案例中黑客使用的是精细化策略,即暴力生成巨量地址的情况下挑选与真实钱包地址首位类似的地址,至少有部分投资者确实没有仔细核对地址以及直接通过区块浏览器复制地址,于是黑客成功得手。
这种攻击的另一种不是特别精细的方式是,向一些钱包余额较多的账户,大量转入少量的以太坊来污染转账历史记录,赌的就是有投资者不看地址直接复制地址进行转账。
这种方式不存在首位类似的地址因此得手率相对来说也比较低,而生成首位类似的地址显然钓鱼成功率会高得多,因此这也告诫我们在执行转账操作时最好核对更长的字符串,理论上说字符串越长碰撞成功的概率也就越低,如果你有耐心的话最好检查每一个地址的所有字符串看看是否匹配。
另一种方式就是配置自己的钱包白名单,即首次使用新地址时直接在受支持的钱包里将这个地址设置为白名单,后续只能向白名单转账,如果是默认地址的话则需要重新核对、多重身份验证,这也可以大幅度提高安全性、也可以避免直接从区块链上复制地址来转账。
目前这笔 1155.28802767 个 WBTC 已经被黑客转移到了新地址,然后接着被分散转移到了多个地址、子地址,最终在 Uniswap 上通过 WBTC-USDT 进行了多次转换,目的是混淆并让这笔赃款难以追踪。
最搞笑的莫过于还出现了赛博乞讨,现在有部分用户向这个钓鱼地址转入极少的以太坊并添加备注,希望这名成功钓鱼的黑客能够分点给他们…