2021-07-25 09:00

跨链交易协议THORChain被攻击事件分析

北京时间7月23日,去中心化跨链交易协议 THORChain(RUNE) 再次遭遇攻击,包括XRUNE 在内的多种 ERC20 代币受到影响,涉及损失约 800 万美元。THORChain 已是一个月内第三次受到攻击,此前在 7 月 16 日遭受攻击,损失约 4000 ETH;在 6 月 29 日遭受恶意攻击,损失 14 万美元。

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

一、事件分析

攻击交易:https://etherscan.io/tx/0xce958939ba23771d0a0b80532c463b4cbbb175f4d14c08d9d27dd251f68a5da1

图 1攻击者攻击THORChain Router获取XRUNE代币

攻击者调用THORChain Router合约的transferOut函数向攻击者转了一笔数量为amount的代币,代币的类型由asset的类型来确定,转账的sender为THORChain Router的合约地址。

图 2 THORChain Router合约的TransferOut函数

图 3 通过TransferOut函数牟利Sushi币

攻击者之所以可以实现这样的攻击,是因为THORChain Router合约的TransferOut函数漏洞导致--使用asset.call(abi.encodeWithSignature("transfer(address,uint256)" , to, amount))语句进行转账;

图 4 YFI.sol中的transfer

图 5 FiatToken.sol中的transfer

图 6 XRUNE.sol中的transfer 

在使用call函数时,msg.sender的值为THORChain Router地址,执行环境为被调用者的运行环境,因此会调用asset代币合约中的transfer函数,向接收者转出代币。而此次攻击者攻击THORChain Router合约牟利的六种代币合约中,实现转账的函数均为"transfer(address,uint256)"这种形式,这也使得攻击者有可乘之机。


本文链接:https://www.8btc.com/media/6691230
转载请注明文章出处

评论
登录 账号发表你的看法,还没有账号?立即免费 注册
下载
阅读
分享
评论
点赞
上一篇
下一篇