木星链 木星链
Ctrl+D收藏木星链
首页 > MATIC > 正文

ETH:Rari 被黑事故分析:开心做聚合 无奈被攻击

作者:

时间:1900/1/1 0:00:00

2021年5月8日,据链闻消息,以太坊收益聚合协议RariCapital因集成了AlphaFinance产生了漏洞,损失近1500万美元。事后,RariCapital官方发布了事故分析报告,分析了此次事故的主要原因。慢雾安全团队在官方分析的基础上,结合慢雾安全团队对此次事件的深入分析,进一步解读本次安全事故的原因。

攻击细节分析

本次攻击发生在RariCapital的RariManger合约中,整个过程下来就是攻击者首先通过闪电贷从dYdX中借出巨量资金,然后不停的重复调用RariManger合约中的deposit和withdraw函数,完成获利。如下图:

LooksRare宣布支持 NFT 创作者可选版税:金色财经报道,LooksRare 加入了越来越多的选择放弃创作者版税的 NFT 市场,该平台宣布已切换到 NFT 创作者的可选版税,并表示将改为将四分之一的协议费用分配给创作者,以试图在关于版税的争论中找到中间立场。相关声明透露,LooksRare 现在将其 2% 协议费用的 25% 分配给创作者,这导致所有收藏品交易的有效版税仅为 0.5%,比大多数人之前看到的要低得多。 (The Block)[2022/10/27 11:49:42]

那么用户是如何通过deposit和withdraw这两个操作获利的呢?我们需要分析对应的函数:

Looks Rare开源Exchange V1智能合约:5月16日消息,NFT市场Looks Rare宣布开源其Exchange V1智能合约,包括核心交易合约、Librarie、目前的管理者合约、执行管理者和策略合约以及版税相关合约。Looks Rare表示,未来Looks Rare将完全开源。[2022/5/17 3:20:37]

LooksRare近7日成交额超30亿美元,是OpenSea3倍多:金色财经报道,新兴的NFT市场LooksRare近7日成交额达34.1亿美元,排名第一。OpenSea近7日成交额10亿美元。

此前报道,1月10日,NFT市场LooksRare宣布正式上线并向用户发放LOOKS代币空投,2021年6月16日至2021年12月16日期间,在OpenSea交易额超3枚(含)ETH用户挂单一枚NFT即可领取。[2022/1/19 8:58:08]

以上是deposit函数的部分逻辑,首先deposit函数本身会调用内部的_depositTo函数,然后会再次调用getFundBalance函数来获取合约的余额。getFundBalance函数最终是会调用到RariController合约的getBalance函数去获取余额。最后是通过RariController合约中的AlphaPoolController库的getBalance函数获取余额。如下图:

NFT市场Rarible与Adob??e合作以保护NFT创作者:金色财经报道,软件巨头Adobe正试图通过将社交媒体个人资料和加密钱包地址链接起来,让NFT创作者更容易证明他们是作品背后的艺术家。NFT市场Rarible宣布将与Adobe合作,允许NFT创作者展示其内容凭证,以验证数字内容的真实性。根据Adobe的说法,这项功能可以将NFT创作者的钱包地址和社交媒体信息添加到在Rarible上列出的代币的内容凭证元数据中,有助于“通过内容的归属和可验证的真实性来打击虚假消息”。Rarible似乎仍然可以选择让NFT创作者保持匿名,让他们选择显示与其在线身份或完整真实社交媒体个人资料相关联的加密地址资料。[2021/10/27 21:00:03]

LaLiga与Sorare合作开发NFT梦幻足球卡牌游戏:金色财经报道,西班牙足球联赛LaLiga已与法国区块链游戏公司Sorare签署独家合作协议,为其所有球员发行不可替代的代币(NFT),西班牙顶级足球联赛LaLiga的每个球员都将成为NFT。西甲俱乐部将从NFT销售中获得特许权使用费,而Sorare已向联盟支付了最低保证,以确保交易的独家性。(Decrypt)[2021/9/9 23:13:40]

流程上略微复杂,用图来展示大概就是下面这样:

