WalletConnect钓鱼风险介绍
2023年1月30日,慢雾安全团队发现Web3钱包上关于WalletConnect使用不当可能存在被钓鱼的安全风险问题。这个问题存在于使用移动端钱包App内置的DAppBrowser+?WalletConnect的场景下。
我们发现,部分Web3钱包在提供WalletConnect支持的时候,没有对WalletConnect的交易弹窗要在哪个区域弹出进行限制,因此会在钱包的任意界面弹出签名请求。
当用户离开DAppBrowser界面切换到钱包其他界面如示例中的Wallet、Discover等界面,由于钱包为了不影响用户体验和避免重复授权,此时WalletConnect的连接是没有断开的,但是此时用户却可能因为恶意DApp突然发起的签名请求弹窗而误操作导致被钓鱼转移走资产。
慢雾:从Multichain流出的资金总额高达2.65亿美元,分布在9条链:金色财经报道,自7月7日以来,从 Multichain 流出的资金总额高达 2.65 亿美元,分布在 Ethereum、BNB Chain、Polygon、Avalanche、Arbitrum、Optimism、Fantom、Cronos、Moonbeam 链。其中 6582 万美元已经被 Circle 和 Tether 冻结,1,296,990.99 ICE(约 162 万美元) 被 Token 发行方 Burn。流出的资金中,包括:
1)从 Multichain: Old BSC Bridge 转出的 USDT;
2)从 Multichain: Fantom Bridge 转出的 USDC、DAI、LINK、UNIDX、USDT、WOO、ICE、CRV、YFI、TUSD、WETH、WBTC;
3)从 Anyswap: Bridge Fantom 转出的 BIFI;
4)从 Multichain: Moonriver Bridge 转出的 USDC、USDT、DAI、WBTC;
5)从 MultiChain: Doge Bridge 转出的 USDC;
6)从 Multichain: Executor 转出的 DAI、USDC、BTCB、WBTC、WETH、Dai.e、WBTC.e、Bridged USDC、BTC、fUSDT、ETH 等;
7)从被 Etherscan 标记为 Fake_Phishing183873 的 0xe1910...49c53 转出的 WBTC、USDT、ETH,同时我们认为该标记(Fake Phishing183873)或许是 Etherscan 上的虚假标记,地址可能以前属于 Multichain 官方账户。[2023/7/11 10:48:30]
慢雾:已冻结部分BitKeep黑客转移资金:12月26日消息,慢雾安全团队在社交媒体上发文表示,正在对 BitKeep 钱包进行深入调查,并已冻结部分黑客转移资金。[2022/12/26 22:08:58]
动态演示GIF如下图:
攻击者利用恶意DApp钓鱼网站引导用户使用WalletConnect与钓鱼页面连接后,然后定时不间断发送恶意的签名请求。用户识别到eth_sign可能不安全拒绝签名后,由于WalletConnect采用wss的方式进行连接,如果用户没有及时关闭连接,钓鱼页面会不断的发起构造恶意的eth_sign签名弹窗请求,用户在使用钱包的时候有很大的可能会错误的点击签署按钮,导致用户的资产被盗。
这个安全问题的核心是用户切换DAppBrowser界面到其他界面后,是否应继续自动弹窗响应来自DAppBrowser界面的请求,尤其是敏感操作请求。因为跨界面后盲目弹窗响应很容易导致用户的误操作。
慢雾:Gate官方Twitter账户被盗用,谨慎互动:10月22日消息,安全团队慢雾发文称:加密平台Gate官方Twitter账户被盗用,谨慎互动。半小时前,攻击者利用该账户发文,诱导用户进入虚假网站连接钱包。此外,慢雾科技创始人余弦在社交媒体上发文表示:注意下,Gate官方推特应该是被黑了,发送了钓鱼信息,这个网址 g?te[.]com 是假的(之前谈过的 Punycode 字符有关的钓鱼域名),如果你去Claim会出现eth_sign这种签名钓鱼,可能导致ETH等相关资产被盗。[2022/10/22 16:35:14]
这里面涉及到一个安全原则:WalletConnect连接后,钱包在检测到用户切换DAppBrowser界面到其他界面后,应该对来自DAppBrowser的弹窗请求不进行处理。
另外需要注意的是,虽然移动端钱包App+PC浏览器的WalletConnect连接场景也存在同样的问题,但是用户在这种场景下或许不那么容易误操作。
慢雾:PREMINT攻击者共窃取约300枚NFT,总计获利约280枚ETH:7月18日消息,慢雾监测数据显示,攻击PREMINT的两个黑客地址一共窃取了大约300枚NFT,卖出后总计获利约280枚ETH。此前报道,黑客在PREMINT网站植入恶意JS文件实施钓鱼攻击,从而盗取用户的NFT等资产。[2022/7/18 2:19:58]
WalletConnect连接后界面切换的处理情况
慢雾安全团队抽取市面热门搜索和下载量比较大的20个CryptoWalletApp进行测试:
根据上表测试结果,我们发现:
1.部分热门钱包App如MetaMask、EnjinWallet、TrustWallet、SafePalWallet及iTokenWallet等,在WalletConnect连接后切换到其他界面时,会自动响应DApp的请求,并弹出签名窗口。
慢雾:Titano Finance被黑因池子被设置成恶意PrizeStrategy合约造成后续利用:据慢雾区情报消息,2月14日,BSC链上的Titano Finance项目遭受攻击,损失约190万美元,最初获利地址为0xad9217e427ed9df8a89e582601a8614fd4f74563,目前被黑资金已被攻击者转移到其他23个钱包。该攻击主要由于owner角色可以任意设置setPrizeStrategy函数,导致了池子被设置成恶意的PrizeStrategy合约造成后续利用。[2022/2/14 9:51:14]
2.大部分测试的钱包App在切换界面后,对DApp的请求不会做出响应,也不会弹出提示窗口。
3.少数钱包App在测试环境下无法使用WalletConnect与DApp连接,如CoinbaseWallet和MEWCryptoWallet等。钱包的DApp中不是很适配?WalletConnect接口。
4.部分钱包App如ExodusWallet和EdgeWallet在连接测试环境下未找到相关的DApp进行测试,无法判断其切换界面后的响应情况。
WalletConnect钓鱼风险的发现和后续
慢雾安全团队最初在TrustWallet上发现这个问题,并通过Bugcrowd漏洞提交平台向他们提交了这个问题,我们获得了TrustWallet的感谢,他们表示将在下一个版本修复这个安全风险。
特别的是,如果钱包对eth_sign这种低级签名函数没有任何风险提醒,eth_sign这是一种非常危险的低级签名,大大加剧了WalletConnect这个问题钓鱼的风险。
不过如果只是禁用了eth_sign也不是完全没有风险,我们还是呼吁更多的钱包开始禁用它。以用户数量最多的MetaMask钱包为例,其插件端已经在2023年2月10号发布的V10.25.0版本默认禁用eth_sign,而移动端也在2023年3月1号发布的版本号为6.11开始默认不支持eth_sign,用户需要到设置里手动打开才能使用它。
不过值得一提的是,MetaMask6.11版本之后添加了对DApp进行URI请求的校验,但是这个校验在DApp使用WalletConnect进行交互的时候,同样会进行弹窗警告,不过这个警告存在被无限制弹窗导致DoS的风险。
总结与建议
对个人用户来说,风险主要在“域名、签名”两个核心点,WalletConnect这种钓鱼方式早已被很多恶意网站用于钓鱼攻击,使用时务必保持高度警惕。
对钱包项目方来说,首先是需要进行全面的安全审计,重点提升用户交互安全部分,加强所见即所签机制,减少用户被钓鱼风险,如:
钓鱼网站提醒:通过生态或者社区的力量汇聚各类钓鱼网站,并在用户与这些钓鱼网站交互的时候对风险进行醒目地提醒和告警。
签名的识别和提醒:识别并提醒eth_sign、personal_sign、signTypedData这类签名的请求,并重点提醒eth_sign盲签的风险。
所见即所签:钱包中可以对合约调用进行详尽解析机制,避免Approve钓鱼,让用户知道DApp交易构造时的详细内容。
预执行机制:通过交易预执行机制可以帮助用户了解到交易广播执行后的效果,有助于用户对交易执行进行预判。
尾号相同的提醒:在展示地址的时候醒目的提醒用户检查完整的目标地址,避免尾号相同的问题。设置白名单地址机制,用户可以将常用的地址加入到白名单中,避免类似尾号相同的攻击。
在交易显示上,可以增加对小额或者无价值代币交易的隐藏功能,避免尾号钓鱼。
AML合规提醒:在转账的时候通过AML机制提醒用户转账的目标地址是否会触发AML的规则。
请持续关注慢雾安全团队,更多的钓鱼安全风险分析与告警正在路上。
慢雾科技作为一家行业领先的区块链安全公司,在安全审计方面深耕多年,安全审计不仅让用户安心,更是降低攻击发生的手段之一。其次,各家机构由于数据孤岛,难以关联识别出跨机构的团伙,给反工作带来巨大挑战。而作为项目方,及时拉黑阻断恶意地址的资金转移也是重中之重。MistTrack反追踪系统积累了2亿多个地址标签,能够识别全球主流交易平台的各类钱包地址,包含1千多个地址实体、超10万个威胁情报数据和超9千万个风险地址,如有需要可联系我们接入API。最后希望各方共同努力,一起让区块链生态更美好。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。