對於認真的加密貨幣投資者而言,硬件加密密錢包能把私鑰遠離有安全漏洞的電腦和手機,交易時更加安全,所以頗受歡迎,然而世事無絕對,一款貌似Trezor錢包的硬件錢包,會把用戶所有投資傳到黑客手上。
遭入侵的徵兆
攻擊者的活動十分低調,不會留下嘲諷或勒索訊息,只是在一個平平無奇的日子中,加密錢包的交易記錄內出現了一筆鉅款傳送到某人手上,然而受害者在當天並無進行任何交易,甚至錢包根本沒有插入電腦之內!
解剖錢包
受害者購買的硬件錢包是頗為常見的Trezor Model T,它的硬件和軟件都完全使用開源編碼,建基於常見的STM32F427微控制器。Trezor Model T的製造商彩取了廣泛的安全措施,理論上面對攻擊者應該有可靠的保護能力,盒與裝置都由全息貼紙密封,微處理器的快閃記憶體在read-out protection模式(RDP 2),開機會檢查韌體的數碼簽署,如發現異常會顯示非原裝韌的訊息,並刪除錢包內所有資料,存取裝置及確定交易需要PIN密碼,用來加密儲存的內容,並且有PIN以外的額外選項,可以使用BIP-39標準的密碼保護主存取金鑰。
當研究人員對錢包進行初步檢查,發現與真實的完全一樣,並沒有被動手腳的跡象,購入的來源也是受歡迎的網站,全息貼紙也完好無缺,當以更新模式啟動時,錢包顯示韌體版本2.4.3,bootloader版本2.0.4。使用的過程也沒有可疑之處,所有功能運作正常,界面也與原裝無異,但是當研究人員卻在GitHub發現製造商從沒有推出bootloader 2.0.4版本,更聲稱因為假裝置所以跳過了該版本,整件事的起因立即無所循形。
裝置出廠時經由超聲波焊接,不過被「加工」後則由優質的膠水和雙面貼取代,一看之下微控制器也由STM32F427變成STM32F429,並且完全聞閉read-out protection的機制。事件完全是一宗典型的供應鏈攻擊,一名倒楣的受害者購入了一部早被入侵的裝置,但盜竊加密貨幣的機制又是另一回事。
木馬韌體
加密錢包含有用戶的private key,任何人知道它都能夠進行交易,花用戶的金錢,然而攻擊者能夠在離線錢包被妥善收藏下仍能作案,這表示他們在產生private key後進行複製,又或者他們一直都知道。由於黑客沒有啟動新的微處理器read-out protection,研究人員能夠破解其韌體並重組它的編碼,發現攻擊者事前已知道private key。
原裝的bootloader和錢包韌體經過三處修改:
- bootlader檢查保護機制和數碼簽署被移除,也關閉了檢查裝韌的紅螢幕問題。
- 在開動階段或重設錢包,原本隨機產也的seed phrase被20組預先產生的seed phrase所取代並記錄在遭入侵的韌體內,令用戶無法使用全新和獨一無二的金鑰。
- 如果用戶選擇設定額外的master-seed保護密碼,由於限制了文字、數字和特別符號以及其他限制,令密碼的組合只有64個可能性,所以要破解這個假錢包,只有1280個密碼變化。
假加密錢包的操作完全正常,只是攻擊者在一開始已擁有完全的控制,根據交易記錄,他們並不心急,等了足足一個月才從錢包盜竊金錢。
防範假裝置的威脅
在沒有專門的知識及經驗,其實難以分辨加密錢包的真偽,較為安全的方法是直接從官方渠道購買錢包,並選擇特別保護微處理器版本的型號,如果裝置支援的話,使用密碼管理工具心是一個不錯的選擇。
資料來源:Kaspersky Blog