header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

BlockSec創始人演講:代碼審計的安全性遠遠不夠

閱讀本文需 23 分鐘
BlockSec如何利用Phalcon Block系統攔截黑客攻擊並挽回協議損失?

在今年三月成功攔截了對 Paraspace 的黑客攻擊後,專注於攔截黑客攻擊的安全公司 BlockSec,知名度也被打響了。


BlockSec 最初是一個學術項目,在浙江大學從事區塊鏈安全研究的周亞金(Andy)教授起初沒想去創業,只是從純學術研究的角度去探索區塊鏈世界裡的安全問題和解決方案。然而,在經過了兩三年深入的研究後,Andy 教授對這個領域的理解越發深入,他開始意識到,區塊鏈領域中仍然存在許多尚未解決的實際安全問題。於是,Andy 決定擴展研究的應用範圍,致力於開發真正能服務於用戶的產品和技術。就這樣,BlockSec 在這個想法的推動下誕生了。



這一周,隨著以太坊 EthCC 在巴黎的啟動,加密行業的盛會氣氛被熱烈點燃。作為 BlockSec 的創始人兼 CEO,Andy 受邀在法國巴黎舉行的 2023 年度 DeFi 安全峰會上發表了演講。在演講中,Andy 介紹了 BlockSec 推出的主動防禦系統 Phalcon Block 是如何工作的,以及其中的核心技術攻擊攔截的基本原理。 BlockBeats 整理翻譯的全文如下:


我叫 Andy,是 BlockSec 的首席執行官。今天我要談論的是通過主動防范威脅來保護網絡歷史的方式。



BlockSec 成立於 2021 年,得到了一些頂級投資者和客戶的支持。我們有幾款產品供社區使用,比如 Phalcon,我認為大多數安全研究人員已經使用我們的 Phalcon Explorer 來可視化交易。我們還有 MetaDock、MetaSleuth,這些都免費提供給社區。



為什麼 Web3 的安全性如此重要呢?即使在這個牛市,即使在熊市的周期中,由於 DeFi 黑客攻擊和 DeFi 詐騙造成的損失也在不斷增加。我們每天都收到受害者的郵件,他們說他們遭到了攻擊,失去了所有的錢,希望我們能幫助他們。這些不僅僅是一堆數字,它們代表的是那些在遭受攻擊後面臨破產的個人。我們必須幫助他們。



為什麼現在 DeFi 黑客攻擊如此常見呢?我認為有幾個原因。一個原因是我們有攻擊者,他們有經濟動機去進行 DeFi 黑客攻擊。通過進行 DeFi 黑客攻擊,他們可以得到大量的錢。但是我們沒有足夠的安全合格的開發人員。一些開發人員更關注協議的功能性,既缺少足夠的安全培訓,也沒有上過區塊鏈安全課程,我們在社區和大學中欠缺太多的課程。而且,一些黑客攻擊是由國家級組織進行的。在這個話題上我們不需要過多談論,因此大多數人都明白。



只有代碼審計的協議安全性遠遠不夠


當談到協議的安全性時,大多數人會想到代碼審計。代碼審計確實是解決 DeFi 協議中安全問題的最常見方式。我們認為代碼審計有幫助,但代碼審計遠遠不夠。合格的審計服務既昂貴,也耗時。你需要等待兩個月或三個月,甚至半年才能被一家頂級審計公司審計。所以一些協議沒有足夠的時間等待,而且我們也沒有足夠的合格審計員。如果一家審計公司只是發出審計證書,這個證書最終將不再被社區信任。由於這些原因,協議必須在缺乏一些更好的威脅預防測試和攻擊預防解決方案的情況下上線。他們只能在沒有任何安全措施的情況下上線。



因此,我們需要有一個更主動的方法。更主動的方法意味著協議需要知道他們的協議當前發生了什麼。他們不能只是把他們的協議放在網上,然後去睡覺。他們需要知道當前發生了什麼,誰在與協議交互。然後當發生一些不好的事情時,協議需要知道如何自動響應這樣的攻擊交易。



