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/
慢雾:从Multichain流出的资金总额高达2.65亿美元,分布在9条链:金色财经报道,自7月7日以来,从 Multichain 流出的资金总额高达 2.65 亿美元,分布在 Ethereum、BNB Chain、Polygon、Avalanche、Arbitrum、Optimism、Fantom、Cronos、Moonbeam 链。其中 6582 万美元已经被 Circle 和 Tether 冻结,1,296,990.99 ICE(约 162 万美元) 被 Token 发行方 Burn。流出的资金中,包括:
1)从 Multichain: Old BSC Bridge 转出的 USDT;
2)从 Multichain: Fantom Bridge 转出的 USDC、DAI、LINK、UNIDX、USDT、WOO、ICE、CRV、YFI、TUSD、WETH、WBTC;
3)从 Anyswap: Bridge Fantom 转出的 BIFI;
4)从 Multichain: Moonriver Bridge 转出的 USDC、USDT、DAI、WBTC;
5)从 MultiChain: Doge Bridge 转出的 USDC;
6)从 Multichain: Executor 转出的 DAI、USDC、BTCB、WBTC、WETH、Dai.e、WBTC.e、Bridged USDC、BTC、fUSDT、ETH 等;
7)从被 Etherscan 标记为 Fake_Phishing183873 的 0xe1910...49c53 转出的 WBTC、USDT、ETH,同时我们认为该标记(Fake Phishing183873)或许是 Etherscan 上的虚假标记,地址可能以前属于 Multichain 官方账户。[2023/7/11 10:48:30]
慢雾:Harmony Horizon bridge遭攻击简析:据慢雾安全团队消息,Harmony Horizon bridge 遭到黑客攻击。经慢雾 MistTrack 分析,攻击者(0x0d0...D00)获利超 1 亿美元,包括 11 种 ERC20 代币、13,100 ETH、5,000 BNB 以及 640,000 BUSD,在以太坊链攻击者将大部分代币转移到两个新钱包地址,并将代币兑换为 ETH,接着将 ETH 均转回初始地址(0x0d0...D00),目前地址(0x0d0...D00)约 85,837 ETH 暂无转移,同时,攻击者在 BNB 链暂无资金转移操作。慢雾 MistTrack 将持续监控被盗资金的转移。[2022/6/24 1:28:30]
然后继续解决问题2:Sessions目录会记录Tabs的缓存,为了找出缓存被记录的时间节点,我对导入助记词的整个流程进行了分解,然后在每一步操作之后去观察Sessions的数据变化。发现在如下这个页面输入助记词数据后,需要等待10-20s,然后关闭浏览器,明文的助记词信息就会被记录到Sessions缓存数据中。
动态 | 慢雾:巨鲸被盗2.6亿元资产,或因Blockchain.info安全体系存在缺陷:针对加密巨鲸账户(zhoujianfu)被盗价值2.6亿元的BTC和BCH,慢雾安全团队目前得到的推测如下:该大户私钥自己可以控制,他在Reddit上发了BTC签名,已验证是对的,且猜测是使用了一款很知名的去中心化钱包服务,而且这种去中心化钱包居然还需要SIM卡认证,也就是说有用户系统,可以开启基于SIM卡的短信双因素认证,猜测可能是Blockchain.info,因为它吻合这些特征,且历史上慢雾安全团队就收到几起Blockchain.info用户被盗币的威胁情报,Blockchain.info的安全体系做得并不足够好。目前慢雾正在积极跟进更多细节,包括与该大户直接联系以及尽力提供可能需求的帮助。[2020/2/22]
分析结论
用户正常在使用MM的时候是将助记词相关的数据放入内存中进行存储,一般认为是相对较为安全的,但是由于demonicvulnerability这个漏洞导致助记词会被缓存到本地磁盘,因此就会有如下的新的利用场景:明文的助记词数据缓存在本地磁盘,可以被其他应用读取,在PC电脑中很难保证其他应用程序不去读取Sessions缓存文件。明文的助记词数据缓存在本地磁盘,如果磁盘未被加密,可以通过物理接触恢复助记词。比如在类似维修电脑等场景下,当他人对电脑进行物理接触时可以从硬盘中读取助记词数据。作为普通用户,如果你使用过MetaMaskVersion<10.11.3,且在导入助记词的时候点击了ShowSecretRecoveryPhrase,那么你的助记词有可能泄露了,可以参考MetaMask的文章对磁盘进行加密并更换钱包迁移数字资产。作为扩展钱包项目方,如果采用了在Tabs页面中以Text的方式输入助记词导入钱包,均受到demonicvulnerability漏洞的影响,可以参考MetaMaskVersion>=10.11.3的实现,为每个助记词定义单独的输入框,并且输入框的类型为Password。参考链接
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。