CertiK:Based智能合约出现漏洞,重新部署其一号池事件分析_BASED:TIK

“亡羊补牢,为时未晚”,这句话在生活中的大部分时候均适用。然而,在面临网络安全时,牢破也许就会造成无法挽回的损失。在安全问题未造成不可弥补的损失前就被发现,或是一开始便做好万全准备,才是身为区块链从业者的安全第一要义。北京时间8月14日下午,CertiK安全技术团队发现DeFi匿名耕种项目Based官方宣布有攻击者通过调用Based智能合约中的某一个函数,将一号池冻结,同时宣布将重新部署其一号池。官方发布推特称,有黑客试图将“Pool1”永久冻结,但尝试失败。而“Pool1”将继续按计划进行。CertiK通过分析该智能合约,认为这次冻结Based项目一号池事件,是一次由于存在智能合约漏洞导致的事故。

Balancer:建议用户提现并将流动性迁移至非Boost版本:金色财经报道,Balancer发布推文称,建议Avalanche LST提供者、BENQI、Yield Yak、GoGoPool用户提现并将流动性迁移至非Boost版本,这些池已暂停且安全。但是,这些池将保持暂停状态,建议用户尽快迁移。Balancer UI 将通知所有用户是否在受影响的 LP 中持有流动性,并提供分步提款说明。[2023/8/24 18:18:27]

eBay收购数字ID认证公司Certilogo:金色财经报道,eBay今天宣布已完成对Certilogo的收购,Certilogo是一家提供人工智能驱动的服装和时尚商品数字ID和身份验证的公司。该交易的财务条款并未披露。这家总部位于米兰的公司将继续由首席执行官Michele Casucci领导。[2023/7/12 10:49:32]

事件经过

Based团队部署一号池智能合约,部署地址为0x77caF750cC58C148D47fD52DdDe43575AA179d1f。Based官方通过调用智能合约中的renounceOwnership函数来声明智能合约所有者,但未进行智能合约初始化。由于在Based智能合约中initialize函数被错误的设置为可以被外部调用,因此造成在初始化智能合约过程中,一号池的智能合约被外部攻击者用错误的值初始化。错误的初始化造成Based官方无法再次初始化一号池的智能合约,因此造成一号池被冻结,任何质押行为都无法完成。Based官方决定放弃该智能合约,重新部署一号池智能合约。智能合约技术细节

新加坡金管局公布最新国际技术咨询委员会成员,CertiK联创受邀加盟:金色财经报道,新加坡金融管理局(MAS)于近日公布了最新国际技术咨询委员会委员。新加坡金融管理局(MAS)成立于1971年,其职能综合了对于货币、银行、证券、保险诸多金融领域及部门的管理和监管。据悉,该委员会成立于2016年,由世界顶级金融机构的首席创新科学家、金融科技企业领导者、风险资本家以及技术和创新领域的领袖组成,旨在为金融科技的国际发展以及新加坡如何利用新技术来加强金融服务提供建议。

本届新任15位成员均为行业领军人物,除了微软、万事达、摩根大通、亚马逊、伦敦证交所组织机构等高管,Web3.0领域内的安全专家——CertiK联合创始人顾荣辉教授也受邀加盟。这也是继香港成立Web3.0发展专责小组后又一引入Web3.0业内领军人物加入咨询小组的政府行为。[2023/7/3 22:14:25]

1.Based团队在部署智能合约后,没有及时的调用下图的initialize函数来初始化智能合约的设置:

dHEDGE完成治理代币DHT拍卖 将在Balancer上开启流动性挖矿:9月20日,基于Synthetix生态的资产管理交易协议dHEDGE官方宣布,已完成其治理代币DHT拍卖。此后,dHEDGE将开启Balancer流动性池激励计划,将以拍卖会上剩余的500,000个DHT作为挖矿激励,在Balancer上创建DHT池。此前消息,dHEDGE(DHT)已上线火币、OKEx交易所。[2020/9/20]

2.外部调用者利用Based团队在部署和初始化智能合约之间的时间差,乘机调用了下图中671行被错误设置调用范围的initialize函数,抢先初始化了一号池的智能合约:

3.上图两个initialize函数都是由initializer的修饰符修饰。根据其中代码,如果调用了其中一个initialize函数,另外一个initialize函数就无法被调用。initializer修饰符代码如下图所示,这造成了Based官方失去了初始化函数的机会:

4.综上因素,Based智能合约无法被官方正确初始化,因此任何质押行为都无法进行。质押失败的交易记录:

如何避免事件发生

该次事件本质上是由智能合约漏洞导致的,但如果Based团队提早注意到这个漏洞,提前初始化智能合约,可以完全规避这次危险,避免一号池被冻结。因此,CertiK安全技术团队提出如下建议:部署智能合约时应准备好初始化智能合约所需要的命令脚本等工具,及时初始化智能合约,避免攻击者利用部署操作和初始化操作之间的时间差抢先初始化或者操纵智能合约。了解智能合约的运行原理和技术细节,不要盲目的采用其他的智能合约代码。邀请专业的安全团队对其智能合约进行审计,保证智能合约的安全性和可靠性。我们绝不仅仅是寻找漏洞,而是要消除哪怕只有0.00000000001%被攻击的可能性。

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

金宝趣谈

[0:15ms0-4:262ms