什麼可以阻止 Ledger 發送到黑客的地址?
為什麼黑客不能編輯 Ledger Chrome 應用程序以顯示使用者認為他發送到的地址,而實際上發送到不同的地址?
假設場景:Ledger 員工想要一個美好的退休生活,向 Chrome 應用程序發布“軟體更新”以將所有 ETH 發送到他的地址,同時軟體顯示使用者認為他們要發送到的地址;在消息在社交媒體上傳播警告人們停止使用該應用程序之前,立即從許多使用者那裡竊取了一堆 ETH。(或者假設有人在 Ledger 不知情的情況下入侵了他們的軟體儲存庫。)
為什麼黑客不能編輯 Ledger Chrome 應用程序以顯示使用者認為他發送到的地址,而實際上發送到不同的地址?
他可以1,就像他可以破解您的個人電腦並安裝鍵盤記錄器或任何其他惡意軟體一樣。問題不是他能不能,而是他能夠提供適當的保護的可能性有多大。
(1我不關心他如何做到這一點。我正在遵循“沒有什麼是防彈”的推理路線。也許他沒有破解“真正的”應用程序,而是誘騙您安裝損壞的版本,等等等等)
假設場景:Ledger 員工想要一個美好的退休生活,向 Chrome 應用程序發布“軟體更新”以將所有 ETH 發送到他的地址,同時軟體顯示使用者認為他們要發送到的地址;在消息在社交媒體上傳播警告人們停止使用該應用程序之前,立即從許多使用者那裡竊取了一堆 ETH。(或者假設有人在 Ledger 不知情的情況下入侵了他們的軟體儲存庫。)
是的,再次,完全有可能。但你應該更關心如何可能。他們是否可能有適當的流程來阻止這種情況的發生?大概。您是否足夠信任他們的聲譽以確保遵循這些流程?那是你來決定的。
安全是一系列的權衡和妥協。如果您想使用他們的硬體和軟體,那麼您必須在信任上妥協,就像您信任作業系統防火牆或防病毒軟體來保護您一樣。
最近(2018 年 1 月)在 Ledger 設備中發現了這種攻擊。這是關於它的報告https://www.docdroid.net/Jug5LX3/ledger-receive-address-attack.pdf
攻擊
賬本錢包使用在主機上執行的 JavaScript 程式碼生成顯示的接收地址。
這意味著惡意軟體可以簡單地用自己的地址替換負責生成接收地址的程式碼,從而將所有未來的存款發送給攻擊者。
由於作為錢包日常活動的一部分,接收地址不斷變化,因此使用者沒有簡單的方法(例如辨識他的地址)來驗證接收地址的完整性。
據他所知,顯示的收貨地址是他的實際收貨地址。
是什麼讓事情變得更糟
- 所有賬本錢包軟體都位於 AppData 文件夾中,這意味著即使是非特權惡意軟體也可以修改它們(無需獲得管理權限)。
- 賬本錢包沒有對其源文件實施任何完整性檢查/防篡改,這意味著任何人都可以修改它們。
- 惡意軟體需要做的就是替換賬本軟體中的一行程式碼,這可以用不到 10 行 python 程式碼來實現。
- 一旦初始化,新的分類賬使用者通常會將他們所有的資金發送到錢包。如果機器被預先感染,這第一筆交易可能會受到損害,導致使用者損失所有資金。
- 攻擊在生成期間更改接收地址,甚至導致自動生成的 QR 更新為攻擊者的地址。這意味著地址的字元串和 QR 表示形式都受到了損害。
給現有分類帳客戶的建議
如果您使用的是比特幣應用程序——在每次接收交易之前,使用監控按鈕驗證地址的完整性。
如果您使用的是 Ethereum 應用程序 – 將分類帳硬體錢包與任何其他基於軟體的錢包一樣對待,並且僅在保證無惡意軟體的 Live CD 作業系統上使用它。至少在這個問題得到某種修復之前。