北京時間11月14日23點36分, Value DeFi 的 MultiStablesVault 池子遭受黑客攻擊,損失將近 740 萬美金的 DAI。算法
區塊鏈安全公司 PeckShied (派盾)安全人員跟進分析初步發現,形成本次攻擊事件的根本緣由是項目代碼在使用基於 AMM 算法的價格預言機上存在漏洞。黑客在偷走代幣後還留言「do you really know flashloan?」來挑釁開發團隊。 c#
概要:安全
總體而言:因爲 Value DeFi 協議在使用基於AMM 算法的價格預言機(Curve)來計算代幣價格時存在漏洞。 攻擊者先經過閃電貸操縱 Curve 上代幣的價格,而後再用鑄造的 pooltokens 成功提取出了遠超原先價值的 3crv 代幣。以後,攻擊者再將這些3crv 代幣在 Curve 上贖回 DAI ,從而完成獲利。區塊鏈
整個事件中黑客獲利740萬 DAI,其中的200萬返回給了 Value DeFi,直接獲利540萬美圓。3d
攻擊過程詳解:token
咱們基於發起攻擊的交易(0x46a03488247425f845e444b9c10b52ba3c14927c687d38287c0faddc7471150a)來進行分析。攻擊者的惡意攻擊合約爲(0x675BD0A0b03096c5ead734cFa00C7620538C7C6F)。事件
步驟1:經過 Aave 閃電貸得到8萬枚 ETH。開發
步驟2:在UniswapV2 閃電貸得到 1.16億枚 DAI。接下來,0x675B 惡意合約會執行以下內容。get
步驟3: 將步驟1得到的8萬枚 ETH 在 UniswapV2 上換成3,100萬枚 USDT。flash
步驟4: 在 Vault DeFi 上存入2,500萬枚 DAI 並得到池子鑄造的2,490萬 pooltokens。此時 Vault DeFi 協議會鑄造出2,495.6萬枚新 3crv 代幣。
步驟5:在 Curve 上將9,000萬枚 DAI 換成9,028萬枚 USDC。這一步會影響 Curve上 3pool 池子的平衡,進而擡升 USDC 的價格。
步驟6:在 Curve 上將3,100萬枚 USDT 換成1,733萬枚 USDC,此時能夠看到 USDC 兌換價格已經有很大的誤差,完成這一步後,會進一步提高 Curve 上 3pool 池子中 USDC 的價格。
步驟7:在 Value DeFi 上銷燬以前鑄造的2,490萬枚 pooltokens。因爲價格的變化,這部分 pooltokens 贖回了3,308萬枚 3crv。
步驟8:將1,733萬枚 USDC 在 Curve 上換回3,094萬枚 USDT。
步驟9:將9,028萬枚 USDC 在 Curve 上換回9,092萬枚 DAI。
步驟10:銷燬 3pool 中的3,308萬枚 3crv 來贖回 3,311 萬枚 DAI。
剩餘步驟:返還 Aave 的閃電貸和 UniswapV2 上步驟2中的代幣。
此次攻擊以後,黑客返回給 Value DeFi 開發者(0x7Be4D5A99c903C437EC77A20CB6d0688cBB73c7f) 200萬枚 DAI,本身則保留了540萬枚DAI。
被盜資產狀況:
此次攻擊中被盜取的資金如今被存放在錢包 0xa773603b139Ae1c52D05b35796DF3Ee76D8a9A2F 中。 PeckShield 旗下數字資產追蹤平臺 CoinHolmes 正在對該地址作全方位監控,並對其資金流向作進一步的鎖定分析和追蹤,以便協助項目方挽回被盜資產。
推薦閱讀:
PeckShield:硬核技術解析,bZx協議遭黑客漏洞攻擊始末
PeckShield:DeFi平臺Opyn智能合約漏洞詳解——攻擊者空手套白狼!
PeckShield:DeFi平臺Balancer遭黑客攻擊全過程技術拆解
PeckShield:bZx協議再遭黑客「二連擊」背後的技術命門
Uniswap和Lendf.Me遭攻擊始末:DeFi樂高組合下的「多米諾」式崩塌
AirSwap智能合約漏洞詳解:用戶資產可被攻擊者惡意吃單?