查看原文
其他

开年最大黑客事件,损失8800万美元,加密协议BonqDAO被攻击事件分析

Beosin 2023-02-07
202322日, 据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,加密协议BonqDAOAllianceBlock遭到价格操控攻击,Beosin安全团队分析发现,攻击原因为攻击者提高了 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。

 

#总结


针对本次安全事件,Beosin建议:

1. 在开发智能合约时,应使用值得信任的价格预言机,并且制定当预言机被操控情况下紧急抢救方案。2. 项目上线前,建议选择专业的安全审计公司进行全面的安全审计,规避安全风险

Beosin作为一家全球领先的区块链安全公司,在全球10多个国家和地区设立了分部,业务涵盖项目上线前的代码安全审计、项目运行时的安全风险监控、预警与阻断、虚拟货币被盗资产追回、安全合规KYT/AML等“一站式”区块链安全产品+服务,目前已为全球2000多个区块链企业提供安全技术服务,审计智能合约超过3000份,保护客户资产高达5000多亿美元。欢迎点击公众号留言框,与我们联系。

🕹
 近期热点文章阅读:
Beosin2022年全球Web3区块链安全年报
加密大V遭遇木马病毒大额资产为何被盗?
以太坊上海升级哪些细节值得你关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存