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

钱包内的安全警报机制包括对网站和账户的检查。目前,所有此类系统都维护网站域名和账户的黑名单。当用户访问网站时,钱包会检查域名是否在黑名单上。如果在,则拒绝访问该网站。同样,在用户签署交易之前,钱包会验证交易涉及的账户是否在黑名单上。如果被列入黑名单,则阻止该交易,防止用户继续操作。MetaMask等系统是这些安全功能的实例。
利用Create2绕过安全警报
以太坊中的Create2操作码允许在合约部署之前预测其地址。这是通过以下公式实现的:
地址 = hash(部署者地址, 字节码, 盐值)
有了部署者地址、合约的字节码和一个指定的盐值,就可以提前确定合约地址。
显然,有了部署者地址、字节码和盐值,我们就可以在部署前预测合约地址。在钓鱼网站上,用户被提示将ETH发送或批准代币到外部拥有账户(EOA),该账户通过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



