SHA:SharkTeam:BNO攻击事件原理分析

北京时间2023年7月18日,Ocean BNO遭受闪电贷攻击,攻击者已获利约50万美元。

SharkTeam对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。

攻击者地址:

0xa6566574edc60d7b2adbacedb71d5142cf2677fb

攻击合约:

0xd138b9a58d3e5f4be1cd5ec90b66310e241c13cd

数据:受Shapella升级推动,以太坊期权交易量创2022年5月以来新高:3月31日消息,The Block数据显示,在以太坊Shapella升级前,交易员正在对以太坊的价格进行押注。本月以太坊期权月度交易量创2022年5月以来的新高,芝加哥商品交易所(CME)的以太坊期权未平仓合约创历史新高。以太坊的Shapella升级将于北京时间4月13日06:27:35在epoch 194048处激活。[2023/3/31 13:36:28]

被攻击合约:

0xdCA503449899d5649D32175a255A8835A03E4006

攻击交易:

0x33fed54de490797b99b2fc7a159e43af57e9e6bdefc2c2d052dc814cfe0096b9

Coinbase将于以太坊Shapella升级后受理质押ETH提币请求,美国用户或需要缴税:3月16日消息,Coinbase在博客文章中表示,在Shanghai-Capella(Shapella)升级到以太坊网络后的24小时后,Coinbase将开始受理取消质押请求。Coinbase指出,“取消质押的过程由以太坊协议控制,而我们只是一个通道,因此不清楚取消质押所需等候的准确时间。”

美国客户通过需要为升级前和升级后获得的任何奖励缴纳税款。对于持有质押的ETH(ETH2) 或cbETH的美国Coinbase客户,Coinbase将发布任何必需的1099-MISC,包括与这些资产相关的应税活动,这与一般税务指南一致。

此前消息,质押平台Lido表示,预计将等待5月中旬在完成链上代码审计后启动质押的ETH取款,以确保用户安全。[2023/3/16 13:07:13]

攻击流程:

NFT收藏家WhaleShark:WHALE代币在Uniswap上的流动性超过1300万美元:11月13日消息,NFT收藏家WhaleShark发推称,WHALE代币目前的流动性非常高,其在Uniswap上的流动性超过1300万美元。此外,WHALE还将上线Huobi和Gate.io。[2021/11/13 21:49:12]

(1)攻击者(0xa6566574)通过pancakeSwap闪电贷借取286449 枚BNO。

(2)随后调用被攻击合约(0xdCA50344)的stakeNft函数质押两个nft。

Shapeshift首席执行官:如今对比特币一无所知的资产管理公司需要反省:Shapeshift首席执行官Erik Voorhees转发Messari联合创始人Dan McCardle分享的数据,数据显示,在过去十年中,比特币的表现显著优于一切。黄金的回报率为32%,标准普尔500指数(S&P 500)使投资者的投资翻了三倍,而比特币在10年内实现了令人难以置信的7,837,884%的增长。Voorhees认为,比特币“远远优于任何其他投资”。他说:“人们在八年前不理解它是可以原谅的,但如今任何对这一现象一无所知的资产管理公司都需要认真反省。”(Cointelegraph)[2020/12/4 23:05:23]

(3)接着调用被攻击合约(0xdCA50344)的pledge函数质押277856枚BNO币。

(4)调用被攻击合约(0xdCA50344)的emergencyWithdraw函数提取回全部的BNO

(5)然后调用被攻击合约(0xdCA50344)的unstakeNft函数,取回两个质押的nft并收到额外的BNO代币。

(6)循环上述过程,持续获得额外的BNO代币

(7)最后归还闪电贷后将所有的BNO代币换成50.5W个BUSD后获利离场。

本次攻击的根本原因是:被攻击合约(0xdCA50344)中的奖励计算机制和紧急提取函数的交互逻辑出现问题,导致用户在提取本金后可以得到一笔额外的奖励代币。

合约提供emergencyWithdraw函数用于紧急提取代币,并清除了攻击者的allstake总抵押量和rewardDebt总债务量,但并没有清除攻击者的nftAddtion变量,而nftAddition变量也是通过allstake变量计算得到。

而在unstakeNft函数中仍然会计算出用户当前奖励,而在nftAddition变量没有被归零的情况下,pendingFit函数仍然会返回一个额外的BNO奖励值,导致攻击者获得额外的BNO代币。

针对本次攻击事件,我们在开发过程中应遵循以下注意事项:

(1)在进行奖励计算时,校验用户是否提取本金。

(2)项目上线前,需要向第三方专业的审计团队寻求技术帮助。

金色财经

金色荐读

Block unicorn

区块链骑士

金色财经 善欧巴

Foresight News

深潮TechFlow

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

链链资讯

[0:0ms0-1:966ms