WALL:慢雾:警惕 Web3 钱包 WalletConnect 钓鱼风险

WalletConnect钓鱼风险介绍

2023年1月30日,慢雾安全团队发现Web3钱包上关于WalletConnect使用不当可能存在被钓鱼的安全风险问题。这个问题存在于使用移动端钱包App内置的DAppBrowser+?WalletConnect的场景下。

我们发现,部分Web3钱包在提供WalletConnect支持的时候,没有对WalletConnect的交易弹窗要在哪个区域弹出进行限制,因此会在钱包的任意界面弹出签名请求。

当用户离开DAppBrowser界面切换到钱包其他界面如示例中的Wallet、Discover等界面,由于钱包为了不影响用户体验和避免重复授权,此时WalletConnect的连接是没有断开的,但是此时用户却可能因为恶意DApp突然发起的签名请求弹窗而误操作导致被钓鱼转移走资产。

慢雾:Distrust发现严重漏洞,影响使用Libbitcoin Explorer3.x版本的加密钱包:金色财经报道,据慢雾区消息,Distrust 发现了一个严重的漏洞,影响了使用 Libbitcoin Explorer 3.x 版本的加密货币钱包。该漏洞允许攻击者通过破解 Mersenne Twister 伪随机数生成器(PRNG)来访问钱包的私钥,目前已在现实世界中造成了实际影响。

漏洞详情:该漏洞源于 Libbitcoin Explorer 3.x 版本中的伪随机数生成器(PRNG)实现。该实现使用了 Mersenne Twister 算法,并且仅使用了 32 位的系统时间作为种子。这种实现方式使得攻击者可以通过暴力破解方法在几天内找到用户的私钥。

影响范围:该漏洞影响了所有使用 Libbitcoin Explorer 3.x 版本生成钱包的用户,以及使用 libbitcoin-system 3.6 开发库的应用。

已知受影响的加密货币包括 Bitcoin、Ethereum、Ripple、Dogecoin、Solana、Litecoin、Bitcoin Cash 和 Zcash 等。

风险评估:由于该漏洞的存在,攻击者可以访问并控制用户的钱包,从而窃取其中的资金。截至 2023 年 8 月,已有超过 $900,000 美元的加密货币资产被盗。

解决方案:我们强烈建议所有使用 Libbitcoin Explorer 3.x 版本的用户立即停止使用受影响的钱包,并将资金转移到安全的钱包中。请务必使用经过验证的、安全的随机数生成方法来生成新的钱包。[2023/8/10 16:18:20]

慢雾:6月24日至28日Web3生态因安全问题损失近1.5亿美元:7月3日消息,慢雾发推称,自6月24日至6月28日,Web3生态因安全问题遭遇攻击损失149,658,500美元,包括Shido、Ichioka Ventures、Blockchain for dog nose wrinkles、Chibi Finance、Biswap、Themis等。[2023/7/3 22:14:33]

动态演示GIF如下图:

攻击者利用恶意DApp钓鱼网站引导用户使用WalletConnect与钓鱼页面连接后,然后定时不间断发送恶意的签名请求。用户识别到eth_sign可能不安全拒绝签名后,由于WalletConnect采用wss的方式进行连接,如果用户没有及时关闭连接,钓鱼页面会不断的发起构造恶意的eth_sign签名弹窗请求,用户在使用钱包的时候有很大的可能会错误的点击签署按钮,导致用户的资产被盗。

慢雾:利用者通过执行恶意提案控制了Tornado.Cash的治理:金色财经报道,SlowMist发布Tornado.Cash治理漏洞解析。 5月20日,Tornado.Cash遭受了治理攻击,利用者通过执行恶意提案控制了Tornado.Cash的治理。5月13日,利用者发起了20提案,并在提案中说明20提案是对16提案的补充,具有相同的执行逻辑。但实际上,提案合约多了一个自毁逻辑,其创建者是通过create2创建的,具有自毁功能,所以在与提案合约自毁后,利用者仍可以部署不同的以与以前相同的方式将字节码发送到相同的地址。不幸的是,社区没有看到拟议合约中的犯规行为,许多用户投票支持该提案。

