月亮链 月亮链
Ctrl+D收藏月亮链

AVE:Aave经历惊魂一刻,这个漏洞差点酿成一场危机_Metaverse Face

作者:

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

注:今日,DeFi安全审计公司TrailofBits披露了Aave借贷协议此前存在的一个严重漏洞,在发现到该问题后,Aave迅速修复了该漏洞,从而避免了一场危机。

原文来自TrailofBits:

12月3日,知名DeFi借贷协议Aave部署了V2版本,尽管我们并没有被雇佣来查看其代码,但在次日,我们还是对其进行了简单审查。很快,我们就发现了一个影响AaveV1和V2版本合约的漏洞,并报告了该问题。在将我们的分析发送给Aave的一小时内,他们的团队修复了该漏洞,以减轻潜在影响。如果该漏洞被利用,这一问题将破坏Aave,并影响外部DeFi合约中的资金。

据悉,有5家不同的安全公司审查了Aave代码库,其中有一些使用了形式化验证。然而,这个漏洞并没有被这些公司注意到。这篇文章描述了这一问题,以及“该漏洞是如何逃过检测”等其它的一些经验教训。此外,我们也在开发一种新的Slither检测器,它可以识别这一漏洞,从而为以太坊社区提高安全性。

漏洞

Aave使用了delegatecall代理模式,这一点我们在过去的文章中已经详细讨论过了。简单来看,每个组件被分成了两个合约:包含实现的逻辑合约,包含数据并使用delegatecall与逻辑合约进行交互的代理。在逻辑合约上执行代码时,用户与代理合约进行交互。这是delegatecall代理模式的简化表示:

dYdX在Cosmos上推出公共测试网:金色财经报道,去中心化交易所(DEX)dYdX已在Cosmos上启动了其公共测试网络,距离从以太坊上构建的当前版本的过渡更近了。用户现在可以在dYdX测试网上下市价订单、生成私钥并使用高级选项下限价订单。公共测试网已推出比特币和以太坊市场,但该公司表示,预计随着网络升级,最终将涵盖约30多个市场。

据该公司网站称,以其永续合约而闻名的以太坊现有平台在过去24小时内的交易量已超过7.28亿美元。该平台的治理代币DYDX在过去两周稳步上涨,涨幅达23%。[2023/7/6 22:20:03]

在Aave中,LendingPool是使用delegatecall代理的可升级组件。

而我们发现的漏洞依赖于这些合约中的两个功能:

可以直接调用逻辑合约的函数,包括初始化函数;

借贷池具有其自己的delegatecall功能;

1

初始化可升级合约

这种可升级模式的一个限制是,代理不能依赖逻辑合约的构造函数进行初始化。因此,状态变量和初始设置必须在公共初始化函数中执行。

EigenLayer将增加LST上限,第三季度将上线Operator测试网:7月1日消息,以太坊再质押协议EigenLayer宣布将增加流动性质押代币(LST)的上限,不过相关协议参数更改还须获得多重签名治理系统的批准。EigenLayer操作多重签名通过时间锁执行例行升级和维护,对所有安全关键操作强制执行至少10天的延迟,这也意味着,7月10日之后Operations多签可以取消上限。EigenLayer预计将在7月10日当周提高LST上限。届时,LST上限(包括rETH、stETH和cbETH)将增加到15,000个代币(每类LST),没有个人存款限制。一旦所有LST存款的总和达到3万枚代币,将启动暂停LST再质押。

EigenLayer表示,随着LST上限的增加,将探索EigenLayer路线图的下一步。重点仍然是增强再质押体验,同时确保安全性和去中心化。具体计划是,第三季度上线Operator测试网,第四季度上线主动验证服务(AVS)测试网,预计2024年第一季度上线AVS主网。[2023/7/1 22:12:06]

在LendingPool中,初始化函数设置提供者地址:

本周绿地元宇宙指数跑赢沪深300,相对收益为2.74%:金色财经报道,本周绿地元宇宙指数G-Meta Index最高5086.9点,周三收于4894.1点,较上周五上涨0.23%;同期沪深300下跌2.51%、创业板指数下跌2.57%。本周伊始,元宇宙板块延续6月以来的涨势,并突破指数全周期的最高点,实现相对2022年初的正收益;端午节前一交易日,市场普遍收跌,元宇宙板块也出现较大回调。本周绿地元宇宙指数跑赢沪深300,相对收益为2.74%。

该指数包含从AR/VR产业链、智慧城市、智慧家庭、人工智能、区块链等元宇宙子板块中精选出的30只A股和3只H股,构成代表国内元宇宙产业板块的成分股。[2023/6/26 22:00:00]

