正处于“刮骨疗毒” 自救的SushiSwap,今日又是如何被黑客攻击的?

Beosin
Beosin 机构得得号

Apr 10, 2023 Beosin是总部位于新加坡的全球知名区块链安全公司,为区块链生态提供代码安全审计,安全风险监控、预警与阻断,虚拟资产被盗追回,KYT/AML等“一站式”安全产品+服务,已为全球2000多个区块链企业服务,保护客户资产5000多亿美元。

摘要: 在黑客的打击下,SushiSwap能否走出自救的道路?

2023年4月9日,据BeosinEagleEye态势感知平台消息, Sushiswap  RouteProcessor2合约遭受攻击,部分对合约授权过的用户资金被黑客转移,涉及金额约1800ETH,约334万美元。

据了解,SushiSwap 流动性挖矿项目,克隆自 Uniswap,最大的不同是其发行了 SUSHI 代币,团队希望用 SUSHI 通证经济模型,优化 Uniswap。但 Uniswap 创始人 Hayden Adams 表示,Sushi 只是任何有能力的开发人员通过一天的努力创造出来的东西,试图利用炒作和 Uniswap 创造的价值来获利。

其实在本次攻击之前,这个项目还有另外的“坎坷”,去年12 月 6 日,上任仅两个月的 Sushi 新任“主厨” Jared Grey 于治理论坛发起了一项新提案。在该提案中,Jared 首次向外界披露了 Sushi 当前严峻的财务状况,并提出了一个暂时性的自救方案。

正是在这样的压力下,黑客又来一击,那在黑客的打击下,SushiSwap能否走出自救的道路?

事件相关信息

我们以其中一笔攻击交易进行事件分析。

攻击交易0xea3480f1f1d1f0b32283f8f282ce16403fe22ede35c0b71a732193e56c5c45e8
攻击者地址0x719cdb61e217de6754ee8fc958f2866d61d565cf
攻击合约0x000000C0524F353223D94fb76efab586a2Ff8664
被攻击合约0x044b75f554b886a065b9567891e45c79542d7357
被攻击用户0x31d3243CfB54B34Fc9C73e1CB1137124bD6B13E1

攻击流程

1.攻击者地址(0x1876…CDd1)约31天前部署了攻击合约。

2.攻击者发起攻击交易,首先攻击者调用了processRoute函数,进行兑换,该函数可以由调用者指定使用哪种路由,这里攻击者选择的是processMyERC20。 

3.之后正常执行到swap函数逻辑中,执行的功能是swapUniV3。 

 4. 在这里可以看到,pool的值是由stream解析而来,而stream参数是用户所能控制的,这是漏洞的关键原因,这里lastCalledPool的值当然也是被一并操控的,接着就进入到攻击者指定的恶意pool地址的swap函数中去进行相关处理了。

5.Swap完成之后,由于此时lastCalledPool的值已经被攻击者设置成为了恶意pool的地址,所以恶意合约调用uniswapV3SwapCallback函数时校验能够通过,并且该函数验证之后就重置了lastCalledPool的值为0x1,导致swapUniV3函数中最后的判断也是可有可无的,最后可以成功转走指定的from地址的资金,这里为100个WETH。 

 漏洞分析

本次事件攻击者主要利用了合约访问控制不足的问题,未对重要参数和调用者进行有效的限制,导致攻击者可传入恶意的地址参数绕过限制,产生意外的危害。

总结

针对本次事件,Beosin安全团队建议:

1.在合约开发时,调用外部合约时应视业务情况限制用户控制的参数,避免由用户传入恶意地址参数造成风险。

2.用户在与合约交互时应注意最小化授权,即仅授权单笔交易中实际需要的数量,避免合约出现安全问题导致账户内资金损失。

Beosin作为一家全球领先的区块链安全公司,在全球10多个国家和地区设立了分部,业务涵盖项目上线前的代码安全审计、项目运行时的安全风险监控、预警与阻断、虚拟货币被盗资产追回、安全合规KYT/AML等“一站式”区块链安全产品+服务,目前已为全球3000多个区块链企业提供安全技术服务,审计智能合约超过3000份,保护客户资产高达5000多亿美元。欢迎点击公众号留言框,与我们联系。

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 Beosin 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信