返回论坛

Fortress Protocol 攻击事件深度剖析:治理缺陷与预言机操纵的双重漏洞

查找币 漏洞披露 安全研究 Web3安全 区块链安全

查找币安全研究院

钱包恢复评估 | 链上取证分析 | Web3 事件响应
以合法授权、证据保全、隐私保护和可复核流程为前提,不要求用户在线提交完整私钥或助记词。

查看研究院 研究报告中心
**作者:查找币安全团队** --- ## 事件概述 2022年5月9日,BSC生态中的DeFi借贷协议 **Fortress Protocol** 遭遇恶意攻击,协议内大量资产被盗。经查找币安全团队溯源分析,本次攻击的根本原因在于治理合约存在设计缺陷,同时 **Umbrella Network 预言机** 存在任意操纵漏洞。攻击者巧妙结合这两大薄弱环节,成功窃取了协议中几乎所有主流资产。 --- ## 攻击流程与技术细节 ### 1. 前期准备:潜伏19天的精心布局 早在正式攻击发起前19天(4月29日),攻击者已开始周密筹备: - **资金来源**:在以太坊主网通过 **TornadoCash** 混币器获取 20 ETH,随即将其中的 12.4 ETH 通过 **cBridge** 跨链至 BSC 网络。 - **代币收集**:Fortress Protocol 的治理代币 **FTS** 总供应量为 10,000,000 枚,发行于2021年4月。由于当时FTS价格低迷,攻击者仅花费约 11.4 ETH 就购得约 **400,000 个 FTS**,占总供应量的 **4%**。 - **恶意提案创建**:5月4日,攻击者部署恶意提案合约(地址:`0x0dB3B68c482b04c49cD64728AD5D6d9a7B8E43e6`),并将其加入提案队列,成为 **11号提案**。 ### 2. 投票操纵:利用治理机制漏洞 Fortress Protocol 的治理合约存在一个致命设计缺陷:**提案通过条件仅为“赞成票数 > 反对票数”且“赞成票数 ≥ FTS 总供应量的 4%”**。这意味着,只要持有4%的FTS代币并投赞成票,攻击者即可单方面通过任何提案。 - **投票期**:提案拥有3天投票期(5月4日至5月7日)。 - **关键操作**:在投票结束前的最后几个小时,攻击者使用其持有的约 400,000 个 FTS 代币投下赞成票(交易哈希:`0xc368afb2afc499e7ebb575ba3e717497385ef962b1f1922561bcb13f85336252` 和 `0x83a4f8f52b8f9e6ff1dd76546a772475824d9aa5b953808dbc34d1f39250f29d`)。 - **结果**:提案顺利通过,随后进入 **2天执行等待期**。 ### 3. 正式攻击:双重漏洞的连锁利用 5月9日,执行等待期结束后,攻击者部署攻击合约,正式发起攻击: #### 第一步:执行恶意提案,修改抵押率 攻击合约首先执行了恶意提案的内容:**将 FTS 代币的抵押率从 0 修改至 0.7**。这意味着攻击者可以用抵押的 FTS 代币价值 **70%** 的额度借出协议中的其他资产。 #### 第二步:操纵预言机,虚增代币价格 Fortress Protocol 获取抵押物价格的合约(地址:`0x00fcF33BFa9e3fF791b2b819Ab2446861a318285`)中,FTS 代币的价格由 **Umbrella Network 预言机**(地址:`0xc11B687cd6061A6516E23769E4657b6EfA25d78E`)提供。 **Umbrella 预言机的关键漏洞**:其 `submit` 多签喂价函数仅检查签名数量是否达到 `requiredSignatures` 阈值,**但未验证签名者是否具有喂价权限**。这意味着攻击者可以利用任意账号生成有效签名,提交任意价格数据。 攻击者利用该漏洞,将 FTS 代币价格设置为一个极高的数值。由于抵押率已被修改为0.7,攻击者抵押的FTS代币瞬间被赋予了巨额价值,从而可以借出协议中几乎全部的流动性资产。 #### 第三步:洗劫协议资产 通过上述操作,攻击者成功借出了协议中所有的 **BNB、USDC、USDT、BUSD、BTCB、ETH、LTC、XRP、ADA、DAI、DOT、SHIB** 等代币。随后,攻击者将这些资产兑换为约 **三百余万 USDT**,并通过 **Anyswap** 和 **cBridge** 跨链至以太坊主网,最终在以太坊上转换为 ETH 和 DAI,并转入 **TornadoCash** 完成隐匿。 --- ## 关键漏洞总结 | 漏洞类型 | 具体问题 | 影响 | |---------|---------|------| | **治理合约缺陷** | 提案通过条件过于宽松,仅需4%的FTS赞成票即可通过任何提案 | 攻击者可任意修改协议参数(如抵押率) | | **预言机权限漏洞** | Umbrella `submit` 函数未验证签名者权限,仅校验签名数量 | 攻击者可提交任意价格数据,虚增代币价值 | --- ## 安全启示与防护建议 本次攻击事件为所有DeFi项目方敲响了警钟,查找币安全团队提出以下防护建议: 1. **治理机制设计需审慎** - 提案通过条件应设置更严格的阈值(如赞成票比例、投票参与率等),防止少数巨鲸操控。 - 对于涉及协议核心参数(如抵押率、利率模型)的提案,应引入多重验证或时间锁机制。 2. **预言机兼容性需严格审计** - 接入外部预言机时,需全面评估其安全模型,特别是签名验证逻辑。 - 应建立预言机价格异常检测机制,当价格出现不合理波动时自动触发熔断。 3. **权限管理需最小化** - 所有喂价操作必须验证签名者身份,确保只有授权账户可提交数据。 - 定期审查合约中的权限分配,移除不必要的特权角色。 4. **应急响应机制需完善** - 协议应具备快速暂停功能,在检测到异常交易时立即冻结资产。 - 建立与预言机提供商、跨链桥的紧急联络渠道,协同应对突发事件。 --- ## 事件时间线总结 | 时间 | 事件 | |------|------| | 4月29日 | 攻击者通过TornadoCash获取ETH,跨链至BSC | | 5月4日 | 攻击者创建恶意提案,加入提案队列 | | 5月7日 | 攻击者投票通过提案(为期3天投票期) | | 5月9日 | 执行提案、操纵预言机、借出资产、跨链洗钱 | --- ## 结语 Fortress Protocol 的本次攻击事件,暴露了DeFi协议在治理机制与外部预言机集成方面的典型安全盲区。攻击者通过 **“治理提案修改参数 + 预言机价格操纵”** 的组合拳,实现了低成本、高效率的资产盗取。这提醒我们:在快速迭代的DeFi生态中,任何环节的安全疏漏都可能成为攻击者的突破口。 **本文由查找币安全团队整理发布**
在论坛中查看和回复