作者:Lisa & Aro

編輯:Liz

在當今網路環境中,惡意軟體、病毒、釣魚攻擊等威脅層出不窮,安裝防毒軟體(如AVG、Bitdefender、Kaspersky、Malwarebytes 等國際知名產品)可以幫助用戶防範惡意程序,提高系統安全性。然而,防毒軟體的功能在於提供基本的安全防護,它只能減少風險,並不能保證絕對的安全。對抗是一個動態過程,安裝防毒軟體只是提升安全性的第一步。同時,防毒軟體本身也可能出現誤報的情況,帶來額外的風險。

近期,有用戶回饋,在使用防毒軟體後,部分瀏覽器擴充功能(特別是加密貨幣錢包擴充功能)被誤報為惡意軟體,導致擴充功能的JavaScript 檔案被隔離或刪除,最終擴充錢包損壞,無法正常使用。

瀏覽器加密錢包突遭損壞,如何避免資產損失風險?

對於Web3 用戶而言,這種情況尤其嚴重,因為加密錢包擴充功能通常會儲存私鑰,如果處理不當,可能會導致錢包資料遺失,甚至無法找回資產。因此,了解如何正確恢復被誤報隔離的擴展資料至關重要。

如何處理?

如果發現防毒軟體誤報導致瀏覽器擴充功能受損,建議依照下列步驟進行恢復:

1. 從隔離區恢復文件,切勿卸載擴展

如果發現某個軟體或擴充無法運行,第一時間檢查防毒軟體的「隔離區」(Quarantine) 或「歷史記錄」(History),尋找被誤報的文件,切勿刪除隔離文件。

  • 如果檔案仍在隔離區,選擇「復原」(Restore),並將該檔案或擴充功能加入信任列表,以防止再次誤報。
  • 如果檔案已刪除,請查看是否有自動備份或使用資料復原工具找回。
  • 切記:不要卸載擴充功能!即使擴充功能已經損壞,本地仍可能存有加密私鑰相關文件,仍然有復原的可能性。

2. 備份並尋找本地擴展數據

擴充的資料通常儲存在本機磁碟,即使擴充無法打開,仍可找到相關資料進行復原(擴充ID 以MetaMask 為例:nkbihfbeogaeaoehlefnkodbefgpgknn):

  • Windows 路徑參考:C:\Users\USER_NAME\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn
  • Mac 路徑參考:

~/Library/Application Support/Google/Chrome/Default/Local Extension Settings/nkbihfbeogaeaoehlefnkodbefgpgknn

要注意的是,如果Chrome 採用了多個帳號配置,路徑中的Default 可能變成Profile 1/Profile 2,需要檢查特定的Profile 目錄,根據實際情況調整路徑。建議第一時間備份目標擴充的完整目錄,以便在發生問題時進行還原。

3. 粗暴恢復方法:覆寫本機擴充目錄

如果誤報導致擴充損壞,最直接的方法是在新電腦或新瀏覽器環境下,將備份的擴充資料直接覆寫到本機路徑對應的擴充目錄,然後重新開啟擴充功能。

4. 進階復原方法:手動解密私鑰數據

