Bybit、Cetus & Balancer 2025年黑客事件:从DeFi 34亿美元漏洞攻击中吸取的安全教训

  • zealynx
  • 发布于 5天前
  • 阅读 14

本文分析了2025年Web3领域发生的多起重大安全事件,包括Bybit的前端攻击、Cetus Protocol的依赖漏洞、Balancer V2的精度损失漏洞、SwissBorg的供应链攻击以及Upbit的加密实现问题,强调了传统智能合约审计已不足以应对新的安全挑战,需要关注基础设施、前端和人为因素,进行“深度防御”和“内部管道审计”。

2025年的安全形势改变了 Web3 创始人及产品负责人的目标。2023年和2024年主要体现在复杂的 DeFi 逻辑漏洞利用,而2025年则转向了基础设施,供应链 和 “展示层”。

总损失达到 34 亿美元。然而,最关键的收获不是金额,而是许多协议都经过了 代码审计 。失败点不在于智能合约本身,而在于这些合约与外部世界的交互方式。

以下分析将分解今年最重大的事件以及它们暴露的系统性漏洞。


1. 展示层:Bybit “盲签” 危机

事件:2025 年 2 月,Bybit 损失了大约 15 亿美元。这不是闪电贷攻击或 重入漏洞,而是一次复杂的 UI 注入。攻击者通过恶意 Docker 容器破坏了内部开发管道,最终将脚本注入到托管项目 Safe{Wallet} 界面的 AWS S3 存储桶中。

盲签 UI 与 Hex

当高管们进行日常交易签名时,UI 显示了正确的目的地和金额。但实际上,底层的十六进制数据(区块链实际执行的部分)已被交换,以将资金重定向到 Lazarus Group。

教训:不要相信界面。即使你使用硬件钱包和多重签名,你的安全性也仅与渲染交易数据的软件一样强大。

  • 创始人建议:实施 “独立交易验证”。你的签名者应使用辅助的、气隙隔离的工具或 CLI 来解码交易十六进制数据,并在签名之前对照 UI 进行验证。

2. 依赖陷阱:Cetus Protocol 和 integer-mate

事件:Cetus Protocol 在基于 Move 的 Sui 网络上运行,损失了 2.23 亿美元。Move 通常被宣传为 “固有安全”,但这次漏洞利用证明,该语言无法防止第三方逻辑中的缺陷。一个名为 integer-mate 的数学库在其溢出检查 (checked_shlw) 中存在一个错误。这使得攻击者可以创建一个流动性头寸,该头寸以极小的存款额记入大量的价值。

依赖陷阱 Cetus

教训:“安全语言”的谬论。像 Move 或 Rust 这样的安全执行环境并不能防止导入库中的逻辑错误。

  • 产品负责人建议:像审计核心代码一样严格地审计你的依赖项。如果你的协议依赖于第三方数学或治理库,那么该库现在是你攻击面的一部分。

3. 精度疲劳:Balancer V2 的舍入误差

事件:11 月,Balancer V2 在多个链上遭受了 1.28 亿美元的损失。漏洞存在于其 Stable Pools 的 mulDown 函数中。通过将池余额操纵到微观水平(8-9 wei),攻击者导致 Solidity 的整数除法失去了显著的精度。通过在单个原子交易中重复 65 次这种 “微交换”,攻击者使池的不变量发生了足够的偏移,从而耗尽了资产。

精度疲劳循环

教训:经济边缘情况是安全漏洞。大多数单元测试不检查 8 wei 时的行为,但那恰恰是数学崩溃的地方。

  • 项目负责人建议:针对低流动性和高滑点场景专门加入 “模糊测试”。即使在十进制精度的极端边缘,你的协议也必须保持数学上的健全性。

4. 供应链脆弱性:SwissBorg 和 Kiln API

事件:SwissBorg 损失了 4200 万美元 的 SOL,不是因为他们自己的代码,而是因为他们的 staking 提供商 Kiln 的 GitHub Token被盗。攻击者将一个 payload 注入到 Kiln API 中,该 payload 生成了恶意交易指令。当 SwissBorg 的系统请求一个例行的 “取消质押” 命令时,API 返回了一个交易,其中还包括一个 “委托权限” 指令,将帐户的控制权交给攻击者。

供应链攻击 Kiln

