BSC币安智能链上四次闪电贷攻击

知帆科技 閱讀 60 2021-6-18 18:51
分享至
微信掃一掃,打開網頁後點擊屏幕右上角分享按鈕

BSC币安智能链上四次闪电贷攻击

在2021年5月份短短20余天,BSC币安智能链上发生四次闪电贷攻击套利事件,总共损失资金远超7800万美金。四次攻击事件的手法和原理均有相似之处,知帆科技将总结对比四次事件的攻击原理和手法,希望广大项目方和用户提高警惕。

在开始分析BSC链上安全事件之前,需要了解一些基本概念,比如闪电贷的含义、Defi项目的盈利模式等。

闪电贷是什么

闪电贷就是在一笔链上交易中完成借款和还款,无需抵押。由于一笔链上交易可以包含多种操作,使得开发者可以在借款和还款之间加入其它链上操作,使得这样的借贷多了很多想象空间,也变得具有意义。闪电贷的功能是确保用户无需抵押来实现借还款,并且如果资金没有返还,那么交易会被还原,即撤消之前执行的所有操作,从而确保协议和资金的安全。

Defi项目的盈利模式

此处以PancakeSwap为例说明。PancakeSwap是币安链上的自动化做市商(AMM)平台,用户可以通过该平台交易数字资产,但是跟传统交易模式不一样的是,用户的交易对象是流动性资金池。这些资金池中聚积着其他用户的资金。用户将资金注入池中,接收来自流动性供应商(即“LP”)的代币。然后,他们可以使用这些代币换回自己的资金份额并赚取部分交易费用。简而言之,用户可以在该平台交易代币,也可以通过添加流动性来获得奖励。

1、分析目的

梳理事件发生原因

总结黑客攻击手法

对项目方和用户的安全提示

2、事件分析

AutoShark Finance

北京时间2021年5 月 25 日,币安链(BSC)DeFi 协议AutoShark Finance 受到闪电贷攻击。

黑客铸造了1亿枚SHARK代币并短时间大量出售,造成SHARK价格闪崩,从1.2美元快速跌至0.01美元。资金池中所有用户的资金还是安全的,这次攻击也没有造成项目方资金损失。

黑客利用项目中的 WBNB/SHARK 策略池中的 getReward 函数漏洞(添加流动性的余额计算有误),从而利用SharkMinter 合约铸造出了大量的 SHARK 代币获利。

黑客首先从Pancake 借出大量 WBNB,在AutoShark SHARK/WBNB池中兑换出大量的SHARK,把两种代币打入SharkMinter合约,同时池中 WBNB 的数量增多。合约误以为攻击者打入了巨量的手续费到合约中,并且由于WBNB 数量非常多,导致合约计算出错误的 LP 价值。

合约最后在统计黑客的贡献的时候计算出了一个非常大的值,导致 SharkMinter 合约给攻击者铸出了大量的 SHARK 代币。

BSC币安智能链上四次闪电贷攻击

AutoShark 被攻击交易截图

Bogged Finance 团队因闪电贷攻击损失 362 万美元

北京时间2021年5 月 22 日,知帆科技跟踪发现币安链(BSC)DeFi 协议 Bogged Finance 受到黑客攻击,具体表现为黑客对 BOG 代币合约代码中_txBurn函数的逻辑错误进行闪电贷套利攻击

在BOG合约代码中,本应对所有交易收取 5% 的交易额作为交易费用,同时允许向自己转账,在自我转账的过程中,仅扣除1%手续费。

然而,在此次攻击中,攻击者通过闪电贷加大质押的金额,再利用合约对自我转账类型的交易审核偏差(在_transferFrom 函数中未校验转账地址)来添加大量流动性进行流动性挖矿,并且反复自我转账获利,最终移除流动性从而完成攻击过程。

BSC币安智能链上四次闪电贷攻击

Bogged Finance 被攻击交易截图

PancakeBunny闪电攻击损失 4,500 多万美元

PancakeBunny 是与 BSC 链上 TVL 最大的去中心化交易所 PancakeSwap 相关的收益聚合器

北京时间2021年5月20日,知帆科技跟踪发现攻击者利用合约漏洞,从PancakeSwap和ForTube流动性池中闪电贷借到大额资金,不断加大BNB-BUNNY池中的BNB数量,之后在bunnyMinterV2合约中,铸造大约700万个BUNNY代币,部分换成BNB偿还闪电贷后,还有盈利69.7万枚BUNNY和11.4万枚BNB。

BSC币安智能链上四次闪电贷攻击

PancakeBunny 被攻击交易截图

Spartan Protocol被攻击损失约3000万美金

北京时间2021年5月2日,DeFi项目Spartan遭到黑客的闪电贷攻击。SpartanSwap 应用了 THORCHAIN 的 AMM 算法。

此算法采用流动性敏感资费(Liquidity-sensitive fee)来解决流动性冷启动以及滑点问题,但是该算法存在漏洞。

黑客也像前几次闪电贷攻击一样,首先从 PancakeSwap 中借出 WBNB,然后将 WBNB 兑换成 SPARTAN存入流动池换取LP token。

在移除流动性时会通过池子中实时的代币数量来计算用户的 LP 可获得多少对应的代币,由于算法漏洞(移除流动性时没有滑点修正机制),此时会获得比添加流动性时更多的代币,所以黑客只需重复添加再移除流动性就可获得多余代币盈利。

BSC币安智能链上四次闪电贷攻击

Spartan Protocol被攻击交易截图

3、总结BSC链上攻击手法

黑客通过BSC闪电贷平台(PancakeSwap)筹款

布置自动化合约进行BNB和平台代币的兑换

将代币打入平台合约池中获得LP 代币奖励

返还借来的闪电贷资金

通过跨链桥平台(Nerve)将所获资产快速转移至以太坊

第一步:黑客从借贷平台获取大额资金

第二步:部署自动化攻击合约攻击交易所价格预言机

第三步:通过代币价格差异获得套利空间

第四步:返还闪电贷资金

第五步:把利润做跨链转移到以太坊,防止被追踪

4、安全提示

由上述分析得知,黑客从项目方逻辑漏洞着手来获取利益是非常常见的手段。每次有新的平台被攻击时,其他平台管理者更应该提高警惕,第一时间检查复盘自己的代码有没有相同或类似的漏洞,从而保障自己的口碑和资金安全

btcfans公众号

微信掃描關注公眾號,及時掌握新動向

來源鏈接
免責聲明:
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
上一篇:传说比特币4·15大反弹?50%经济学家认为它不值1000美元! 下一篇:浅谈虚拟货币追踪

相關資訊