如果擴充功能仍然無法開啟或資料缺失,可以嘗試更進階的復原方式,即手動解密私鑰資料來復原。以MetaMask 為例:

  • 在電腦本地搜尋MetaMask 擴充ID,找到如下目錄:C:\Users\[User]\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn
  • 該目錄下可能包含ldb/log 文件,這些文件儲存了加密後的私鑰資料。可以使用MetaMask 官方的Vault 解密工具(https://metamask.github.io/vault-decryptor/) 解密。
  • 解密步驟:開啟MetaMask Vault 解密工具-> 複製ldb/log 檔案中的加密內容-> 使用擴充原本的密碼進行解密-> 取得私鑰後,重新匯入錢包。

瀏覽器加密錢包突遭損壞,如何避免資產損失風險?

如果MetaMask 擴充功能仍能開啟某些頁面(如chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html),可以嘗試執行以下程式碼以取得加密私鑰資料:

chrome.storage.local.get('data', result => { var vault = result.data.KeyringController.vault; console.log(vault);});

然後,將vault 資料複製到MetaMask Vault 解密工具進行解密。

瀏覽器加密錢包突遭損壞,如何避免資產損失風險?

5. 編寫自訂恢復工具

如果上述方法無法恢復錢包數據,用戶可以自行編寫腳本,從本地資料庫檔案中提取擴展存儲的數據,然後進行解密。此處以PhantomKeyRetriever 為模版,編寫不同皮夾恢復工具的底層原理與實作如下:

錢包插件通常將敏感資料儲存在本機系統的資料庫或檔案中。瀏覽器擴充錢包(如Phantom、MetaMask 等)利用瀏覽器提供的儲存API,將加密後的資料保存在瀏覽器的本機儲存區域,通常是LevelDB 或IndexedDB 等資料庫系統中。無論錢包類型如何,一個關鍵原則是資料始終以加密形式存儲,確保即使資料被複製,沒有正確的密碼也無法存取。

大多數加密錢包採用多層加密架構以增強安全性。首先,使用者的主密碼用於加密一個中間金鑰(通常稱為"加密金鑰"或"解密金鑰")。然後,這個中間金鑰用於加密實際的私鑰或助記詞。這種設計使得即使錢包應用的程式碼被竄改,攻擊者也需要知道使用者密碼才能取得私鑰。這種多層設計還允許錢包應用在用戶登入後只解密中間金鑰,而不必每次操作都重新輸入主密碼。

編寫錢包恢復工具的流程通常包括:

  • 定位並提取加密資料(從LevelDB/IndexedDB 讀取資料)。
  • 分析資料結構,辨識加密的私鑰/助記詞。
  • 請使用者輸入錢包密碼,透過KDF(如PBKDF2 或Scrypt)計算解密金鑰。
  • 解密中間金鑰,然後解密私鑰/助記詞。

這個過程需要精確了解錢包的加密方案和資料儲存格式,這通常需要透過逆向工程或分析錢包的開源程式碼來取得。

以PhantomKeyRetriever 工具來說,這是一款專門設計用於從Chrome 瀏覽器資料中提取Phantom 錢包助記詞或私鑰的腳本,慢霧(SlowMist) 目前已將此工具在GitHub 開源(https://github.com/slowmist/PhantomKeyRetriever),其核心原理如下:

  • 讀取Chrome LevelDB 資料庫,複製相關資料到暫存目錄。
  • 遍歷資料庫,尋找Phantom 錢包儲存的加密金鑰和錢包種子資訊。
  • 使用者輸入Phantom 密碼,腳本利用PBKDF2/Scrypt 計算解密金鑰。
  • 解密錢包保險庫數據,提取BIP39 助記詞或Base58 私鑰。

在這個雙層解密過程中,腳本支援PBKDF2 和Scrypt 兩種金鑰衍生函數,並使用NaCl 函式庫的SecretBox 進行安全解密。最終,根據解密後資料的類型,腳本會產生BIP39 標準的助記詞或擷取Base58 編碼的私鑰。

瀏覽器加密錢包突遭損壞,如何避免資產損失風險?

需要注意的是,其他支援擴充錢包的瀏覽器(如Edge、Firefox)也是類似的原理,此處不再贅述。

如何預防?

為了降低誤報風險,用戶可以採取以下措施:

  • 定期備份重要文件和瀏覽器擴展數據,以便在誤報發生時快速恢復。
  • 在防毒軟體中手動新增信任規則,對於重要軟體或擴充功能(如MetaMask),可以手動將其加入信任列表,以防止誤報。
  • 使用官方管道下載軟體,避免安裝非官方或修改版的應用程序,以減少被殺毒軟體標記為潛在風險的可能性。

總結

對抗永遠是動態變化的,安全策略也需要不斷調整。安裝防毒軟體固然重要,但最終,用戶才是自己資產的最後一道防線,遇到誤報時,用戶應冷靜處理,避免直接刪除關鍵文件,並採用適當的恢復手段。只有掌握正確的安全知識,才能真正保障自己的資料安全。