MAS:MetaMask 浏览器扩展钱包 Clickjacking 漏洞分析

背景概述

2022年6月3日,MetaMask公开了白帽子发现的一个严重的Clickjacking漏洞,这个漏洞可以造成的影响是:在用户的MM插件钱包处于解锁状态,用户访问恶意的站点时,站点可以利用iframe标签将解锁的MM插件钱包页面嵌入到网页中并进行隐藏,然后引导用户在网站上进行点击操作,实际上是在MM解锁的页面中进行操作,从而盗取用户的数字货币或藏品等相关资产。鉴于MM的用户体量较大,且ForkMetaMask插件钱包的项目也比较多,因此在MM公开这个漏洞后,我们立即开始对这个漏洞进行复现,然后开始搜寻这个漏洞对于其他ForkMetaMask项目的影响。

随后,慢雾安全团队尽可能地通知受到影响的项目方,并引导项目方进行修复。现在将这个Clickjacking漏洞的分析公开出来避免后续的项目踩坑。

漏洞分析

由于MM在发布这个Clickjacking漏洞的时候并没有详细的说明,仅是解释了这个漏洞的利用场景以及能够产生的危害,所以我在进行复现的时候也遇到了挺多坑,所以为了让大家能够更好地顺畅地理解整个漏洞,我在进行漏洞分析之前先补充下一个知识点。

MetaMask将支持通过Lido和Rocket Pool进行流动性质押:金色财经报道,ConsenSys 周五宣布,加密钱包提供商 MetaMask 现在将支持通过 Lido 和 Rocket Pool 进行流动性质押。在该协议的公开测试版中,想要质押 ETH 并因对网络共识做出贡献而获得奖励的用户可以直接在 MetaMask 的 web3 应用程序中进行,方法是选择所需的质押提供商并确认要分配的 ETH 数量并签署交易,希望将在 Lido 或 Rocket Pool 上质押而收到的 stETH 或 rETH 换回 ETH 的用户可以在 MetaMask 中付费进行。

MetaMask 高级产品经理 Abad Mian 解释道:“重要的是要注意 MetaMask Staking 不提供质押服务,我们只需将用户连接到 Lido 和 Rocket Pool 以质押他们的 ETH 并直接从质押提供商那里接收流动性质押代币。”[2023/1/14 11:11:13]

我们来了解下Manifest-WebAccessibleResources。在浏览器扩展钱包中有这么一个配置:web_accessible_resources,其用来约束Web页面能够访问到浏览器扩展的哪些资源,并且在默认的情况下是Web页面访问不到浏览器扩展中的资源文件,仅浏览器扩展的本身才能访问到浏览器扩展的资源。简而言之就是http/https等协议下的页面默认是没法访问到chrome-extension,当然如果扩展钱包配置了web_accessible_resources将扩展钱包内部的资源暴露出来,那么就能被http/https等协议下的页面访问到了。

MetaSing完成300万美元种子轮融资,Pleiades Capital 领投:金色财经报道,基于Solana区块链的去中心化Web3音乐平台MetaSing宣布完成300万美元种子轮融资,Pleiades Capital 领投。MetaSing是第一个将游戏模式与 web3 音乐流媒体相结合的去中心化音乐平台,包含音频分享、视频分享、音乐NFT交易等内容,致力于做一个去中心化的UGC音乐平台,团队由前 Facebook、Spotify 和 Twitch 公司员工组成,本月他们宣布推出首个 NFT 并透露了他们的路线图。(accesswire)[2022/8/11 12:17:03]

而MM扩展钱包在10.14.6之前的版本一直保留着"web_accessible_resources":的配置,而这个配置是漏洞得以被利用的一个关键点。

以太坊扩容解决方案MetisDAO已集成Chainlink喂价:8月4日消息,以太坊扩容解决方案MetisDAO宣布已集成Chainlink喂价,开发者已可以借助Metis开发者文档通过Chainlink喂价服务开发DeFi等应用。[2022/8/4 2:58:15]

然而在进行漏洞分析的时候,发现在app/scripts/phishing-detect.js(v10.14.5)中已经对钓鱼页面的跳转做了协议的限制。。

我们继续跟进这个协议限制的改动时间点,发现是在如下这个commit中添加了这个限制,也就是说在v10.14.1之前由于没有对跳转的协议进行限制,导致Clickjacking漏洞可以轻易被利用。

