使用过MetaMask版本低于10.11.3的用户,如在导入助记词时点击了ShowSecretRecoveryPhrase,那么助记词可能泄露了。2022年6月16日,MetaMask官方公布白帽子发现的一个被称为demonicvulnerability的安全问题,漏洞影响的版本<10.11.3,由于MM的用户体量较大,且基于MM进行开发的钱包也比较多,所以这个漏洞的影响面挺大的,因此MM也慷慨支付了白帽子5万刀的赏金。当团队向我同步了这个漏洞后,我开始着手对这个漏洞进行分析和复现。
漏洞分析
Gnosis联合创始人:我们的审查制度达到了51%的临界点:金色财经报道,以太坊基础设施公司Gnosis联合创始人Martin K?ppelmann在社交媒体上称,我们达到了审查制度的另一个可悲的里程碑。51%这意味着如果审查的验证者现在停止对非审查区块的证明,他们将最终形成规范的、100%的审查链。亲爱的Flashbots团队,我亲自与你们中的许多人交谈过,如果审查制度变得更糟,你们承诺会采取行动,但如果不是现在,那么什么时候?[2022/10/15 14:28:28]
白帽子将这个漏洞命名为demonicvulnerability,具体的漏洞描述比较复杂,为了让大家更好的理解这个问题,我尽可能用简单的表述来说明这个问题。在使用MM浏览器扩展钱包导入助记词时,如果点击"ShowSecretRecoveryPhrase"按钮,浏览器会将输入的完整助记词明文缓存在本地磁盘,这是利用了浏览器本身的机制,即浏览器会将Tabs的页面中的Text文本从内存保存到本地,以便在使用浏览器的时候可以及时保存页面的状态,用于下次打开页面的时候恢复到之前的页面状态。
金色财经挖矿数据播报 | ETH今日全网算力上涨1.22%:金色财经报道,据蜘蛛矿池数据显示:
BTC全网算力151.356EH/s,挖矿难度20.82T,目前区块高度668554,理论收益0.00000670/T/天。
ETH全网算力356.734TH/s,挖矿难度4649.53T,目前区块高度11767329,理论收益0.00667422/100MH/天。
BSV全网算力0.786EH/s,挖矿难度0.10T,目前区块高度672496,理论收益0.00114431/T/天。
BCH全网算力1.788EH/s,挖矿难度0.22,目前区块高度672797,理论收益0.00050339/T/天。[2021/2/1 18:33:59]
基于对这个漏洞的理解,我开始进行漏洞复现,由于MM仅对这个漏洞进行简要的描述并不公开漏洞细节,所以在复现的时候遇到了如下的问题:
金色晚报 | 6月16日晚间重要动态一览:12:00-21:00关键词:海南金融局、哈萨克斯坦、CSW、资金盘
1.海南金融局与金融壹账通签订合作推动法定数字货币应用探索。
2.哈萨克斯坦计划在未来三年吸引7.38亿美元的加密领域投资。
3.CSW称曾购买存储在1Feex地址的比特币 驳斥入侵Mt.Gox的说法。
4.以太坊天价手续费转账地址系资金盘项目GoodCycle热钱包。
5.BitMEX报告:过去18个月比特大陆矿业统治地位大大降低。
6.数据:10.16万份比特币期权将于6月26日到期。
7.四川和云南掉线4万多台矿机设备。
8.山东济南跨境电子商务综合试验区将布局区块链等数字产业。
9.福布斯董事长:未来稳定币的表现将优于投机性加密货币。[2020/6/16]
缓存被记录到磁盘中的文件路径未知
金色财经行情播报 | BTC强势拉后迅速回调,下降通道并未改变:据火币行情显示,今日14时许,BTC开始拉升,随后放大涨幅,击穿6780USDT、6830USDT等几大关键阻力位,最高探至7150USDT。由于BTC涨幅乖离值过大,18时后开始加速回调,局部价格在6950USDT附近剧烈震荡。从形态来看,此前大周期头肩顶形态已被多头反扑,空头难以再做释放,整体大幅震荡,但日线级别下降通道并未改变。截至18:30,火币平台的主流币的具体表现如下:[2020/4/16]
缓存何时被记录到磁盘未知
为了解决问题1,我开始对浏览器的缓存目录结构进行分析和测试,发现在使用浏览器(chrome)的时候相关的Tabs缓存是记录到了如下的目录:
Tabs缓存路径:
/Users/$(whoami)/Library/ApplicationSupport/Google/Chrome/Default/Sessions/
然后继续解决问题2:Sessions目录会记录Tabs的缓存,为了找出缓存被记录的时间节点,我对导入助记词的整个流程进行了分解,然后在每一步操作之后去观察Sessions的数据变化。发现在如下这个页面输入助记词数据后,需要等待10-20s,然后关闭浏览器,明文的助记词信息就会被记录到Sessions缓存数据中。
分析结论
用户正常在使用MM的时候是将助记词相关的数据放入内存中进行存储,一般认为是相对较为安全的,但是由于demonicvulnerability这个漏洞导致助记词会被缓存到本地磁盘,因此就会有如下的新的利用场景:
明文的助记词数据缓存在本地磁盘,可以被其他应用读取,在PC电脑中很难保证其他应用程序不去读取Sessions缓存文件。
明文的助记词数据缓存在本地磁盘,如果磁盘未被加密,可以通过物理接触恢复助记词。比如在类似维修电脑等场景下,当他人对电脑进行物理接触时可以从硬盘中读取助记词数据。
作为普通用户,如果你使用过MetaMaskVersion<10.11.3,且在导入助记词的时候点击了ShowSecretRecoveryPhrase,那么你的助记词有可能泄露了,可以参考MetaMask的文章对磁盘进行加密并更换钱包迁移数字资产。
作为扩展钱包项目方,如果采用了在Tabs页面中以Text的方式输入助记词导入钱包,均受到demonicvulnerability漏洞的影响,可以参考MetaMaskVersion>=10.11.3的实现,为每个助记词定义单独的输入框,并且输入框的类型为Password。
原文标题:《MetaMask浏览器扩展钱包demonic漏洞分析》
撰文:Thinking@慢雾安全团队
来源:ForesightNews
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。