2022 年 6 月 16 日,MetaMask(MM)官方公布白帽子發現的一個被稱為 demonic vulnerability(惡魔漏洞)的安全問題,漏洞影響的版本 < 10.11.3,由于 MM 的用戶體量較大,且基于 MM 進行開發的錢包也比較多,所以這個漏洞的影響面挺大的,因此 MM 也慷慨支付了白帽子 5 萬刀的賞金。當團隊向我同步了這個漏洞后,我開始著手對這個漏洞進行分析和復現。
白帽子將這個漏洞命名為 demonic vulnerability,具體的漏洞描述比較復雜,為了讓大家更好的理解這個問題,我盡可能用簡單的表述來說明這個問題。在使用 MM 瀏覽器擴展錢包導入助記詞時,如果點擊 "Show Secret Recovery Phrase" 按鈕,瀏覽器會將輸入的完整助記詞明文緩存在本地磁盤,這是利用了瀏覽器本身的機制,即瀏覽器會將 Tabs 的頁面中的 Text 文本從內存保存到本地,以便在使用瀏覽器的時候可以及時保存頁面的狀態,用于下次打開頁面的時候恢復到之前的頁面狀態。
慢霧:過去一周Web3生態因安全事件損失約2400萬美元:6月19日消息,據慢霧發推稱,過去一周Web3生態系統因安全事件損失約2400萬美元,包括Atlantis Loans、Ben Armstrong、TrustTheTrident、FPG、Sturdy、Pawnfi、Move VM、Hashflow、DEP/USDT與LEV/USDC、Midas Capital,總計23,795,800美元。[2023/6/19 21:46:18]
基于對這個漏洞的理解,我開始進行漏洞復現,由于 MM 僅對這個漏洞進行簡要的描述并不公開漏洞細節,所以在復現的時候遇到了如下的問題:
慢霧:警惕針對 Blur NFT 市場的批量掛單簽名“零元購”釣魚風險:金色財經報道,近期,慢霧生態安全合作伙伴 Scam Sniffer 演示了一個針對 Blur NFT 市場批量掛單簽名的“零元購”釣魚攻擊測試,通過一個如圖這樣的“Root 簽名”即可以極低成本(特指“零元購”)釣走目標用戶在 Blur 平臺授權的所有 NFT,Blur 平臺的這個“Root 簽名”格式類似“盲簽”,用戶無法識別這種簽名的影響。慢霧安全團隊驗證了該攻擊的可行性及危害性。特此提醒 Blur 平臺的所有用戶警惕,當發現來非 Blur 官方域名(blur.io)的“Root 簽名”,一定要拒絕,避免潛在的資產損失。[2023/3/7 12:46:39]
緩存被記錄到磁盤中的文件路徑未知
慢霧:去中心化期權協議Acutus的ACOWriter合約存在外部調用風險:據慢霧區消息,2022年3月29日,Acutus的ACOWriter合約遭受攻擊,其中_sellACOTokens函數中外部調用用到的_exchange和exchangeData參數均為外部可控,攻擊者可以通過此漏洞進行任意外部調用。目前攻擊者利用該手法已經盜取了部分授權過該合約的用戶的資產約72.6萬美金。慢霧安全團隊提醒使用過該合約的用戶請迅速取消對該合約的授權以規避資產被盜風險。[2022/3/29 14:25:07]
緩存何時被記錄到磁盤未知
慢霧:DOD合約中的BUSD代幣被非預期取出,主要是DOD低價情況下與合約鎖定的BUSD將產生套利空間:據慢霧區情報,2022 年 3 月 10 日, BSC 鏈上的 DOD 項目中鎖定的 BUSD 代幣被非預期的取出。慢霧安全團隊進行分析原因如下:
1. DOD 項目使用了一種特定的鎖倉機制,當 DOD 合約中 BUSD 數量大于 99,999,000 或 DOD 銷毀數量超過 99,999,000,000,000 或 DOD 總供應量低于 1,000,000,000 時將觸發 DOD 合約解鎖,若不滿足以上條件,DOD 合約也將在五年后自動解鎖。DOD 合約解鎖后的情況下,用戶向 DOD 合約中轉入指定數量的 DOD 代幣后將獲取該數量 1/10 的 BUSD 代幣,即轉入的 DOD 代幣數量越多獲得的 BUSD 也越多。
2. 但由于 DOD 代幣價格較低,惡意用戶使用了 2.8 個 BNB 即兌換出 99,990,000 個 DOD。
3. 隨后從各個池子中閃電貸借出大量的 BUSD 轉入 DOD 合約中,以滿足合約中 BUSD 數量大于 99,999,000 的解鎖條件。
4. 之后只需要調用 DOD 合約中的 swap 函數,將持有的 DOD 代幣轉入 DOD 合約中,既可取出 1/10 轉入數量的 BUSD 代幣。
5. 因此 DOD 合約中的 BUSD 代幣被非預期的取出。
本次 DOD 合約中的 BUSD 代幣被非預期取出的主要原因在于項目方并未考慮到 DOD 低價情況下與合約中鎖定的 BUSD 將產生套利空間。慢霧安全團隊建議在進行經濟模型設計時應充分考慮各方面因素帶來的影響。[2022/3/10 13:48:45]
為了解決問題 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 這個漏洞導致助記詞會被緩存到本地磁盤,因此就會有如下的新的利用場景:
明文的助記詞數據緩存在本地磁盤,可以被其他應用讀取,在 PC 電腦中很難保證其他應用程序不去讀取 Sessions 緩存文件。
明文的助記詞數據緩存在本地磁盤,如果磁盤未被加密,可以通過物理接觸恢復助記詞。比如在類似維修電腦等場景下,當他人對電腦進行物理接觸時可以從硬盤中讀取助記詞數據。
作為普通用戶,如果你使用過 MetaMask Version < 10.11.3,且在導入助記詞的時候點擊了 Show Secret Recovery Phrase,那么你的助記詞有可能泄露了,可以參考 MetaMask 的文章對磁盤進行加密并更換錢包遷移數字資產。
作為擴展錢包項目方,如果采用了在 Tabs 頁面中以 Text 的方式輸入助記詞導入錢包,均受到 demonic vulnerability 漏洞的影響,可以參考 MetaMask Version >=10.11.3 的實現,為每個助記詞定義單獨的輸入框,并且輸入框的類型為 Password。
原文標題:《MetaMask 瀏覽器擴展錢包 demonic 漏洞分析》
撰文:Thinking@慢霧安全團隊
來源:ForesightNews
DAO的潛能要得以全部釋放,離不開去中心化身份工具。本文寫于V神的DeSoc論文發表之前,但關注的同樣是web3的匿名性、隱私性和用戶真實身份之間的糾纏關系.
1900/1/1 0:00:00近日,福建省發布了《福建省清理整頓各類交易場所工作小組關于防范NFT違規風險的提示函》(以下簡稱《提示函》),作出“不得未經批準從事NFT交易、不得違規變相參與NFT活動”等四條提示.
1900/1/1 0:00:00區塊鏈系統有六個層次,數據層、網絡層、共識層、激勵層、合約層和應用層,在結構上都密不可分,共同實現了區塊鏈的功能。?數據層和網絡層是區塊鏈的基本架構,也是整個區塊鏈系統的最底層.
1900/1/1 0:00:00上周,紐約最高法院空投了NFT作為“服務通證”,開創了NFT領域的新里程碑事件,可能會在幾十年內對NFT領域產生重大影響.
1900/1/1 0:00:00近期,比特幣、以太坊價格持續下跌,紛紛創下過去一年價格新低。整個加密市場受到波及,DeFi 也難以獨善其身。數據顯示,鏈上鎖倉總量從 5 月初的 1635 億美元下腰斬至目前的 818 億美元.
1900/1/1 0:00:00如今的 Web3 領域,活躍的風投機構林林總總,既有 a16z、紅杉等傳統基金轉型而來,也有 Binance Labs、Coinbase Venture、Alameda?Research 等 W.
1900/1/1 0:00:00