ZKP:一茬接一茬 Web3.0移动钱包又现独特钓鱼攻击手法:Modal Phishing

我们最近发现了一种新型的网络钓鱼技术,可用于在连接的去中心化应用身份方面误导受害者。

我们将这种新型的网络钓鱼技术命名为ModalPhishing。

攻击者可以向移动钱包发送伪造的虚假信息冒充合法的DApp,并通过在移动钱包的模态窗口中显示误导性信息来诱受害者批准交易。这种网络钓鱼技术正在广泛使用。我们与相应的组件开发人员进行了沟通,并确认他们将发布新的验证API以降低该风险。

什么是ModalPhishing?在CertiK对移动钱包的安全研究中,我们注意到Web3.0货币钱包的某些用户界面元素可以被攻击者控制用来进行网络钓鱼攻击。我们将这种钓鱼技术命名为ModalPhishing,因为攻击者主要针对加密钱包的模态窗口进行钓鱼攻击。

模态是移动应用程序中经常使用的UI元素。模态通常显示在应用程序主窗口顶部。这样的设计通常用于方便用户执行快速操作,如批准/拒绝Web3.0货币钱包的交易请求。

Web3.0货币钱包上的典型模态设计通常提供供用户检查签名等请求的必要信息,以及批准或拒绝请求的按钮。

Zeko Labs与O(1) Labs、dcSpark合作推出L2 ZK Rollup生态系统Zeko:7月27日消息,Zeko Labs 与 Mina 开发团队 O(1) Labs 和 dcSpark 合作,推出专门为零知识应用程序(zkApps)设计的 L2 ZK Rollup 生态系统 Zeko,由 Mina Protocol 进行结算,Zeko 将允许开发人员大规模构建具有可编程隐私性的去中心化应用程序。[2023/7/27 16:01:25]

真实交易批准模式与网络钓鱼交易批准模式对比

在上方截图中,我们展示了Metamask上一个常规的交易审批模态窗口是如何出现的。

当一个新的交易请求被连接的去中心化应用程序初始化时,钱包会展示一个新的模态窗口,并要求用户进行人工确认。

如上图左侧所示,模态窗口通常包含请求者的身份,如网站地址、图标等。如Metamask这样的一些钱包也会显示有关请求的关键信息,在实例中我们看到一些UI元素被标记为“Confirm”,以提示用户这是一个常规的交易请求。

然而,这些用户界面元素可以被攻击者控制以进行ModalPhishing攻击。在右侧的截图中,我们可以看到攻击者可以更改交易细节,并将交易请求伪装成来自“Metamask”的“SecurityUpdate”请求,以诱使用户批准。

ZigZag计划在zkSync 2.0主网上线后推出ZigZag DAO:9月23日消息,据官方推特,zkSync生态DEX ZigZag宣布其计划在zkSync 2.0主网上线后推出ZigZag DAO。这是因为目前的zkSync 1.0没有能够支持DAO治理体系的基础设施,而在以太坊主网部署DAO则将为参与者造成大量费用。[2022/9/23 7:15:49]

如截图所示,攻击者可以操纵多个UI元素。

因此我们将在本文中为大家分享两个典型案例,并确定那些可被攻击者控制的UI元素。

详细信息如下:

①如果使用WalletConnect协议,攻击者可以控制DApp信息UI元素。

②攻击者可以控制某些钱包应用中的智能合约信息UI元素。

攻击者控制的Modal和相关的信息源示例

示例①:通过WalletConnect进行DApp钓鱼攻击

WalletConnect协议是一个广受欢迎的开源协议,用于通过二维码或深度链接将用户的钱包与DApp连接。用户可以通过WalletConnect协议将他们的钱包与DApp连接起来,然后与该协议进行进行交易或转账。