协作式Web3开发者课程Metacrafters.io获得450万美元融资:金色财经报道,协作式Web3 开发者课程Metacrafters.io今天宣布它已从Solana, Flow, Avalanche和Polygon基金会筹集 450 万美元。

Metacrafters 将利用这些赠款将希望将自己的技能从 Web2 扩展到 Web3 的开发人员社区聚集在一起,并帮助支持从学习到赚钱的模式。大部分赠款将用于资助完成 12,000 多个 Solana、Flow、Avalanche 和 Polygon 课程的财务奖励。[2022/6/11 4:18:09]

相关的commit:

https://github.com/MetaMask/metamask-extension/commit/c1ca70d7325577835a23c1fae2b0b9b10df54490

https://github.com/MetaMask/metamask-extension/compare/v10.14.0...v10.14.1

NirvanaMeta公链生态币MNU销毁4073万:据官方消息,NirvanaMeta公链项目方将已经流通40730000MNU打入黑洞销毁,本次销毁是项目方交易所做市值账户3个月内以107万USDT护盘回收的MNU总量100%打入黑洞,BSC链累计销毁542733544总量剩余457266456,跨链合约账户余额342315837销毁哈希0xef822ce044e99d029c2fda73581a98a90bd8f73ddf05b78f580ce8741351d867[2022/3/19 14:06:29]

为了验证代码的分析过程,我们切换到protocol限制之前的版本v10.14.0进行测试,发现可以轻松复现整个攻击过程。

但是在MM公开的报告中也提到,Clickjacking漏洞是在v10.14.6进行了修复,所以v10.14.5是存在漏洞的,再继续回头看这里的猜想。。

经过反复翻阅代码,在v10.14.5以及之前版本的代码,会在钓鱼页面提示的时候,如果用户点击了continuingatyourownrisk.之后就会将这个hostname加入到本地的白名单列表中。从而在下一次访问到该网站的时候就不会再出现MetaMaskPhishingDetection的提醒。

比如这个钓鱼网站:ethstake.exchange,通过iframe标签将钓鱼网站嵌入到网页中,然后利用Clickjacking漏洞就能将恶意的钓鱼网站加入到白名单中,同时在用户下一次访问钓鱼网站的时候MM不会再继续弹出警告。

分析结论

如上述的分析过程,其实MM近期修复的是两个Clickjacking漏洞,在复现过程中发现最新的v10.14.6已经将web_accessible_resources的相关配置移除了,彻底修复了MetaMaskPhishingDetection页面的点击劫持的问题。

利用Clickjacking漏洞诱导用户进行转账的修复:

https://github.com/MetaMask/metamask-extension/commit/c1ca70d7325577835a23c1fae2b0b9b10df54490

利用Clickjacking漏洞将钓鱼网站加入到白名单的修复:

https://github.com/MetaMask/metamask-extension/commit/7199d9c56775111f85225fe15297e47de8e2bc96

慢雾安全团队对chrome扩展商店中的各个知名的扩展钱包进行了Clickjacking的漏洞检测,发现如下的钱包受到Clickjacking漏洞影响:

CoinbaseWallet(v2.17.2)

Coin98Wallet(v6.0.6)

MaiarDeFiWallet(v1.2.17)

慢雾安全团队第一时间联系项目方团队,但是到目前为止部分项目方还未反馈,并且MM公开这个漏洞至今已经过去了11天。为了避免用户因为该漏洞遭受损失,慢雾安全团队选择公开漏洞的分析。如果受影响的相关项目方看到这篇文章需要协助请联系慢雾安全团队。

慢雾安全团队再次提醒浏览器扩展钱包项目方如果有基于MetaMask

慢雾安全团队建议普通用户在项目方还未修复漏洞之前可以先暂时停止使用这些扩展钱包,等待钱包官方发布修复版本后,用户可以及时更新到已修复的版本进行使用。

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

金星链

BitcoinTHE:资源:在10天内建立区块链知识框架

随着加密资产的应用越来越广泛,现在有越来越多的人想要对区块链技术有一个基本了解。本文总结了一些获得区块链知识的主要来源,如播客、书籍、论文、学习计划、研讨会、在线课程和在线文章等.

[0:31ms0-1:789ms