initializer调节器防止多次调用initialize,它要求满足以下条件为true:

以下:

初始化允许在相同交易中多次调用调节器;

isConstructor是代理执行代码所需的;

revision>lastInitializedRevision允许在合约升级时再次调用初始化函数;

XRP前十大巨鲸已控制超70%的Token供应量:9月12日消息,截至9月12日,XRP前10大巨鲸控制的Token数量已经占到总供应量的73%,而前20大巨鲸控制的Token数量占到总供应量的75.35%。在交易平台方面,38.5%的XRP在Binance上,其中一个最富有的XRP地址拥有99,879,936枚XRP。(CoinCarp)[2022/9/12 13:24:44]

虽然它通过代理,预期可正常工作,但是也允许任何人直接在逻辑合约上调用initialize函数。一旦逻辑合约被部署:

revision将为0x2(LendingPool.sol#L56);

lastInitializedRevision将为0x0;

而漏洞是:任何人都可以在LendingPool逻辑合约中设置_addressesProvider。

2

任意delegatecall

LendingPool.liquidationCall直接委托调用由_addressProvider返回的地址:

彭博分析师:在通货膨胀消退后,比特币将成为最好的资产之一:6月4日消息,Bloomberg Intelligence高级大宗商品策略师Mike McGlone在接受Kitco News采访时表示,一旦风险资产的熊市消退,估值再次回升,加密货币的表现将优于所有其他资产类别。

此前McGlone曾表示,到2025年比特币价格有望达到10万美元。当被问及如何让投资者走出加密冬天以及需要发生什么才能引发反弹时,他表示,“我认为将会发生的是大逆转才刚刚开始。这可能就像1929年(股灾)的余波,我认为它会像2008年的余波,可能就像1987年市场崩溃之后那样姗姗来迟。大多数人一生中40年一遇的最大通胀才刚刚开始。”

McGlone补充道,“一旦我们度过这段时期,我认为比特币将会被认为是地球上最好的资产之一。这是我的基本预期,我不知道结果如何,所以我认为我预期的前景是,我认为一些最好的资产将是黄金、美国长期债券和比特币,我认为我们将回到通缩状态。”(Finbold)[2022/6/4 4:02:25]

这允许任何人启动LendingPool逻辑合约,设置受控地址提供者,并执行任意代码,包括selfdestruct。

利用漏洞的场景:任何人都可以破坏借贷池逻辑合约。下面是一个简化的视觉表示:

3

缺乏存在检查

就问题本身而言,已经是很严重了,因为任何人都可以破坏逻辑合约,并阻止代理执行借贷池代码。

然而,在代理合约中使用OpenZeppelin会加剧这一问题的严重性。

我们在2018年撰写的一篇博客文章中强调,没有代码的合约委托调用能在不执行任何代码的情况下返回成功。尽管我们最初发出警告,但OpenZeppelin并未在其代理合约中修复回退函数:

如果代理委托调用了一个已破坏的借贷池逻辑合约,则代理将返回成功,而不会执行任何代码。

由于Aave可以更新代理以指向另一个逻辑合约,因此这种漏洞利用不会持久。但在可利用此漏洞的时间范围内,任何调用该借贷池的第三方合约,都将表现为某些代码已被执行,但实际却并未执行。这将打破很多外部合约的基本逻辑。

4

受影响的合约

所有AToken:AToken.redeem调用pool.redeemUnderlying(AToken.sol#L255-L260)。由于调用什么也不做,用户将烧掉他们的AToken,而不会收到他们的底层资产;

WETHGateway(WETHGateway.sol#L103-L111):存款会存储在网关中,然后任何人都可以窃取存款资产;

任何基于Aave信用委托v2的代码库(MyV2CreditDelegation.sol);

如果我们发现的问题被利用,则Aave之外的很多合约都会受到各种方式的影响。确定一份完整的名单是困难的,我们没有试图这样做。这一事件凸显了DeFi可组合性的潜在风险,以下是我们找到的一些受影响的合约:

DefiSaverv1(AaveSaverProxy.sol)

DefiSaverv2(AaveSaverProxyV2.sol)

PieDao–pieoven(InterestingRecipe.sol#L66)

5

修复及建议

幸运的是,在我们报告这个漏洞之前,还没有人利用它。Aave对其两个版本的借贷池调用了initialize函数,从而保证了合约的安全:

LendingPoolV1:0x017788dded30fdd859d295b90d4e41a19393f423?修复时间:2020年12月4日07:34:26PM+UTC

LendingPoolV2:0x987115c38fd9fd2aa2c6f1718451d167c13a3186?修复时间:2020年12月4日07:53:00PM+UTC

长期而言,合约部署者应:

在所有逻辑合约中添加一个构造函数以使initialize函数无效;

检查delegatecall代理fallback函数中是否存在合约;

仔细检查delegatecall陷阱,并使用slither-check-upgradeability;

6

形式化验证合约并不是防弹的

Aave的代码库经过了形式化验证,区块链领域的一个趋势是,人们会认为安全特性是圣杯。用户可能会尝试根据这些特性的存在与否,对各种合约的安全性进行排序。我们认为这是危险的,它会导致错误的安全感。

Aave形式化验证报告列出了LendingPool视图函数以及池操作的属性。例如,已验证的属性之一是:

然而,如果逻辑合约遭到破坏,则该属性可能会被破坏。那如何才能对此进行验证?虽然我们无法访问定理证明或所使用的设置,但很可能证明proof没有考虑可升级性,或者prover不支持复杂的合约交互。

这在代码验证中是很常见的。你可以通过对整体行为的假设来证明目标组件中的行为,但是在多合约设置中证明属性是具有挑战性和耗时的,因此必须进行权衡。

形式化验证技术很棒,但是用户必须意识到它们覆盖范围很小,并且可能会错过攻击媒介。另一方面,自动化工具和人工审查可帮助开发人员以较少的资源来提升代码库的安全性。了解每种解决方案的优点和局限性,对开发人员和用户而言都至关重要。当前的问题就是一个很好的例子,Slither可以在几秒钟内发现这个问题,受过训练的专家可能会很快指出它,而要用安全特性来检测,则需要付出很大的精力。

总结

Aave做出了积极反应,并在发现问题后迅速修复了该漏洞。危机避免了,但最近遭受黑客攻击的其他受害者却没有那么幸运。在部署代码并将其暴露于对抗性环境之前,我们建议开发者:

查看这里的检查表和训练;

将Slither添加到你的持续集成管道中并调查其所有报告;

给安全公司适当的时间来审查你的系统;

请注意可升级性,至少请审查合约升级反模式,合约迁移的工作方式,以及使用OpenZeppelin的可升级性;

我们希望通过分享此信息以及与此问题相关的Slither检测器来防止类似的错误。

10月,“巴比特DeFi投资实战班”首次在深圳开班,全国近50位学员前往学习。接下来,12月北京、1月杭州,我们相约defi线下课,报名正式启动!

标签:AVEAAVEINGGATMetaverse FaceAave SNXbiking交易所有问题吗gate.io怎么提现人民币

芝麻开门交易所热门资讯
API:左肩和右肩的形成_HAPI

头肩底不一定是大底,在调整中也可能出现头肩底走势,你把K线图调整成1小时K线30分钟K线甚至分时图上都会出现头肩底走势,它可以出现在任何一个阶段的底部.

1900/1/1 0:00:00
EST:NEST VS Chainlink:多角度实证对比分析_LINK

撰文|区块链金融分析师.Matlif出品|NEST爱好者已获作者授权发布引言:价格预言机是去中心化金融发展中不可或缺的基础设施之一,让区块链本身和非区块链世界进行信息交互.

1900/1/1 0:00:00
区块链:DBLend亮相中国国际金融论坛 迎接数字经济时代_DLEGENDS

12月17日,DiBi?Global交易平台执行总裁兼DeFi借贷平台DBLend项目战略顾问王洪刚先生应邀参加第十七届中国国际金融论坛,探讨区块链技术创新应用与数字金融发展.

1900/1/1 0:00:00
Aptos:金融论币:12-16 晚间 BTC 行情操作分析_AZERO币

前言:领导人不学习,不加强修养,不仅缺心,而且缺德,最笨的人就是出色的完成了根本不需要干的事,最愚蠢的人,就是用他的聪明才智努力犯错误的人,最缺德的人.

1900/1/1 0:00:00
BTC:分析分析绿瘦家的代餐哪个比较好?_DecaSwap

作为绿瘦家产品的忠实爱好者,我已经靠绿瘦减了好多斤了,可以说,也算是减肥达人了。一开始接触绿瘦是因为朋友推荐,因为我一直都在减肥的路上各种失败,朋友都看不下去了,就说要不试试减肥产品吧,然后给我.

1900/1/1 0:00:00
ETH:币圈分析豆先生-12月17日避险需求大增是近期大涨重要推手_ITF

央视报道比特币价格创历史新高避险需求大增是近期大涨重要推手12月17日,CCTV-2《正点财经》栏目报道称,北京时间今天比特币价格首次突破2.1万美元关口,彻底从三年的熊市中复苏并创下历史新高.

1900/1/1 0:00:00