返回论坛

深度剖析:WalletConnect 钓鱼攻击技术原理与防御方案

查找币 漏洞披露 安全研究 Web3安全 区块链安全

查找币安全研究院

钱包恢复评估 | 链上取证分析 | Web3 事件响应
以合法授权、证据保全、隐私保护和可复核流程为前提,不要求用户在线提交完整私钥或助记词。

查看研究院 研究报告中心
**作者:查找币安全团队** ## 引言 2023年1月30日,查找币安全团队在例行安全审计中发现了一个影响广泛的Web3钱包安全漏洞——当用户通过移动端钱包App内置的DApp Browser配合WalletConnect协议进行交互时,存在被钓鱼攻击的风险。这一发现揭示了当前主流钱包在跨界面交互安全设计上的薄弱环节。 ## 漏洞核心:跨界面弹窗劫持 ### 技术细节 该漏洞的核心机制在于:部分Web3钱包在实现WalletConnect协议时,**未对签名请求弹窗的弹出区域进行严格限制**。具体表现为: - 当用户从DApp Browser界面切换到钱包的其他界面(如Wallet、Discover等)时,WalletConnect的连接并未断开(这是为了提升用户体验、避免重复授权) - 然而,恶意DApp可以利用这一持续连接,**在用户完全不知情的情况下发起签名请求弹窗** - 由于弹窗出现在非DApp Browser界面,用户容易产生误操作,将签名请求当作正常的钱包操作 ### 攻击流程(动态演示) 攻击者通过以下步骤实施攻击: 1. **诱导连接**:攻击者构建恶意DApp钓鱼网站,引导用户通过WalletConnect与其连接 2. **持续轰炸**:利用WalletConnect的WebSocket(wss)长连接特性,定时不间断发送恶意签名请求,如: - `eth_sign`(盲签,最危险) - 授权签名 - 针对特殊智能合约协议的交易签名 3. **等待误操作**:用户识别到`eth_sign`不安全并拒绝签名后,由于连接未中断,钓鱼页面会持续发起请求。在用户频繁使用钱包的过程中,**极大概率会错误点击签署按钮**,导致资产被盗 ### 安全原则缺失 该问题的本质是钱包设计违反了以下安全原则: > **WalletConnect连接后,钱包在检测到用户切换DApp Browser界面到其他界面后,应该对来自DApp Browser的弹窗请求不进行处理。** 值得注意的是,虽然移动端钱包App + PC浏览器的WalletConnect连接场景也存在类似问题,但用户在该场景下误操作的概率相对较低。 ## 市场影响:20款主流钱包实测 查找币安全团队对市面上搜索和下载量排名前20的Crypto Wallet App进行了系统测试,结果如下: | 钱包名称 | 跨界面弹窗响应情况 | |---------|------------------| | **MetaMask** | 自动响应 | | **Enjin Wallet** | 自动响应 | | **Trust Wallet** | 自动响应(已修复) | | **SafePal Wallet** | 自动响应 | | **iToken Wallet** | 自动响应 | | Coinbase Wallet | 无法连接测试 | | MEW Crypto Wallet | 无法连接测试 | | Exodus Wallet | 未找到测试环境 | | Edge Wallet | 未找到测试环境 | | **其他钱包** | 大部分无响应 | ### 关键发现 1. **高风险钱包**:MetaMask、Enjin Wallet、Trust Wallet、SafePal Wallet、iToken Wallet等5款热门钱包存在此漏洞 2. **相对安全钱包**:大部分测试钱包在切换界面后对DApp请求不响应 3. **兼容性问题**:Coinbase Wallet、MEW Crypto Wallet等无法正常使用WalletConnect 4. **测试盲区**:Exodus Wallet、Edge Wallet等缺乏可测试的DApp环境 ## 漏洞披露与行业响应 查找币安全团队最初在**Trust Wallet**上发现此问题,并通过Bugcrowd漏洞提交平台进行报告。Trust Wallet团队对此给予了积极回应,表示将在下一个版本中修复该安全风险。 ### `eth_sign`:被低估的致命武器 特别值得关注的是,`eth_sign`这种低级签名函数(盲签)的使用加剧了该漏洞的威胁。`eth_sign`允许签名任意数据,用户无法辨别签名内容的真实含义,**一旦签署,攻击者即可获取对账户的完全控制权**。 好消息是,行业头部钱包已经开始行动: - **MetaMask插件端**:2023年2月10日发布的V10.25.0版本默认禁用`eth_sign`([PR #17308](https://github.com/MetaMask/metamask-extension/pull/17308)) - **MetaMask移动端**:2023年3月1日发布的6.11版本开始默认不支持`eth_sign`,用户需手动开启([PR #5848](https://github.com/MetaMask/metamask-mobile/pull/5848)) 但仅禁用`eth_sign`并非万能,攻击者仍可通过其他签名方式(如`personal_sign`、`eth_signTypedData_v4`等)实施钓鱼。 ## 防护建议 ### 对用户 1. **使用WalletConnect后及时断开连接**:离开DApp Browser界面后,主动关闭WalletConnect会话 2. **警惕非预期弹窗**:在非DApp Browser界面遇到签名请求时,一律拒绝 3. **禁用`eth_sign`**:在钱包设置中手动禁用此低级签名函数 4. **使用硬件钱包**:硬件钱包可提供额外一层签名确认机制 5. **检查完整地址**:在展示地址时,醒目提醒用户检查完整目标地址,避免尾号相同的诈骗 ### 对钱包开发者 1. **实现跨界面弹窗阻断**:用户切换界面后,停止响应来自原DApp的请求 2. **默认禁用危险签名函数**:如`eth_sign`,仅允许用户手动启用 3. **引入白名单机制**:允许用户将常用地址加入白名单,防止尾号攻击 4. **交易显示优化**:增加对小额或无价值代币交易的隐藏功能 5. **AML合规提醒**:在转账时通过AML机制提醒用户目标地址是否存在风险 ## 结语 WalletConnect作为Web3生态中重要的桥接协议,其安全性直接关系到用户的资产安全。本次发现的安全漏洞揭示了用户体验与安全防护之间的平衡难题。查找币安全团队将持续关注此类问题,并推动行业标准的提升。 **本文由查找币安全团队整理发布** --- *查找币科技作为行业领先的区块链安全公司,在安全审计领域深耕多年。我们拥有超过2亿个地址标签、1000多个地址实体、10万个威胁情报数据和9000万个风险地址的反洗钱追踪系统。如需安全审计或反洗钱追踪服务,欢迎联系我们。*
在论坛中查看和回复