Deus Finance遭到黑客攻擊,損失約300萬美元。前言
北京時間2022 年3 月15 日,知道創宇區塊鏈安全實驗室監測到Deus Finance 遭到黑客攻擊,損失約300 萬美元。知道創宇區塊鏈安全實驗室第一時間跟踪本次事件並分析。
基礎信息
攻擊者地址:0x1ed5112b32486840071b7cdd2584ded2c66198dd
攻擊合約:0xb8f5c9e18abbb21dfa4329586ee74f1e2b685009
DeiLenderSolidex 合約: 0xeC1Fc57249CEa005fC16b2980470504806fcA20d
Oracle 合約:0x5CEB2b0308a7f21CcC0915DB29fa5095bEAdb48D
交易哈希:0xe374495036fac18aa5b1a497a17e70f256c4d3d416dd1408c026f3f5c70a3a9c
漏洞分析
此次事件,漏洞關鍵在於協議通過StableV1 AMM – USDC/DEI 交易對在獲取價格時被攻擊者操控,導致普通用戶資產被清算,最終獲利。
DeiLenderSolidex 合約的清算函數liquidate()中,會通過isSolvent()函數來判斷用戶是否應該被清算,而isSolvent()調用Oracle.getPrice()來問價判斷抵押物的價格,因而產生了漏洞
由函數getPrice()可知,代幣價格算法:((DEI的餘額)+(USDC的餘額x10^12))x10^18 /(代幣總量)
DEI的代幣價格是通過DEI和USDC在池子中的餘額進行判斷的的,因此攻擊者利用閃電貸發起此次攻擊,控制了DEI代幣的價格。
攻擊流程
攻擊者從SPIRIT-LP_USDC_DEI 中閃電貸借出約970 萬DEI 代幣,之後再次使用閃電貸從sAMM-USDC/DEI 中獲取了2477 萬DEI 代幣用於操縱價格預言機
隨後清算價格操縱後的破產用戶
之後償還閃電貸到sAMM-USDC/DEI 中
燒毀流動性代幣獲取521 萬USDC 和524 萬DEI
使用521 萬USDC 換取517 萬DEI
歸還從SPIRIT-LP_USDC_DEI 中藉的970 萬DEI
最後攻擊者將獲取的DEI 全部換成USDC,總獲利約300 萬美元。
總結
本次攻擊事件核心是由於價格預言機對代幣價格的實現存在問題,使得能夠人為的通過池子中代幣的餘額來對代幣價格進行控制,導致了此次事件的發生,建議官方在使用預言機時能夠嚴格控制價格的邏輯實現。
近期,各類合約漏洞安全事件頻發,合約審計、風控措施、應急計劃等都有必要切實落實。
展開全文打開碳鏈價值APP 查看更多精彩資訊