在5月18日,利用者通过创建具有多个交易的新地址,反复将0代币锁定在治理中。利用提案合约可以销毁并重新部署新逻辑的特性,利用者在5月20日7:18(UTC)销毁了提案执行合约,并在同一地址部署了一个恶意合约,其逻辑是修改用户在治理中锁定的代币数量。

攻击者修改完提案合约后,于5月20日7:25(UTC)执行恶意提案合约。该提案的执行是通过 Delegatecall 执行的,因此,该提案的执行导致治理合约中由开发者控制的地址的代币锁定量被修改为 10,000。提案执行完成后,攻击者从治理库中解锁了TORN代币。金库中的TORN代币储备已经耗尽,同时利用者控制了治理。[2023/5/21 15:17:00]

这个安全问题的核心是用户切换DAppBrowser界面到其他界面后,是否应继续自动弹窗响应来自DAppBrowser界面的请求,尤其是敏感操作请求。因为跨界面后盲目弹窗响应很容易导致用户的误操作。

慢雾:GenomesDAO被黑简析:据慢雾区hacktivist消息,MATIC上@GenomesDAO项目遭受黑客攻击,导致其LPSTAKING合约中资金被非预期的取出。慢雾安全团队进行分析有以下原因:

1.由于GenomesDAO的LPSTAKING合约的initialized函数公开可调用且无权限与不可能重复初始化限制,攻击者利用initialized函数将合约的stakingToken设置为攻击者创建的虚假LP代币。

2.随后攻击者通过stake函数进行虚假LP代币的抵押操作,以获得大量的LPSTAKING抵押凭证。

3.获得凭证后再次通过initialized函数将合约的stakingToken设置为原先真是的LP代币,随后通过withdraw函数销毁LPSTAKING凭证获取合约中真实的LP抵押物。

4.最后将LP发送至DEX中移除流动性获利。

本次事件是因为GenomesDAO的LPSTAKING合约可被任意重复初始化设置关键参数而导致合约中的抵押物被恶意耗尽。[2022/8/7 12:07:06]

这里面涉及到一个安全原则:WalletConnect连接后,钱包在检测到用户切换DAppBrowser界面到其他界面后,应该对来自DAppBrowser的弹窗请求不进行处理。

慢雾:Moonbirds的Nesting Contract相关漏洞在特定场景下才能产生危害:据慢雾区情报反馈,Moonbirds 发布安全公告,Nesting Contract 存在安全问题。当用户在 OpenSea 或者 LooksRare等NFT交易市场进行挂单售卖时。卖家不能仅通过执行 nesting(筑巢) 来禁止NFT售卖,而是要在交易市场中下架相关的 NFT 售卖订单。否则在某个特定场景下买家将会绕过 Moonbirds 在nesting(筑巢)时不能交易的限制。慢雾安全团队经过研究发现该漏洞需要在特定场景才能产生危害属于低风险。建议 Moonbirds 用户自行排查已 nesting(筑巢)的 NFT 是否还在 NTF 市场中上架,如果已上架要及时进行下架。更多的漏洞细节请等待 Moonbirds 官方的披露。[2022/5/30 3:50:23]

另外需要注意的是,虽然移动端钱包App+PC浏览器的WalletConnect连接场景也存在同样的问题,但是用户在这种场景下或许不那么容易误操作。

WalletConnect连接后界面切换的处理情况

慢雾安全团队抽取市面热门搜索和下载量比较大的20个CryptoWalletApp进行测试:

根据上表测试结果,我们发现:

1.部分热门钱包App如MetaMask、EnjinWallet、TrustWallet、SafePalWallet及iTokenWallet等,在WalletConnect连接后切换到其他界面时,会自动响应DApp的请求,并弹出签名窗口。

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。最后希望各方共同努力,一起让区块链生态更美好。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:15ms0-1:59ms