SharkTeam独家分析 | 跨链交易协议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)"这种形式,这也使得攻击者有可乘之机。
二、安全建议
跨链 技术的发展提高了Defi业务的可组合性和资产流动性,但伴随而来的也是从未有过的攻击面和攻击手段,势必会引来黑客攻击。
SharkTeam提醒您,在涉足区块链项目时请提高警惕,选择更稳定、更安全,且经过完备多轮审计的公链和项目,切不可将您的资产置于风险之中,沦为黑客的提款机。
而作为项目方,智能合约安全关系用户的财产安全,至关重要!区块链项目开发者应与专业的安全审计公司合作,进行多轮审计,避免合约中的状态和计算错误,为用户的数字资产安全和项目本身安全提供保障。
SharkTeam 作为领先的区块链安全服务团队,为开发者提供智能合约审计服务。智能合约审计服务由人工审计和自动化审计构成,满足不同客户需求,独家实现覆盖高级语言层、虚拟机层、区块链层、业务逻辑层四个方面近两百项审计内容,全面保障智能合约安全。