Breaking Bridges - An Incomplete Sampler of Bridges Hacks, Yoav Weiss - DeFi Security Summit 2022
三句話摘要
跨鏈橋接的攻擊方式與漏洞分析:從智能合約驗證缺陷到網絡層假設破裂。 用戶需要甦醒並要求橋接負責其安全,未經最新版本完整審計的橋接不該使用,多簽橋接本質上是中心化信任而非去中心化應用。 驗證與信任假設錯誤 — 橋接常常依賴外部智能合約或用戶提供的參數進行驗證,但沒有充分檢查這些輸入的有效性。例如允許用戶指定代幣地址或合約呼叫目標,攻擊者就可能轉向惡意合約進行盜竊。
重點整理
重點- 1
驗證與信任假設錯誤 — 橋接常常依賴外部智能合約或用戶提供的參數進行驗證,但沒有充分檢查這些輸入的有效性。例如允許用戶指定代幣地址或合約呼叫目標,攻擊者就可能轉向惡意合約進行盜竊。
- 2
初始化與狀態管理缺陷 — Nomad橋接在升級後將零值插入驗證映射,導致任何訊息都能不用證明就被接受。此類漏洞往往不是單一代碼缺陷,而是多個設計決策組合(分離證明與處理、錯誤的初始化參數)的結果。
- 3
網絡層假設破裂 — 橋接必須對底層區塊鏈的運作做出假設(如無雙花、快速終局性)。但Optimism OVM1的自毀操作碼漏洞打破了無雙花假設,Optimistic Rollup的7天欺詐證明窗口則可能被惡意證明利用進行長期重組。
- 4
密鑰管理與中心化風險 — Ronin橋接的攻擊非智能合約漏洞,而是多簽驗證器的管理不當——4個驗證器被釣魚盜竊、1個因開放API洩露私鑰。這提醒中心化橋接本質上不是去中心化應用。
實用技巧與重點
乾貨- 具體攻擊案例與機制:
- Li-Fi — 用戶控制呼叫數據與目標合約,攻擊者可讓其呼叫ERC20合約直接轉移橋接內的資產
- AnySwap/Anyswap — 用戶提供代幣地址,系統預期代幣支持permit()方法。攻擊者部署無permit支持但有fallback函數的代幣合約,使permit永遠成功;結合用戶控制的from地址,可提取任何已授權的代幣
- Nomad — 樂觀橋接用驗證者簽名的Merkle根驗證訊息。升級後呼叫initialize(0),將零值插入驗證映射。零值現在存在於映射中(time為1),任何訊息都能通過驗證。攻擊者在公開Mempool使用偽造訊息,導致MEV機器人自動複製交易,難以識別真正的攻擊者
- Optimism OVM1 — 自毀操作碼不清零餘額,使用create2可重複鑄造L2以太幣。攻擊者可:(1)跨多個橋接提出L1以太幣,(2)利用欺詐證明回滾交易,(3)同時持有L1以太幣+L2以太幣,(4)利用7天回溯知識進行套利
- Arbitrum — 層1→層2訊息直接呼叫相同地址的代碼,但create操作碼可使不同代碼擁有相同地址。攻擊者可先在L2部署假DeFi合約吸資,再在L1部署代理通過橋接進行掏空
- Ronin — 5of9多簽,其中4個驗證器由同一實體管理且被釣魚盜竊,第5個有開放開發者API洩露簽名權限
- 網絡層風險:
- 自毀漏洞可能無限鑄造L2資產,威脅所有橋接的全部資產
- Optimistic Rollup的7天欺詐證明窗口允許長期重組攻擊
結論
結論“用戶需要甦醒並要求橋接負責其安全,未經最新版本完整審計的橋接不該使用,多簽橋接本質上是中心化信任而非去中心化應用。”
完整解析
詳細過去數年間,多起橋接攻擊事件揭示了這些系統如何被破壞。每次都指向同一個根本問題:錯誤的信息被傳遞到另一條鏈。攻擊根源可分為幾類:驗證不足或依賴未充分理解的外部合約、證明訊息可被重放、對網絡運作的錯誤假設,以及傳統的密鑰洩露。
Li-Fi橋接聚合器的案例展示了最直接的風險。該系統讓用戶選擇路由、控制呼叫數據與目標合約。攻擊者利用這一點指定ERC20合約,告訴它從橋接本身轉移資產。類似的信任假設錯誤也出現在AnySwap中——系統預期代幣支持permit()方法進行無簽名轉移,但攻擊者部署了虛假代幣,沒有permit方法卻有回退函數,導致permit總是成功。這允許攻擊者利用任何曾授權該代幣給AnySwap的地址進行提取。
Nomad案例更具啟發性,因為攻擊涉及多個微小缺陷的組合。Nomad是樂觀橋接,驗證者簽名Merkle根來證明跨鏈訊息。其合約原本有正確的檢查——查詢是否存在對應雜湊。升級後,這道檢查被移除,改為僅檢查時間戳是否非零。升級時initialize()被呼叫時傳入零值,零現在在映射中且有時間戳。結果是任何訊息都能無需證明被接受。攻擊者在公開Mempool提交偽造訊息,MEV機器人自動複製交易,數千個地址同時從橋接提取資金。這不是單一缺陷,而是設計分離、升級缺陷和初始化錯誤的完美風暴。
網絡層風險同樣致命。Optimism OVM1因自毀操作碼的漏洞,允許無限鑄造L2以太幣。攻擊者可利用create2重複建立和銷毀合約。一旦成功,他們可透過所有橋接提出L1以太幣,7天後利用欺詐證明回滾交易(同時保留L2以太幣),然後利用套利知識進行大規模交易提取所有資產。這破壞了無雙花的根本假設,威脅整個L2生態。
Arbitrum則展示了不同的橋接風險。其L1→L2訊息機制直接呼叫相同地址,但攻擊者可利用create操作碼讓不同代碼擁有相同地址。他們先在L2部署假DeFi吸資,再在L1部署代理進行掏空。Ronin攻擊則純粹是運營失敗——5of9多簽中4個驗證器被釣魚盜竊,第5個有開放API洩露簽名權。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

