KeyFrame內部研究專用

When One Dependency Breaks Everything: Securing the Web3 Toolchain

DeFi Security Summit - DSS·11月23日週日·19 min英文

三句話摘要

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 只會顯示它真正能驗證的內容。

更多「Web3 安全」的內容

IF YOU OWN XRP YOU NEED TO SEE THIS PRICE MANIPULATION! ⚠️
8 min
Web3 安全英文8月14日

IF YOU OWN XRP YOU NEED TO SEE THIS PRICE MANIPULATION! ⚠️

Zach Humphries

  • 機構支撐的積極意義:價格操縱常被視為負面,但Ripple掌握大量XRP供應與escrow,在熊市期間提高價格下限,實際上替零售投資者鎖定了低風險的積累區間,這不是剝削而是市場穩定機制。
  • 歷史模式驗證:2024年7月至11月XRP在50美分附近橫盤整理,低點觸及42美分(wick),高點65美分;隨後11月5日至12月5日單月上漲456%,年底到2025年初累計漲幅534%,這個歷史周期正在1美元價位重演。
  • 比特幣聯動邏輯:講者在4-5月就預測「如果比特幣跌至60k以下,XRP會跌至1美元或更低」,此預測精準應驗,反映出熊市中兩者的明確連動關係。
Minimmit, Multimmit and the New Consensus Frontier with Patrick O'Grady
72 min
Web3 安全英文PODCAST8月5日

Minimmit, Multimmit and the New Consensus Frontier with Patrick O'Grady

Zero Knowledge

  • 反向 Linux 架構:Commonware 刻意暴露棧各層級控制,讓開發者自訂執行環境、共識機制、密碼學實現,而非像 Cosmos SDK 只允許應用層以上定制。2-3 個月能組裝一條定製鏈,代價是額外深度但回報是長期維護成本降低及效能優化彈性。
  • 容錯假設的典範轉移:Alpine Glow(Solana 2025)實現單輪投票定終的關鍵是將容錯預算分離為獨立的 Byzantine 和 Crash 容限。傳統系統把 33% 當一個整體預算;新模型允許 20% 惡意加 20% 崩潰,打破了 PBFT 理論界線,釋放單輪設計空間。
  • Minimet 與 Multimet 的遞進:Minimet 是 5F+1 設定下的乾淨構造,實現更短視圖延遲;Multimet(剛發布)進一步允許並行 mini-commits 且驗證者可推翻領導者審查,使用者交易在全球分布式網路達到 200-300 毫秒端到端定終。
Private Information Retrieval (PIR) with Alex Hoover
64 min
Web3 安全英文PODCAST7月29日

Private Information Retrieval (PIR) with Alex Hoover

Zero Knowledge

  • PIR 保護的是訪問模式,不是資料本身
  • PIR 與加密不同,它關注的是隱藏「客戶端查詢了什麼」,而非「資料是否加密」。在公開資料庫(如區塊鏈)上,客戶端可以在不洩露查詢對象給伺服器的情況下檢索特定條目,解決了輕量級客戶端的隱私和防審查問題。
  • 客戶端預處理方案是突破瓶頸的關鍵