Crosswise攻击事件分析:“一两拨千金”-ODAILY

前言

2022年1月18日,知道创宇区块链安全实验室监测到BSC上Crosswise遭遇攻击,此次攻击导致协议损失87.9万美元。

攻击者仅用1个CRSStoken便获取CrosswiseMasterChef池中价值87.9万美元的692K个CRSS。实验室将对本次事件深入跟踪并进行分析。

基础信息

攻击交易哈希:

0xd02e444d0ef7ff063e3c2cecceba67eae832acf3f9cf817733af9139145f479b

攻击者地址:

0x748346113B6d61870Aa0961C6D3FB38742fc5089

攻击合约:

0x530B338261F8686e49403D1b5264E7a1E169F06b

MasterChef:

Crown Sterling任命Andrew Lusk为总裁兼首席法务官:金色财经报道,数据技术公司Crown Sterling LLC宣布任命Andrew Lusk为总裁兼首席法务官。Crown Sterling Limited LLC表示,Lusk先生作为值得信赖的法律和风险顾问,在金融、公司事务和房地产领域拥有超过 10 年的经验。作为数字货币和区块链技术的早期倡导者和投资者,Lusk先生将为团队带来不断发展的格局的广泛理解、显着的法律敏锐度、创新能力和领导能力。[2023/6/6 21:18:00]

0x70873211CB64c1D4EC027Ea63A399A7d07c4085B

CrosswiseRouter:

0x8B6e0Aa1E9363765Ea106fa42Fc665C691443b63

CRSS:

0x99FEFBC5cA74cc740395D65D384EDD52Cb3088Bb

MicroStrategy CEO:可能会卖出比特币期货合约:金色财经报道,MicroStrategy CEO Andrew Kang表示,预计比特币将跑赢其他资产类别。可能会卖出比特币期货合约。[2023/2/7 11:51:00]

攻击核心

此次攻击的核心在于,Crosswise中的MasterChef合约Owner地址设置即transferOwnership函数能够被攻击者绕过,使得攻击者能够成为新的Owner并对MasterChef池子进行攻击利用。我们将本次攻击过程分为两个阶段进行分析:获取Owner权限攻击和MasterChef池攻击。

获取Owner权限攻击

1.由于在MasterChef合约中setTrustedForwarder函数为公开可见性且未作权限设置,攻击者先将自己的地址设置为TrustedForwarde地址。

Harmony开发团队已经提交Crosslink Heartbeat功能的第一部分代码:7月5日消息,Harmony 开发团队已经提交 Crosslink Heartbeat 功能的第一部分代码,该功能将使分片 0 验证者能够广播他们从其他分片收到的最新交联,旨在消除 1、2、3 区验证者对信标链(0 区)的依赖性,提高验证者的效率。

注:Crosslink 是来自委员会的一组签名,证明一个块在子链中,(签名)可以包含在主链中,它是主链「了解」子链更新状态的主要手段,包含区块签名数据和区块标识符数据,如区块哈希值、区块编号等。[2022/7/5 1:51:22]

2.Crosswisefi项目方对MasterChef的_msgSender()函数并未采取openzepplin的标准写法且存在漏洞,导致攻击者能够通过构造恶意的calldata实现绕过onlyOwner限制完成合约Owner的获取。

SumSwap节点权益通证SCROW半小时上涨至20万USDT,涨幅达30倍左右:据官方消息,SumSwap节点权益通证SCROWN上线uniswap去中心化交易,仅半小时上涨至20万USDT,涨幅达到30倍左右。SCROWN是数学创新型协议SumSwap的节点权益通证,总共400枚,不可增发,可以销毁,成功竞选为SumSwap节点获赠一枚SCROWN。每一枚完整的SCROWN代表一份节点权益,小于1的小数部分不算权益。权益包括:SumSwap平台手续费分红、各项优惠活动及后期各种福利等。SCROWN可转账,转账后节点权益也随之转向该地址(认购的SUM不转移)。在SumSwap开启交易后,SCROWN也会上线SumSwap交易。SCROWN合约地址:0x62edd284cd681539e81492a4dbbb2ee715a353d4

邀请十人并向竞选节点地址转入10000USDT即可成为节点。[2021/4/17 20:31:27]

下图为攻击者绕过onlyOwner权限构造的恶意payload:

两笔共10亿枚XRP从Ripple?Escrow钱包解锁 价值约5.75亿美元:Whale Alert数据显示,北京时间4月1日08:00,两笔共10亿枚XRP从Ripple?Escrow钱包解锁,价值约5.75亿美元,交易哈希分别为1DD977A33E00022C7588E8DC2C5DD41B5B45EEE98F448CBD389052BBEEE007F6和D6B3159EEDCE5E391CE9EF81E0DA7A03D4494789BA49E74A0D9CC4F79DD6B5A6。注:按照惯例,Ripple 会在每个月的第一天解锁10亿枚XRP。但这些资金中的大部分通常会在同一天的晚些时候重新锁定在托管钱包中。[2021/4/1 19:35:16]

MasterChef池攻击

1.攻击者在CrosswiseRouter中用0.01个WBNB兑换出3.71个CRSS

2.攻击者调用deposit将1个CRSS质押到CrosswiseMasterChef

3.由于上一阶段攻击者已经获取到MasterChef的Owner权限,此时攻击者调用set函数对MasterChef的pid为0的池子重新部署了一个未开源的策略合约:0xccddce9f0e241a5ea0e76465c59e9f0c41727003

4.攻击者调用MasterChef的withdraw函数从池子中获取692K的CRSS

5.最后攻击者把692K的CRSS通过CrosswiseRouter合约swap兑换出547个BNB完成攻击,获利超87.9万美元。

策略合约

猜想

由于攻击者部署的策略合约并未开源,我们只能反向推导猜想策略合约的主要逻辑:

1.根据下图第18行代码可以推断出合约中lockedAmount应该是一个极大值才能支撑攻击者692k的代币转出;又根据第7-11行可以推导出攻击者部署的strategy合约的LockeTotal()函数返回值极大、sharesTotal()返回值极小。

2.在上图代码23行当_amount>0时,会先计算出user的shareRemoved,然后在执行user.amount=user.amount.sub(shareRemoved);,此时若shareRemoved大于user.amount则代码执行不会通过,可以推导出26行的shareRemoved值很小,又shareRemoved是调用攻击者部署strategy合约中withdraw获取,所以此时的strategy合约中withdraw的返回值会很小,小于之前质押的1个CRSS数量;再结合链上数据可推导攻击者部署strategy合约中的withdraw调用返回值为0。

反编译

为了证实我们的猜想是否正确,我们将攻击者部署的策略合约进行反编译。

反编译后我们可以发现存在一个极大值和一个较小值的常量,即对应猜想1中LockeTotal和sharesTotal值,猜想1正确。

对于猜想2,经过反编译后我们可以看到策略合约的withdraw最后的返回值为0,猜想2正确

总结

这次攻击产生的主要原因是项目方使用错误的方法去获取msgSender,导致合约的Owner权限更改能被绕过。知道创宇区块链安全实验室在此提醒,任何有关合约权限问题的操作都需要慎重考虑,合约审计、风控措施、应急计划等都有必要切实落实。

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

银河链

屎币SupraOracles专题报告:区块链与教育的未来-ODAILY

区块链可以验证信息,减少欺诈,帮助创建次世代教育机构今天的教育系统面临比以往更多的挑战和问题,尤其是在美国。大学学费的大幅上涨、行政成本的增加和其他问题只是强调了教育行业变革的必要性.

[0:0ms0-2:587ms