Back to Blog

DeFi安全领域:你需要了解的50个关键参与者

August 30, 2024
12 min read
Key Insights

TL;DR

  • 安全性依然是 DeFi 面临的一项关键且持续的挑战,每年造成的损失高达数十亿美元。
  • DeFi 协议的安全措施应贯穿其整个生命周期,从预上线到上线后,保障其固有属性和运营层面的安全。实施预防性策略和应急预案以减轻潜在攻击至关重要。
  • 以代码审计为核心的预上线安全已成为行业共识。然而,尽管上线后的安全解决方案(如攻击监控与拦截)已经出现,但其重要性尚未得到社区的充分认可。
  • 不断完善安全实践并转向“安全至上”的文化,对于保护用户资产和增强生态信任至关重要。
DeFi 安全版图
DeFi 安全版图

简介

随着 DeFi 继续变革金融格局,安全性依然是生态系统内的一大忧虑,每年造成的损失高达数十亿美元。

根据 Chainalysis 的数据,2023 年 DeFi 协议被黑导致的损失超过 11 亿美元。尽管这一数字相较于 2022 年有所下降,但 2023 年的 DeFi 攻击呈现出多种新趋势。例如,CurveKyberSwap 等已经安全运行多年的知名协议遭到攻击。此外,针对基础设施漏洞的复杂攻击(例如 Flashbots relay 攻击)也已被披露。

根据 安全事件仪表板 (Security Incident Dashboard) 的数据,2024 年上半年发生了超过 50 起损失超过 10 万美元的黑客攻击事件。

安全事件仪表板中的近期攻击事件
安全事件仪表板中的近期攻击事件

安全性是 DeFi 应用实现繁荣和大规模采用的关键因素。这是因为 DeFi 协议管理着数十亿美元的用户资产,任何针对这些协议的攻击都可能导致受影响用户遭受严重损失。尽管在某些情况下,被盗资金可以(部分)追回(例如 Euler 安全事件),但我们不能每次都寄希望于此。每一次攻击都会蚕食人们对 DeFi 的信心。

尽管目前已提出多种提升 DeFi 安全性的方法,但仍有很大的改进空间。

  • 从积极的一面看,代码审计已成为确保安全的行业共识。大多数协议在上线前都会进行代码审计,这有助于减少因智能合约漏洞而产生的攻击面。
  • 然而,仅靠代码审计远不足以解决所有安全问题。它无法防止因智能合约升级、配置变更以及不同协议间的运行时依赖关系所引入的漏洞而导致的黑客攻击。

由于这些局限性,运营监控或攻击检测系统等更主动的解决方案已经出现,并被部分协议所采用。

本篇博客将通过追踪协议在不同阶段(从预上线阶段、运营阶段到攻击响应)的安全路径,来探讨 DeFi 的安全版图。我们将详细阐述各类安全措施,重点介绍每个阶段的主要供应商(产品),并讨论其优缺点。 我们希望我们的见解能帮助社区更好地了解行业现状,更重要的是,激发未来创新的解决方案。

DeFi 安全版图

DeFi 协议的安全措施必须涵盖其整个生命周期,从预上线阶段到上线后阶段,确保协议在固有安全和运营安全方面的双重保障。此外,建立预防性措施和应急预案以应对潜在攻击是必不可少的。为了帮助读者理解现有的解决方案,我们将 DeFi 安全供应商(产品)分类如下:

预上线安全

该类别包含在协议上线前执行的安全措施,包括代码审计、形式化验证以及安全测试。

预上线安全:代码审计服务与审计竞赛、形式化验证及安全测试
预上线安全:代码审计服务与审计竞赛、形式化验证及安全测试

代码审计服务与竞赛

代码审计是社区公认的保障协议安全的实践。在此过程中,安全公司会以半自动化的方式审查代码,即自动扫描常见漏洞,并人工审查复杂的漏洞。代表性公司包括 OpenZeppelinChainSecurityBlockSec 等。

此外,还有审计竞赛平台,它们与安全审计公司的审计方式有所不同。这些平台发起审计竞赛,邀请社区的安全研究人员参与,并向发现问题的人奖励。当然,平台在评估严重性、奖励分配算法以及参与安全研究员的准入标准方面可能存在细微差别。此类平台包括 Code4renaSHERLOCKCantinaSecure3

代码审计(及竞赛)是协议安全的第一道防线。然而,它具有实际的局限性,这也解释了为什么许多由知名公司审计过的协议仍然会被黑。

  • 首先,静态代码审计无法全面评估由于协议依赖性引起的安全问题,特别是考虑到 DeFi 协议的可组合性。
  • 其次,一些问题的安全影响在代码审计过程中被低估了。例如,精度损失是一个常见问题,可能被审计员和协议双方忽略。直到 Hundred FinanceChannels Finance 事件发生后,该问题的安全影响才得到社区的充分认识。
  • 最后但同样重要的是,高质量的代码审计依然是一种高端且稀缺的资源,需要具备安全、金融和计算机科学等多学科知识的人才。目前,很少有大学能够持续并大规模地培养此类人才。因此,协议可能会被缺乏相应资质的公司审计。

