OrionProtocol遭重入攻擊 損失290萬美元加密資產

OrionProtocol遭受重入攻擊事件分析

2023年2月2日下午,某DEX平台在以太坊和幣安智能鏈上因合約漏洞遭到重入攻擊,總計損失約290萬美元的加密資產,其中包括以太坊上的2,844,766 USDT和幣安智能鏈上的191,606 BUSD。

攻擊過程概述

攻擊者首先部署了一個特制的代幣合約,並進行了相關的轉移和授權操作。隨後,攻擊者通過某DEX的swap功能借入資金,並調用目標平台的swapThroughOrionPool方法進行代幣兌換。兌換路徑中包含了攻擊者創建的代幣合約地址,這使得攻擊者能夠在交易過程中執行回調操作。

在兌換過程中,攻擊者利用自己創建的代幣合約中的回調功能,重復調用目標平台的depositAsset方法,導致存款金額被累加。最終,攻擊者通過取款操作完成了獲利。

OrionProtocol 重入攻擊分析附PoC

資金流向

攻擊者的初始資金來源於某大型交易平台的熱錢包。攻擊獲利的1,651個ETH中,657.5個ETH仍留在攻擊者的錢包地址中,其餘部分已通過混幣服務進行了轉移。

OrionProtocol 重入攻擊分析附PoC

漏洞分析

漏洞的核心問題出現在doSwapThroughOrionPool函數中。該函數在執行代幣轉帳後更新curBalance變量,但未考慮到可能存在的重入攻擊風險。攻擊者通過在自定義代幣的transfer函數中添加回調邏輯,成功實現了對depositAsset函數的重入調用,導致curBalance變量被錯誤更新。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

攻擊復現

研究人員成功復現了攻擊過程,並提供了相關的POC代碼。測試結果顯示,攻擊者能夠通過利用合約漏洞獲取額外的資金。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

安全建議

對於具有代幣兌換功能的智能合約,開發者需要考慮以下幾點:

  1. 充分考慮各種代幣類型和兌換路徑可能帶來的意外情況。
  2. 遵循"檢查-生效-交互"(Checks-Effects-Interactions)的編碼模式,即先進行狀態檢查,然後更新合約狀態,最後再與外部合約交互。
  3. 實施重入鎖等安全機制,防止重入攻擊。
  4. 對於外部調用,尤其是涉及資金轉移的操作,應格外謹慎,並進行全面的安全審計。

通過採取這些措施,可以大大降低智能合約被攻擊的風險,提高項目的安全性和穩定性。在Web3生態系統中,確保合約安全對於維護用戶信任和資產安全至關重要。

ETH4.82%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 7
  • 轉發
  • 分享
留言
0/400
NFT Regret Machinevip
· 08-09 01:43
又见重入袭击
回復0
AirDropMissedvip
· 08-08 20:39
审计人傻了吧
回復0
TokenVelocityvip
· 08-07 01:39
无语了被撸了
回復0
LiquidatedNotStirredvip
· 08-06 03:45
重入漏洞真头痛
回復0
NFT_Therapyvip
· 08-06 03:36
又见合约漏洞
回復0
GateUser-40edb63bvip
· 08-06 03:29
又一个被黑
回復0
NotGonnaMakeItvip
· 08-06 03:24
又变韭菜了
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)