WalletConnect钓鱼风险介绍
2023年1月30日,慢雾安全团队发现Web3钱包上关于WalletConnect使用不当可能存在被钓鱼的安全风险问题。这个问题存在于使用移动端钱包App内置的DAppBrowser+?WalletConnect的场景下。
我们发现,部分Web3钱包在提供WalletConnect支持的时候,没有对WalletConnect的交易弹窗要在哪个区域弹出进行限制,因此会在钱包的任意界面弹出签名请求。
当用户离开DAppBrowser界面切换到钱包其他界面如示例中的Wallet、Discover等界面,由于钱包为了不影响用户体验和避免重复授权,此时WalletConnect的连接是没有断开的,但是此时用户却可能因为恶意DApp突然发起的签名请求弹窗而误操作导致被钓鱼转移走资产。
慢雾:过去一周Web3生态因安全事件损失约2400万美元:6月19日消息,据慢雾发推称,过去一周Web3生态系统因安全事件损失约2400万美元,包括Atlantis Loans、Ben Armstrong、TrustTheTrident、FPG、Sturdy、Pawnfi、Move VM、Hashflow、DEP/USDT与LEV/USDC、Midas Capital,总计23,795,800美元。[2023/6/19 21:46:18]
动态演示GIF如下图:
慢雾:Rubic协议错将USDC添至Router白名单,导致已授权合约用户USDC遭窃取:12月25日消息,据慢雾安全团队情报,Rubic跨链聚合器项目遭到攻击,导致用户账户中的USDC被窃取。慢雾安全团队分享如下:1. Rubic是一个DEX跨链聚合器,用户可以通过RubicProxy合约中的routerCallNative函数进行Native Token兑换。在进行兑换前,会先检查用户传入的所需调用的目标 Router是否在协议的白名单中。
2. 经过白名单检查后才会对用户传入的目标Router进行调用,调用数据也由用户外部传入。
3. 不幸的是USDC也被添加到Rubic协议的Router白名单中,因此任意用户都可以通过RubicProxy合约任意调用USDC。
4. 恶意用户利用此问题通过routerCallNative函数调用USDC合约将已授权给RubicProxy合约的用户的USDC通过transferFrom接口转移至恶意用户账户中。
此次攻击的根本原因在于Rubic协议错误的将USDC添加进Router白名单中,导致已授权给RubicProxy合约的用户的USDC被窃取。[2022/12/26 22:07:00]
攻击者利用恶意DApp钓鱼网站引导用户使用WalletConnect与钓鱼页面连接后,然后定时不间断发送恶意的签名请求。用户识别到eth_sign可能不安全拒绝签名后,由于WalletConnect采用wss的方式进行连接,如果用户没有及时关闭连接,钓鱼页面会不断的发起构造恶意的eth_sign签名弹窗请求,用户在使用钱包的时候有很大的可能会错误的点击签署按钮,导致用户的资产被盗。
慢雾:Furucombo被盗资金发生异动,多次使用1inch进行兑换:据慢雾MistTrack,2月28日攻击Furucombo的黑客地址(0xb624E2...76B212)于今日发生异动。黑客通过1inch将342 GRO、69 cWBTC、1700万cUSDC兑换成282 ETH,并将147ETH从Compound转入到自己的地址,截至目前该黑客地址余额约170万美元,另一个黑客地址余额为约1200万美元。[2021/3/3 18:12:14]
这个安全问题的核心是用户切换DAppBrowser界面到其他界面后,是否应继续自动弹窗响应来自DAppBrowser界面的请求,尤其是敏感操作请求。因为跨界面后盲目弹窗响应很容易导致用户的误操作。
这里面涉及到一个安全原则:WalletConnect连接后,钱包在检测到用户切换DAppBrowser界面到其他界面后,应该对来自DAppBrowser的弹窗请求不进行处理。
另外需要注意的是,虽然移动端钱包App+PC浏览器的WalletConnect连接场景也存在同样的问题,但是用户在这种场景下或许不那么容易误操作。
慢雾:nanotron安全审计报告是伪造的:慢雾科技发推表示:团队并没有对于nanotron进行审计,项目的安全审计报告是伪造的,请注意防范风险。[2020/10/8]
WalletConnect连接后界面切换的处理情况
慢雾安全团队抽取市面热门搜索和下载量比较大的20个CryptoWalletApp进行测试:
根据上表测试结果,我们发现:
1.部分热门钱包App如MetaMask、EnjinWallet、TrustWallet、SafePalWallet及iTokenWallet等,在WalletConnect连接后切换到其他界面时,会自动响应DApp的请求,并弹出签名窗口。
2.大部分测试的钱包App在切换界面后,对DApp的请求不会做出响应,也不会弹出提示窗口。
动态 | 慢雾:9 月共发生 12 起较典型的安全事件,供应链攻击趋势愈发明显:过去的 9 月区块链生态共发生 12 起较典型的安全事件,包括:EOSPlay 遭受新型随机数攻击、资金盘项目 FairWin 智能合约权限管理缺陷、EOS 黑名单账号 craigspys211 利用新晋 BP 黑名单缺陷转移走 19.999 万枚 EOS 等典型安全事件。此外,慢雾区块链威胁情报(BTI)系统监测发现,针对区块链生态的供应链攻击越来越多,形如:去年 11 月慢雾披露的污染 NPM 模块 EventStream、今年 7 月披露的对数字货币钱包 Agama 构建链的攻击、今年 8 月披露的针对数字货币行情/导航站的 URL 劫持攻击,还有 9 月慢雾披露的针对交易所使用的第三方统计、客服 js 的恶意代码植入,进行实施盗币攻击。[2019/10/1]
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。最后希望各方共同努力,一起让区块链生态更美好。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。