When One Dependency Breaks Everything: Securing the Web3 Toolchain
三句話摘要
Web3 供應鏈攻擊實例解析:依賴第三方套件如何讓審計完善的系統瞬間崩潰。 供應鏈安全的根本是「理解你所依賴的一切」——不能理解就不要用,能用就精簡、記錄、深挖,因為漏洞不在乎它藏在哪一層。 1. 已審計的套件仍可能含有可被利用的邏輯缺陷。
重點整理
重點- 1
1. 已審計的套件仍可能含有可被利用的邏輯缺陷。
- 2
TimeLock Controller 的排程檢查順序錯誤,導致攻擊者可在同一區塊內安排並執行交易,繞過時間延遲設計,因為「程式碼經過審計」不代表「使用情境也被審計過」。
- 3
2. 套件本身無誤,錯在使用方式。
- 4
OpenZeppelin 的 Access Control 設計用於特權角色管理,但被開發者直接套用在封禁機制上,導致被封禁者具備自行解封的能力,這類問題往往跨越數年才被後續審計人員發現。
- 5
3. 開發工具本身已成攻擊載體。
- 6
Glassworm 以 VS Code 擴充套件為入口,透過不可列印的 Unicode 字元隱藏惡意程式碼躲避靜態掃描,並使用鏈上智能合約作為 C2 伺服器發送指令,同時感染開發者自身正在開發的擴充套件,形成蠕虫式擴散。
- 7
4. 防禦核心是「最小信任面 + 完整文件記錄」。
- 8
不理解的東西不該使用;必須使用時,應精簡至最小功能子集;所有依賴項的版本與用途應以純文字格式(Markdown + GitHub)留存,確保數年後仍可追溯。
實用技巧與重點
乾貨- 漏洞案例數據:
- TimeLock Controller 漏洞:白帽研究員獲得約 $25,000 美元賞金
- Glassworm:竊取約 50 種不同錢包的金鑰系統
- Glassworm 首次公開披露時間:約一個月前(2026 年 5 月前後)
- 工具與套件:
- 受影響套件:`TimeLock Controller`、OpenZeppelin Access Control(ROS 套件)
- 攻擊媒介:VS Code 擴充套件
- 惡意技術:不可列印 Unicode 字元(用於隱藏 payload)
- C2 基礎設施:以太坊鏈上交易(鏈上命令與控制)
- 推薦監測工具:Wireshark(流量異常偵測)
- 建議文件格式:GitHub 上的 Markdown 純文字檔(避免 Slack、Notion 等專有平台)
- 攻擊手法步驟(TimeLock Controller):
- 將排程延遲設為 0
- 將攻擊者地址設為協議管理員
- 在執行前重入插入計劃交易,使底部檢查通過
- 防禦三原則(3D Framework):
- Document:記錄使用版本、原因、限制、使用方式、是否可替換
- Deflate:移除不必要擴充套件與套件,縮小攻擊面;如需 PDF 解析器,刪除所有非 PDF 格式支援
- Delve:添加任何程式碼前先進行內部研究 → 內部審計 → 外部審計(關鍵情境)
結論
結論“供應鏈安全的根本是「理解你所依賴的一切」——不能理解就不要用,能用就精簡、記錄、深挖,因為漏洞不在乎它藏在哪一層。”
完整解析
詳細這場演講由 Stora 公司安全研究員 Ray 主講,核心命題是:即使你的系統本身毫無缺陷,只要你依賴了未完全理解的第三方元件,漏洞就已悄然嵌入。他透過三個遞進式案例,說明供應鏈攻擊在 Web3 環境中的真實形態。
第一個案例是 TimeLock Controller 套件的邏輯缺陷。這個套件的設計目的是讓合約可以排程未來的操作,並給其他參與者留出反應時間。然而,批量執行時「檢查操作是否已排程」的驗證邏輯被放在執行操作之後,而非之前。攻擊者利用此缺口,在同一批次交易中先將排程延遲設為零,再將自身設為管理員,最後在執行前重入插入排程紀錄,使後續的合法性檢查形同虛設。這個漏洞被白帽研究員發現並獲得約 $25,000 美元賞金。Ray 強調,這套件文件齊全、通過審計,問題在於沒有人去質疑「這段程式碼在我的系統脈絡中是否真的安全」。
第二個案例則展示了「程式碼本身無誤,錯在使用方式」的困境。某開發者使用 OpenZeppelin 的 Access Control 套件來實作封禁機制——對違規用戶撤銷其角色。表面上看起來合理,但這個套件的設計初衷是管理特權角色(如管理員、執行者、暫停者),而特權角色通常允許持有者自行操作。結果,被封禁的用戶可以直接撤銷封禁,繞過整個懲罰機制。這類問題的危險性在於它橫跨設計與使用之間的灰色地帶,可能要等到三五年後由外部審計員才會被挖掘出來。
第三個案例是最近才公開的 Glassworm——一個以 VS Code 擴充套件為載體的蠕虫。它採用不可列印的 Unicode 字元來包裝惡意程式碼,使其在任何文字編輯器、瀏覽器、終端機中看起來都像空白字元,徹底逃脫靜態掃描。更關鍵的是,它的指揮控制系統(C2)完全建立在區塊鏈上——攻擊者透過鏈上交易發送「下載新 payload」或「執行竊取操作」的指令,最終竊取約 50 種錢包的金鑰系統。此外,Glassworm 還會偵測受害者是否在 GitHub 上開發自己的擴充套件,若是,便將原始惡意 payload 植入其中,實現二次傳播。
面對這三層威脅,Ray 提出三個核心對策。Document(記錄):針對每個使用的依賴項,寫下它是什麼版本、為何使用、如何使用、有何限制,並以 Markdown 存放於 GitHub,避免使用 Slack 或 Notion 等可能在三年後消失的工具。Deflate(精簡):把每個依賴項當作潛在惡意物件對待,只保留必要功能——例如只需要 PDF 解析器就刪除所有非 PDF 格式的支援,縮小攻擊面。Delve(深挖):在引入任何新套件或擴充套件之前,先進行內部研究與審計,關鍵情境則應委託外部審計;不理解的東西,直接不用。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

