Ledger Connect Kit攻擊事件複盤

作者:極客Web3,來源:作者推特@eternal1997L

剛才,Ledger Connect Kit的npm庫1.1.5/1.1.6/1.1.7被駭客攻擊,其中植入了攻擊邏輯。

Ledger Connect Kit是用於dApp連接Ledger錢包的一個庫,被很多dApp集成,發佈於Ledger的npm管理網站JSDELIVR上。

Ledger在該網站的帳戶被盜,駭客將該庫替換為了有害版本。

在這次攻擊的檔案中可以看到,駭客直接用Drainer類別取代了正常的視窗邏輯。

Drainer顧名思義就是榨取器,不僅會彈出偽造的DrainerPopup彈跳窗,也會處理各種資產的轉帳邏輯。

DJPvzPSV7O7r5x4iEF9nex2SsyOvImWyQT7mgmQN.jpeg

在Drainer類別的start()方法中,會檢查該錢包的餘額,如果小於駭客設定的minimalDrainValue=0.001

主幣,則不會啟動攻擊。

顯然,在任何常見的EVM系網路上,餘額小於這個數字的錢包都不太可能有任何有價值的資產,駭客也不想浪費時間。

iJ3oUrvvYnNHS7G572bybmxv2hZ2TLAnhUkwF3nV.jpeg

然後開始搜尋sweets“甜點”,也就是你的資產。

j2hzXwIDjgxVkoB0d0qdir0pL05mDO1Aj8VAEhme.jpeg

對不同的資產,駭客喪心病狂地佈置了約30多個case,包括ETH/BSC/ARB等知名主網的主幣和其上的知名項目的代幣、NFT等,只要你有相應的資產,就會直接觸發轉帳動作。

x1dyTrGc7mRy980DAETmFUghqn1ulJR8LYOfl0AZ.jpeg

以其中transferNative()轉走主幣為例,雖然發送這一步驟還是要取得簽名的,但中招的用戶應該不少。

Pnre7e333RkRb9V9BG7V9Ql8wrCw0x929rvh75Py.jpeg

Ledger應對方法很簡單:奪回帳號控制權,更新庫版本1.1.8,發布新庫。

可以看到1.1.8的更新記錄,沒有任何實際內容,只有版本號碼變化,因為github上的程式碼庫並沒有出問題。

Ledger在發布新版本後,一是可以讓開發者使用最新的1.1.8版本而非被駭客取代的版本,二是可以讓使用者檢查是否正在使用有問題的版本。

9psXktndNjl3pVv2QaQFA1CNmqbwexBUzhZ3tSvG.jpeg

修復方法

對使用者而言,應造訪先造訪https://cdn.jsdelivr.net/npm/@ledgerhq/connect-kit@1 看看圖中劃出來這部分文字是否是1.1.8 ,或更高的版本,如果是則表示安全。

如果不是,進入瀏覽器的開發者工具,清除快取後完成修復。

z9UfCvyggLPgGDERrexcenpysxDVICvzxweXt4vA.jpeg

對開發者而言,應該更新專案內的npm依賴。已經上線的項目的且不是在線動態引用庫的項目,並且使用了有問題版本的,應該重新編譯和部署。

Q:我不是Ledger用戶,會不會受影響?

A:根據Ledger官方的介紹,這個函式庫是用來連接Ledger錢包的。但駭客修改了彈跳窗邏輯,其他錢包用戶也可能受影響。

Q:助記詞或私鑰會被偷嗎?

A:不會。不論冷錢包和熱錢包,其keyring私鑰管理模組都只在限定的場景內交出助記詞和私鑰(一般是用戶要求查看助記詞)。不可能暴露給任何其他函數呼叫。

Total
0
Shares
Related Posts