建議用作憑證代幣的合約位址需要填加白名單功能,以免被惡意操控。
封面:Photo by Compare Fibre on Unsplash
2023 年 8 月 18 日,據 Beosin-Eagle Eye 態勢感知平臺消息,Optimism 鏈的 DeFi 借貸協定 Exactly Protocol 遭受駭客攻擊,駭客獲利超 700 萬美元。
攻擊發生之後,Exactly Protocol 在社交媒體上表示,正在嘗試與攻擊者溝通,以歸還被盜資產,已向警方提交報告。
三天之後的 8 月 21 日,Exactly Protocol 發文表示協定現已解除,使用者可以執行所有操作,也沒有發生任何清算。 為了明確起見,駭客攻擊只影響到使用週邊合約(DebtManager)的使用者。 沒有使用該合約的使用者沒有任何損失,協定仍在正常運行。
Beosin 安全團隊第一時間對本次事件進行了分析,結果如下。
事件相關信息
攻擊交易
0x3d6367de5c191204b44b8a5cf975f257472087a9aadc59b5d744ffdef33a520e0x1526acfb7062090bd5fed1b3821d1691c87f6c4fb294f56b5b921f0edf0cfad60xe8999fb57684856d637504f1f0082b69a3f7b34dd4e7597bea376c9466813585
攻擊者位址
0x3747dbbcb5c07786a4c59883e473a2e38f571af9
攻擊合約
0x6dd61c69415c8ecab3fefd80d079435ead1a5b4d0x995a24c99ea2fd6c87421d516216d9bdc7fa72b4
被攻擊合約
0x16748cb753a68329ca2117a7647aa590317ebf41
漏洞分析
漏洞合約中的多個 Market 位址參數可被操控。 攻擊者通過傳入惡意的 Market 合約位址,成功繞過 permit 檢查,執行了惡意的 deposit 函數,竊取了使用者的抵押品 USDC 並清算用戶資產,最終實現了攻擊者的盈利目的。
攻擊流程
我們以 0x3d6367... 這筆交易為例
攻擊準備階段:
1. 攻擊者創建了多個惡意 Market 合約
攻击阶段
1. 攻击者调用漏洞合约的 leverage 函数(杠杠函数)传入伪造的 market 合约地址,由于 market 地址未校验合法性,permit 检查被绕过并将_msgSender 更改为受害者地址,这里为步骤 3 窃取受害者资产做了准备。
2.leverage 函數會繼續調用惡意 market 合約中的 deposit 函數,進而執行攻擊者的惡意代碼
3.deposit 函數中的惡意代碼會先創建一個 V3 惡意 token/USDC 的池子,然後再重入進漏洞合約的 crossDeleverage 函數。 由於 marketIn 和 marketOut 同樣可控,導致 crossDeleverage 函數計算的 V3 池子最終為攻擊者創建的 V3 池子。
4. 此時由於_msgSender 已經修改為了受害者,crossDeleverage 函數進一步調用攻擊者創建的 V3 池子的 swap 函數用作閃電貸,並在回調函數 uniswapV3callback 中將受害者的資金轉入至 V3 池子中。
5. 攻擊者移除流動性將受害者資金從 V3 池子中竊取出來。
6. 由於受害者抵押資金被轉走,滿足清算條件,攻擊者進一步清算了受害者的頭寸而獲得了更多的收益。
資金追蹤
截止發文時,被盜資金已通過 Optimism bridge 和 Across Protoco 跨鏈至乙太坊。
總結
針對本次事件,Beosin 安全團隊建議:
建議用作憑證代幣的合約位址需要填加白名單功能,以免被惡意操控。 目前,Beosin 已對 Optimism 鏈上多個項目諸如 DIPX 等進行過安全審計,因此 Beosin 建議項目上線前,選擇專業的安全審計公司進行全面的安全審計,規避安全風險。
免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 本文內容僅用於資訊分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。