火星链 火星链
Ctrl+D收藏火星链

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

作者:

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

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

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

NFT市场SuperRare与圣莫尼卡艺术博物馆达成合作:金色财经报道,据SuperRare在其官方社交媒体账号披露,该NFT市场已与圣莫尼卡艺术博物馆达成合作,后者将展出7位SuperRare艺术家的NFT作品。另据Dapprader最新数据显示,当前SuperRare交易总额达到2.36亿美元,交易量超过2.5万笔。[2023/2/18 12:14:41]

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

开源跨链NFT协议Rarible与rektguy系列NFT合作:7月8日消息,开源跨链NFT协议Rarible宣布,与rektguy系列NFT达成合作,已推出rektguy在Rarible平台的专属0交易费用市场。开源跨链NFT协议Rarible已将其推特头像设为rektguy NFT。[2022/7/8 1:59:36]

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

数据:NFT交易平台LooksRare昨日交易量达29027 ETH:5月2日消息,据Dune数据显示,NFT交易平台LooksRare昨日交易量达29027 ETH,其中版税大于0的交易量达28361 ETH,价值超8000万美元,创历史新高。真实交易量占总交易量的98%。

据此前消息,NFT交易平台LooksRare已上线挂单奖励。NFT创作者和交易者可以通过LooksRare上的NFT挂单来获得LOOKS代币,也为买家提供大量的流动性。交易者每隔10分钟就会收到其符合条件挂单的积分,这些积分每天都会被转换为LOOKS分发给用户。[2022/5/2 2:45:00]

LooksRare 10天成交额超47亿美元,超OpenSea30天交易额:金色财经报道,据DappRadar数据显示,新兴的NFT市场 LooksRare 自1月10日成立以来 10 天内成交额达 47.2 亿美元,排名第一。

OpenSea 近30日交易额为38.1亿美元,排名第二。

此前报道,1月10日,NFT市场LooksRare宣布正式上线并向用户发放LOOKS代币空投。[2022/1/21 9:02:46]

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

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

BiKi平台RARE连续5日上涨 累计涨幅628.02%:据BiKi行情数据显示,截止今日20:35( GMT+8),平台内币种RARE连续5日上涨,累计涨幅628.02%,现价5.11USDT。行情波动较大,请注意风险控制。[2021/2/16 17:22:22]

根据官方描述,从 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 充值到 Rari Capital 合约中,此时从 ibETH 获取的比值还是正常的;

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

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

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

[参考链接]

Rari Capital 官方分析:

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

攻击交易(其中一笔):

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

By:yudan@慢雾安全团队

标签:ETHTALRARIARItogetherbnb艾米莉攻略双人互动MORTAL KOMBAT 11RaribleLunarium

火币交易所热门资讯
COI:加密货币庞氏局“女王”:7年揽财 40 多亿美元 非法牟得比特币23万枚

最大的加密货币庞氏局的头目之一,自称"CryptoQueen "的 Ruja Ignatova 及其创立的 OneCoin 未能对涉嫌40亿美元局的加密货币案件作出回应.

1900/1/1 0:00:00
比特币:金色前哨 | 马斯克提议组建比特币挖矿委员会

中国政府近日宣布将打击比特币挖矿和交易,人们担心比特币算力最终也将去中国化,中国将在比特币矿业领域也将是去控制权。现在马斯克正携美国大矿业公司开始谋划布局了。人们的担心或正在成为现实.

1900/1/1 0:00:00
TAL:全球最大加密货币基金:比特币明年达20万美元有依据

全球最大加密货币基金之一Pantera Capital在4月中旬发布了新的投资人信函,其中就以比特币用户量及价格之间的相关性做比较,推得比特币将在明年达到20万美元的水平.

1900/1/1 0:00:00
OMG:5.3午间行情:强势反弹 目标在这

据欧易OKEx的数据显示,当前BTC/USDT现货报价为57800美元,24小时涨幅1.6%。比特币突破日线MA30美金后并没有快速上冲,而是选择在MA30线附近震荡伺机突破.

1900/1/1 0:00:00
TRC:同质化代币和非同质化代币、ERC-20 、ERC-721和ERC-1155的区别

区块链技术的潜力远不止像加密货币这样的数字资产,用户和公司可以将数据(如其个人 ID,证书,公司财产数据,注册数据,房地产数据以及其他有关现实世界资产的信息)放置在区块链网络上.

1900/1/1 0:00:00
稳定币:金色观察丨Diem要做美元稳定币?还是CBDC替身?

金色财经 区块链5月3日讯   最近,Diem协会首席经济学家对如何重新设计其稳定币项目和稳定币货币化计划提供了一些见解.

1900/1/1 0:00:00