作者:BlockSec
引言
随着 DeFi 发展不断重塑金融格局,安全始终是 DeFi 生态面临的重大挑战,安全问题每年都造成数十亿美元的资产损失。
根据 Chainalysis 的数据,2023 年 DeFi 黑客攻击导致超过 11 亿美元的资产损失。尽管这一数字较 2022 年有所下降,但 2023 年出现了新的 DeFi 攻击趋势。例如,一些长期安全运行的知名协议,如 Curve 和 KyberSwap,也遭到攻击。此外,还出现了针对基础设施漏洞(如 Flashbots Relay)的复杂攻击。
Security Incident Dashboard 数据显示,2024 年上半年共发生超过 50 起造成 10 万美元以上损失的黑客攻击事件。
近期黑客攻击事件
(来源: Security Incident Dashboard)
https://app.blocksec.com/explorer/security-incidents
安全对于 DeFi 协议发展至关重要。部分协议管理着数十亿美元的用户资产,安全事件会给用户带来重大损失。虽然在某些情况下,被盗资金可以(部分)追回(例如 Euler 攻击事件),但我们不能将希望完全寄托于此。每一次的攻击事件,都在削弱用户对 DeFi 的信心。
尽管业界已提出许多增强安全性的措施,但 DeFi 安全仍有很大的提升空间。从积极的一面来看,代码审计已成为社区共识,大多数协议在上线前都会进行审计,这有助于降低由智能合约漏洞导致的攻击风险。然而,单靠代码审计远远不足以解决所有安全问题。代码审计无法防止由合约升级、配置更改和外部依赖引入漏洞所导致的攻击。鉴于这些局限性,一些协议开始采用更加主动的解决方案,如运营监控和攻击检测系统。
在本文中,我们将纵览协议从上线前(Pre-Launch)、上线运营(Post-Launch)、到攻击响应(Attack Response)阶段可采取的安全举措,来了解 DeFi 安全全景。我们将详细介绍每类安全举措及其主要的供应商/产品,以及它们的优缺点。希望本文能帮助社区更好地了解 DeFi 安全现状,为创新的安全解决方案带来启发。
DeFi 安全全景
DeFi 协议的安全举措应当贯穿协议上线前到上线后的全生命周期,确保协议本身以及运营期间的安全性。此外,针对潜在攻击提前部署预防措施和响应计划同样至关重要。为帮助读者清楚地了解目前有哪些 DeFi 安全解决方案,我们将相关供应商(产品)分为以下几类。
Pre-Launch Security
协议上线前可采取的安全措施,包括代码审计、形式化验证和安全测试。
代码审计服务&竞赛
代码审计是社区公认的保障协议安全的做法。在此过程中,安全公司会对已冻结的代码进行半自动化审查,即自动化扫描代码中的常见漏洞,再通过人工审查复杂漏洞,代表性的审计公司有 OpenZeppelin、ChainSecurity、BlockSec 等。
此外,还有审计竞赛平台。与直接提供审计服务的审计公司不同,这些平台公开发布审计需求,吸引社区中的安全研究人员参与审计竞赛,并将奖励分配给发现协议漏洞的参赛者。审计竞赛平台包括 Code4rena、SHERLOCK、Cantina、Secure3 等,各个平台在漏洞严重级别、分配奖励和参与标准上都存在一些差异。
代码审计是协议安全的第一道防线。然而,它也存在一些局限性,这也是为什么许多由知名公司审计的协议仍旧未能避免黑客攻击。
首先,静态代码审计无法解决由协议依赖引起的安全问题,DeFi 协议的可组合性更加剧了这一点。
其次,在代码审计过程中,一些问题没有受到足够的重视。例如,精度损失是一个常见问题,可能会被审计员和协议方忽视。直到 Hundred Finance 和 Channels Finance 事件发生后,社区才充分认识到精度损失的安全影响。
最后,高质量的代码审计仍然是稀缺资源,需要具有安全、金融和计算机科学知识的跨学科人才,而目前很少有大学能够持续且大规模地提供此类人才。因此,一些协议尽管进行了审计,但提供审计服务的审计人员专业性上是不足的。
形式化验证
“形式化验证根据某种形式规范或属性,使用数学方法证明系统的正确性或不正确性。” 形式化验证可以确保 DeFi 协议的行为符合形式规范。例如由 Certora 开发的 Prover 可以对 DeFi 协议进行形式化验证。开发者提供规则(规范),Prover 将探索每一种可能的程序状态,将结果与规则进行比较,从而识别漏洞。
形式化验证的最大优势在于它能够通过数学证明管理数十亿资产的 DeFi 协议的正确性。然而,实际应用中的一些限制阻碍了其广泛采用。
首先,规范需要由开发者提供,这要求开发者对协议的预期行为有详细的文档说明,而大多数开发并非这一领域的专家。
其次,协议的频繁升级可能需要更新规范并重新评估协议,一些协议可能无法付出这么多的时间和精力。
尽管存在这些限制,我们仍然认为协议应该进行形式化验证,特别是那些尚未经过时间检验且管理大量用户资产的新协议。但是,如何增强形式化验证的可操作性并提高其采用率,仍然是当下面临的一个巨大挑战。
安全测试
安全测试通过测试用例来发现协议中存在的潜在问题。相较于通过数学方法证明协议正确性的形式化验证,安全测试一般使用具体的输入数据(而非形式化验证中的符号输入),因此效率更高,但全面性略低。
Foundry 是一个颇受欢迎的智能合约开发测试框架。开发者可以在 Foundry 中执行测试,还能够对 DeFi 协议进行差分测试、不变性测试及差异测试。其他安全测试工具还包括 Tenderly 和 Hardhat。
Post-Launch Security
协议上线后可采取的安全措施,包括 Bug Bounty、攻击检测和运营监控。
Bug Bounty
Bug Bounty 搭建起了协议和安全研究人员之间的桥梁。协议在 Bug Bounty 平台发布赏金计划,详细说明赏金范围和奖励金额,安全研究人员通过报告协议的零日漏洞来获取奖励。Immunefi 是一个具有代表性的 Web3 Bug Bounty 平台。
攻击检测
攻击检测平台通过扫描交易识别恶意交易。具体来说,这些平台会扫描与协议交互的每笔交易来寻找恶意行为,在识别恶意交易后系统触发警报。
例如,BlockSec Phalcon 扫描每一笔内存池和链上交易,通过分析交易的行为特征来识别恶意行为(如恶意合约、恶意提案)。它就像一位安全卫士,不眠不休地监控每一笔交易的每一个细节寻找不寻常的动向。它从这些交易中提取行为模式,并使用金融模型(类似银行用于检测欺诈的模型)来识别潜在攻击。类似的系统还包括 Hypernative 和 Hexagate 提供的产品。此外,Ironblocks 的 Venn Security Network 提供了一个去中心化基础设施,能够聚合多个来源的检测结果。
运营监控
顾名思义,运营监控框架监控协议上线后的运营安全。比如,实时掌握管理员密钥变更情况、智能合约的部署与更新,并自动检测拉取请求中的安全漏洞。OpenZeppelin Defender 平台能够帮助开发者安全地编写、部署、运行智能合约。BlockSec Phalcon 能够监控合约升级、Safe钱包交易(如被发起、新签署、执行)、访问控制及治理相关风险。另外,通过实时监控系统 Forta Network,用户能够创建机器人监控协议,或者订阅现有机器人来接收钓鱼等安全威胁警报。
Attack Response
攻击发生后自动触发或紧急采取的安全措施,包括攻击阻断、自动响应、War Room、攻击成因分析以及攻击者资金流追踪。
在这五项响应措施中,尤其值得注意的是攻击阻断,因为项目方能够提前部署,在攻击发生前阻断攻击,将损失降至零,自动响应平台也有助于减少攻击造成的损失。
建立 War Room、进行攻击成因分析和资金流追踪是攻击发生后采取的应对措施,虽然有助于减少损失、防范未来的类似攻击,但很可能已经造成重大损失且难以追回。此外,项目声誉受损及用户信任流失可能带来深远的负面影响。风险似乎无处不在、防不胜防,但项目方并非只能被动应对,可以提前部署防范措施,这也是更为推荐的做法。
攻击阻断
攻击检测是获知黑客攻击的重要渠道,但如果要对抗黑客攻击,只有检测远远不够。因为如果没有自动化的攻击阻断能力,手动采取响应措施往往来不及。以 KyberSwap、Gamma Strategies 和 Telcoin 攻击事件为例,这些协议在攻击的数分钟甚至几小时后才采取了响应措施,黑客在这段时间内发起多笔攻击交易,盗走巨额资产。七月的 Velocore 和 Rho 攻击事件则导致 Linea 和 Scroll 全链暂停运行,引发了用户对 L2 链中心化问题的关注。
攻击阻断能够自动防范黑客攻击,这依赖于两项核心技术:提前检测和自动抢跑。提前检测指的是在交易上链之前,还在内存池阶段时,就能识别出哪些是攻击交易。自动抢跑则是在攻击交易上链之前,优先提交一笔抢跑交易暂停协议,从而阻止攻击交易的执行。这种方法在攻击实质发生之前就进行阻断,从而避免了损失。
在这一类别中,BlockSec Phalcon 是唯一拥有这些核心技术的产品。黑客发起攻击交易后,Phalcon 的攻击监测引擎可以提前检测到这笔交易,向用户推送攻击告警,同时自动抢跑暂停协议,将损失降低至0。该产品的攻击阻断能力已在过往的二十多次白帽救援中得到验证,共挽救了超过 2000 万美元资产。
自动响应
除了攻击阻断平台外,Phalcon、Hexagate、Hypernative 等平台也可以在发生攻击时自动响应。
订阅此类平台后,用户可以针对各类协议风险设置监控以及响应措施。如果一笔交易命中了监控规则,系统就会自动发起用户提前设置的响应措施(如暂停协议),从而降低损失。不过,部分平台不具备攻击检测引擎,系统无法直接识别攻击交易并告知用户,而是需要用户自定义一笔交易满足哪些条件下可以判定为攻击。由于攻击交易的特征非常复杂,而用户(往往是合约开发者)不一定具备足够的安全知识,这对用户来说是很有挑战性的。
War Room
当协议面临攻击时,建立 War Room 显得尤为关键。这有助于协议掌握情况、与社区及时同步信息,并有效整合资源以采取应对措施,这需要多领域专家的密切合作。
SEAL 911 旨在“在紧急情况下,帮助用户、开发者和安全研究人员直接联系到值得信赖的安全专家”。用户可以通过 SEAL 911 Telegram Bot(https://t.me/seal_911_bot) 获取这个服务,在项目遭到攻击时,迅速组建 War Room 应对安全挑战。
攻击成因分析
当协议遭受攻击时,关键是要识别出问题的根源,例如智能合约内部的漏洞以及漏洞是如何被利用的。分析攻击交易需要借助一些工具,Phalcon Explorer、OpenChain 和 Tenderly 都是不错的选择。
资金流追踪
资金流追踪是指链上追踪攻击者的初始资金和攻击获利,来定位相关的地址和实体。如果这些资产流向了中心化实体(例如,中心化交易所和其他机构级实体),可以联系执法机关帮助冻结资金。
Chainalysis、TRM Labs、ARKHAM、ELLIPTIC 和 MetaSleuth 是该领域的代表性公司/产品。例如,MetaSleuth 可以自动追踪跨链资金流,并提供丰富的地址标签。ARKHAM 建立了一个社区,协议方可以在此发布调查 Bounty 激励社区成员协助追踪攻击者的资金流向。
安全教育资源
知识是最好的防线。除了前面提到的安全供应商和产品外,还有一类角色对于 DeFi 安全至关重要:教育平台。这些平台提供的资源或资讯能够帮助 DeFi 从业者和用户深入理解安全知识、提高安全意识、培养安全技能,为推动 DeFi 安全发展提供了重要作用。我们对这些平台致以敬意,并分享以下几个值得关注的平台。
SΞCURΞUM:一个专注于以太坊安全的 Discord 社区,并且定期举办智能合约安全竞赛 “Secureum RACE”。
https://x.com/TheSecureum
Security Incidents Dashboard:该平台汇总并实时更新损失超过十万美元的攻击事件,并提供损失金额、受影响的链、漏洞类型、攻击成因分析和 PoC 等详细信息。
https://app.blocksec.com/explorer/security-incidents
Rekt:被称为 DeFi 新闻的暗网,提供对 DeFi 漏洞利用、黑客攻击和诈骗行为的深入分析。
https://rekt.news/
RugDoc:DeFi 安全和教育社区。该平台提供项目风险评估信息,还有一个介绍 DeFi 生态和技术的平台 RugDocWiKi。
https://rugdoc.io/
DeFiHackLabs:Web3 安全社区,致力于帮助 Web2 安全人才进入 Web3 领域,在全球拥有两千多成员和近两百位白帽黑客,DeFiHackLabs 的仓库提供了丰富的学习资源。
https://x.com/DeFiHackLabs
Solodit:该平台收录了 Web3 审计公司过往的审计报告。
https://solodit.xyz/
Ethernaut:一款基于 Web3/Solidity 的游戏,玩家需要识别以太坊合约的漏洞,形式类似于 CTF。
https://ethernaut.openzeppelin.com/
结语
安全问题每年造成数十亿美元的损失,是 DeFi 生态长期面临的严重威胁。目前,大多数安全措施针对的是项目上线前的安全问题。然而,安全领域没有“银弹”。在协议发展的不同阶段,都应该有相应的措施来保障其安全,并且贯穿协议的全生命周期。
我们期待行业能够认识到项目上线后安全的重要性,采取措施监控协议风险并自动阻断攻击。
我们也希望 DeFi 生态能够形成安全第一的共识,从而更好地保护用户的资产安全。