zkTube主网将于9月10日正式上线:据zkTube Labs官方消息:经团队技术排查修复,zkTube主网模拟测试网络已恢复正常运行,用户可放心继续参与最终测试。并且,我们计划于9月3日进行主网映射,9月10日正式启动主网。此后,在zkTube Layer2环境中将开放NFT、GameFi项目快速申请通道,为元宇宙基础设施搭建和应用提供便捷入口。

自zkTube项目上线以来,原定发展规划都在逐步完成,而主网上线意味着,zkTube将迎来全新阶段。[2021/8/24 22:33:51]

在Web3.0货币钱包和DApp之间的配对过程中,我们注意到Web3.0货币钱包会展示一个模态窗口,显示传入配对请求的元信息——包括DApp的名称,网站地址,图标和描述。Web3.0钱包展示的这些信息和方式根据DApp名称、图标和网站地址不同而变化,以供用户查看。

但是这些信息是DApp提供的,钱包并不验证其所提供信息是否合法真实。比如在网络钓鱼攻击中,某雷碧可以假称为某雪碧,而后在用户发起交易请求之前诱用户与其连接。

小伙伴们可以复制链接到浏览器查看CertiK为此做的一个小测试。

在该视频中,CertiK展示了攻击者是如何「欺瞒」UniswapDApp的——攻击者声称自己是UniswapDApp,并连接Metamask钱包,以此用户批准传入的交易。

zkTube亚洲区产品顾问:Layer2的出现主要就是为主层网络提供解决方案:金色财经现场报道,7月9日,金色沙龙第66期Layer2-扩容“空间站”,探索更高维度的破局之道在杭州举办,zkTube亚洲区产品顾问 Brian在演讲表示,Layer2的出现主要就是为主层网络提供解决方案,通过将部分数据分配给第二层网络进行处理,然后再回到主网来提交数据的验证和状态证明。不管是在一层还是二层或者是在这个生态开发自己的产品,都需要思考一个问题:从哪些方面入手来提高自己的核心竞争力?首先需要建立一个公链,主要考虑的就是从下面这几个维度来进行:1.构建的难度;2.使用的成本;3.运行效率;4.安全程度,从这四方面。

二层就相当于用分层的技术解决它的效率和手续费问题,使成本和效率在二层得到很好的解决。因为目前来说从以太坊的各方面技术、社区,或者是它将来的发展、技术理念都是比较成熟的,这也就是我们为什么要选择基于以太坊来做Layer2的解决方案。[2021/7/9 0:39:32]

在配对过程中,钱包内显示的模态窗口呈现了合规UniswapDApp的名称、网站网址和网站图标。

由于网址中使用了https方案,所以还显示了一个挂锁图标,这样显得模态窗口更为逼真和合法了。在配对过程中,只要受害者想在假Uniswap网站上进行交易操作,攻击者就可以替换交易请求参数来窃取受害者的资金。

观点:Validium适用于传统高频交易 zkRollup适合去中心化加密支付:近日,针对以太坊Layer 2扩容方案,即DeversiFi最近采用的Validium解决方案,Matter Labs创始人Alex Gluchowski撰文称,Validium的机制与zkRollup非常相似,唯一的区别是zkRollup中的数据可用性是在链上的,而Validium则将其保持在链外。这允许Validium获得更高的吞吐量,但这也导致该解决方案存在两大问题:1、可冻结用户资金;2、可没收用户资金。

Alex Gluchowski指出,zkRollup的数据可用性可保护用户的资金免遭扣押和审查。但数据可用性的链上存储,导致了吞吐量的限制。因此,Alex Gluchowski认为Validium方案可能会适用于传统的高频交易或具有较低信任假设的游戏,相比之下,完全无需信任的zkRollup方案则非常适合扩展去中心化的加密支付。(Medium)[2020/6/8]

请注意,虽然不同的钱包上的模态设计不同,但攻击者是始终可以控制元信息的。

下图展示了当我们将ZenGo和1Inch钱包连接到钓鱼网站的DApp时,配对批准模式的样子。

ModalPhishing:连接到Zengo和1Inch钱包的虚假DApp

