CHE:Definer预言机攻击事件分析-ODAILY

前言

北京时间12月13日,知道创宇区块链安全实验室关注到针对Definer预言机的攻击事件。

作为第三方区块链安全机构,受Definer、Cherryswap和OEC组成的调查小组邀请参与本次攻击事件的技术调查工作。实验室第一时间启动应急,跟踪本次事件进行分析并出具调查报告。

分析

tx:

https://www.oklink.com/en/oec/tx/0x67134b2687945404b7697873a553a8318117dc56004ddaa02d2a6ac85e502e4a?tab=4

美国SEC与DeFi贷方区块链信贷合作伙伴达成和解:8月9日,美国证券交易委员会 (SEC) 已经解决了第一起针对加密货币行业去中心化金融平台的案件。根据该机构网站上公布的案件,美国证券交易委员会对 DeFi 贷方区块链信贷合作伙伴提出指控。此外,监管机构还指控该公司的高管 Gregory Keough 和 Derek Acree。据称,他们进行了欺诈性发行,使用智能合约出售了超过 3000 万美元的未注册证券。根据美国证券交易委员会的命令,被告出售了未注册的产品:mTokens 和 DMG 治理代币。DeFi 货币市场的销售期为 2020 年 2 月至 2021 年 2 月。 SEC 表示,这家现已解散的公司在没有向投资者适当披露的情况下出售了代币。例如,尽管价格波动,但数字资产仍被出售。这导致产生的收入与欠投资者的金额之间不平衡的风险越来越大。这两名佛罗里达男子既没有承认也没有否认有任何不当行为,而是同意和解。(crypto news flash)[2021/8/9 1:44:23]

攻击者信息

DeFi治理创企Tally融资150万美元,Notation Capital等参投:3月19日消息,专注于DeFi治理的初创公司Tally完成150万美元融资,投资机构包括Notation Capital、Castle Island Ventures、1kx和Lemniscap等。该公司希望建立一个易于使用的治理仪表盘以促进DeFi领域的链上治理,最初将专注于Compound生态系统,同时与许多其他平台合作。除此之外,该项目已经获得来自Uniswap的5万美元赠款。(CoinDesk)[2021/3/19 18:59:21]

攻击tx:0x67134b2687945404b7697873a553a8318117dc56004ddaa02d2a6ac85e502e4a

攻击合约:0x05806559f7f7732f2d3e71bca2eb12eab1938ceb

EthHub联合创始人:Optimism主网软启动标志着DeFi开始迁移到L2:对于今日Optimism基于以太坊的扩展解决方案已在主网软启动,EthHub联合创始人Eric?Conner在推特上评论道,这是以太坊历史上的关键时刻,这标志着DeFi开始迁移到第2层(L2)。[2021/1/16 16:18:33]

被攻击池信息

USDT池:0xc1b02e52e9512519edf99671931772e452fb4399

OKB池:0xd63b340F6e9CCcF0c997c83C8d036fa53B113546

BTCK池:0x33a32f0ad4aa704e28c93ed8ffa61d50d51622a7

加密托管公司Copper推出新工具以链接其存储服务和DeFi应用程序:金色财经报道,加密货币托管公司Copper正在推出新工具CopperConnect,以链接Copper现有的存储服务和DeFi应用程序。根据新闻稿,Copper声称DeFi的风险正在降低,这使得该投机领域对机构客户更具吸引力。[2020/11/28 22:24:06]

ETHK池:0x75dcd2536a5f414b8f90bb7f2f3c015a26dc8c79

攻击流程

合约方面调用流程

1、攻击合约0x058065调用CherrySwap的FlashSwap功能进行闪电贷,贷出了CHE/OKB池子中几乎全部的CHE。此时池子仅剩极少量CHE

Chainlink创始人:DeFi只占数字加密货币市场总值的2.5%:8月30日,Chainlink创始人Sergey Nazarov表示,DeFi是智能合约和预言机的合体。智能合约发展潜力巨大,用途广泛,在DeFi中有着极强的吸引力。如今有超过80亿美元被锁定在DeFi智能合约中,尽管如此,DeFi仍只占整个数字加密货币总值的2.5%,剩余的智能合约市场有万亿美元规模。[2020/8/30]

2、抵押给Definer借款来的1000个CHE,Definer预言机计算价格依赖CherrySwap池中两种代币的余额比例,导致Definer预言机计算1000个CHE价格失准,1000个CHE的价值被认为极大值。

3、攻击者借出USDT池子约462,318个USDT

4、攻击者借出OKB池子约37,172个OKB

5、攻击者借出BTCK池子约3个BTCK

6、攻击者借出ETHK池子约8个ETHK

7、攻击者通过CherrySwap的CHE/USDT池子利用10,000个USDT换出30,765个CHE

8、归还CherrySwap闪电贷1,575,093个CHE

漏洞细节

根据Definer各合约部署地址(https://docs.definer.org/deployed-contracts/addresses),由于预言机实现过程通过CherrySwap池子的两个Token在池子的余额来判断价格:

预言机实现过程中没有考虑到闪电贷贷出时余额大量减少的情况,导致了Definer项目方预言机计算失准,从而导致了该事件。

以USDT池子为例:

从具体Transaction中我们跟进到SavingAccount合约的逻辑合约0xc1b02e52e9512519edf99671931772e452fb4399#priceFromAddress

在该函数中使用AggregatorInterface(tokenInfo.chainLinkOracle)的预言机来询价

排查获取AggregatorInterface中具体调用地址发现,其映射变量位于TokenRegistry合约:

而TokenRegistry的合约部署地址根据官方的deployed-contracts/addresses可知位于0x0E16Ada9C4Cf95d6722c65504555124A241DdA81

在该地址通过对CHE代币地址0x8179d97eb6488860d816e3ecafe694a4153f216c查询得到对应使用的预言机:

该地址即为存在漏洞的预言机地址:

总结

本次事件是由于Definer在OEC对于预言机的实现存在问题,使用了单一流动池在一个时间点的池内代币余额作为价格源从而导致了事故的发生,而以太坊的实现则使用了ChainLink的预言机不存在该问题。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:15ms0-1:198ms