"Trust but verify"(信任,但要核查),不要做“事后諸葛亮”。最厲害的 bug 都是燈下黑。
由于合約的不可變性, 項目會隱性依賴多年前編寫的代碼, 我們在修復 bug 時,就更需要注意它的潛在影響。
這次的事情是這樣發生的。
在本文中,我會用“我們”來指代所有為這次事件努力的人。我覺得,雖然我最初對發現漏洞作出了一些貢獻,但在整個過程中,有無數人提供了更多的幫助。
13:10 UTC pETH/ETH 1100 萬美元 流失。
13:19 UTC Michal 在 ETHSecurity 上發布有關 pETH 價格突然暴跌的消息。
Igor 首先注意到不對勁。多虧了他,我們開始深入調查。
Vyper編譯器發布漏洞事件分析報告,漏洞已于v0.3.1修復并測試:8月6日消息,以太坊編程語言Vyper發布有關上周漏洞事件的事后分析報告:7月30日由于Vyper編譯器中的潛在漏洞,多個Curve流動性池被利用,該漏洞本身是一個未正確實施的重入防護,受影響的Vype版本為v0.2.15、v0.2.16、v0.3.0。
Vyper稱該漏洞已于v0.3.1修復并測試,v0.3.1及更高版本是安全的。然而,當時并沒有意識到對實時合約的影響,也沒有通知下游協議。未來將加強使用Vyper協議更嚴格的雙向反饋并推出相關錯誤賞金計劃和競賽。[2023/8/6 21:28:18]
但是機器人是如何在remove_liquidity()調用中重入add_liquidity()的呢?
14:01 UTC 就這個問題組建了一個應急小組。
14:07 UTC 我們用我們最喜歡的反編譯器反編譯了 JPEGd 合約,并注意到重入保護存儲槽有點不同。
DeFi研究員:Curve Finance漏洞“動搖了人們對DeFi的信心”,任何使用Vyper編寫的協議都可能面臨風險:金色財經報道,一位名為Ignas Defi Research 的DeFi研究員表示,Curve Finance漏洞“動搖了人們對DeFi的信心”。Ignas表示,如果一個運行了三年沒有問題的協議被利用,這會讓人們質疑 Aave、Compound 甚至Uniswap等其他藍籌協議的安全性,加密用戶已經擔心 Uniswap v4 具有單一的智能合約設計,如果遭到黑客攻擊,風險會更大,因為所有資金都會立即受到攻擊。
Ignas 表示,黑客利用的是 Vyper 編譯器,而不是 Curve 的智能合約本身,這一點令人擔憂,因為現在用 Vyper 編譯的任何協議都可能面臨風險。[2023/7/31 16:09:32]
// Dispatch table entry for add_liquidity(uint256,uint256)label_0057: if (storage[0x00]) { revert(memory[0x00:0x00]); } storage[0x00] = 0x01;// Dispatch table entry for remove_liquidity(uint256,uint256)label_1AF3: if (storage[0x02]) { revert(memory[0x00:0x00]); } storage[0x02] = 0x01;14:27 UTC 我們通過一個簡單的本地測試合約確認了這個問題。
CZ:幣安團隊已檢查Vyper可重入漏洞,用戶不受影響:7月31日消息,CZ發推稱,CEX喂價拯救了DeFi。幣安用戶不受影響。幣安團隊已檢查Vyper可重入漏洞。幣安只使用0.3.7或以上版本。保持最新的代碼庫、應用程序和操作系統非常重要。
據此前報道,因Vyper部分版本(0.2.15、0.2.16和0.3.0)存在功能失效的遞歸鎖漏洞,Curve上alETH/ETH、msETH/ETH、pETH/ETH和CRV/ETH池遭遇攻擊。[2023/7/31 16:09:06]
@external@nonreentrant("lock")def test(addr: address) -> bool: return True@external@nonreentrant("lock")def test2(addr: address) -> bool: return False這不僅僅是另一個重入 bug。
StaFi:Curve上rETH池不依賴于Vyper版本且未受影響,用戶資金安全:7月31日消息,DeFi協議StaFi發推稱,Curve上rETH池不依賴于Vyper版本且未受影響。rETH/ETH和rETH/frxETH池不受Curve事件影響。資金池不依賴于Vyper版本,用戶資金是安全的。[2023/7/31 16:09:04]
此時,我們意識到這將產生多大的影響。封鎖消息,我們刪除了有關該漏洞的公開消息。
14:37 UTC Wavey 幫助確認了存在漏洞的提交和受影響的版本。我和 Charles 通過手動檢查 Vyper 編譯器輸出也證實了這一點。
這是一場與黑客的競賽。
值得慶幸的是,人們還將其與只讀重入混淆。摘自 “Web3 安全警報” 頻道-Alchemix 和 Metronome DAO 也因只讀重入 bug 遭到黑客攻擊
以太坊2.0進展:存款合約已經從Vyper重寫為Solidity語言并重新驗證:以太坊2.0Phase 0開發進度中,開發者考慮到Vyper編譯器的安全性問題,存款合約已經從Vyper重寫為Solidity語言,并且經過重新驗證。同時,新合約保留了之前的接口,因此對于客戶端們來說沒有產生影響,除此之外,由于Solidity的優化程度更高,新合約還能節省Gas費用。[2020/6/28]
Michael 發現運行 0.2.15 版本的 alETH 和 msETH 池也存在潛在漏洞。
14:50 UTC msETH/ETH 被耗盡。
15:34 UTC alETH/ETH 被耗盡。
15:43 UTC 我們發現用 Vyper 版本 0.3.0 編譯的CRV/ETH 存在漏洞。我們必須盡可能長時間保密受影響的合約,這一點至關重要。
16:11 UTC 我們開始研究白帽漏洞。
不幸的是,太多的組織在同時進行獨立研究,謠言四起。16:44 UTC,我們決定針對受影響的版本發布公開聲明。
到 18:32 UTC,我們有了一個可用于潛在白帽拯救的概念證明漏洞。Chainlight 的 bpak 也同時在研究一個漏洞,并于 19:06 UTC 分享。
五分鐘后,19:11 UTC,有人盜走了資金。
攻擊結構與我們的概念證明有很大不同,不太可能是我們團隊泄密。無論如何,這非常令人沮喪。
盡管如此,還有很多事情要做。
21:26 UTC Addison 提出了一個雄心勃勃的計劃,拯救 CRVETH 池中的剩余資產。
21:52 UTC bpak 做了一個可行的概念證明,可以拯救 3100 ETH。
十分鐘后,22:02 UTC,我們再次被擊敗。出乎意料的是,CRV 管理費用機器人已被取走資金,并且池子已耗盡。
責備(Balme) 是一個很強烈的詞。指責是沒有用的。我認為思考一下哪些方面可以做得更好才是有用的。
白帽的努力都在不到半小時的時間內被擊敗。有時候,每一秒都非常重要。
也許可以有更好的準備和資源來執行這些攻擊。同時,這似乎是一把雙刃劍。把如何執行黑客攻擊的信息匯總起來真的是個好主意嗎?我們應該信任誰?
另一方面,我認為整個過程非常有效。我們在 2 小時 4 分鐘內從最初的懷疑到確認出誰易受攻擊。
我既是審計員又是白帽黑客。
審計行業有著特有的發布文化。我們因技術思想領先和對漏洞的深刻理解而獲得報酬。證明他們的領先與深刻的一種方法是發布有關黑客行為的“獨家新聞”。研究人員花費巨大,而投資的回報就是宣傳。
另一方面,有一個令人信服的論點認為:受影響版本的早期披露會對白帽拯救產生重大影響。
如果再多半小時,就可以拯救 1800 萬美元。
審計師不會為他們的報告所造成的影響付出代價。相反,他們會得到點贊、轉發和報道。這似乎是一個問題。
我不同意“我們需要形式化驗證來解決這個問題”之類的觀點。這個錯誤可以通過單元測試來捕獲。形式化驗證對于許多錯誤類型都非常有用,但我不相信它對于相對簡單的、未優化編譯器也同樣有用。
需要注意的是,這個錯誤在 2021 年 11 月已修復。
我認為這個 Vyper 漏洞不是 Vyper 團隊的技術或語言本身的問題,更多是流程問題。這個錯誤在很久以前的版本已被修復,但在修復的時候并沒有意識到它的潛在影響。
不幸的是,公共物品很容易被忽略。由于合約不可變性,項目會隱性依賴多年前編寫的代碼。協議開發人員和安全專家應該了解整個執行堆棧的最新安全開發情況。
登鏈社區
個人專欄
閱讀更多
Foresight News
金色財經 Jason.
白話區塊鏈
金色早8點
LD Capital
-R3PO
MarsBit
深潮TechFlow
作者:Electric Capital;編譯:Felix, PANews截至2023年6月1日,每月有2.13萬名活躍的開源開發者。自2022年6月1日以來,開發者的數量同比下降了22%.
1900/1/1 0:00:00執行摘要: 截至 2023 年 6 月 1 日,每月活躍開源開發者有 2.13 萬名。開發者同比減少了-22%(自2022年6月1日起).
1900/1/1 0:00:00作者: Alex Xu , Mint Ventures 研究合伙人本期 Clips 來自于筆者與其他投資者在一個加密社群關.
1900/1/1 0:00:008月3日,以太坊銘文協議Ethscriptions上的龍頭“概念幣”eths地板價來到歷史高點的640美元附近。暴漲現象讓一眾投資者拍段大腿的同時,也受到了BRC-20創始人domo的認可.
1900/1/1 0:00:00在NFT市場,星巴克不僅不懼熊市,還玩得風生水起。8月2日,這個咖啡品牌發布了第12個NFT系列“綠圍裙”,靈感取自星巴克最經典的咖啡師服飾.
1900/1/1 0:00:00作者:LeftOfCenter,BlockBeats開發一款優質體驗的 Web3 產品并不難,難的是打造一個可持續的 Web3 商業模式.
1900/1/1 0:00:00