作者:極客Web3,來源:作者推特@eternal1997L
剛才,Ledger Connect Kit的npm庫1.1.5/1.1.6/1.1.7被黑客攻擊,其中植入了攻擊邏輯。
Ledger Connect Kit是用于dApp連接Ledger錢包的一個(gè)庫,被很多dApp集成,發(fā)布于Ledger的npm管理網(wǎng)站JSDELIVR上。
Ledger在該網(wǎng)站的賬戶被盜,黑客將該庫替換為了有害版本。
在本次攻擊的文件中可以看到,黑客直接用Drainer類替換了正常的窗口邏輯。
Drainer顧名思義就是榨取器,不僅會(huì)彈出偽造的DrainerPopup彈窗,也會(huì)處理各種資產(chǎn)的轉(zhuǎn)賬邏輯。
在Drainer類的start()方法中,會(huì)檢查該錢包的余額,如果小于黑客設(shè)置的minimalDrainValue=0.001
主幣,則不會(huì)啟動(dòng)攻擊。
顯然,在任何常見的EVM系網(wǎng)絡(luò)上,余額小于這個(gè)數(shù)的錢包都不太可能有任何有價(jià)值的資產(chǎn),黑客也不想浪費(fèi)時(shí)間。
然后開始搜索sweets“甜點(diǎn)”,也就是你的資產(chǎn)。
對(duì)不同的資產(chǎn),黑客喪心病狂地布置了約30多個(gè)case,包括ETH/BSC/ARB等知名主網(wǎng)的主幣和其上的知名項(xiàng)目的代幣、NFT等,只要你有相應(yīng)的資產(chǎn),就會(huì)直接觸發(fā)轉(zhuǎn)賬動(dòng)作。
以其中transferNative()轉(zhuǎn)走主幣為例,雖然發(fā)送這一步還是要取得簽名的,但中招的用戶應(yīng)該不少。
Ledger應(yīng)對(duì)方法很簡單:奪回賬號(hào)控制權(quán),更新庫版本1.1.8,發(fā)布新庫。
可以看到1.1.8的更新記錄,沒有任何實(shí)際內(nèi)容,只有版本號(hào)變化,因?yàn)間ithub上的代碼庫并沒有出問題。
Ledger在發(fā)布新版本后,一是可以讓開發(fā)者使用最新的1.1.8版本而非被黑客替換的版本,二是可以讓用戶檢查是否正在使用有問題的版本。
修復(fù)方法
對(duì)用戶而言,應(yīng)訪問先訪問https://cdn.jsdelivr.net/npm/@ledgerhq/connect-kit@1? ?看看圖中劃出來這部分文字是否是1.1.8 ,或者更高的版本,如果是則表示安全。
如果不是,進(jìn)入瀏覽器的開發(fā)者工具,清除緩存后完成修復(fù)。
對(duì)開發(fā)者而言,應(yīng)該更新項(xiàng)目內(nèi)的npm依賴。已經(jīng)上線的項(xiàng)目的且不是在線動(dòng)態(tài)引用庫的項(xiàng)目,并且使用了有問題版本的,應(yīng)該重新編譯和部署。
Q:我不是Ledger用戶,會(huì)不會(huì)受影響?
A:根據(jù)Ledger官方的介紹,這個(gè)庫是用來連接Ledger錢包的。但黑客修改了彈窗邏輯,其他錢包用戶也可能受影響。
Q:助記詞或者私鑰會(huì)被盜嗎?
A:不會(huì)。不論冷錢包和熱錢包,其keyring私鑰管理模塊都只在限定的場(chǎng)景內(nèi)交出助記詞和私鑰(一般是用戶要求查看助記詞)。不可能暴露給任何其他函數(shù)調(diào)用。