2022年6月16日,MetaMask官方公布白帽子发现的一个被称为demonicvulnerability的安全问题,漏洞影响的版本<10.11.3,由于MM的用户体量较大,且基于MM进行开发的钱包也比较多,所以这个漏洞的影响面挺大的,因此MM也慷慨支付了白帽子5万刀的赏金。当团队向我同步了这个漏洞后,我开始着手对这个漏洞进行分析和复现。漏洞分析
白帽子将这个漏洞命名为demonicvulnerability,具体的漏洞描述比较复杂,为了让大家更好的理解这个问题,我尽可能用简单的表述来说明这个问题。在使用MM浏览器扩展钱包导入助记词时,如果点击"ShowSecretRecoveryPhrase"按钮,浏览器会将输入的完整助记词明文缓存在本地磁盘,这是利用了浏览器本身的机制,即浏览器会将Tabs的页面中的Text文本从内存保存到本地,以便在使用浏览器的时候可以及时保存页面的状态,用于下次打开页面的时候恢复到之前的页面状态。基于对这个漏洞的理解,我开始进行漏洞复现,由于MM仅对这个漏洞进行简要的描述并不公开漏洞细节,所以在复现的时候遇到了如下的问题:缓存被记录到磁盘中的文件路径未知缓存何时被记录到磁盘未知为了解决问题1,我开始对浏览器的缓存目录结构进行分析和测试,发现在使用浏览器(chrome)的时候相关的Tabs缓存是记录到了如下的目录:Tabs缓存路径:/Users/$(whoami)/Library/ApplicationSupport/Google/Chrome/Default/Sessions/
FilDA与HOGT达成深度战略合作:据官方消息,FilDA与HOGT达成深度战略合作,双方将在DeFi生态、社区合作、资源共享等多领域展开合作。
据了解,去中心化借贷平台FilDA将为HOGT导入线上30000+用户,支持HOGT生态建设。HOGT也将深度支持FilDA的去中心化借贷业务。
据悉,HOGT上线前30分钟,TVL已突破1亿USDT。[2021/5/16 22:08:14]
ChainUP与小蜜蜂交易平台达成深度合作:据官方消息,近日ChainUP与小蜜蜂交易平台达成技术与安全方面的深度合作,ChainUP将提供技术咨询、7*24小时运维、风控监测等服务,为小蜜蜂平台提供技术与安全双重保障,并于今日正式上线。
小蜜蜂总部位于新加坡,是完善生态闭环的数字资产交易综合服务平台,坚守“用户利益第一”原则。小蜜蜂平台旨在推动区块链技术真正全面地落地应用,向专业机构投资者和高净值客户提供交易、清算、ETF、杠杆、OTC、资产管理等一站式综合数字货币金融服务。
ChainUP区块链技术服务商,目前已为全球500多家客户提供了区块链技术服务,覆盖美国、英国、加拿大、澳大利亚、日本、新加坡、马来西亚、泰国等30多个国家和地区。[2020/9/26]
然后继续解决问题2:Sessions目录会记录Tabs的缓存,为了找出缓存被记录的时间节点,我对导入助记词的整个流程进行了分解,然后在每一步操作之后去观察Sessions的数据变化。发现在如下这个页面输入助记词数据后,需要等待10-20s,然后关闭浏览器,明文的助记词信息就会被记录到Sessions缓存数据中。
中币(ZB)与Deipool达成深度战略合作:据官方消息,近日,知名交易所中币(ZB)与Deipool达成深度战略合作,共建去中心化金融生态。中币网旗下生态,包括中币网平台积分ZB, 创新型交易所ZBG平台权益证明ZT, 以及支持的QC(QCash,快钱)稳定币,通过Deipool预言机接入Deipool的抵押借贷生态体系。届时,广大用户可以通过抵押ZB、ZT、BTC、ETH等流动性较强的数字货币,获得QC和USDT等稳定币贷款,增加ZB、ZT、QC的流动性应用。[2020/8/26]
分析结论
用户正常在使用MM的时候是将助记词相关的数据放入内存中进行存储,一般认为是相对较为安全的,但是由于demonicvulnerability这个漏洞导致助记词会被缓存到本地磁盘,因此就会有如下的新的利用场景:明文的助记词数据缓存在本地磁盘,可以被其他应用读取,在PC电脑中很难保证其他应用程序不去读取Sessions缓存文件。明文的助记词数据缓存在本地磁盘,如果磁盘未被加密,可以通过物理接触恢复助记词。比如在类似维修电脑等场景下,当他人对电脑进行物理接触时可以从硬盘中读取助记词数据。作为普通用户,如果你使用过MetaMaskVersion<10.11.3,且在导入助记词的时候点击了ShowSecretRecoveryPhrase,那么你的助记词有可能泄露了,可以参考MetaMask的文章对磁盘进行加密并更换钱包迁移数字资产。作为扩展钱包项目方,如果采用了在Tabs页面中以Text的方式输入助记词导入钱包,均受到demonicvulnerability漏洞的影响,可以参考MetaMaskVersion>=10.11.3的实现,为每个助记词定义单独的输入框,并且输入框的类型为Password。参考链接
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。