為什麼主動的方法在 Web3 中更重要呢?為什麼在 Web2 中沒有,但 Web3 卻需要?因為 Web3 引入了更多的攻擊向量,而區塊鏈的開放性使得攻擊比在 Web2 中更容易。每個人都可以在區塊鏈上查看智能合約。大多數區塊鏈上的智能合約都是開源的,所以好人和壞人都可以看到同樣的源代碼。他們可以在源代碼中找到漏洞。如果有漏洞,他們就可以攻擊這個漏洞來獲得巨額利潤。此外,因為區塊鍊是匿名的,所以很難檢查攻擊者的資金流動。當一個攻擊者對 DeFi 協議發動攻擊時,我們總是看到協議問誰能幫我們聯繫 Binance,誰能幫我們聯繫一些交易平台。因為追踪攻擊者的資金流動非常非常困難。


閃電貸也讓攻擊者發動攻擊變得更容易。在 Web2 中,如果你發現一個漏洞,為了發動這次攻擊,你需要有 200 萬美元,但大多數人沒有這麼多錢來發動攻擊。但在區塊鏈中存在閃電貸,你可以從閃電貸服務中藉到大量的錢,然後發動攻擊並把錢再還給閃電貸。而且一些私人交易服務,也可以被濫用來發動攻擊。我們已經看到有很多攻擊,通過濫用閃電機器人服務來阻止攻擊交易在內存池中被觀察到。


Web3 的這些獨特屬性,導致 Web3 空間中的攻擊者對協議造成了更多的損害,對用戶造成了更多的損害。同時追踪 Web3 中的攻擊者變得更加困難。



Phalcon Block 是如何工作的?


基於這些原因,BlockSec 從去年 2 月以來就開發了一個原型系統,思考如何解決代碼審計之外的這些問題。我們是否可以採取更主動的解決方案來防禦 DeFi 黑客攻擊?在這些思考下,BlockSec 開發了一個叫做 Phalcon Block 的系統。


Phalcon Block 的基本思想是監聽內存池中的交易。我們監聽區塊鏈上的交易,我們也監聽被回滾的交易。為什麼我們需要監聽被回滾的交易呢?那是因為攻擊者可能會犯錯誤,攻擊交易可能會被回滾。如果我們能夠捕獲這樣的被回滾的攻擊交易,我們可以自動做出一些反應。在那之後,我們可以通過重放攻擊交易和復制攻擊合約的關鍵攻擊邏輯來重建攻擊邏輯,然後通過一些閃電機器人或者給予更高的 Gas 費用等方式發出救援交易,以確保我們的救援交易可以比攻擊交易更快或者可以在攻擊交易後面的區塊鏈上。通過這樣做,我們甚至可以阻止攻擊者的交易。因為我們更快,我們在區塊中的攻擊交易的頭部。



這個機製或者這個系統的關鍵部分是如何自動重構攻擊交易和攻擊合約。我認為基本的理念是,思考一下攻擊交易和攻擊智能合約中最重要的是什麼——最重要的是這個智能合約中的攻擊邏輯,以及攻擊者。他們會對這個攻擊智能合約的調用者進行一些認證,因為他們不希望他們的攻擊智能合約被其他人抓住。因此你需要自動繞過所有這些檢查。然後我們在內存池中替換這個攻擊交易,可以得到一條基礎塊的鍊或者說這個攻擊交易的踪跡。在這個基本塊的鏈中,我們可以替換 JUMPI 指令。我們將凍結的 JUMPI 指令調用到 JUMP 指令中,從而跳轉到攻擊邏輯,而不是因攻擊合約認證失敗而還原的基本塊。



因此,我們提出了一個基本的思考模式和方法論。然而,在實踐中並非如此簡單。僅僅替換指令在我們的案例中是不起作用的,因為我們面臨著一系列技術挑戰。最主要的一點是,我們需要解決如何處理智能合約中基本塊的重用問題。編譯器常常利用基本塊的重用來生成更小的代碼,這是減少代碼體積的常見做法。所以假設我們有兩個不同的跳轉目標,RA1 和 RA0。這時我們需要新的跳轉目標,因此需要建立一個映射關係,即這個舊的跳轉目標與新的跳轉目標之間的映射關係。為此,我們使用了跳板來建立映射關係。


在這個過程中,我們藉鑑了二進制代碼重寫的思路,這種技術已經使用和發展了兩個多世紀,甚至可能更長。因此,我們藉鑑了這個理念,並將其應用到字節碼重寫的技術中。


Phalcon Block 過去的戰績


通過運用我們的系統,我們已經成功阻止了幾次協議的攻擊交易,並挽回了大量的資金流動性損失。例如,我們今年為 ParaSpace 挽回了 500 萬美元的損失,去年為 Saddle Finance 挽回了 380 萬美元的損失等例子。所以接下來,我將談論一些代表性的案例,闡述我們是如何阻止這些交易的。