从上面的分析不难发现,Rari合约最终是用到了AlphaFinance项目的ibETH合约的totalETH函数获取合约的余额,目的是为了根据totalETH和totalSupply的比值计算出Rari合约真正的ETH余额。deposit函数是根据用户的充值ETH的数量和比值计算要发放给用户的REPT数量,而withdraw函数的公式也大同小异,同样需要通过getBalance函数获取合约的ETH余额并计算比值,然后根据用户的REPT代币的余额和比值计算需要返还给用户的ETH的数量。但是问题恰恰出在这个获取ETH余额的公式上。

根据官方描述,从ibETH合约获取的totalETH函数获取的值是可以被用户操控的。以下是官方原文:

根据官方的描述,用户可通过ibETH合约的work函数操控totalETH函数返回的值,导致Rari整个价值计算公式崩溃。我们分别分析ibETH的work函数和totalETH函数:

totalETH函数:

work函数:

以上分别是ibETH合约中的totalETH函数和work函数的部分实现。不难发现totalETH函数其实就是获取合约的总的ETH的数量。而work函数,本身是一个payable函数,也就是说,用户是可以通过work函数来控制ibETH合约中的ETH数量从而来改变totalETH返回的值的。更糟糕的是,work函数同时还支持调用其他的任意合约。那么整个思路就很清晰了。

攻击流程

1、从dYdX中进行闪电贷,借出大量的ETH;

2、使用一部分的ETH充值到RariCapital合约中,此时从ibETH获取的比值还是正常的;

3、使用剩余的ETH充值到ibETH合约中,调用ibETH合约的work函数,为后续推高ibETH合约的totalETH的返回值做准备;

4、在work函数中同时对RariCapital合约发起提现,由于上一步已经推高totalETH值,但是计算的totalETH()/totalSupply()的值相对于充值时被拉高,从而使攻击者能从RariCapital中使用等量的REPT获取到更多的ETH。

总结

本次分析下来,主要的原因是协议的不兼容问题,攻击者通过闪电贷和重入的方式,攻击了RariCapital,造成了巨大的损失。慢雾安全团队建议在DeFi逐渐趋于复杂的情况下,各DeFi项目在进行协议间交互时,需要做好协议之间的兼容性,避免因协议兼容问题导致的损失。

RariCapital官方分析:

https://medium.com/rari-capital/5-8-2021-rari-ethereum-pool-post-mortem-60aab6a6f8f9

攻击交易(其中一笔):

https://etherscan.io/tx/0x171072422efb5cd461546bfe986017d9b5aa427ff1c07ebe8acc064b13a7b7be

By:yudan@慢雾安全团队

标签:ETHTALRARIARIEthereal对应的情侣名Vital EthereumRARI币Hachiko Charity

MATIC热门资讯
区块链:金色前哨 | 从支付、购买到结算 Visa大举进军加密货币领域

据TheBlock报道,国际支付巨头Visa首席执行官AlfredKelly在财报电话会议上表示,公司正在大举进入加密货币领域.

1900/1/1 0:00:00
以太坊:为什么越来越多的机构投资者开始把以太坊“收入囊中”?

按市值计算的第二大加密货币以太坊这些天不断的创下历史新高,欧洲投资银行发布了价值1.21亿美元的数字债券利好消息,使需求更加的火爆.

1900/1/1 0:00:00
比特币:比特币从矿工钱包中流出量骤降至多月以来的低点,看涨信号?

比特币矿商大多是市场上活跃的卖家,他们清理部分库存,售出比特币兑换法币,以支付电费等日常运营费用。?然而,目前他们似乎正在囤积他们新铸的比特币,他们没有动机以目前的价格兑现.

1900/1/1 0:00:00
CAD:Xcademy:加密经济与视频博主的养成

视频博主是当前受欢迎的自由职业视频在如今社交媒体的普及度方面无须多言,已经是最受欢迎的消费媒体之一,同时也催生了社交视频创作这样的内容创作产业.

1900/1/1 0:00:00
SHI:Sushi 产品介绍 | Kashi:创新杠杆借贷体验的开始

Sushi的Kashi:创新借贷的第一步去中心化平台对杠杆使用有非常大的需求,但直到现在,还没有一个有效的实现方式。现在,Kashi可以满足这个需求.

1900/1/1 0:00:00
NFT:金州勇士队试水NFT,将拍卖大量和球队相关纪念品

近日,NBA金州勇士队在OpenSea上推出了大事记数字收藏集合,将以非同质化代币拍卖大量和球队相关的纪念收藏品。这是该支球队首次试水NFT.

1900/1/1 0:00:00