NFT:慢雾:简析 MetaMask 钱包 demonic 漏洞_Compound Wrapped BTC

使用过MetaMask版本低于10.11.3的用户,如在导入助记词时点击了ShowSecretRecoveryPhrase,那么助记词可能泄露了。2022年6月16日,MetaMask官方公布白帽子发现的一个被称为demonicvulnerability的安全问题,漏洞影响的版本<10.11.3,由于MM的用户体量较大,且基于MM进行开发的钱包也比较多,所以这个漏洞的影响面挺大的,因此MM也慷慨支付了白帽子5万刀的赏金。当团队向我同步了这个漏洞后,我开始着手对这个漏洞进行分析和复现。

漏洞分析

慢雾:Platypus再次遭遇攻击,套利者获取约5万美元收益:7月12日消息,SlowMist发推称,稳定币项目Platypus似乎再次收到攻击。由于在通过CoverageRatio进行代币交换时没有考虑两个池之间的价格差异,导致用户可以通过存入USDC然后提取更多USDT来套利,套利者通过这种方式套利了大约50,000美元USDC。[2023/7/12 10:50:27]

白帽子将这个漏洞命名为demonicvulnerability,具体的漏洞描述比较复杂,为了让大家更好的理解这个问题,我尽可能用简单的表述来说明这个问题。在使用MM浏览器扩展钱包导入助记词时,如果点击"ShowSecretRecoveryPhrase"按钮,浏览器会将输入的完整助记词明文缓存在本地磁盘,这是利用了浏览器本身的机制,即浏览器会将Tabs的页面中的Text文本从内存保存到本地,以便在使用浏览器的时候可以及时保存页面的状态,用于下次打开页面的时候恢复到之前的页面状态。

慢雾:针对macOS系统恶意软件RustBucket窃取系统信息:金色财经报道,SlowMist发布安全警报,针对macOS 运行系统的 Rust 和 Objective-C 编写的恶意软件RustBucket,感染链由一个 macOS 安装程序组成,该安装程序安装了一个带后门但功能正常的 PDF 阅读器。然后伪造的 PDF 阅读器需要打开一个特定的 PDF 文件,该文件作为触发恶意活动的密钥。[2023/5/23 15:20:27]

基于对这个漏洞的理解,我开始进行漏洞复现,由于MM仅对这个漏洞进行简要的描述并不公开漏洞细节,所以在复现的时候遇到了如下的问题:

慢雾:GenomesDAO被黑简析:据慢雾区hacktivist消息,MATIC上@GenomesDAO项目遭受黑客攻击,导致其LPSTAKING合约中资金被非预期的取出。慢雾安全团队进行分析有以下原因:

1.由于GenomesDAO的LPSTAKING合约的initialized函数公开可调用且无权限与不可能重复初始化限制,攻击者利用initialized函数将合约的stakingToken设置为攻击者创建的虚假LP代币。

2.随后攻击者通过stake函数进行虚假LP代币的抵押操作,以获得大量的LPSTAKING抵押凭证。

3.获得凭证后再次通过initialized函数将合约的stakingToken设置为原先真是的LP代币,随后通过withdraw函数销毁LPSTAKING凭证获取合约中真实的LP抵押物。

4.最后将LP发送至DEX中移除流动性获利。

本次事件是因为GenomesDAO的LPSTAKING合约可被任意重复初始化设置关键参数而导致合约中的抵押物被恶意耗尽。[2022/8/7 12:07:06]

缓存被记录到磁盘中的文件路径未知

慢雾:Nomad事件中仍有超过9500万美元被盗资金留在3个地址中:8月2日消息,慢雾监测显示,Nomad攻击事件中仍有超过9500万美元的被盗资金留在3个地址中。其中0xB5C55f76f90Cc528B2609109Ca14d8d84593590E中仍有1084枚ETH、120万枚DAI、103枚WBTC等约800万美元的加密资产,该地址也负责将1万枚WETH转移到另一地址以及将其他USDC转移;第二个地址0x56D8B635A7C88Fd1104D23d632AF40c1C3Aac4e3目前仍有1.28万枚ETH、1.02万枚WETH、80万DAI等约4700万美元的加密资产;第三个地址0xBF293D5138a2a1BA407B43672643434C43827179在收到3866.6万USDC后兑换为了DAI,目前有约3970万美元的加密资产。

目前慢雾经过梳理后,无法将地址3与其他两个地址连接起来,但这些攻击具有相同的模式。[2022/8/2 2:53:04]

缓存何时被记录到磁盘未知

为了解决问题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

来源:金色财经

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

大币网

[0:15ms0-6:591ms