2024年9月那場攻擊,一共損失大概200萬美元。金額放在整個DeFi安全史裏不算大,但我覺得重要的不是金額,是漏洞的性質。
攻擊者利用的是一個合約升級函數的權限缺陷。簡單說,@Bedrock Bedrock的某個合約在升級的時候沒有做充分的時間鎖和多籤驗證,攻擊者找到了一個窗口,通過操縱升級流程把合約指向了一個惡意實現。
具體技術細節因爲安全報告沒有完全公開,我沒辦法在這裏逐行復現,但從已知的信息推斷,問題出在治理合約和邏輯合約之間的權限校驗鏈路不夠嚴密。
這讓我想起了一個更普遍的問題:很多DeFi協議在設計的時候,會對"正常操作"的安全做足功課,但對"異常操作"的防護想得不夠。
比如說日常存幣取幣的流程可能有七八道防護,但合約升級這種低頻卻致命的操作,反而只掌握在一兩個管理員手裏。Bedrock那次出事就是典型的"低頻高危操作安全投入不足"。
但有兩點讓我覺得還能繼續觀察這個項目:第一,團隊在出事後沒有藏着掖着,公開承認並賠付了受損用戶;第二,之後的安全升級確實有針對性的改進,包括給合約升級加了時間鎖和更嚴格的多籤門檻。
#bedrock $BR
攻擊者利用的是一個合約升級函數的權限缺陷。簡單說,@Bedrock Bedrock的某個合約在升級的時候沒有做充分的時間鎖和多籤驗證,攻擊者找到了一個窗口,通過操縱升級流程把合約指向了一個惡意實現。
具體技術細節因爲安全報告沒有完全公開,我沒辦法在這裏逐行復現,但從已知的信息推斷,問題出在治理合約和邏輯合約之間的權限校驗鏈路不夠嚴密。
這讓我想起了一個更普遍的問題:很多DeFi協議在設計的時候,會對"正常操作"的安全做足功課,但對"異常操作"的防護想得不夠。
比如說日常存幣取幣的流程可能有七八道防護,但合約升級這種低頻卻致命的操作,反而只掌握在一兩個管理員手裏。Bedrock那次出事就是典型的"低頻高危操作安全投入不足"。
但有兩點讓我覺得還能繼續觀察這個項目:第一,團隊在出事後沒有藏着掖着,公開承認並賠付了受損用戶;第二,之後的安全升級確實有針對性的改進,包括給合約升級加了時間鎖和更嚴格的多籤門檻。
#bedrock $BR