形式化验证

形式化验证 (Formal verification) 是指使用数学形式化方法来证明或证伪一个系统相对于特定形式规范或属性的正确性。”由于能够证明系统的正确性,形式化验证已被应用于 DeFi 协议。具体而言,它可以确保 DeFi 协议的行为满足形式化规范。DeFi 协议形式化验证产品的代表是 Certora 开发的 Prover。开发者提供规则(规范),Prover 会通过探索每一个可能的程序状态,将执行结果与规则进行比对以识别漏洞。

形式化验证最有前景的地方在于它能从数学上证明 DeFi 协议的正确性。然而,在实践中,它仍有一些局限性阻碍了其广泛采用。

  • 首先,规范需要由开发者提供,这要求开发者对协议的预期行为有详细的文档化规范。鉴于大多数开发者并非该领域的专家,这并不容易。
  • 其次,频繁的协议升级可能需要更新规范并重新评估协议。一些协议可能无法承担相应的时间和成本。

尽管如此,协议(尤其是尚未经受实战考验且管理着大量用户资产的新协议)仍应进行形式化验证。然而,提升易用性和提高形式化验证的采用率仍然是一个持续的挑战。

安全测试

安全测试是指通过测试用例发现协议漏洞的过程。与从数学上证明协议正确性的形式化验证相比,安全测试通常使用具体输入而非形式化验证中的符号化输入,因此效率更高,但严谨性较弱。

  • Foundry 是智能合约中最流行的开发和测试框架之一。开发者可以在 Foundry 中运行测试。它还提供了对 DeFi 协议执行模糊测试 (fuzz testing)、不变性测试 (invariant testing) 和差异测试 (differential testing) 的功能。
  • 其他安全测试工具包括 TenderlyHardhat

上线后安全

该类别包含在协议上线(或在主网上运行)后执行的安全措施,包括漏洞赏金、攻击检测和运营监控。

上线后安全:漏洞赏金、攻击检测和运营监控
上线后安全:漏洞赏金、攻击检测和运营监控

漏洞赏金

漏洞赏金计划在协议与安全研究人员之间架起了一座桥梁。其核心概念是激励研究人员报告零日漏洞以换取奖励。具体来说,协议可以在漏洞赏金平台上列出赏金项目,详细说明赏金范围和所报漏洞的奖励金额。Immunefi 是 Web3 漏洞赏金平台的典型代表。

攻击检测

攻击检测平台通过扫描交易来定位恶意行为。具体而言,这些平台审核与协议进行交互的交易以排查恶意动作。一旦发生此类交易,就会触发报警。

  • 例如,BlockSec Phalcon 通过对交易进行扫描,并采用基于行为的检测引擎来识别恶意活动(例如恶意合约或提案)。你可以把它想象成一个虚拟保安,观察金融交易的每一步,寻找任何可疑行为。它像侦探分析线索一样从交易中提取行为模式,然后使用类似银行反欺诈的金融模型来识别潜在攻击。
  • 类似的系统还包括由 HypernativeHexagate 提供的产品。
  • 此外,来自 IronblocksVenn Security network 提供了一种去中心化基础设施,可以将来自多个来源的检测结果综合起来。

运营监控

运营监控框架为 DeFi 协议实现运营安全提供了手段。例如,DeFi 协议需要感知管理员密钥变更、执行智能合约部署和升级,并自动扫描提交(Pull Request)以发现安全漏洞。

攻击响应

该类别包含在攻击发生时触发的安全措施,包括攻击拦截、自动动作、作战室 (War Room)、根本原因分析以及攻击者资金流追踪。

攻击响应:攻击拦截、自动动作、作战室、根本原因分析及资金流追踪
攻击响应:攻击拦截、自动动作、作战室、根本原因分析及资金流追踪

在攻击响应的五项措施中,攻击拦截尤为突出,因为它允许项目团队提前部署预防措施,在攻击执行前将其成功拦截,并将损失降至零。自动响应平台也有助于减轻攻击造成的损害。

建立作战室、进行根本原因分析和追踪被盗资金是对攻击发生后的反应性步骤。虽然这些策略可以减轻部分损失并有助于防止未来发生类似攻击,但此时通常损失已经发生,且难以追回。此外,这对项目声誉的打击以及随之而来的用户信心流失可能是深远的。

风险无处不在且往往难以控制,但选择部署预先防范措施完全可行,且极力推荐。

攻击拦截

在实践中,单靠攻击检测不足以对抗黑客攻击。这是因为,没有自动拦截能力,人工响应的速度往往不够快。在某些情况下(如下表中的 KyberSwap、Gamma Strategies 和 Telcoin 事件),协议采取人工干预需要数分钟甚至数小时,这对于保护协议中的资产来说已经太晚了。在近期针对 Velocore 和 Rho 的攻击中,LineaScroll 整个链条被被迫暂停,这引发了人们对 L2 链去中心化程度的担忧。

