损失8800万美元,加密协议BonqDAO被攻击事件分析

Beosin
Beosin 机构得得号

Feb 02, 2023 Beosin是总部位于新加坡的全球知名区块链安全公司,为区块链生态提供代码安全审计,安全风险监控、预警与阻断,虚拟资产被盗追回,KYT/AML等“一站式”安全产品+服务,已为全球2000多个区块链企业服务,保护客户资产5000多亿美元。

摘要: 在开发智能合约时,应使用值得信任的价格预言机,并且制定当预言机被操控情况下紧急抢救方案。

2023年2月2日, 据成都链安鹰眼安全风险监控、预警与阻断平台监测显示,加密协议BonqDAO和AllianceBlock遭到价格操控攻击,成都链安安全团队分析发现,攻击原因为攻击者提高了 ALBT 价格并铸造了大量 BEUR代币,然后在 Uniswap 上将 BEUR 换成其他代币,然后ALBT价格下降到几乎为零,这进一步引发了 ALBT 宝库的清算,造成损失约 8800 万美元。

BonqDAO官方也发布公告证实了本次攻击。



攻击发生之后,攻击者将一部分换成ETH和DAI,仍然还有大部分资金为BEUR代币。目前资金保留在黑客地址中(0xcacf2d28b2a5309e099f0c6e8c60ec3ddf656642)。

本次攻击事件攻击者共进行了两种方式的攻击,一种是控制价格大量借出代币,另一种是控制价格清算他人财产从而获利。本文以第一种攻击方式进行分析:

#事件相关信息
攻击者交易:0x31957ecc43774d19f54d9968e95c69c882468b46860f921668f2c55fadd51b19攻击者地址:0xcacf2d28b2a5309e099f0c6e8c60ec3ddf656642攻击者合约地址:0xed596991ac5f1aa1858da66c67f7cfa76e54b5f1

#攻击流程分析


1、首先,攻击者调用TellorFlex合约的depositStake函数,存入10个TRB代币,我们可以看如下图中,stakeAmount值正是10*10^18,我们接着往下看攻击者做了什么操作。 
2、接下来,攻击者调用TellorFlex合约的submitValue函数,提交WALBT代币价格更改请求,可以看到,该函数判断调用者的抵押额度是否达到预先设置的stakeAmount值,该值在上一步已经得知是10*10^18,这也是为什么攻击者需要先抵押10个TRB代币的原因(10^18为小数点)。 

该函数会记录调用者提交的价格,此处为5000000000000000000000000000。 


3、价格设置完成之后,攻击者调用Bonq合约的createTrove函数,创建trove(0x4248FD)合约,该合约是一个拥有数据记录、借贷、清算等功能的合约。接下来,攻击者向该合约中抵押了0.1个WALBT代币,并利用这0.1个WALBT代币进行借款操作。


4、正常来说,借款额度应该是小于0.1个WALBT的价格,从而保证抵押率维持在一个安全的范围,但是在本合约的借贷过程中,计算抵押物价值的方式是通过TellorFlex合约来进行实现的,如下图(返回结果与第二步设置数据相同)。而在上一步中我们得知,攻击者已经把WALBT价格拉得异常高,导致攻击者在本次借款中,借出了1亿枚BEUR代币。 

5、既然在上面的操作中价格能设置得异常高,那同样能设置得异常低,那攻击者第二笔交易将WALBT价格设置得异常低能用来干什么呢,下面简单描述一下。

6、当WALBT价格异常低时,其他用户所抵押的WALBT代币抵押率将达到清算的程度,而攻击者便可对其进行清算,使用少量的成本便能将其他用户所抵押的WALBT代币清算出来,最终获得约1.14亿枚WALBT。


 

#总结

针对本次安全事件,成都链安建议:

在开发智能合约时,应使用值得信任的价格预言机,并且制定当预言机被操控情况下紧急抢救方案。

作为一家致力于区块链安全生态建设的全球领先区块链安全公司,也是最早将形式化验证技术应用到区块链安全的公司,成都链安目前已与国内外头部区块链企业建立了深度合作;为全球3000多份智能合约、多个区块链平台和落地应用系统提供了安全审计与防御部署服务。成都链安同时具备全链条打击虚拟货币犯罪和反洗钱技术服务能力,为公安等执法部门提供案件前、中、后期全链条技术支持服务千余次,包括数起进入混币器平台Tornado Cash的案件,成功协助破获案件总涉案金额数百亿。欢迎点击公众号留言框,与我们联系。

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 Beosin 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信