BTCV高分资讯 > 数字货币 > 浅析苏什卡精明的合同漏洞:合同所有者不应该有

浅析苏什卡精明的合同漏洞:合同所有者不应该有

作者:高分资讯来源:高分资讯 数字货币 2020年08月30日

一个高质量的金融体系不仅需要在外部坚不可摧,还需要在内部确保不会因为项目方自己的意愿而窃取客户的财产。

原标题:《SushiSwap 智能合约漏洞事件分析》

作者:CertiK

最近,《哈利波特与魔法石》的3D版本又回到了热点。我想知道你是否注意到了魔法世界银行——古灵阁,它由妖精监管,从未被盗过。

也许你会想,如果现实世界中有这样一个保存财富的机构就好了。

然而(剧透警报),《哈利波特与死亡圣器》年,从未被入侵的古灵阁世界被盗,——名主角经过在银行工作的妖精,打破了古灵阁从未被盗的记录。

一个优质的金融系统,不仅需要对外坚不可摧,同时对内也要保证不会因项目方自己的意愿,从而有窃取客户财产的可能。

SushHaap漏洞事件介绍北京时间8月28日,CertiK安全研究小组报告称,SushHaap项目智能合同中存在许多安全漏洞。此漏洞可能由智能合约拥有者利用允许拥有者实施,包括任何未经授权的操作,如智能合同帐户中的取空令牌。同时,本项目的智能合同中存在严重的重入攻击,这将导致潜在攻击者的恶意代码被多次执行。

技术分析简析 SushiSwap  智能合约漏洞:合约所有者不该拥有无限权利

图片来源:https://github.com/sushi交换/寿司交换/blob/master/contracts/master chef。

在SushiSwap项目MasterChief.sol智能合同的第131行中,智能合同的所有者可以有权设置上图中迁移器变量的值,该值的设置可以确定哪个迁移器合同代码将执行以下操作。

简析 SushiSwap  智能合约漏洞:合约所有者不该拥有无限权利

图片来源:https://github.com/sushi交换/寿司交换/blob/master/contracts/master chef。

在确定了migrator的值之后(如上图所示,有142行代码),可以相应地确定migrator.migrate(lpToken)。迁移方法是通过ImigratorChef接口调用的,因此在调用时,迁移方法中的逻辑代码会根据不同的迁移器值而变化。

简而言之,如果智能合同所有者将迁移器值指向包含恶意迁移方法代码的智能合同,则所有者可以执行他想要的任何恶意操作,甚至可以清空帐户中的所有令牌。

同时,在上图的行142中的行migrator.migrate(lpToken)的执行完成之后,智能合同所有者还可以利用重入攻击漏洞,并从行136开始重新执行迁移方法或其他智能合同方法,以执行恶意操作。

这一漏洞的启示(重点)聪明的合同所有者不应该拥有无限的权利,而必须通过社区监督和治理来限制聪明的合同所有者,以确保他们不会利用自己的优势进行恶意操作。智能合同代码在发布前需要严格的安全验证和检查。目前,SushHaap的创始人表示,该项目已经迁移到时间锁定合同,也就是说,任何SushHaap项目智能合同所有者的操作将有48小时的延迟锁定。

在此,CertiK技术团队建议我们在智能合同宣布之前,尽最大努力找一个专业的团队来做审计工作,以避免因项目漏洞造成的损失。

来源链接:mp.weixin.qq.com

标签: 比特币金库