ReversingLabs的網絡安全研究人員發現,於ETHCode(一個開源的 Ethereum 開發工具包,大約有6,000位開發者使用)的更新版本中,有兩行惡意代碼被植入。這些惡意代碼是通過一個GitHub的pull request插入,甚至成功繞過了AI安全審查及人手覆檢,最終推送到開發者系統。
需知要點:
- 一名沒有GitHub紀錄的黑客通過一個包含43次提交、4,000行更新的pull request,成功把惡意代碼植入ETHCode
- 惡意代碼用來下載並執行腳本,有潛在風險竊取加密貨幣資產或危害智能合約
- GitHub的AI審查及開發團隊均未偵測到這次高明的攻擊,令外界關注開源安全作業的不足
調查發現攻擊細節
這個帶有惡意代碼的pull request於6月17日由用戶Airez299提交,他在平台上並無過往貢獻紀錄。ReversingLabs研究人員指出,攻擊者故意將惡意代碼命名仿似現有檔案,並將程式結構混淆來隱藏其作用。
第一行惡意代碼故作與正規檔案無異,第二行則作啟動機制,最終建立一個PowerShell函數,下載及執行來自公共檔案托管服務的批處理腳本。
無論是GitHub的自動化AI審查還是負責維護ETHCode的7finney成員,都曾檢視這次大量的程式碼更新。過程中僅有細微修改建議,無論人手還是自動審查都未發現藏於其中的惡意代碼。
影響潛及數千系統
ETHCode提供一整套工具,方便以太坊開發者建構及部署兼容Ethereum Virtual Machine的智能合約。這個被入侵的更新原本會經標準自動更新機制,分發到用戶系統。
ReversingLabs研究員Petar Kirhmajer向Decrypt表示,目前未發現有證據顯示惡意程式真的被用於竊取代幣或資料。不過,考慮到此工具的用戶基礎,攻擊潛在影響甚大。
Kirhmajer於研究博客中提到:「這個pull request可能已擴散到數千位開發者系統。」ReversingLabs現正持續調查下載腳本的實際功能,基於推論,這些腳本「預計以竊取受害者機器裡的加密資產,或危及用戶開發中的Ethereum合約為目標。」
此次事件是一宗複雜的供應鏈攻擊,充分利用了開源開發流程中的信任弱點。
業界專家警告大範圍漏洞
以太坊開發者及NUMBER GROUP聯合創辦人Zak Cole強調,此類型攻擊反映加密貨幣開發生態系統的整體安全挑戰。許多開發者在未做仔細安全檢查下便安裝開源套件。
Cole向Decrypt形容:「有人要植入惡意東西,實在太容易了。不論是npm套件、瀏覽器擴展,都有風險。」
加密貨幣產業嚴重依賴開源開發,令惡意攻擊面持續擴大。Cole提及近年多宗備受關注的事件,包括2023年12月的Ledger Connect Kit漏洞,以及Solana web3.js庫裡發現的惡意程式碼。
Cole表示:「太多代碼,沒有人真正細察過。大部分人只因一套東西夠流行或沿用多年便覺得安全,但事實並非如此。」
他補充,隨著越來越多開發者採用開源工具,可攻擊面亦不斷擴大。他同時提醒,部分攻擊背後有國家級黑客參與。
「你要知道,有整個倉庫滿是北韓特工,專門從事這類攻擊。」Cole說。
開發者的安全建議
儘管今次攻擊手法高度複雜,安全專家認為真正能成功入侵的案例仍屬罕見。Kirhmajer根據個人研究經驗估計,「成功攻擊的機率非常低」。
ReversingLabs建議,開發者應在下載或實作更新前,驗證程式貢獻者的身份及貢獻紀錄。同時建議檢視package.json等依賴聲明,以評估新舊代碼之間的關係。
Cole也提倡進行更多額外安全措施,例如鎖定依賴來避免自動拉入未經測試的新代碼。他建議用自動化掃描工具檢查可疑行為模式及有問題的維護者檔案。
開發者還應留意突如其來轉交管理權或即時出現的更新套件。Cole強調分隔不同開發環境的重要性。
Cole總結:「不要在同一部機器上簽署錢包或執行錢包,同時又用來開發東西。除了你自己驗證或在沙盒做過,其他都假設不安全。」
結語
今次事件突顯了開源加密貨幣開發面對持續性的安全挑戰──高明黑客可利用信任機制,將惡意軟件大規模分發至數以千計的開發者系統。儘管現時沒有證據顯示惡意代碼已被用於實際攻擊,但這次事件正好提醒,必須提升加密貨幣開發生態的安全措施及驗證流程。

