REWARD:慢雾:xToken 被黑事件分析

链捕手消息,以太坊DeFi项目xToken遭受攻击,损失近2500万美元,慢雾安全团队介入分析,得出造成本次攻击的原因如下:

本次被黑的两个模块分别是xToken中的xBNTa合约和xSNXa合约。两个合约分别遭受了“假币”攻击和预言机操控攻击。

一)xBNTa合约攻击分析1.xBNTa合约存在一个mint函数,允许用户使用ETH兑换BNT,使用的是BancorNetowrk进行兑换,并根据BancorNetwork返回的兑换数量进行铸币。2.在mint函数中存在一个path变量,用于在BancorNetwork中进行ETH到BNT的兑换,但是path这个值是用户传入并可以操控的3.攻击者传入一个伪造的path,使xBNTa合约使用攻击者传入的path来进行代币兑换,达到使用其他交易对来进行铸币的目的。绕过了合约本身必须使用ETH/BNT交易对进行兑换的限制,进而达到任意铸币的目的。

慢雾:Cover协议被黑问题出在rewardWriteoff具体计算参数变化导致差值:2020年12月29日,慢雾安全团队对整个Cover协议被攻击流程进行了简要分析。

1.在Cover协议的Blacksmith合约中,用户可以通过deposit函数抵押BPT代币;

2.攻击者在第一次进行deposit-withdraw后将通过updatePool函数来更新池子,并使用accRewardsPerToken来记录累计奖励;

3.之后将通过_claimCoverRewards函数来分配奖励并使用rewardWriteoff参数进行记录;

4.在攻击者第一次withdraw后还留有一小部分的BPT进行抵押;

5.此时攻击者将第二次进行deposit,并通过claimRewards提取奖励;

6.问题出在rewardWriteoff的具体计算,在攻击者第二次进行deposit-claimRewards时取的Pool值定义为memory,此时memory中获取的Pool是攻击者第一次withdraw进行updatePool时更新的值;

7.由于memory中获取的Pool值是旧的,其对应记录的accRewardsPerToken也是旧的会赋值到miner;

8.之后再进行新的一次updatePool时,由于攻击者在第一次进行withdraw后池子中的lpTotal已经变小,所以最后获得的accRewardsPerToken将变大;

9.此时攻击者被赋值的accRewardsPerToken是旧的是一个较小值,在进行rewardWriteoff计算时获得的值也将偏小,但攻击者在进行claimRewards时用的却是池子更新后的accRewardsPerToken值;

10.因此在进行具体奖励计算时由于这个新旧参数之前差值,会导致计算出一个偏大的数值;

11.所以最后在根据计算结果给攻击者铸造奖励时就会额外铸造出更多的COVER代币,导致COVER代币增发。具体accRewardsPerToken参数差值变化如图所示。[2020/12/29 15:58:07]

二)xSNXa合约攻击分析1.xSNXa合约存在一个mint函数,允许用户使用ETH兑换xSNX,使用的是KyberNetwork的聚合器进行兑换。2.攻击者可以通过闪电贷Uniswap中ETH/SNX交易对的价格进行操控,扰乱SNX/ETH交易对的报价,进而扰乱KyberNetwork的报价。从而影响xSNXa合约的价格获取3.攻击者使用操控后的价格进行铸币,从而达到攻击目的。

慢雾:警惕ETH新型假充值,已发现在野ETH假充值攻击:经慢雾安全团队监测,已发现存在ETH假充值对交易所攻击的在野利用,慢雾安全团队决定公开修复方案,请交易所或钱包及时排查ETH入账逻辑,必要时联系慢雾安全团队进行检测,防止资金丢失。建议如没有把握成功修复可先临时暂停来自合约地址的充值请求。再进行如下修复操作:1、针对合约ETH充值时,需要判断内联交易中是否有revert的交易,如果存在revert的交易,则拒绝入账。2、采用人工入账的方式处理合约入账,确认充值地址到账后才进行人工入账。同时需要注意,类以太坊的公链币种也可能存在类似的风险。[2020/5/23]

总结:本次xToken项目被攻击充分展现了DeFi世界的复杂性,其中针对xSNXa的攻击更是闪电贷操控价格的惯用手法。慢雾安全团队建议DeFi项目开发团队在进行DeFi项目开发的时候要做好参数校验,同时在获取价格的地方需要防止预言机操控攻击,可使用Uniswap和ChainLink的预言机进行价格获取,并经过专业的安全团队进行审计,保护财产安全。

动态 | 慢雾:Cryptopia被盗资金发生转移:据慢雾科技反(AML)系统监测显示,Cryptopia攻击者分两次转移共20,843枚ETH,价值超380万美元。目前资金仍停留在 0x90d78A49 和 0x6D693560 开头的两个新地址,未向交易所转移。据悉,今年早些时候加密货币交易所Cryptopia遭受了黑客攻击,价值超过1600万美元的以太坊和ERC-20代币被盗。[2019/11/17]

参考链接:官方分析:https://medium.com/xtoken/initial-report-on-xbnta-xsnxa-exploit-d6e784387f8e

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

金星链

[0:15ms0-1:165ms