Shima Capital CTO:反思 Curve 事件,為何我們需要 Runtime Proctection?

ShimaCapital
2023-08-23 01:02:45
收藏
如何保護我們的軟體免遭失敗呢?

作者:Carl Hua, Shima Capital 合夥人、CTO

在最近的 Curve 可重入漏洞利用之後,我回顧了我在 JPL NASA 的經歷,在那裡我學到了開發具備 reliable(可靠)和 resilient(彈性/韌性)軟體的關鍵原則。對於加密行業,這些見解現在比以往任何時候都更加重要,理由如下:

歸根結底,人們只真正關注兩種類型的軟體:可以殺死你的軟體和可以讓你賠錢的軟體。

任何航天機器的關鍵軟體裡,大部分預算 ( 80% +) 並未分配給開發本身,而是分配給整合和測試。如果軟體出現故障,飛行器就會從天而降------戰鬥機、無人機、航天器等。

航天軟體中的大多數程式碼(如果被歸類為關鍵模組)都遵守極其嚴格的測試/開發標準,例如 DO-178 B A 級。不僅需要測試每一行程式碼,而且如果有嵌套邏輯,則每個邏輯條件也是經過專門測試。

在 JPL NASA,編寫先進的航天軟體的理念不是寫出最漂亮、乾淨的程式碼,而是編寫出容易執行單元測試的程式碼。為什麼?很簡單:當你將一艘航天器送入太空時,你只有一次機會,沒有人願意在失敗的概率較大的情況下冒險。這與區塊鏈的邏輯相同,因為不可變的程式碼是它們的重要特性,我們也只有一次機會在每筆交易中正確使用我們的資金,所以我們為什麼不更認真地對待開發 dApp 這個過程呢?

儘管有嚴格的開發、測試和程式碼審計流程,但這些手段的顯然不足以緩解所有錯誤和攻擊,因為事實上通過測試和審計消除所有運行時錯誤幾乎是不可能的。那麼我們如何保護我們的軟體免遭失敗呢?

運行時保護(Runtime Protection)

運行時保護是一種安全技術,可保護軟體應用程式在運行時免受惡意攻擊。它的原理是在程式碼實際運行時進行即時檢測,分析程式的實際行為以保護程式免受惡意數據和攻擊的影響。

高可靠性軟體的運行時保護需要花費大量的投入和設計,因為它們是確保軟體不會進入未知狀態或故障的最後一道防線。這不僅僅是個論點,而是幾十年來經過驗證的實踐。

今天在 Web3 中,我認為 DeFi 應用程式需要同樣的高可靠性,並且應該考慮同樣的方法。然而,由於其潛在的限制,EVM 並不是為處理運行時保護等複雜任務而設計的。那麼,我們如何提供運行時保護呢?

一種方式是通過 Aspect 編程,Aspects 由 Artela 區塊鏈網路設計的,它能夠在任何智能合約交易的生命周期內切換執行上下文,以對程式的即時狀態進行高級檢查。Artela 通過 Aspect 和兼容 EVM 的方式,提供運行時保護的獨特設計,它有機會成為加密智能合約安全的未來基礎。

Artela 在下面的文章中公布了 Aspects 在防止 Curve 重入攻擊中的具體用法,希望一起交流!

《編譯器漏洞無解?Runtime Protection 實現 DeFi 鏈上風控保護》

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
banner
ChainCatcher 與創新者共建Web3世界