现在我们知道了配对和交易模态窗口可以被攻击者操纵,这样的攻击可以被用来让用户相信交易请求来自合法的DApp。

如下方截图所示,我们创建了一个自称是“Metamask”的虚假DApp,并启动了一个钓鱼智能合约。攻击者可以在交易批准模态中冒充Metamask或Uniswap的DApp。

如上例所示,被大规模使用的WalletConnect协议并未验证配对的DApp信息的合法性。被操纵的元信息被钱包应用程序进一步使用并呈现给用户,这可以被用来进行ModalPhishing。作为一个潜在的解决方案,WalletConnect协议可以提前验证DApp信息的有效性和合法性。WalletConnect的开发人员已经承认了知晓这个问题,并正在研究相关解决方案。

示例②:通过MetaMask进行智能合约信息网络钓鱼

你可能已经注意到,在Metamask批准模态的图标或网站名称下,有另一个视图,显示了一个不固定的字符串例如“Confirm”或“UnknownMethod”。这个UI元素是由Metamask设计的,用于识别相应的交易类型。

在呈现交易批准模态时,Metamask会读取智能合约的签名字节,并使用链上方法注册表查询相应的方法名称,如以下代码所示。然而,这也会在模态上创建另一个可以被攻击者控制的UI元素。

?MetaMask源码通过签名字节读取智能合约的函数名称

?MetaMask的智能合约方法名称说明

我们可以看到Metamask上有一个交易请求模态,其被标记为“SecurityUpdate”。攻击者建立了一个钓鱼智能合约,其有一个SecurityUpdate具备支付函数功能,并允许受害者将资金转入该智能合约。

攻击者还使用SignatureReg将方法签名注册为人类可读的字符串“SecurityUpdate”中。如前所述,当Metamask解析这个钓鱼智能合约时,它使用函数签名字节查询相应的函数方法,并在批准模态中呈现给用户。

从这个智能合约的交易可以看出,这个特定的钓鱼智能合约已经运行了200多天。

结合这些可控的UI元素,攻击者可以创建一个非常有说服力的交易请求,该请求显示为来自“Metamask”的“SecurityUpdate”请求,寻求用户的批准。

钓鱼交易批准模态

在上面的例子中,我们展示了钱包上与智能合约信息相关的UI元素是如何被钓鱼攻击者操纵的。

虽然我们在这里以Metamask为例,但其他钱包也可能存在类似的漏洞。钱包应用的开发者应该时刻注意监测那些会向用户呈现的内容,并采取预防措施过滤掉可能被用于网络钓鱼攻击的词语。

写在最后

在本文中,我们为大家展示了Web3.0货币钱包上不应盲目信任的常见UI组件——模态窗口。

模态窗口中的某些UI元素可以被攻击者操纵,以创造出非常「真实且有说服力」的钓鱼陷阱。因此,我们将这种新的网络钓鱼技术命名为ModalPhishin。

这种攻击发生的根本原因是钱包应用程序没有彻底验证所呈现的UI元素的合法性。

例如,钱包应用程序直接信任来自WalletConnectSDK的元数据,并将其呈现给了用户。

WalletConnectSDK也并不验证传入的元数据,这在某些情况下使得呈现的元数据可以被攻击者控制。在Metamask中,我们可以看到类似的攻击原理也被攻击者滥用,在模态窗口中显示欺诈性的智能合约函数方法名称。

总体而言,我们认为钱包应用程序的开发者应该始终假设外部传入的数据是不可信的。开发者应该仔细选择向用户展示哪些信息,并验证这些信息的合法性。除此之外,用户也应通过对每个未知的交易请求保持怀疑的态度来守好自己安全上的「一亩三分地」。

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

链链资讯

瑞波币ARK:a16z近期投资项目一览

跟随smartmoney投资很重要。加密领域的一大smartmoney就是a16z。a16z投资了几乎所有的?L1?和?L2公链,包括?Sui、Aptos、zkSync、Avalanche、NE.

[0:15ms0-3:379ms