以 ParaSpace 為例,它在今年 3 月遭受攻擊,但攻擊者犯下了幾個錯誤。他們並未準備足夠的 Gas 來執行攻擊,因此攻擊交易被回滾了。就像我之前提到的,我們會密切「監聽」區塊鏈上被回滾的交易。因此,即使交易被回滾,BlockSec 還是能夠發現這是一次攻擊。然後我們自動合成了一個類似的攻擊合約,用我們自己的地址替換了利潤地址。發出的這些交易在區塊鏈上被執行後,BlockSec 就成功為 ParaSpace 挽回了五百萬美元的損失。



另一個例子是 Platypus,它在今年 2 月被攻擊。由於智能合約存在漏洞,攻擊者找到了攻擊 Platypus 這個 DeFi 協議的入口。但攻擊者犯了一個錯誤,沒有在被攻擊的智能合約中設置提取資金的邏輯。因此,黑客們面臨一個問題:如何從被攻擊的合約中提取剩餘的 240 萬美元?



而 BlockSec 具備一套內部系統,可以自動反彙編被攻擊的合約,我們能夠通過一些啟發式方法對 AttackSmart 合約進行深入分析,揭示了這個合約的一些有趣特性。首先,這個合約的閃電貸回調是開放的;其次,USDC 已經批准了 Platypus pool 合約。此時我們能具體做些什麼呢?我們升級了 pool 合約,並利用被攻擊合約批准的特權提取被攻擊合約中剩餘的 USDC。我們把這個批准的概念分享給了協議,協議成功地從被攻擊的合約中提取出了 240 萬美元。



還有一個例子是 Transit Swap。 Transit Swap 曾被一個 MEV bot 攻擊。我們發現,MEV bot 的地址是由一個存在漏洞的 Profanity 工俱生成的。因為這個工具的漏洞,我們可以計算出 MEV bot 的私鑰,並提取出資金以退還給協議。



如何提高這個系統的效能呢?我認為我們有一些思考。首先要快速響應,迅速獲知情況並立即採取行動。其次,準確性也至關重要。我們不能引入太多的誤報。就像我們昨天討論的,如果你的監控工具向客戶報告了過多的警報,產品的使用性就會大打折扣。因此我們應該系統化地運作,而非僅僅是追踪攻擊者。 BlockSec 擁有一些工具,可以分析和反彙編合約,同時使用啟發式方法對字節碼進行深入的分析。 BlockSec 採取所有這些措施的初衷,是為了構建一個完善的系統,打造一個高效的產品。



我們看到了攻擊者和安全研究員之間的競賽,也看到了一些攻擊者使用混淆和運行時措施來進行防禦。基於這些,我們構建了一個名為 Phalcon Block 的系統。如果你對此感興趣,可以加入我們的 Waitlist,獲取 Falcon Block 系統的最新信息。我們在 Twitter 上也有一個教學小組。如果你對此感興趣,歡迎關注我們。


以下為問答環節:


問:BlockSec 進行了許多反攻擊行動,暫且就稱之為反攻擊行動吧。在這個過程中,BlockSec 如何保護自己免受法律責任和法律糾紛呢?

BlockSec 創始人 Andy:這是一個非常好的問題。BlockSec 非常重視安全倫理,我們只在看到攻擊交易發生後,才執行反攻擊或阻止攻擊交易,我們不會在沒有前提時執行這些攻擊交易。因此我認為,BlockSec 保護用戶採取的行動方式是主動型的。如果我們不採取行動,那麼更狡猾的人可能會把所有的錢都拿走。


問:這可能是對前一個問題的後續提問,如果有人發現了一個還沒有被利用的漏洞,並且也沒有攻擊交易發生,你們就合法地像白帽黑客那樣行動,保存用戶的資金?

BlockSec 創始人 Andy:讓我重新表述一下,我們並沒有黑用戶的資金。我們只是自動重構攻擊者的合約,將資金移動到另一個錢包。我們會將所有這些資金退還給協議和用戶。雖然對於倫理問題而言是有爭議的,但是如果我們只是出於保護用戶的心態去做這些事情,我認為我們是正義的一方。


問:很明顯你們在做正確的事情,你們有任何實際的法律保護措施嗎?你們有律師坐在那裡檢查嗎?

BlockSec 創始人 Andy:目前我們實際上沒有,但我們會考慮。


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交