OrionProtocol遭受290萬美元重入攻擊 細析攻擊過程與防範建議

robot
摘要生成中

OrionProtocol遭遇重入攻擊事件分析

2023年2月2日,OrionProtocol在以太坊和幣安智能鏈上遭遇重入攻擊,導致約290萬美元的損失。攻擊者利用合約漏洞,在以太坊鏈上竊取了2,844,766 USDT,在幣安智能鏈上竊取了191,606 BUSD。

攻擊過程

攻擊者首先創建了一個自定義Token合約,並進行了相關的轉移和授權操作。隨後,攻擊者通過某DEX的swap方法借款,並調用ExchangeWithAtomic.swapThroughOrionPool方法進行代幣兌換。兌換路徑包含了攻擊者創建的Token合約地址。

在兌換過程中,由於攻擊者的Token合約中存在回調機制,攻擊者能夠通過Token.Transfer繼續回調ExchangeWithAtomic.depositAsset方法,從而實現重入攻擊。這導致存款金額被重復累加,最終攻擊者通過取款操作完成了獲利。

OrionProtocol 重入攻擊分析附PoC

資金流向

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

OrionProtocol 重入攻擊分析附PoC

漏洞分析

漏洞的核心問題出現在doSwapThroughOrionPool函數中。該函數調用了_doSwapTokens函數,而後者在轉帳操作後更新curBalance變量。攻擊者利用自定義Token的transfer函數中添加的回調功能,在curBalance更新前再次調用depositAsset函數,導致curBalance錯誤更新。最終,攻擊者在償還閃電貸後,通過withdraw函數提取了額外的資金。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

防範建議

爲防止類似攻擊,建議項目方在設計合約時注意以下幾點:

  1. 考慮多種Token和多種兌換路徑可能帶來的意外情況。
  2. 遵循"檢查-生效-交互"(Checks-Effects-Interactions)的編碼模式,即先進行條件檢查,再更新狀態變量,最後才執行外部調用。
  3. 在關鍵操作前後使用重入鎖,防止重入攻擊。
  4. 對外部調用的Token合約進行安全性驗證。
  5. 定期進行代碼審計和安全測試,及時發現並修復潛在漏洞。

通過採取這些措施,項目可以顯著提高合約的安全性和穩定性,最大限度地降低遭受攻擊的風險。

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 7
  • 分享
留言
0/400
空投资深猎手小张vip
· 5小時前
区块链项目又被薅一波
回復0
Meme币研究员vip
· 5小時前
ngmi... 看起来重入诅咒又来了 fr fr
查看原文回復0
夜不撸毛vip
· 5小時前
天天被黑 真惨
回復0
rugpull_survivorvip
· 5小時前
割一刀还有下一刀
回復0
闪电结算姐vip
· 5小時前
搞代码的手艺不错啊
回復0
PrivacyMaximalistvip
· 5小時前
又一个砸锅跑路的项目
回復0
NotFinancialAdviservip
· 5小時前
又有项目被撸了
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)