Silo Finance 杠杆合约攻击事件事后分析

  • Certora
  • 发布于 11小时前
  • 阅读 52

Silo Finance 的一个新杠杆合约模块在测试阶段遭到攻击,由于过于宽泛的批准设置导致借款操控漏洞。该模块与核心Silo协议隔离,因此核心协议、金库、市场或用户资金未受影响。Certora 此前对该合约进行了安全审查,但未发现此漏洞,事后进行了风险评估和补救措施,并确认现有Silo代码是安全的。

Silo是一个无需许可、风险隔离的借贷协议,为所有token资产提供安全的货币市场。为了给用户提供一种便捷的方式来开设杠杆头寸,Silo构建了一个新的、隔离的杠杆合约模块。Certora在6月9日至6月13日期间对新的杠杆合约进行了人工安全审查。在此期间,我们根据提供的代码识别并标记了几个潜在的和具体的担忧。然而,被利用的漏洞并未在审查期间被识别出来。

6月25日,Silo 团队告知我们,在对新引入的杠杆模块(与核心Silo协议隔离)进行持续测试期间,发生了一起事件,其中过度宽泛的授权无意中启用了一个借款操纵漏洞。重要的是,这个模块完全与核心Silo合约分离——没有保险库、市场或用户资金受到影响或面临风险。

Silo团队要求我们确认,除了其他团队和形式化验证之外,我们还广泛审计过的其他Silo合约,不受此易受攻击的合约的影响。

详细的分步解释记录在Silo的以下章节中

事件时间线 (UTC) – 2025年6月25日

  • 14:11– 首次在主网上攻击。
  • 14:20– 第二次在主网上攻击。
  • 14:29 – Hypernative标记了两个攻击者地址,并提醒了中心化服务和交易所。
  • 14:34 – 杠杆合约被暂停。
  • 14:44– 在Sonic上进行了两次攻击。
  • 14:47 – Silo团队通过Twitter、Telegram和Discord向我们宣布杠杆合约已暂停。
  • 15:01 – Silo团队通知Certora,杠杆合约被利用,一些资金丢失。
  • 15:16 – Zeroshadow和Hypernative要求Etherscan将攻击者地址标记为Silo Finance Exploiters。
  • 15:30 – Certora被添加到Silo事件Telegram群组。此时:
  • - 杠杆合约已被暂停。
  • - Hypernative已经确定了漏洞。
  • 15:45 – Certora在内部确认了根本原因,并提出了补救建议。
  • 17:00 – Certora和Silo举行了一次会议,以确认漏洞的细节,讨论缓解措施,并就建议的修复方案达成一致。在会议期间,Certora还确认该漏洞严格限制于已经通过隔离的杠杆合约开设杠杆头寸的用户Silo协议的所有其他组件均未受到该问题的影响

事件后风险评估

在立即进行分类和识别漏洞之后,我们进行了有针对性的风险评估,以确定Silo协议的其他用户资金或组件是否存在风险。

  • 我们检查了该漏洞是否可以扩展到杠杆合约之外,并影响Silo协议的核心组件,包括金库和市场。
  • 我们验证了该漏洞仅源于隔离的杠杆合约,并且它没有损害或与核心协议逻辑交互。
  • 我们还评估了暂停杠杆合约是否足以控制问题,并确认此操作已完全缓解了该漏洞。
  • 最终,我们得出结论,除了已经开设的特定杠杆头寸之外,没有其他风险。鉴于该合约处于测试阶段,因此没有Silo用户在杠杆合约中持有未平仓头寸,因此没有人面临风险。

该分析使Certora和Silo团队确信该漏洞已得到完全控制,并且不会影响面向用户的组件或资金。

哪里出了问题?

Certora犯的最大错误是没有使用我们的形式化验证工具Certora Prover,尽管我们已经对所有其他Silo合约(包括比杠杆更简单的合约)都使用了该工具。

此外,我们的人工安全审查没有向Silo团队提供有关用户控制的交易所代理风险的具体建议,仅提供了关于地址是否为有效silo的一般建议。

通常,我们的安全研究人员与我们的形式化验证专家合作来识别和预防问题。在这种情况下,即使在没有规范的情况下运行Certora Prover,也会发现有问题的代码可能受用户控制。如果没有确定调用任意合约的影响,就无法验证任何规则。如果安全研究人员和形式化验证研究人员在内部讨论过这个特定的外部调用,那么这个bug就会被发现。

经验教训

我们正在与Silo团队就补救措施和修复计划进行持续沟通。我们正在对代码进行额外的安全审查,并对其进行形式化验证,以实现最高级别的安全保证,确保其达到我们对所有其他Silo合约的相同信任级别。除了杠杆之外,所有已部署的Silo合约都经过了安全审查和形式化验证。

我们犯了一个错误:隔离的杠杆合约包含一个过度宽泛的授权,允许攻击者操纵借款。由于缺乏对外部输入的验证,这导致了漏洞的可利用性,从而为漏洞利用创造了机会。

幸运的是,该问题已完全隔离,仅影响了新的杠杆模块。所有现有的Silo核心组件,包括市场、金库和用户资金,仍然完全安全且未受影响。通过立即暂停杠杆合约,可以有效地缓解该漏洞。

我们已经吸取了有关限制批准、列入外部调用白名单和加强验证的重要教训。我们还了解到,最有效的安全审查包括手动审查和形式化验证,因为这两种方法在识别细微的攻击向量方面是互补的。

底线

Silo用户资金从未处于风险之中,因为新合约正处于测试阶段,并且资金来自Silo自己的账户,而不是用户的账户。

所有当前上线的Silo代码都是安全的。

  • 原文链接: certora.com/blog/silo-in...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Certora
Certora
Securing DeFi through smart contract audits, formal verification, and protocol design reviews.