攻击拦截是指自动防止黑客攻击的能力,需要两项关键技术:早期检测和自动抢跑 (Frontrunning) 防御

  • 早期检测意味着系统能够在攻击交易在区块链上确认之前(特别是在内存池等待处理时)将其识别出来。
  • 抢跑防御涉及在链上领先于攻击交易执行一笔交易,以暂停协议,从而在攻击被执行前有效地将其制止。

在此类别中,BlockSec Phalcon 是唯一具备这些关键技术的产品。在黑客发起攻击交易后,Phalcon 的攻击监控引擎能立即识别该交易,向用户发出攻击警告,并自动通过抢跑操作暂停协议,将损失降至零。其关键技术已在 超过 20 次救援行动中经受了考验,挽回了超过 2000 万美元的资产

自动动作

PhalconHexagateHypernative 这样的平台也可以在攻击发生时自动响应。

订阅此类平台后,用户可以为各种协议风险设置监控和响应措施。如果交易符合监控规则,系统将自动启动用户预设的响应动作(例如暂停协议),从而减少损失。

然而,一些平台并没有攻击检测引擎,系统无法直接识别攻击交易并通知用户。这需要用户自行定义在何种条件下交易可被视为攻击。由于攻击交易的特征非常复杂,且用户(通常是合约开发者)可能缺乏足够的安全知识,这对他们来说相当具有挑战性。

作战室 (War Room)

当协议遭受攻击时,建立作战室是必要的。这可以帮助协议方了解局势、在社区内分享情报,并利用资源采取进一步行动。这通常需要不同领域的专家参与。

SEAL 911 是一个旨在“让用户、开发者和安全研究人员在紧急情况下与一小群高度可信的安全专业人士取得联系”的项目。可以通过 SEAL 911 Telegram 机器人 获得帮助。如果项目遭到黑客攻击,可以建立作战室以协助协议处理。

根本原因分析

当攻击发生时,协议需要了解根本原因,例如智能合约内部的漏洞以及它是如何被利用的。这需要一些实用的工具来分析攻击交易。Phalcon ExplorerOpenChainTenderly 可用于此目的。

资金流追踪

资金流追踪是指追踪攻击者的初始资金和攻击利润在区块链上的流向,以定位相关的地址和实体。如果资产流入中心化实体(例如中心化交易所等机构级实体),可以联系相关执法部门协助冻结资金。

该领域有几家公司和工具,包括 ChainalysisTRM Labs、ARKHAM、ELLIPTIC、MetaSleuth 等。

  • 例如,由 BlockSec 开发的 MetaSleuth 可以利用丰富的钱包地址标签自动追踪不同链上的资金流向。
  • ARKHAM 拥有一个社区,协议可以在上面悬赏调查,通过激励措施让社区帮助追踪攻击者的资金。

安全教育资源

知晓一切才能构建更强的防御。除了上述安全供应商和产品外,DeFi 安全的另一个关键组成部分是教育平台。

DeFi 安全教育平台
DeFi 安全教育平台

这些平台为 DeFi 从业者和用户提供了必要的资源,以理解安全见解、增强意识并培养安全技能。它们在 DeFi 安全的进步中发挥着至关重要的作用。我们向这些教育平台表示感谢,并列举了一些值得关注的例子。

  • SΞCURΞUM: 一个专注于以太坊安全的 Discord 社区。它每月举办智能合约安全问答活动“Secureum RACE”。
  • 安全事件仪表板 (Security Incident Dashboard): 该平台收集了所有损失超过 10 万美元的攻击事件,详细列出了损失数额、受影响链、漏洞、根本原因及 POC。
  • Rekt: 被誉为 DeFi 新闻界的“暗网”,Rekt 提供了生态系统内漏洞利用、黑客攻击和诈骗的深入分析报告。
  • RugDoc: 一个评估项目风险的 DeFi 安全与教育社区。它还设有 RugDocWiKi 平台,介绍 DeFi 生态和技术。
  • DeFiHackLabs: 一个拥有超过 2600 名成员和近 200 名白帽黑客的 Web3 安全社区,旨在填平 Web2 和 Web3 安全专业知识的鸿沟。
  • Solodit: 一个汇集了各种 Web3 审计公司历史报告的平台,是智能合约审计员的重要资源。
  • Ethernaut: 一个基于 Web3/Solidity 的游戏,类似于 CTF 挑战,玩家需要在其中识别以太坊合约的漏洞。

结语

安全性对 DeFi 生态系统来说仍是一个持续且严峻的威胁,每年造成数十亿美元的损失。目前,大多数安全措施都是在预上线阶段执行的。然而,不存在安全上的“银弹”,在 DeFi 协议的整个生命周期中应采取多种方法进行综合防护。我们期待行业能够采用上线后的安全解决方案,进行监控,更重要的是,实现自动阻断攻击。我们预见,生态系统内将会建立起“安全至上”的文化,以全面保护用户的资产。

相关阅读