北京時間2024年1月1日,根據Beosin旗下EagleEye安全風險監控、預警與阻斷平台監測顯示,Orbit_Chain項目遭受攻擊損失至少約8000萬美元,經Beosin Trace分析,黑客地址(0x27e2cc59a64d705a6c3d3d30618601511875015713631506186315)在1757503175天以前就發動了小規模的攻擊,並且將盜取的ETH作為了本次攻擊的其餘5個地址的轉帳手續費來源。
Orbit Chain是一個跨鏈橋平台,用戶可以在一條鏈上使用不同區塊鏈的各種加密資產。現專案方已經暫停跨鏈橋合約並與駭客進行溝通。關於本次安全事件,Beosin安全團隊第一時間進行以下分析。
事件分析
這次事件主要是攻擊者直接呼叫Orbit Chain: Bridge合約的withdraw函數將資產轉移出去。
透過進一步分析withdraw函數的程式碼,我們可以發現該函數採用了驗證簽名的方式來確保放款的安全性和合法性。
在區塊鏈交易中,驗證簽章是一種常見的安全機制,用於確認交易的發起者是否具有足夠的權限和控制權。在withdraw函數中,透過驗證簽名的方式,可以確保只有經過授權的使用者或合約才能成功呼叫函數並進行資產轉移。
進入簽章驗證函數(_validate)後,我們可以觀察到該函數傳回了owner簽章的數量,這項資訊對於驗證交易的合法性和安全性至關重要。
透過返回owner簽名數量,可以在一定程度上驗證交易的合規性和真實性。根據具體的實現方式,owner簽章數量可能會與預先設定的門檻進行比較,以確定是否符合執行交易的條件。
隨後判斷該數量是否大於等於required,若符合條件,便進行放款。
可以透過鏈上資料得知,管理該合約的owner一共有10個地址。 required值為7,說明要提取資產,需要70%的管理員簽署提取交易。
總結來說,事件發生的原因傾向於保存管理員私鑰的伺服器被欺騙攻擊。
攻擊流程
根據鏈上數據顯示,駭客早在2023-12-3003:39:35 PM +UTC開始就陸續發起了對Orbit_Chain項目的攻擊,黑客盜取的ETH數額相對較小,並且將盜取的ETH發送給其餘的數個黑客地址作為交易手續費。
其餘數個駭客地址在2023-12-31 9:00 PM +UTC先後對Orbit_Chain專案的DAI、WBTC、ETH、USDC、USDT進行了攻擊。
資金追蹤
截止發稿,被竊資金轉移情況如下圖所示,駭客正式發動攻擊後,將被竊資金轉移到上述五個地址。在五筆獨立的交易中,每筆交易都發送到一個新的錢包,Orbit Bridge 發送了5000萬美元的穩定幣(3000萬Tether 、 1000萬DAI 和1000萬USDC)、 231 枚wBTC(約1000萬美元)和9500枚ETH(約2150萬美元)。
Beosin Trace追蹤資金流向圖
這次跨鏈橋安全事件再次給我們安全啟示,提醒我們在設計和實施區塊鏈系統時,安全性應該始終是首要考慮的因素。
首先,我們需要注重程式碼的安全性。合約程式碼是區塊鏈系統的核心組成部分,因此在編寫和審查合約程式碼時,應該遵循最佳實踐和安全標準,避免常見的安全漏洞和攻擊向量。
其次,鑑權和身分驗證是至關重要的。在區塊鏈系統中,確保只有授權的使用者或合約能夠執行關鍵操作是防止未經授權存取和資產流失的關鍵。採用強大的身分驗證機制、多重簽章和權限管理等措施,可以有效限制存取權限,並確保只有經過授權的實體能夠進行敏感操作。