Electrum 錢包修復安全漏洞,駭客已盜走比特幣
Electrum 已發布 4.8.3 版本,修復一個高危比特幣錢包漏洞。開發者確認,惡意伺服器已利用此漏洞重定向用戶付款,並至少發生了一起資金被盜事件。
- Electrum 在確認惡意伺服器正在利用高危漏洞後,發布了 4.8.3 版本。
- 攻擊者會用欺詐交易取代待處理的比特幣付款,用戶在提高手續費時可能誤以為交易正常並授權。
- 有兩名用戶報告了相關事件,其中一人因提高交易手續費而損失了比特幣。
- 該漏洞影響所有 4.8.3 之前的 Electrum 版本;開發者尚未披露總損失金額。
- 安全補丁會驗證由錢包控制的幣所發起、但尚未確認的交易簽名。
根據該錢包於 10 月 24 日發布的安全公告,攻擊者利用 Electrum 處理未確認比特幣交易的方式,將合法的外發付款替換為欺詐交易;用戶在增加交易手續費時,可能會不小心授權這些交易。
Electrum 是一款輕量級比特幣錢包,連接外部伺服器以獲取交易歷史、廣播交易以及其他網路資訊。與完整的比特幣節點不同,這款軟體不會獨立處理區塊鏈活動的每一個環節。
其文件解釋稱,Electrum 通過簡單支付驗證(Simple Payment Verification)驗證已確認交易,但在顯示待處理交易時,歷史上一直信任其主伺服器。
攻擊者利用這一差異,透過惡意伺服器攔截提交的交易,使其在到達比特幣網路之前就被篡改。
在阻止合法交易廣播後,攻擊者可以向錢包發送一筆替代交易,將收款地址改為由攻擊者控制的地址。
儘管替代交易帶有無效簽名,但存在漏洞的 Electrum 版本在將其顯示到錢包歷史記錄之前並不會檢查這些簽名。
當用戶嘗試透過 Replace-by-Fee(RBF)提高交易手續費時,這種欺騙就會變得危險。RBF 是比特幣的一項功能,允許一筆未確認付款被另一筆手續費更高的交易替換。
一旦用戶批准手續費調整,就可能在不知情的情況下簽署一筆向攻擊者付款的有效交易。
Electrum 確認真實世界攻擊並造成比特幣損失
開發者披露了兩起私下報告的事件,說明這一漏洞已不再只是理論上的攻擊。
10 月 11 日,一名名為 dannydeezy 的用戶報告稱,Electrum 歷史記錄中顯示的一筆交易與最初提交的付款並不一致。
10 月 18 日,另一名用戶 Raju-K12 在嘗試提高交易手續費時損失資金,並聯繫了開發者。
根據公告,這兩起事件均涉及由攻擊者控制的收款地址,且這些地址被設計為與目標收款方比特幣地址的最後四個字符相匹配。
在第二起案例中,詐騙交易的手續費為零,開發者懷疑這是為了誘使受害者發起提高手續費的操作。
第一起報告涉及一個 2-of-3 多重簽名錢包,使用了兩台 Trezor 設備。其合法交易包含 31 個輸入和 1 個輸出。
調查人員發現,全部 62 個簽名對於原始付款都有效,但對於被替換的交易則無效。偽造交易幾乎將所有比特幣轉至一個相似地址,僅將一小部分返還給錢包。
原始交易仍然有效,但從未進入公開的比特幣網絡。
Electrum 承認,現實中確實有一些伺服器正在實施這種攻擊。不過,開發者沒有披露參與攻擊的伺服器數量、被盜金額,或是否已識別出更多受害者。
Electrum 4.8.3 blocks maliciously inflated transaction fees
該修復已於 10 月 23 日納入 4.8.3 版本,並於 10 月 24 日提供可下載的二進制文件。
通過提交 90fe308,開發者為由用戶錢包控制輸入的未確認交易引入了簽名驗證。
Electrum 現在會在將這些交易納入本地歷史記錄之前檢查簽名,從而阻止公告中描述的欺詐性外發付款被當作合法交易顯示。
這次更新並不會讓 Electrum 變成完整的比特幣節點。開發者說明,傳入的未確認交易仍不在新的簽名檢查範圍內,而已確認付款仍沿用現有的驗證流程。
使用 4.8.3 之前版本的用戶被敦促從 Electrum 官方網站下載更新。
對於暫時無法升級的用戶,開發者建議在簽署交易前核對完整收款地址和金額,包括手續費替換交易。
根據公告,僅連接受信任伺服器(包括自己的伺服器)的用戶,不會受到這種特定的惡意伺服器攻擊影響。
Electrum 過去的攻擊顯示伺服器風險反覆出現
此事件延續了此前針對 Electrum 依賴外部伺服器的攻擊嘗試。
在 2018 年 12 月,crypto.news 報道稱,惡意伺服器曾向用戶顯示偽造的軟體更新說明。當時的報導估計損失接近 100 萬美元。
另一輪發生於 2019 年的惡意伺服器攻擊,則利用虛假的錢包更新和拒絕服務活動,將用戶引向被入侵的軟體。
這些攻擊依賴欺騙性下載,而這次新修復的漏洞則是在一個原本合法的錢包內部,操縱待處理交易資訊。
2020 年發表的一篇關於 Electrum 伺服器的採訪文章,討論了輕量級錢包的取捨,包括其對外部基礎設施在交易歷史方面的依賴。
Electrum 自己的文檔稱,其客戶端通常會連接大約 10 台伺服器,但會選擇一台主伺服器來獲取錢包歷史並廣播交易。文檔還表示,這台主伺服器在未確認交易方面是被信任的。

