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

前言

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

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

分析

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

距离莱特币(LTC)减半剩余约1小时:金色财经报道,数据显示,距离莱特币(LTC)区块奖励减半时间还有约1小时(26个区块),届时区块奖励将从12.5LTC降至6.25LTC。[2023/8/2 16:14:26]

攻击者信息

攻击tx:0x67134b2687945404b7697873a553a8318117dc56004ddaa02d2a6ac85e502e4a

攻击合约:0x05806559f7f7732f2d3e71bca2eb12eab1938ceb

被攻击池信息

USDT池:0xc1b02e52e9512519edf99671931772e452fb4399

上周五硅谷银行倒闭使3.97亿美元资金流入ARKK,创2021年4月以来新高:3月15日消息,据华尔街见闻,上周五硅谷银行的倒闭,致使3.97亿美元资金流入Cathie Wood的ARK创新ETF(ARKK),创多年来新高,这是该基金自2021年4月以来最大规模的资金流入。

据ARK官网,ARKK持有6.21%的Coinbase股票,约4.57亿美元。[2023/3/15 13:05:22]

OKB池:0xd63b340F6e9CCcF0c997c83C8d036fa53B113546

BTCK池:0x33a32f0ad4aa704e28c93ed8ffa61d50d51622a7

数据:全国各地政府对元宇宙相关产品和服务的总招标金额超1.3亿元:10月26日消息,根据不完全统计,截至目前,各地政府对元宇宙相关产品和服务的招标采购共有40余起,类型较集中在会展、智慧空间、数字人、媒体传播和软硬件集成领域,总招标金额超1.3亿元,单笔最高超3000万元。从区域分布来看,沿海地区、经济发达城市项目招标较活跃,主要集中在广东、福建、上海、北京、浙江等地。从项目类型来看,采购项目较为集中在会展、智慧空间、数字人、媒体传播和软硬件集成领域。

截至目前,国内至少10个省市颁布了元宇宙相关的支持性政策或征求意见稿,政策文件名明确包含“元宇宙”一词的就有近20份,其中上海和河南是从省级层面印发的。同时,各地方政府的扶持政策也在逐渐细化,部分实施方案对于元宇宙产业的引入、培育、补贴等事项做出了详细规定。(财联社)[2022/10/26 16:39:16]

ETHK池:0x75dcd2536a5f414b8f90bb7f2f3c015a26dc8c79

Bitfinex分析师:Virtu和高盛的加密举措表明,加密货币将继续存在并成为重要市场:7月8日消息,大约一个月前,高频交易和营销公司Virtu Financial与风险投资机构Paradigm、红杉资本一起,与美国电子交易巨头Citadel Securities合作开发“加密货币交易生态系统”。最近,Virtu Financial也向加密货币市场迈出了一大步。在第二季度财报中,Virtu宣布它在主要加密货币交易场所做市。

另一方面,高盛集团通过ETH相关衍生品增加了面向客户的加密货币产品。高盛首席执行官Doug Cifu分享道,他们在加密货币市场的扩张将继续取得进展。

与此同时,Glassnode透露,加密货币投资者正以“历史上最激进的速度”撤出加密货币交易所。6月份交易所共流出15.1万枚比特币,相当于约30亿美元,截至发稿时,顶级鲸鱼用户的钱包是这些流出资金的主要接受者。

对此,Bitfinex市场分析师表示:“比特币是一种前沿资产类别,为华尔街的交易公司提供了无数机会。Virtu决定在其比特币交易业务中投入更多资源,这表明加密货币不仅会继续存在,而且将不可避免地成为一个非常重要的市场。就在之前,高盛也决定通过与以太坊相关的衍生品扩大其面向客户的加密产品。”(The Coin Republic)[2022/7/8 2:00:42]

攻击流程

合约方面调用流程

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

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-0:941ms