北京时间2022年4月28日10:40:14,CertiK审计团队监测到DEUSFinance的合约被恶意攻击,造成了约1570万美元的损失。
攻击者恶意操纵DEI的价格,从DeiLenderSolidex合约中通过提供少量的抵押品提取了大量的DEI。
攻击步骤
①攻击者部署攻击合约并向借贷池DeiLenderSolidex合约提供抵押。
②随后攻击者利用攻击合约获得了超过143,200,000USDC用以发起攻击。
③攻击合约将这143,200,000个借得的USDC在USDC/DEI交易对池0x5821573中换为9,547,716个DEI,此举导致DEI的价格被大幅提高。
④由于DeiLenderSolidex合约是用预言机来确定用户抵押品的价值,而预言机合约使用被恶意操纵的交易对池的价格作为价格来源。因此通过提高的价格和之前提供的抵押,攻击者可从借贷池中总计借贷到17,246,885DEI,这一数额远大于之前攻击者提供抵押的金额。
⑤攻击者用9,547,716个DEI交换到的143,184,725USDC来偿还闪电贷款,最终获取差价离场。
通过闪电贷,攻击者能够操纵交易对的状态,并进一步操纵DEUS的预言机价格,以此利用不对等的价值借贷DEI。
ETH,随后将5,446个ETH存入TornadoCash。
https://debank.com/profile/0x701428525cbac59dae7af833f19d9c3aaa2a37cb/history
安全审计可以有效地避免这一风险。
CertiK安全专家建议:如果只有代币合约被审计,这种情况在审计过程中将会指出第三方依赖风险。项目应该避免直接从交易对池中获取价格。建议根据项目的逻辑,使用更值得信任的预言机:
1.使用多个可靠的链上价格预言机来源,例如Chainlink和Band协议。
2.使用时间加权平均价格。TWAP代表了一个代币在特定时间范围内的平均价格。因此如果攻击者仅操纵一个区块的价格并不会对平均价格产生太大的影响。
3.如果合约模式允许,将函数调用者限制在一个非合约/EOA地址。
4.闪电贷款只允许用户在一次交易中进行借贷。如果合约用例允许,可强制关键交易至少跨越两个区块。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。