重入攻击如何防范?—OMNI被攻击事件分析
2022-07-1318:04
Beosin
2022-07-13 18:04
Beosin
2022-07-13 18:04
收藏文章
订阅专栏


2022年7月11日,成都链安链必应-区块链安全态势感知平台舆情监测显示,OMNI合约遭受黑客攻击,黑客获利约 425.5ETH,约456,267.905美元。成都链安安全团队对事件进行了分析,结果如下。


#事件相关信息


OMNI 是一个去中心化协议,可以为以太坊区块链上的各种资产提供借贷服务。


•攻击者地址

攻击者:

0x627a22ff70cb84e74c9c70e2d5b0b75af5a1dcb9

攻击者合约:

0x5992f10a5b284be845947a1ae1694f8560a89fa8

0x23f8770bd80effa7f09dffdc12a35b7221d5cad3

0x948d6fe8a7e9ebbb672508e7e93d58c6cfbd3d3f

0x5133647aae89f1ff301f4d1ca70623459ff1ad20

0x4d97b179dc9248b6318e458e6588f83bd0cbfa8b

0x259e45e6dec75530c2bbc9a60429733fb709ff90

0x0e7f758f470eb97428c73bf130ee1708886c8fca

0x2c67224dd2cb2562822cf56142fcdbc4a556a408

0x7ed6c98dafdcea4ff448716a862c1e9c575e2f63

0x606c2590d68b4f7b5a7ea1e8a8bbfaf375506891

0x57e9b3f7f1a58e08ad1707eefe92b9ae4376d209


•攻击交易

0x05d65e0adddc5d9ccfe6cd65be4a7899ebcb6e5ec7a39787971bcc3d6ba73996

0xbebcd50e9c337c02bfe198ae7d10ffc0aaa8160d2ff4dda9f5a1dcfb4c04dde9

0xaddf0624e2dcf0bdbba18be77be40b62c9264ff85dfb7244ad36a67029673b82


•被攻击合约:

0x218615c78104e16b5f17764d35b905b638fe4a92



#攻击过程


本次攻击以

0x05d65e0adddc5d9ccfe6cd65be4a7899ebcb6e5ec7a39787971bcc3d6ba73996为例进行阐述,攻击流程图如下:



1.攻击者通过闪电贷借出1000个WETH和20个NFT(DOODLE代币),质押id为720、5251和7425的NFT



2.通过步骤1中的质押,借出12.15个WETH



3.攻击者调用withdrawERC721函数提取出id为720和5251的NFT


4.步骤3过程中会调用Ntoken合约burn函数,其内部会调用safeTransferFrom函数把NFT发送给攻击者合约,并回调攻击者合约的onERC721Received函数;




5.攻击者在攻击合约的onERC721Received函数中重入 Pool合约的liquidationERC721函数对id为7425的NFT进行清算;


6.在此清算的过程中,会调用了_burnCollateralNTokens函数销毁攻击者合约的凭证币以及归还抵押的NFT,所以又一次调用了safeTransferFrom函数触发攻击者合约的onERC721Received函数



7.攻击者再次重入,将闪电贷借来的20个NFT全部质押;


8.借出81个WETH后回到liquidationERC721函数中,将攻击者的借贷状态设置为false


9.已经将攻击者的借贷状态设置为false,即把用户的借贷状态改为未借贷,所以可成功提取。



#漏洞分析


本次攻击的主要原因在于提取质押品时销毁凭证NFT的相关函数以及清算后NFT转账函数可触发外部合约的回调,构成重入漏洞;并且在用户质押品被清算后会更新用户的借贷状态,导致了攻击者可利用重入进行质押借贷后进行清算,使得该用户的借贷状态被设置为无借贷,可顺利提取出质押的NFT。



#资金追踪


截止发文时,攻击者攻击获利的425.5ETH已经全部进入Tornado.Cash



#总结


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

1.在关键函数中做好防重入措施。

2.项目上线前,建议选择专业的安全审计公司进行全面的安全审计,规避安全风险。



2022年Q2全球Web3安全生态报告下载



2022年第二季度全球Web3安全生态态势如何?


成都链安官方微信公众号后台留言回复关键词:Q2 即可获取《2022成都链安Q2全球Web3安全生态报告》PDF下载链接!






【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

专栏文章
查看更多
数据请求中

推荐专栏

数据请求中

一起「遇见」未来

DOWNLOAD FORESIGHT NEWS APP

Download QR Code