# OrionProtocol遭受重入攻擊事件分析2023年2月2日下午,以太坊和幣安智能鏈上的OrionProtocol合約因存在漏洞而遭受重入攻擊。攻擊者成功竊取了約290萬美元的資金,其中包括以太坊鏈上的2,844,766 USDT和幣安智能鏈上的191,606 BUSD。## 攻擊過程分析攻擊者首先部署了一個自定義Token合約,並對該Token進行了轉移和授權操作,爲後續的攻擊做好準備。隨後,攻擊者利用Uniswap V2的swap功能進行借貸,並調用OrionProtocol的ExchangeWithAtomic.swapThroughOrionPool方法進行代幣兌換。兌換路徑設置爲:USDC → 攻擊者的自定義Token → USDT在兌換過程中,由於攻擊者的自定義Token合約中包含回調功能,使得在Token轉帳時能夠再次調用ExchangeWithAtomic.depositAsset方法。這種重入攻擊導致存款金額被重復計算,最終允許攻擊者提取超出實際存入金額的資金。## 資金流向攻擊者初始資金來源於某大型交易平台的熱錢包。攻擊獲得的1,651個ETH中,657.5個ETH仍留在攻擊者的錢包地址中,其餘部分已通過混幣服務轉移。## 漏洞分析漏洞的核心問題出現在doSwapThroughOrionPool函數中。該函數在執行代幣轉帳後更新curBalance變量,這爲重入攻擊創造了條件。攻擊者通過在自定義Token的transfer函數中添加回調邏輯,使得在更新curBalance之前可以重復調用depositAsset函數,從而導致餘額計算錯誤。## 防範建議爲防止類似攻擊,項目方應注意以下幾點:1. 實施嚴格的訪問控制和權限管理。2. 遵循"檢查-生效-交互"(Checks-Effects-Interactions)模式編寫智能合約。3. 使用重入鎖或類似機制防止重入攻擊。4. 對於涉及代幣兌換的功能,需考慮各種Token類型和兌換路徑可能帶來的安全風險。5. 進行全面的安全審計,包括靜態分析、動態測試和人工審核。6. 持續監控合約活動,建立快速響應機制。此次事件再次強調了在開發和部署智能合約時,安全性應始終是首要考慮因素。項目方需要不斷完善安全措施,以保護用戶資產和維護平台信譽。
OrionProtocol遭受290萬美元重入攻擊 資金被盜分析與防範建議
OrionProtocol遭受重入攻擊事件分析
2023年2月2日下午,以太坊和幣安智能鏈上的OrionProtocol合約因存在漏洞而遭受重入攻擊。攻擊者成功竊取了約290萬美元的資金,其中包括以太坊鏈上的2,844,766 USDT和幣安智能鏈上的191,606 BUSD。
攻擊過程分析
攻擊者首先部署了一個自定義Token合約,並對該Token進行了轉移和授權操作,爲後續的攻擊做好準備。隨後,攻擊者利用Uniswap V2的swap功能進行借貸,並調用OrionProtocol的ExchangeWithAtomic.swapThroughOrionPool方法進行代幣兌換。
兌換路徑設置爲:USDC → 攻擊者的自定義Token → USDT
在兌換過程中,由於攻擊者的自定義Token合約中包含回調功能,使得在Token轉帳時能夠再次調用ExchangeWithAtomic.depositAsset方法。這種重入攻擊導致存款金額被重復計算,最終允許攻擊者提取超出實際存入金額的資金。
資金流向
攻擊者初始資金來源於某大型交易平台的熱錢包。攻擊獲得的1,651個ETH中,657.5個ETH仍留在攻擊者的錢包地址中,其餘部分已通過混幣服務轉移。
漏洞分析
漏洞的核心問題出現在doSwapThroughOrionPool函數中。該函數在執行代幣轉帳後更新curBalance變量,這爲重入攻擊創造了條件。攻擊者通過在自定義Token的transfer函數中添加回調邏輯,使得在更新curBalance之前可以重復調用depositAsset函數,從而導致餘額計算錯誤。
防範建議
爲防止類似攻擊,項目方應注意以下幾點:
此次事件再次強調了在開發和部署智能合約時,安全性應始終是首要考慮因素。項目方需要不斷完善安全措施,以保護用戶資產和維護平台信譽。