教训:API 响应是不可信的输入。如果你的协议或平台基于第三方 API 自动执行交易,那么你就有了一个单点故障。

  • 创始人建议:将外部服务生成的每笔交易都视为 “受污染的”。实施一个中间件层,该层解析交易指令并标记任何意外的命令(例如未经授权的 ApproveDelegate),然后再将其传递给签名者。

5. 密码学实现:Upbit nonce 失败

事件:由于其专有的数字签名基础设施中的一个故障,Upbit 损失了大约 4000 万美元。该系统产生了有偏差的 “nonce”(ECDSA 签名中使用的随机数)。通过分析区块链上有效签名的历史记录,攻击者能够以数学方式离线推导出私钥。

Nonce 失败模式

教训:永远不要 “自己编写” 密码学。存在标准、经过同行评审的库(如 OpenZeppelin 或官方椭圆曲线),这是有原因的。自定义实现通常会引入细微的密码学弱点,这些弱点在为时已晚之前是不可见的。

  • 技术负责人建议:标准化经过实战考验的开源密码学库。如果出于性能原因需要自定义解决方案,则需要专门的密码学审计,而不仅仅是标准的智能合约审查。

    • *

结论:转向 “深度防御

2025 年的黑客攻击表明,智能合约审计 不再是充分的安全检查。我们正在进入系统性安全时代,其中基础设施、前端和人工签名者是主要目标。

你的下一步: 执行 “内部管道审计”。不要查看你的 Solidity 代码,而是绘制出在交易到达主网之前接触它的每个工具和人员 — 从托管你的 UI 的 AWS S3 存储桶到你的开发团队使用的 GitHub Token。如果其中任何一个点都可以触发交易,那么这就是你的下一个漏洞所在。


联系我们

在 Zealynx,我们深知安全性不仅仅限于智能合约。从基础设施审查到全栈审计,我们确保你的协议的每一层都是安全的。联系我们 以开始对话。


常见问题解答:从 2025 年 Web3 安全中汲取的教训

  1. 什么是 “盲签”,用户如何预防它?

当用户根据 UI 显示的内容批准交易,而不验证实际的底层十六进制数据时,就会发生 “盲签”。在 Bybit 事件中,UI 显示了合法数据,但发送到区块链的交易是恶意的。用户可以通过使用独立的硬件钱包验证或 CLI 工具来解码原始十六进制数据,然后再进行签名来预防这种情况。

  1. 为什么审计不足以预防像 Bybit 这样的漏洞利用?

标准的智能合约审计侧重于在区块链上运行的代码(Solidity/Rust)。它们通常不包括 “展示层”(前端代码、托管基础设施、DNS)或内部开发管道。Bybit 是通过其 CI/CD 管道被黑客入侵的,该区域超出了传统协议审计的范围。

  1. 是什么让像 Move 这样的 “安全” 语言容易受到攻击?

像 Move 和 Rust 这样的语言提供内存安全和形式验证功能,可以防止在 Solidity 中发现的许多常见错误。但是,它们不能防止第三方库中的逻辑错误。如果协议导入包含缺陷的外部库(如 Cetus 黑客攻击中的 integer-mate),则无论该语言的安全功能如何,该协议都会继承该漏洞。

  1. 舍入误差如何导致 DeFi 中的巨额损失?

在 DeFi 中,舍入误差(精度损失)似乎可能导致 dust 的损失(微不足道的价值)。但是,如果攻击者可以强制计算在他或她的青睐下始终如一地舍入数千次在循环中或跨越大量的情况下,他们可以耗尽池的流动性。Balancer V2 漏洞利用了这种 “精度疲劳” 来操纵池的不变量。

  1. Web3 中的 “供应链” 攻击是什么?

供应链攻击针对项目依赖的工具、库或服务,而不是项目本身。SwissBorg/Kiln 事件就是一个典型的例子:攻击者破坏了 Kiln(质押提供商)的 GitHub Token,这使他们可以将恶意逻辑注入到 SwissBorg 使用的 API 中,从而通过受信任的供应商有效地破坏了 SwissBorg。

  1. 协议如何保护其 “生成层”(nonces)?

生成层” 涉及用于生成密钥和签名的密码学随机性。如果随机数生成器 (RNG) 存在偏差或可预测(如 Upbit 的 nonces),则攻击者可以逆向工程私钥。协议必须避免 “自己编写密码学”,并且严格使用经过实战考验的标准密码学库(如 OpenZeppelin 或标准语言实现),这些库已经过特定的密码学审计。

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

0 条评论

请先 登录 后评论
zealynx
zealynx
江湖只有他的大名,没有他的介绍。