Web3移动钱包遭遇模态钓鱼攻击 新型手法详解

Web3移动钱包新型钓鱼攻击手法揭秘:模态钓鱼

近期,我们发现了一种针对Web3移动钱包的新型网络钓鱼技术,可用于误导用户批准恶意交易。我们将这种新型钓鱼技术命名为"模态钓鱼攻击"(Modal Phishing)。

在这种攻击中,黑客可以向移动钱包发送伪造信息,冒充合法DApp,并通过在钱包的模态窗口中显示误导性内容来诱骗用户批准交易。这种钓鱼手法正在被广泛使用。我们已经与相关组件开发人员沟通,他们表示将发布新的验证API以降低风险。

什么是模态钓鱼攻击?

在对移动钱包的安全研究中,我们注意到Web3钱包的某些用户界面(UI)元素可被攻击者控制用于钓鱼攻击。我们将这种钓鱼技术命名为模态钓鱼,因为攻击者主要针对加密钱包的模态窗口进行攻击。

模态窗口是移动应用中常用的UI元素,通常显示在主窗口顶部。这种设计通常用于方便用户执行快速操作,如批准/拒绝Web3钱包的交易请求。Web3钱包上的典型模态设计通常提供必要的交易信息供用户检查,以及批准或拒绝请求的按钮。

然而,这些用户界面元素可被攻击者操控以进行模态钓鱼攻击。攻击者可以更改交易细节,将交易请求伪装成来自可信来源的安全更新等,以诱使用户批准。

揭秘Web3.0移动钱包新型骗局:模态钓鱼攻击Modal Phishing

典型攻击案例

案例1:通过Wallet Connect进行DApp钓鱼

Wallet Connect是一个流行的开源协议,用于通过二维码或深度链接连接用户钱包与DApp。在连接过程中,Web3钱包会显示一个模态窗口,展示DApp的名称、网址、图标等信息。但这些信息是由DApp提供的,钱包并不验证其真实性。

攻击者可以伪造这些信息,假冒合法DApp。例如,攻击者可以声称自己是Uniswap,连接用户的MetaMask钱包,诱骗用户批准恶意交易。在连接过程中,钱包内显示的模态窗口会呈现看似合法的Uniswap信息,包括名称、网址和图标。

不同钱包的模态设计可能不同,但攻击者始终可以控制这些元信息。这种攻击可用于让用户相信交易请求来自合法DApp。

揭秘Web3.0移动钱包新型骗局:模态钓鱼攻击Modal Phishing

揭秘Web3.0移动钱包新型骗局:模态钓鱼攻击Modal Phishing

揭秘Web3.0移动钱包新型骗局:模态钓鱼攻击Modal Phishing

案例2:通过MetaMask进行智能合约信息钓鱼

在MetaMask的交易批准模态窗口中,除了DApp信息外,还会显示一个表示交易类型的字符串,如"Confirm"或"Unknown Method"。MetaMask会读取智能合约的签名字节,并使用链上方法注册表查询相应的方法名称。

攻击者可以利用这一机制,创建一个钓鱼智能合约,其中包含一个名为"SecurityUpdate"的具有支付功能的方法。当MetaMask解析这个合约时,会在批准模态中向用户呈现"SecurityUpdate"字样。

结合其他可控UI元素,攻击者可以创建一个非常具有说服力的交易请求,将其伪装成来自"MetaMask"的"SecurityUpdate"请求,诱导用户批准。

揭秘Web3.0移动钱包新型骗局:模态钓鱼攻击Modal Phishing

揭秘Web3.0移动钱包新型骗局:模态钓鱼攻击Modal Phishing

揭秘Web3.0移动钱包新型骗局:模态钓鱼攻击Modal Phishing

揭秘Web3.0移动钱包新型骗局:模态钓鱼攻击Modal Phishing

总结

模态钓鱼攻击揭示了Web3钱包UI组件中的潜在风险。这种攻击的根本原因是钱包应用未能充分验证所呈现UI元素的合法性。例如,钱包直接信任来自Wallet Connect SDK的元数据,而SDK本身也不验证传入的元数据。

为了防范此类攻击,钱包开发者应始终假设外部数据不可信,仔细选择向用户展示的信息,并验证这些信息的合法性。同时,用户也应对每个未知的交易请求保持警惕,以确保自身资产安全。

揭秘Web3.0移动钱包新型骗局:模态钓鱼攻击Modal Phishing

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)