概述
近期,Web3钓鱼网站已导致大量用户损失数百万美元。在这些钓鱼网站上,用户会在不知情的情况下签署交易,授权其代币转移到诈骗者控制的账户。为了保护用户免受网络钓鱼攻击,许多Web3钱包都实施了黑名单机制,主动阻止涉及已知钓鱼账户的交易。
然而,根据我们的观察,这种策略在阻止钓鱼账户方面已被证明无效。诈骗者已经开发出几种方法来绕过这种安全机制。第一种方法是利用 Create2 函数预测钓鱼合约的地址,然后在成功窃取代币后部署钓鱼合约。第二种方法是每天部署新的钓鱼合约,其速度超过了黑名单的更新速度。
现有的钱包安全警报机制

钱包内的安全警报机制包括对网站和账户的检查。目前,所有此类系统都维护着网站域名和账户的黑名单。当用户访问网站时,钱包会检查该域名是否在黑名单中。如果是,则拒绝访问该网站。同样,在用户签署交易之前,钱包会验证交易中涉及的账户是否在黑名单中。如果是,则阻止交易,以防止用户继续进行。MetaMask 等系统就体现了这些安全功能。
利用 Create2 绕过安全警报
以太坊中的 Create2 操作码允许在合约部署之前预测其地址。这是使用以下公式完成的:
地址 = hash(部署者地址, 字节码, 盐值)
有了部署者的地址、合约的字节码和一个指定的盐值,就可以提前确定合约地址。
显然,有了部署者的地址、字节码和盐值,我们可以在部署前预测合约地址。在钓鱼网站上,用户被提示向外部拥有账户(EOA)发送ETH或批准代币,该账户是通过 Create2 预测的,并且不在黑名单中。随后,在成功窃取代币后,将部署钓鱼合约,并将受害者的代币转移到另一个账户进行进一步处理。整个过程是自动发生的。

这里有一个由Phalcon Explorer演示的示例。
钓鱼网站最初要求用户向 0x0ddb 批准代币。然后,诈骗者发起一项钓鱼交易,该交易包含两个内部交易。第一个内部交易使用 Create2 部署钓鱼合约。第二个内部交易调用钓鱼合约来转移受害者的代币。
频繁部署钓鱼合约以绕过安全警报
由于钓鱼合约部署和黑名单更新之间的时间很短,诈骗者可以利用这个空隙来规避安全警报。他们通过每天部署新的钓鱼合约来实现这一点。因此,当用户访问钓鱼网站时,这些合约尚未被列入黑名单,从而可以逃避某些钱包的警报。

这里有一个由Phalcon Explorer展示的Pink Drainer示例案例。0x5d77的Deploy函数每天都会被调用来部署新的钓鱼合约。
总结
钓鱼网站开发者正不断创造新的策略来逃避Web3钱包所采用的安全检测机制。我们将保持警惕,持续监控他们的最新策略。我们敦促用户提高警惕,在签署交易前仔细审查交易详情。
相关阅读
关于BlockSec
BlockSec 是一家开创性的区块链安全公司,由一群享誉全球的安全专家于 2021 年创立。公司致力于提升新兴 Web3 世界的安全性和可用性,以促进其大规模采用。为此,BlockSec 提供智能合约和 EVM 链安全审计服务,用于安全开发和主动阻止威胁的Phalcon平台,用于资金追踪和调查的MetaSleuth平台,以及供 Web3 构建者在加密世界中高效冲浪的MetaSuites扩展。
迄今为止,公司已为 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap 等 300 多家知名客户提供服务,并在两轮融资中从 Matrix Partners、Vitalbridge Capital 和 Fenbushi Capital 等知名投资者那里获得了数千万美元的投资。
官方 Twitter 账号:https://twitter.com/BlockSecTeam



