我们最近发现了一种新型的网络钓鱼技术,可用于在连接的去中心化应用(DApp)身份方面误导受害者。
我们将这种新型的网络钓鱼技术命名为Modal Phishing(模态钓鱼攻击)。
攻击者可以向移动钱包发送伪造的虚假信息冒充合法的DApp,并通过在移动钱包的模态窗口中显示误导性信息来诱受害者批准交易。这种网络钓鱼技术正在广泛使用。我们与相应的组件开发人员进行了沟通,并确认他们将发布新的验证API以降低该风险。
什么是Modal Phishing?在CertiK对移动钱包的安全研究中,我们注意到Web3.0货币钱包的某些用户界面(UI)元素可以被攻击者控制用来进行网络钓鱼攻击。我们将这种钓鱼技术命名为Modal Phishing,因为攻击者主要针对加密钱包的模态窗口进行钓鱼攻击。
模态(或模态窗口)是移动应用程序中经常使用的UI元素。模态通常显示在应用程序主窗口顶部。这样的设计通常用于方便用户执行快速操作,如批准/拒绝Web3.0货币钱包的交易请求。
Web3.0货币钱包上的典型模态设计通常提供供用户检查签名等请求的必要信息,以及批准或拒绝请求的按钮。
BSV协议开发商nChain完成对Asset Layer 240万美元投资并持有20%股权:5月5日消息,BSV 协议开发商 nChain 宣布对数字资产平台 Asset Layer 进行 240 万美元投资,并持有 Asset Layer 20% 的股权。nChain 提供 Asset Layer 解决方案背后的核心区块链基础设施,为客户提供互操作性、安全性和可扩展性。
Asset Layer 是一种数字资产即服务解决方案,与 nChain 的合作提供了服务大型企业客户的机会。[2023/5/6 14:45:52]
真实交易批准模式与网络钓鱼交易批准模式对比
在上方截图中,我们展示了Metamask上一个常规的交易审批模态窗口是如何出现的。
当一个新的交易请求被连接的去中心化应用程序(DApp)初始化时,钱包会展示一个新的模态窗口,并要求用户进行人工确认。
如上图左侧所示,模态窗口通常包含请求者的身份,如网站地址(此例中为localhost)、图标等。如Metamask这样的一些钱包也会显示有关请求的关键信息,在实例中我们看到一些UI元素被标记为“Confirm”,以提示用户这是一个常规的交易请求。
然而,这些用户界面元素可以被攻击者控制以进行Modal Phishing攻击。在右侧的截图中,我们可以看到攻击者可以更改交易细节,并将交易请求伪装成来自“Metamask”的“Security Update”请求,以诱使用户批准。
Ready Player Me发布基于CryptoPunks的3D化身系列:2月8日消息,元宇宙化身平台Ready Player Me发布了一个面向CryptoPunks NFT所有者,包含10000件独特3D化身的系列,旨在提高CryptoPunks的实用性。
名为“Ready Player Me Punks”的化身可以在各种虚拟世界中使用,用户可以访问1000家将这些化身集成到其应用程序和游戏中的公司,包括VRChat、Somnium Space、TCL和Hiberworld。该公司在12月底首次透露了这一发行计划。值得注意的是,该项目与CryptoPunks的开发团队Larva Labs没有任何官方联系。
这些化身将拥有原始CryptoPunks系列的属性。CryptoPunk和Ready Player Me Punks是单独的系列,这意味着punk所有者可以通过购买3D版本的punk,然后以更高的价格出售给其他人来利用CryptoPunk盈利。
化身的铸造价格为0.33 ETH,其中一半的收入(包括在二级市场上的销售)将流向与Punks和其他基于NFT的资产兼容的应用程序和游戏的开发者。(The Block)[2022/2/9 9:39:18]
如截图所示,攻击者可以操纵多个UI元素。
现场 | Qtum量子链CEO帅初:只有layer2才能承载千万级应用:金色财经现场报道,10月27日,第六届区块链全球峰会于上海开幕,峰会上Qtum量子链CEO帅初演讲表示,区块链真正的未来,是连接互联网上的资源,在layer1上做清结算一定会堵塞,未来2年,借助layer2,会在链下实现更多的实践。公有链依旧面临链的处理能力有限、资产类型,链下的缺口在于区块链连接现实世界。受制于公有链发展,所有的用户会迁移到layer2,只有layer2才能承载千万级应用。[2020/10/27]
因此我们将在本文中为大家分享两个典型案例,并确定那些可被攻击者控制的UI元素。
详细信息如下:
① 如果使用Wallet Connect协议,攻击者可以控制DApp信息UI元素(名称、图标等) 。
② 攻击者可以控制某些钱包应用中的智能合约信息UI元素。
攻击者控制的Modal和相关的信息源(DApp信息和方法名称)示例
示例①:通过Wallet Connect进行DApp钓鱼攻击
Wallet Connect协议是一个广受欢迎的开源协议,用于通过二维码或深度链接将用户的钱包与DApp连接。用户可以通过Wallet Connect协议将他们的钱包与DApp连接起来,然后与该协议进行进行交易或转账。
Klaytn宣布推出KDAI,将更好地支持平台生态项目:韩国区块链技术公司Orbit Chain于今日宣布推出“Everydai”,通过与Maker Dao的战略合作将Dai与其他区块链联系起来。而作为Everyday支持的第一个区块链平台是由Kakao的区块链子公司Ground X开发的“Klaytn”。基于ERC20的Dai现在可以作为KDai(基于KCT—Klaytn兼容令牌)发送到Klaytn生态系统。这将使Dai拥有多个区块链平台,并由此产生更多的价值。
作为稳定币的Dai已在以太坊网络中证明了自己的价值,而Klaytn可以借助稳定币可提供的稳定性将Dai纳入其生态系统而受益。这也为Klaytn提供了获得需要稳定资产的更多服务机会。[2020/8/19]
在Web3.0货币钱包和DApp之间的配对过程中,我们注意到Web3.0货币钱包会展示一个模态窗口,显示传入配对请求的元信息——包括DApp的名称,网站地址,图标和描述。Web3.0钱包展示的这些信息和方式根据DApp名称、图标和网站地址不同而变化,以供用户查看。
但是这些信息是DApp提供的,钱包并不验证其所提供信息是否合法真实。比如在网络钓鱼攻击中,某雷碧可以假称为某雪碧(均为DApp),而后在用户发起交易请求之前诱用户与其连接。
以太坊研发者:一旦Layer 2和ETH2全速发展 其他协议将很难让人信服:7月28日早间,以太坊研发者Philippe Castonguay发推称,现在正是新的各种Layer 1协议窃取以太坊用户的好时机。一旦Layer 2和ETH2实现全速发展,(那些协议)所谓的低费用和高吞吐量的主张将很难让人信服。而这也意味着你行动的时间很短。7月27日晚间消息,以太坊已正式上线eth2验证器launchpad测试版。[2020/7/28]
小伙伴们可以复制链接【https://www.youtube.com/watch?v=x6muJmDBC3o】到浏览器查看CertiK为此做的一个小测试。
在该视频中,CertiK展示了攻击者是如何「欺瞒」Uniswap DApp的——攻击者声称自己是Uniswap DApp,并连接Metamask钱包,以此用户批准传入的交易。
在配对过程中,钱包内显示的模态窗口呈现了合规Uniswap DApp的名称、网站网址和网站图标。
由于网址中使用了https方案,所以还显示了一个挂锁图标,这样显得模态窗口更为逼真和合法了。在配对过程中,只要受害者想在假Uniswap网站上进行交易操作,攻击者就可以替换交易请求参数(如目的地地址和交易金额)来窃取受害者的资金。
请注意,虽然不同的钱包上的模态设计不同,但攻击者是始终可以控制元信息的。
下图展示了当我们将ZenGo和1Inch钱包连接到钓鱼网站的DApp时,配对批准模式的样子。
Modal Phishing:连接到Zengo和1Inch钱包的虚假DApp
现在我们知道了配对和交易模态窗口可以被攻击者操纵,这样的攻击可以被用来让用户相信交易请求来自合法的DApp。
如下方截图所示,我们创建了一个自称是“Metamask”的虚假DApp,并启动了一个钓鱼智能合约。攻击者可以在交易批准模态中冒充Metamask或Uniswap的DApp。
如上例所示,被大规模使用的Wallet Connect协议并未验证配对的DApp信息的合法性。被操纵的元信息被钱包应用程序进一步使用并呈现给用户,这可以被用来进行Modal Phishing。作为一个潜在的解决方案,Wallet Connect协议可以提前验证DApp信息的有效性和合法性。Wallet Connect的开发人员已经承认了知晓这个问题,并正在研究相关解决方案。
你可能已经注意到,在Metamask批准模态的图标或网站名称下,有另一个视图,显示了一个不固定的字符串例如“Confirm”或“Unknown Method”。这个UI元素是由Metamask设计的,用于识别相应的交易类型。
在呈现交易批准模态时,Metamask会读取智能合约的签名字节,并使用链上方法注册表查询相应的方法名称,如以下代码所示。然而,这也会在模态上创建另一个可以被攻击者控制的UI元素。
MetaMask源码通过签名字节读取智能合约的函数名称
MetaMask的智能合约方法名称说明
我们可以看到Metamask上有一个交易请求模态,其被标记为“Security Update”。攻击者建立了一个钓鱼智能合约,其有一个SecurityUpdate具备支付函数功能,并允许受害者将资金转入该智能合约。
攻击者还使用SignatureReg将方法签名注册为人类可读的字符串“SecurityUpdate”中。如前所述,当Metamask解析这个钓鱼智能合约时,它使用函数签名字节查询相应的函数方法,并在批准模态中呈现给用户。
从这个智能合约的交易可以看出,这个特定的钓鱼智能合约已经运行了200多天。
结合这些可控的UI元素,攻击者可以创建一个非常有说服力的交易请求,该请求显示为来自“Metamask”的“SecurityUpdate”请求,寻求用户的批准。
钓鱼交易批准模态
在上面的例子中,我们展示了钱包上与智能合约信息相关的UI元素是如何被钓鱼攻击者操纵的。
虽然我们在这里以Metamask为例,但其他钱包也可能存在类似的漏洞。钱包应用的开发者应该时刻注意监测那些会向用户呈现的内容,并采取预防措施过滤掉可能被用于网络钓鱼攻击的词语。
模态窗口中的某些UI元素可以被攻击者操纵,以创造出非常「真实且有说服力」的钓鱼陷阱。因此,我们将这种新的网络钓鱼技术命名为Modal Phishin(模态钓鱼攻击)。
这种攻击发生的根本原因是钱包应用程序没有彻底验证所呈现的UI元素的合法性。
例如,钱包应用程序直接信任来自Wallet Connect SDK的元数据,并将其呈现给了用户。
Wallet Connect SDK也并不验证传入的元数据,这在某些情况下使得呈现的元数据可以被攻击者控制。在Metamask中,我们可以看到类似的攻击原理也被攻击者滥用,在模态窗口中显示欺诈性的智能合约函数方法名称。
总体而言,我们认为钱包应用程序的开发者应该始终假设外部传入的数据是不可信的。开发者应该仔细选择向用户展示哪些信息,并验证这些信息的合法性。除此之外,用户也应通过对每个未知的交易请求保持怀疑的态度来守好自己安全上的「一亩三分地」。
CertiK中文社区
企业专栏
阅读更多
金色财经 善欧巴
Chainlink预言机
白话区块链
金色早8点
Odaily星球日报
欧科云链
深潮TechFlow
BTCStudy
MarsBit
Arcane Labs
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。