知道創宇:Deus Finance預言機攻擊事件分析

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 查看更多精彩資訊

Total
0
Shares
Related Posts