Pickle Finance遭攻擊損失近2000萬美元DAI,未經嚴格審計的DeFi路在何方?
PeckShield
2020-11-23 02:58
本文约2753字,阅读全文需要约11分钟
11月黑客攻擊DeFi 協議Pickle Finance(酸黃瓜),撈得近2000 萬美元的DAI。

正文

正文

二級標題

二級標題

二級標題
加密貨幣再次登上央視DeFi淪為“科學家”的提款機?

11月18日,比特幣衝擊18,000 美元,加密貨幣再次登上央視,此前,加密貨幣被譽為去中心化的金融工具首次登上央視。

據央視報導,從投資回報率的角度來看,加密貨幣是今年真正的“頭號”投資產品。 “彭博銀河加密貨幣指數”上漲約65%,超過金價逾20%的漲幅,也超過全球股市、債市和大宗商品市場的收益率。漲幅較高的一個關鍵原因是以太坊幣價暴漲,漲幅達到169.40%。

發生了什麼?

發生了什麼?

發生了什麼?

PeckShield 通過追踪和分析發現,攻擊者通過StrategyCmpdDaiV2.getSuppliedUnleveraged() 函數查詢資產餘額1972萬美元;

隨後,攻擊者利用輸入驗證漏洞將StrategyCmpdDaiV2 中的所有DAI 提取到Pickle Jar:這個漏洞位於ControllerV4.swapExactJarForJar() 函數中,其中包含兩個既定的偽Jar。在未驗證既定Jar 的情況下,此步驟會將存入的所有DAI 提取到Pickle Jar,並進行下一輪部署。

接下來,攻擊者調用earn() 函數將提取的DAI 部署到StrategyCmpdDaiV2 中。在內部緩衝區管理中,黑客調用了三次earn() 函數,在StrategyCmpdDaiV2 中生成共計950,818,864.8211968 枚cDAI;

第一次調用earn() 函數存入1976萬枚DAI,鑄造903,390,845.43581639 枚cDAI;

正文

正文

正文

第3次調用earn() 函數存入4.9萬枚DAI,鑄造2,258,477.11358954 枚cDAI;

隨後,攻擊者調用ControllerV4.swapExactJarForJar() 函數,利用任意代碼執行將StrategyCmpdDaiV2 中的所有cDAI 提取出來,這一步中,_execute() 函數有兩個參數:_target和_data,_target 指的是目標地址,即圖中橘色所示部分;_target 是一個加白的地址,攻擊者沒辦法任意控制此地址,此處他們利用的是CurveProxyLogic,該加白的合約(能通過262 行approvedJarConverter[_targets[i]的檢查。也就是說,能被完全控制的是參數_data,即圖中紫色所示部分,_data 中包含_execute() 函數可調用的add_liquidity() 函數,以及傳給add_liquidity() 的所有參數。

二級標題

二級標題

二級標題

未經嚴格審計的DeFi能走多遠?

針對此次Pickle Finance(酸黃瓜)被攻擊事件,其審計公司Haechi 發推文稱,今年10 月對其代碼進行了一次審計,但是攻擊者利用的漏洞發生在新創建的智能合約中,而不是接受安全審計的智能合約中。與此次漏洞攻擊相關的代碼存在於controller-v4.sol 中的swapExactJarForJar,而非此前審計的controller-v3.sol 中,該智能合約不包含swapExactJarForJar。

PeckShield
作者文库