WalletConnect 钓鱼风险介绍
2023 年 1 月 30 日,慢雾安全团队发现 Web3 钱包上关于 WalletConnect 使用不当可能存在被钓鱼的安全风险问题。这个问题存在于使用移动端钱包 App 内置的 DApp Browser + WalletConnect 的场景下。
我们发现,部分 Web3 钱包在提供 WalletConnect 支持的时候,没有对 WalletConnect 的交易弹窗要在哪个区域弹出进行限制,因此会在钱包的任意界面弹出签名请求。
当用户离开 DApp Browser 界面切换到钱包其他界面如示例中的 Wallet、Discover 等界面,由于钱包为了不影响用户体验和避免重复授权,此时 Wallet Connect 的连接是没有断开的,但是此时用户却可能因为恶意 DApp 突然发起的签名请求弹窗而误操作导致被钓鱼转移走资产。
慢雾:JPEG'd攻击者或已将全部6106.75枚ETH归还给项目方:8月4日消息,慢雾MistTrack监测显示,JPEG'd攻击者或已将全部6106.75枚ETH归还给项目方。[2023/8/4 16:18:46]
动态演示 GIF 如下图:
攻击者利用恶意 DApp 钓鱼网站引导用户使用 WalletConnect 与钓鱼页面连接后,然后定时不间断发送恶意的签名请求(如 eth_sign 这种盲签、授权签名、针对特殊智能合约协议的交易签名等,后面以 eth_sign 作为举例)。用户识别到 eth_sign 可能不安全拒绝签名后,由于 WalletConnect 采用 wss 的方式进行连接,如果用户没有及时关闭连接,钓鱼页面会不断的发起构造恶意的 eth_sign 签名弹窗请求,用户在使用钱包的时候有很大的可能会错误的点击签署按钮,导致用户的资产被盗。
这个安全问题的核心是用户切换 DApp Browser 界面到其他界面后,是否应继续自动弹窗响应来自 DApp Browser 界面的请求,尤其是敏感操作请求。因为跨界面后盲目弹窗响应很容易导致用户的误操作。
慢雾:Transit Swap黑客攻击交易被抢跑,套利机器人获利超100万美元:10月1日消息,据慢雾安全团队情报,Transit Swap 黑客转移用户 BSC 链 BUSD 资产时被套利机器人抢跑,区块高度为21816885,获利107万BUSD。套利机器人相关地址列表如下:0xa957...70d2、0x90b5...8ff4、0xcfb0...7ac7、
截止到目前,在各方的共同努力下,黑客已将 70% 左右的被盗资产退还到Transit Swap开发者地址,建议套利机器人所属人同样通过service@transit.finance或链上地址与Transit Swap取得联系,共同将此次被盗事件的受害用户损失降低到最小。[2022/10/2 18:37:44]
这里面涉及到一个安全原则:WalletConnect 连接后,钱包在检测到用户切换 DApp Browser 界面到其他界面后,应该对来自 DApp Browser 的弹窗请求不进行处理。
另外需要注意的是,虽然移动端钱包 App + PC 浏览器的 WalletConnect 连接场景也存在同样的问题,但是用户在这种场景下或许不那么容易误操作。
慢雾:ERC721R示例合约存在缺陷,本质上是由于owner权限过大问题:4月12日消息,据@BenWAGMI消息,ERC721R示例合约存在缺陷可导致项目方利用此问题进行RugPull。据慢雾安全团队初步分析,此缺陷本质上是由于owner权限过大问题,在ERC721R示例合约中owner可以通过setRefund Address函数任意设置接收用户退回的NFT地址。
当此退回地址持有目标NFT时,其可以通过调用refund函数不断的进行退款操作从而耗尽用户在合约中锁定的购买资金。且示例合约中存在owner Mint函数,owner可在NFT mint未达总供应量的情况下进行mint。因此ERC721R的实现仍是防君子不防小人。慢雾安全团队建议用户在参与NFTmint时不管项目方是否使用ERC721R都需做好风险评估。[2022/4/12 14:19:58]
WalletConnect 连接后界面切换的处理情况
慢雾安全团队抽取市面热门搜索和下载量比较大的 20 个 Crypto Wallet App 进行测试:
慢雾:去中心化期权协议Acutus的ACOWriter合约存在外部调用风险:据慢雾区消息,2022年3月29日,Acutus的ACOWriter合约遭受攻击,其中_sellACOTokens函数中外部调用用到的_exchange和exchangeData参数均为外部可控,攻击者可以通过此漏洞进行任意外部调用。目前攻击者利用该手法已经盗取了部分授权过该合约的用户的资产约72.6万美金。慢雾安全团队提醒使用过该合约的用户请迅速取消对该合约的授权以规避资产被盗风险。[2022/3/29 14:25:07]
根据上表测试结果,我们发现:
1. 部分热门钱包 App 如 MetaMask、Enjin Wallet、Trust Wallet、SafePal Wallet 及 iToken Wallet 等,在 WalletConnect 连接后切换到其他界面时,会自动响应 DApp 的请求,并弹出签名窗口。
2. 大部分测试的钱包 App 在切换界面后,对 DApp 的请求不会做出响应,也不会弹出提示窗口。
3. 少数钱包 App 在测试环境下无法使用 WalletConnect 与 DApp 连接,如 Coinbase Wallet 和 MEW Crypto Wallet 等。钱包的 DApp 中不是很适配 WalletConnect 接口。
动态 | 慢雾:Electrum“更新钓鱼”盗币攻击补充预警:Electrum 是全球知名的比特币轻钱包,支持多签,历史悠久,具有非常广泛的用户群体,许多用户喜欢用 Electrum 做比特币甚至 USDT(Omni) 的冷钱包或多签钱包。基于这种使用场景,Electrum 在用户电脑上使用频率会比较低。Electrum 当前最新版本是 3.3.8,而已知的 3.3.4 之前的版本都存在“消息缺陷”,这个缺陷允许攻击者通过恶意的 ElectrumX 服务器发送“更新提示”。这个“更新提示”对于用户来说非常具有迷惑性,如果按提示下载所谓的新版本 Electrum,就可能中招。据用户反馈,因为这种攻击,被盗的比特币在四位数以上。本次捕获的盗币攻击不是盗取私钥(一般来说 Electrum 的私钥都是双因素加密存储的),而是在用户发起转账时,替换了转账目标地址。在此我们提醒用户,转账时,需要特别注意目标地址是否被替换,这是近期非常流行的盗币方式。并建议用户使用 Ledger 等硬件钱包,如果搭配 Electrum,虽然私钥不会有什么安全问题,但同样需要警惕目标地址被替换的情况。[2020/1/19]
4. 部分钱包 App 如 Exodus Wallet 和 Edge Wallet 在连接测试环境下未找到相关的 DApp 进行测试,无法判断其切换界面后的响应情况。
慢雾安全团队最初在 Trust Wallet 上发现这个问题,并通过 Bugcrowd 漏洞提交平台向他们提交了这个问题,我们获得了 Trust Wallet 的感谢,他们表示将在下一个版本修复这个安全风险。
特别的是,如果钱包对 eth_sign 这种低级签名函数(盲签)没有任何风险提醒,eth_sign 这是一种非常危险的低级签名,大大加剧了 WalletConnect 这个问题钓鱼的风险。
不过如果只是禁用了 eth_sign 也不是完全没有风险(本文仅是拿 eth_sign 举例说明),我们还是呼吁更多的钱包开始禁用它。以用户数量最多的 MetaMask 钱包为例,其插件端已经在 2023 年 2 月 10 号发布的 V10.25.0 版本默认禁用 eth_sign,而移动端也在 2023 年 3 月 1 号发布的版本号为 6.11 开始默认不支持 eth_sign,用户需要到设置里手动打开才能使用它。
(Refer: https://github.com/MetaMask/metamask-extension/pull/17308)
(Refer: https://github.com/MetaMask/metamask-mobile/pull/5848)
不过值得一提的是,MetaMask 6.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。最后希望各方共同努力,一起让区块链生态更美好。
慢雾科技
个人专栏
阅读更多
金色财经 善欧巴
Chainlink预言机
白话区块链
金色早8点
Odaily星球日报
Arcane Labs
深潮TechFlow
欧科云链
BTCStudy
MarsBit
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。