OrionProtocol遭重入攻擊 近300萬美元資產被盜

robot
摘要生成中

OrionProtocol遭受重入攻擊導致近300萬美元損失

2023年2月2日,Ethereum和Binance鏈上的OrionProtocol合約因存在安全漏洞,遭受了重入攻擊。攻擊者成功竊取了約290萬美元的加密資產,其中包括Ethereum上的2,844,766 USDT和BSC上的191,606 BUSD。

攻擊過程分析

攻擊者首先部署了一個自定義Token合約,並進行了必要的準備工作。隨後,攻擊者通過UNI-V2的swap方法借入資金,並調用ExchangeWithAtomic合約的swapThroughOrionPool方法進行代幣兌換。兌換路徑包含了攻擊者創建的Token合約地址,這爲後續的回調攻擊鋪平了道路。

在兌換過程中,由於攻擊者的Token合約中包含回調邏輯,每次轉帳操作都會觸發對ExchangeWithAtomic合約depositAsset方法的重入調用。這導致存款金額被錯誤地累加,最終允許攻擊者提取超出其實際存入量的資金。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

漏洞根源

核心問題出在ExchangeWithAtomic合約的doSwapThroughOrionPool和_doSwapTokens函數中。這些函數在執行代幣轉帳後更新curBalance變量,但沒有防止重入攻擊的措施。攻擊者利用自定義Token的transfer函數回調depositAsset方法,導致curBalance被錯誤更新,從而在償還閃電貸後提取超額資金。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

資金流向

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

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

安全建議

爲防止類似攻擊,項目方應注意以下幾點:

  1. 實現代幣兌換功能時,需要考慮各種Token類型和兌換路徑可能帶來的安全風險。

  2. 遵循"檢查-生效-交互"(Checks-Effects-Interactions)模式編寫合約代碼,即先進行條件檢查,然後更新狀態變量,最後才與外部合約交互。

  3. 在關鍵函數中使用重入鎖或類似機制,防止重入攻擊。

  4. 對於外部調用,特別是涉及資金轉移的操作,應格外謹慎,並考慮使用pull payment模式代替push payment。

  5. 定期進行安全審計,及時發現並修復潛在漏洞。

通過採取這些措施,可以大大提高智能合約的安全性,降低遭受攻擊的風險。在Web3生態系統中,安全始終應該是首要考慮因素。

TOKEN3.79%
ETH-0.62%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 4
  • 分享
留言
0/400
Token Therapistvip
· 14小時前
又有人想不开了?
回復0
闪电清算人vip
· 15小時前
重入漏洞真的是Defi亏损第一杀手...
回復0
0xLuckboxvip
· 15小時前
这年头咋又被偷啊
回復0
TokenSherpavip
· 15小時前
*sigh* 又一个协议未能通过基本的重入检查... 从历史上看,这是可以预防的
查看原文回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)