慢霧:簡析 MetaMask 錢包 demonic 漏洞

發表於 2022-06-19 15:41 作者: ForesightNews

使用過 MetaMask 版本低於 10.11.3 的用戶,如在導入助記詞時點擊了 Show Secret Recovery Phrase,那么助記詞可能泄露了。

2022 年 6 月 16 日,MetaMask(MM)官方公布白帽子發現的一個被稱爲 demonic vulnerability(惡魔漏洞)的安全問題,漏洞影響的版本 < 10.11.3,由於 MM 的用戶體量較大,且基於 MM 進行开發的錢包也比較多,所以這個漏洞的影響面挺大的,因此 MM 也慷慨支付了白帽子 5 萬刀的賞金。當團隊向我同步了這個漏洞後,我开始着手對這個漏洞進行分析和復現。

漏洞分析

白帽子將這個漏洞命名爲 demonic vulnerability,具體的漏洞描述比較復雜,爲了讓大家更好的理解這個問題,我盡可能用簡單的表述來說明這個問題。在使用 MM 瀏覽器擴展錢包導入助記詞時,如果點擊 "Show Secret Recovery Phrase" 按鈕,瀏覽器會將輸入的完整助記詞明文緩存在本地磁盤,這是利用了瀏覽器本身的機制,即瀏覽器會將 Tabs 的頁面中的 Text 文本從內存保存到本地,以便在使用瀏覽器的時候可以及時保存頁面的狀態,用於下次打开頁面的時候恢復到之前的頁面狀態。

基於對這個漏洞的理解,我开始進行漏洞復現,由於 MM 僅對這個漏洞進行簡要的描述並不公开漏洞細節,所以在復現的時候遇到了如下的問題:

  1. 緩存被記錄到磁盤中的文件路徑未知

  2. 緩存何時被記錄到磁盤未知

爲了解決問題 1,我开始對瀏覽器的緩存目錄結構進行分析和測試,發現在使用瀏覽器 (chrome) 的時候相關的 Tabs 緩存是記錄到了如下的目錄:

Tabs 緩存路徑:

/Users/$(whoami)/Library/Application Support/Google/Chrome/Default/Sessions/

然後繼續解決問題 2:Sessions 目錄會記錄 Tabs 的緩存,爲了找出緩存被記錄的時間節點,我對導入助記詞的整個流程進行了分解,然後在每一步操作之後去觀察 Sessions 的數據變化。發現在如下這個頁面輸入助記詞數據後,需要等待 10 - 20s,然後關閉瀏覽器,明文的助記詞信息就會被記錄到 Sessions 緩存數據中。

分析結論

用戶正常在使用 MM 的時候是將助記詞相關的數據放入內存中進行存儲,一般認爲是相對較爲安全的(在早前慢霧的 Hacking Time 中,我發現在用戶正常使用 MM 的時候是可以通過 hook 技術將明文的助記詞提取出來,僅限於用戶電腦被惡意程序控制的情況下可以被利用),但是由於 demonic vulnerability 這個漏洞導致助記詞會被緩存到本地磁盤,因此就會有如下的新的利用場景:

  1. 明文的助記詞數據緩存在本地磁盤,可以被其他應用讀取,在 PC 電腦中很難保證其他應用程序不去讀取 Sessions 緩存文件。

  2. 明文的助記詞數據緩存在本地磁盤,如果磁盤未被加密,可以通過物理接觸恢復助記詞。比如在類似維修電腦等場景下,當他人對電腦進行物理接觸時可以從硬盤中讀取助記詞數據。

作爲普通用戶,如果你使用過 MetaMask Version < 10.11.3,且在導入助記詞的時候點擊了 Show Secret Recovery Phrase,那么你的助記詞有可能泄露了,可以參考 MetaMask 的文章對磁盤進行加密並更換錢包遷移數字資產。

作爲擴展錢包項目方,如果採用了在 Tabs 頁面中以 Text 的方式輸入助記詞導入錢包,均受到 demonic vulnerability 漏洞的影響,可以參考 MetaMask Version >=10.11.3 的實現,爲每個助記詞定義單獨的輸入框,並且輸入框的類型爲 Password。

原文標題:《MetaMask 瀏覽器擴展錢包 demonic 漏洞分析》

撰文:Thinking@慢霧安全團隊

來源:ForesightNews

標題:慢霧:簡析 MetaMask 錢包 demonic 漏洞

地址:https://www.coinsdeep.com/article/3751.html

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

你可能還喜歡
熱門資訊