在 DeFi 中迅速失敗要付出巨大代價,「敏捷開發」適用於 DeFi 嗎?

原文標題:《Pickle Finance 被盜 2000 萬美元的啓示
撰文:rekt
翻譯:灑脫喜

週六,DeFi 協議 Pickle Finance 因其 Jar 策略中存在的漏洞,而被黑客盜走了 2000 萬美元,此後,由 Rekt、Stake Capital 團隊成員、samczsun 等白帽黑客組成的臨時小隊對 Pickle 協議內剩餘易受攻擊的 5000 萬美元用戶資金進行了搶救,作者 Rekt 對這次事件進行了總結。

圖解 Pickle Finance 被盜 2000 萬美元事件:安全審計並非一勞永逸

金融的發酵還在繼續,即使是酸黃瓜也有保質期。

Pickle Finance 因爲一個假「Pickle jar」漏洞而被黑客盜走了 1970 萬 DAI。

Pickle Finance 已成爲了這次黑客大流行病的最新受害者。

然而,這一次,有一些不同...

當 Twitter 上的人們試圖接受另一次金融災難時,Rekt 開始了調查。

我們聯繫了 Stake Capital 團隊,他們查看了代碼並警告我們其他 Pickle jar 可能面臨風險。

隨後,我們迅速聯繫了 Pickle Finance 團隊,並在 Sketch Capital (@bneiluj,@vasa_developer)成員以及有經驗的開發者 @samczsun,@emilianobonassi 之間建立了一個作戰室。

在我們進行調查後,很明顯,我們看到的是與最近幾周的 DeFi 樂高風格黑客事件非常不同的東西。

這不是一次套利

攻擊者對 Solidity 和 EVM 有着很好的瞭解,並且可能已經密切關注了一段時間的 Yearn 代碼,因爲這個漏洞與一個月前在 Yearn 中發現的漏洞類似。

從本質上說,Pickle Jar 就是 Yearn yVaults 的分叉,這些 Jar 是由一個名爲 the Controller 的合約控制的,該合約具有允許用戶在 Jar 之間交換資產的功能。

不幸的是,Pickle 並沒有設置白名單允許哪個 Jar 使用這個交換功能。

黑客製造了一個假的 Pickle Jar,並交換了原 Jar 中的資金。這是有可能的,因爲 swapExactJarForJar 沒有檢查「白名單」jar。

Pickle Finance 團隊知道他們需要幫助,並非常願意與其他人合作,以防任何進一步的損害。

Pickle 曾試圖調用「withdrawAll」函數,但這筆交易失敗了。

這個取款請求需要通過治理 DAO,而這存在 12 個小時的時間鎖(timelock)。

只有一個 Pickle 多重簽名組的成員有能力繞過這個時間鎖,而當時他們正在睡覺。

這意味着管理者無法清空 Pickle Jar,但這並不能保護他們免受另一次黑客攻擊。

隨後,Pickle Finance 和 Curve 發出警告,要求用戶立即從 Pickle 中提取資金,然而,潛在易受攻擊的 Pickle jar 中還有 5000 萬美元,而白帽團隊調查了這一漏洞,並檢查了剩餘資金的安全性。

救援小隊要麼叫醒睡着的管理員,要麼自己抽乾這些 jar 內的資金。

圖解 Pickle Finance 被盜 2000 萬美元事件:安全審計並非一勞永逸

這個小隊必須克服 5 大挑戰:

  1. 讓 Pickle Finance 團隊跨多個時區聚集在一起,通過將交易推到 12 小時時間鎖(通過 6 個多重簽名中的 3 個)提取資金,以拯救這些資金;
  2. 讓成千上萬的投資者提出他們的資金(並阻止他們在資金池 TVL 下降和 APY 膨脹到 1000% 以上時再進行再投資);
  3. 對其他 jar 進行安全檢查,看看是否有可能發生更多攻擊;
  4. 在任何人再次攻擊這些 jar 之前,複製這種攻擊,將資金轉移出來;
  5. 在試圖挽救剩餘的 5000 萬美元資金時,避免被搶先交易;

我們還能繼續依賴僞匿名白帽黑客的幫助多久?

顯然,與保護者相比,攻擊者的動機更爲一致,那白帽黑客爲什麼要協調這樣一次艱苦的反擊?

榮譽歸白帽,資金卻歸黑客,這是不可持續的

要讓這些白帽變黑,還需要多久時間?

分析

通過發佈這些技術信息,我們意識到我們可能會引發新的黑客攻擊。我們與 Pickle Finance 及其他開發人員討論了潛在的後果,並確認我們不知道 Pickle 的任何運營分叉可能會受到模仿攻擊的影響。

選擇性披露會帶來責任的一個方面,所以我們決定自由發佈這些信息。如果有任何協議在運行 Pickle 的代碼分叉,他們應該要意識到正在發生的事件,並採取預防措施來防止黑客模仿者。

下面的圖表是由 @vasa_develop 創建的。

圖解 Pickle Finance 被盜 2000 萬美元事件:安全審計並非一勞永逸

關於更多詳情,請參閱此處官方的 調查報告

看看相對較新的保險協議 Cover Protocol 如何處理這一事件是有趣的,這對他們的第一筆索賠來說是一筆巨大的金額。你可以在 這裏 找到保險索賠的快照投票。

圖解 Pickle Finance 被盜 2000 萬美元事件:安全審計並非一勞永逸

醃漬酸黃瓜是一個緩慢的過程。

幾十年來,「敏捷開發」的倡導者一直在告訴開發人員,要快速行動,迅速失敗,併發布最小的可行產品。

這些想法不適合在敵對環境中建設。

在 DeFi 中迅速失敗是要付出巨大代價的

我們不需要另一種方法,我們需要一個範式轉換,允許快速迭代,同時減少被攻擊的可能性。

我們不要再認爲「擁有審計就擁有了安全的保證」,在大多數情況下,它是應用於移動目標的檢查表式安全措施的快照,這些目標通常在項目進入主網後不久就演變成了其他東西。

MixBytes (10 月 3 日)和 Haechi (10 月 20 日)的審計是在添加 ControllerV4 (10 月 23 日)之前完成的,而 ControllerV4 是這次攻擊的關鍵向量之一。

未來金融界最偉大的團隊,將是那些能夠在快速迭代和安全迭代之間進行權衡的團隊,其能夠定期對其可組合的貨幣機器人進行持續審計和嚴格測試

審計應該是一個定期的、持續的過程,而不是在啓動前打勾。新的 DeFi 協議會不斷變化和適應,而安全審計應反映這一點。

畢竟,醃黃瓜只有在罐子裏才能保持新鮮 ...

來源鏈接:rekt.ghost.io