Cetus 安全事件反思:DeFi 团队需警惕技术与金融风险的双重短板
作者:Haotian
近期,@CetusProtocol 发布了针对其遭遇黑客攻击的安全「复盘」报告。尽管报告在技术细节上披露得十分透明,应急响应也堪称教科书级别,但在回答「为什么会被黑」这一核心问题时,却显得避重就轻。
报告详细解释了`integer-mate`库中`checked_shlw`函数的检查错误(应为≤2^192,实际为≤2^256),并将此归因于「语义误解」。这种叙述虽然从技术角度成立,但巧妙地将责任推给了外部库,仿佛 Cetus 也是这一技术缺陷的无辜受害者。
然而,问题的关键在于:既然`integer-mate`是一个开源且广泛应用的数学库,为何偏偏在 Cetus 的场景下发生了一个 token 就能换取天价流动性份额的荒谬错误?
深入分析黑客攻击路径可以发现,黑客要实现完美攻击必须同时满足四个条件:错误的溢出检查、大幅位移运算、向上取整规则以及缺乏经济合理性验证。
遗憾的是,Cetus 在每一个触发条件上都出现了疏漏。例如,系统接受用户输入如 2^200 这样的天文数字,采用极度危险的大幅位移运算,完全依赖外部库的检查机制。最致命的是,当系统计算出「1 个 token 换取天价份额」这种明显不合理的结果时,竟然没有任何经济常识检查便直接执行。
因此,Cetus 应该深刻反思以下几点:
1)供应链安全意识缺失:尽管`integer-mate`库具有开源、流行、广泛使用等特性,Cetus 使用它来管理上亿美元资产时却没有充分了解其安全边界,也没制定失效时的备选方案。显然,团队缺乏基础的供应链安全防护意识。
2)边界设计模糊:虽然 DeFi 协议强调去中心化,但一个成熟的金融系统越是开放,就越需要明确的边界。当系统允许输入攻击者精心构造的天文数字时,团队显然未考虑这样的流动性需求是否合理。即使是全球最大的对冲基金,也不可能需要如此夸张的流动性份额。这表明,Cetus 缺乏具备金融直觉的风险管理人才。
3)审计误区:此次事件暴露出一个致命的认知盲区——项目方将安全责任外包给审计公司,把审计当作免责金牌。然而,安全审计工程师擅长发现代码 Bug,却未必会测试系统算出「天方夜谭般交换比例」时的异常情况。
这种跨数学、密码学、经济学的边界验证,正是现代 DeFi 安全的最大盲区。审计公司可能会说「这是经济模型设计缺陷,不是代码逻辑问题」;项目方则抱怨「审计没发现问题」;而用户只能眼睁睁看着自己的资金蒸发。
归根结底,这暴露了 DeFi 行业的系统性安全短板:纯技术背景的团队严重缺乏基本的「金融风险嗅觉」。
从 Cetus 的这份报告来看,团队显然没有反思到位。
比起单纯聚焦于此次黑客攻击中的技术缺陷,我认为从 Cetus 开始,所有 DeFi 团队都应该突破纯技术思维的局限,真正培养起「金融工程师」的安全风险意识。
例如:
- 引入金融风控专家,弥补技术团队的知识盲区;
- 建立多方审计审查机制,不仅关注代码审计,还应补充必要的经济模型审计;
- 培养「金融嗅觉」,模拟各种攻击场景及应对措施,对异常操作保持高度敏感。
这让我想起之前在安全公司从业时的经验,包括与行业安全大佬们 @evilcos、@chiachih_wu、@yajinzhou、@mikelee205 的交流中,我们达成了类似共识:
随着行业的日趋成熟,代码层面的技术 Bug 问题会逐渐减少,而边界不清、职责模糊的业务逻辑「意识 Bug」才是最大的挑战。
审计公司只能确保代码无 Bug,但如何做到「逻辑有边界」需要项目团队对业务本质有更深层次的理解和边界把控能力。(此前很多安全审计后依然遭黑客攻击的「甩锅事件」根本原因就在于此)
DeFi 的未来,属于那些代码技术过硬、同时对业务逻辑理解深刻的团队!