CertiK团队于Sui区块链发现了一系列拒绝服务漏洞。在这些漏洞中,一种新型且具有严重影响力的漏洞格外引人注目。该漏洞可导致Sui网络节点无法处理新的交易,效果等同于整个网络完全关闭。就在上周一,CertiK因发现该重大安全漏洞,获得了SUI 50万美元漏洞赏金。美国业内权威媒体CoinDesk对该事件进行了报道,随后各大媒体也紧随其报道发布了相关新闻。该安全漏洞被形象地称为“仓鼠轮”:其独特的攻击方式与目前已知的攻击不同,攻击者只需提交一个大约100字节的载荷,就能触发 Sui 验证节点中的一个无限循环,使其不能响应新的交易。此外,攻击带来的损害在网络重启后仍能持续,并且能在 Sui 网络中自动传播,让所有节点如仓鼠在轮上无休止地奔跑一样无法处理新的交易。因此我们将这种独特的攻击类型称为“仓鼠轮”攻击。

发现该漏洞后,CertiK通过Sui的漏洞赏金计划向Sui进行了报告。Sui也第一时间进行了有效回应,确认了该漏洞的严重性,并在主网启动前积极采取了相应措施对问题进行了修复。除了修复此特定的漏洞外,Sui还实施了预防性的缓解措施,以减少该漏洞可能造成的潜在损害为了感谢CertiK团队负责地披露,Sui向CertiK团队颁发了50万美元奖金。

“仓鼠轮”攻击在Sui网络中的持续性危害

Sui的漏洞赏金计划对漏洞等级的评定有着严格的规定,主要依据对整个网络的危害程度进行评定。满足“严重(critical)”评级的漏洞必须使整个网络关停并有效阻碍新交易确认,同时需要硬分叉来修复问题;如果漏洞只能使部分网络节点拒绝服务,至多被评定为 “中危(medium)”或“高危(high)”漏洞。CertiK Skyfall团队发现的“仓鼠轮”漏洞可以使整个Sui网络关停,同时需要官方发布新版本进行升级修复。基于对该漏洞的危害程度,Sui 最终被将其评定为“严重”等级。为了进一步理解“仓鼠轮”攻击造成的严重性影响原因,我们有必要了解Sui后端系统的复杂架构,特别是链上交易发布或升级的整个过程。最初,用户交易通过前端RPC提交,经基本验证后传递到后端服务。Sui后端服务负责进一步验证传入的交易载荷。在成功验证了用户的签名后,交易被转化为交易证书(包含交易信息以及Sui的签名)。这些交易证书是Sui网络运作的基本组成部分,可以在在网络中的各个验证节点之间传播。对于合约创建/升级交易,在其可以上链之前,验证节点会调用Sui验证器检查并验证这些证书的合约结构/语义的有效性。正是在这个关键的验证阶段,“死循环”漏洞可以被触发利用。

当该漏洞被触发时,它会导致验证过程无限期中断,有效阻碍系统处理新交易的能力,并导致网络完全关闭。雪上加霜的是,节点重启后该情况仍然存在,这也就意味着传统的缓解措施远远不够。该漏洞一旦被触发,则会出现“持续破坏”的情况从而对整个Sui网络留下持久影响。

Sui的解决方法

经过CertiK反馈后,Sui及时确认了该漏洞,并发布了一个修复程序来解决该关键缺陷。该修复程序确保了状态改变和改变后标志之间的一致性,消除了“仓鼠轮”攻击造成的关键影响。为了消除上述的不一致,Sui的修复包括对AbstractState::join函数的一个微小但关键的调整。这个补丁移除了在执行AbstractValue::join之前判定状态合并结果的逻辑,取而代之的是首先执行AbstractValue::join函数进行状态合并,通过比较最终更新结果和原始状态值(old_value)来设置合并是否发生变化的标记。这样一来,状态合并的结果与真实更新的结果将保持一致,分析过程中不会发生死循环。#山寨币 #BTC