引言 | OKX Web3钱包特别策划了《安全特刊》栏目,针对不同类型的链上安全问题进行专期解答。通过最发生在用户身边最真实案例,与安全领域专家人士或者机构共同联合,由不同视角进行双重分享与解答,从而由浅入深梳理并归纳安全交易规则,旨在加强用户安全教育的同时,帮助用户从自身开始学会保护私钥以及钱包资产安全。
DeFi世界最大的魅力就是,每个人都有成为「巨鲸」的潜力
但即使「巨鲸」也不能逞强,虽然吃肉,但也有「挨打」的时候
所以,链上玩耍,安全第一
不然,又要「白手起家」~
本期是安全特刊第05期,特邀区块链安全先锋BlockSec 与OKX Web3钱包安全团队,从实操指南的角度出发,给所有即将成为或者已经成为「巨鲸」的用户以及项目方,分享一份DeFi避险攻略。比如,该如何看审计报告、初步评估DeFi项目风险常用的指标和参数、项目方或者巨鲸用户,如何构建监控感知能力、DeFi安全防护守则等等...请勿错过!
BlockSec安全团队:BlockSec是全球领先的「全栈」区块链安全服务商,目前公司已服务超300家客户,包括MetaMask、Compound、Uniswap Foundation、Forta、PancakeSwap、Puffer 等知名项目方,通过白帽援救挽回了超过2000万美金的资金损失。
BlockSec的CEO & Co-Founder 周亚金是浙江大学计算机教授,Aminer评选的全球最具影响力学者,发表顶尖论文50余篇,获得超万次引用。CTO & Co-Founder 吴磊是浙江大学计算机教授,前派盾联合创始人,带领团队发现了多个知名项目的数十个零日漏洞。产品总监 Raymond,先后在腾讯、360负责安全产品。
OKX Web3 钱包安全团队:大家好,非常开心可以进行本次分享。OKX Web3 Security团队主要负责OKX在Web3领域内各类安全能力的建设,比如智能合约安全审计,钱包的安全能力建设,链上项目安全监控等,为用户提供产品安全、资金安全、交易安全等多重防护服务,为维护整个区块链安全生态贡献力量。
Q1:分享几个用户真实遭遇的DeFi风险案例
BlockSec安全团队:DeFi 因其为资产带来相对稳定的高收益,吸引了很多大户参与。很多项目方为了提高流动性,也会主动邀请大户入驻。例如,我们常常能看到新闻报道,一些大户存入巨额资产到 DeFi 中。当然,这些巨鲸在参与 DeFi 项目时,除了获得稳定的收益,也会面临一些风险。接下来,我们分享一些行业公开的DeFi风险案例:
案例一:2022 年的 PolyNetwork 安全事件中,总共有超过 6 亿美元的资产被攻击。据传,神鱼也有一亿美元在里面,虽然之后攻击者还钱,事件圆满解决,神鱼也宣布要在链上建立一座纪念碑来纪念此事,但想必此过程十分煎熬。尽管当前一小部分安全事件得到好结果,但是大部分安全事件就没这么幸运了。
案例二:知名的 DEX SushiSwap 在2023 年被攻击,大户 0xSifu 损失超过 330 万美元,他一个人的损失就达到了总损失的约 90%。
案例三:今年 3 月的 Prisma 安全事件中,总损失为 1400 万美元,这些损失来自 17 个钱包地址,平均每个钱包损失了 82 万美元,但其中 4 个用户的损失就占到了 80%。这些被盗资产大部分还没有被追回。
归根结底, DeFi ,特别是主网的 DeFi, 因为 Gas Fee 不可忽视,只有资产达到一定规模才能真的获得收益(空投奖励除外),因此,DeFi 项目的主要 TVL 一般都是由巨鲸贡献的,甚至在一些项目中 2% 的巨鲸贡献了 80% 的 TVL。当安全事件发生的时候,这些巨鲸也就必然承担了绝大部分损失。「不能光看到巨鲸们吃肉,他们也有挨打的时候」。
OKX Web3 钱包安全团队:随着链上世界的繁荣发展,用户遭遇的DeFi风险案例也与日俱增,链上安全永远是用户最基本和最重要的需求。
案例一:PlayDapp 特权账户私钥泄漏事件。2024年2月9日至12日,基于以太坊的PlayDapp游戏平台由于私钥泄漏遭受攻击,攻击者未经授权铸造并盗取了17.9亿PLA代币,损失约3,235万美元。攻击者在PLA代币中添加了新的铸币者,铸造了大量PLA,分散到多个链上地址和交易所。
案例二:Hedgey Finance攻击事件。2024年4月19日,Hedgey Finance在以太坊和Arbitrum上遭遇了重大安全漏洞,导致损失约4,470万美元。攻击者利用合约缺乏用户输入验证的漏洞,获得对易受攻击合约的授权,从而从合约中窃取资产。
Q2:能否归纳当前DeFi领域存在的主要风险类型
OKX Web3 钱包安全团队:结合真实案例,我们梳理了当前DeFi领域常见的4类风险类型
第一类:钓鱼攻击。钓鱼攻击是网络攻击中常见的一种,通过伪装成合法的实体或个人,诱骗受害者提供敏感信息,如私钥、密码或其他个人数据。在DeFi领域,钓鱼攻击通常通过以下方式进行:
1)假冒网站:攻击者创建与真实DeFi项目相似的钓鱼网站,诱使用户签署授权或转账交易。
2)社交工程攻击:在Twitter上,攻击者利用高仿账号或者劫持项目方Twitter或者Discord账号发布虚假促销活动或空投信息(实为钓鱼链接),对用户实施钓鱼攻击。
3)恶意智能合约:攻击者发布看似有吸引力的智能合约或DeFi项目,诱骗用户授权其访问权限,从而窃取资金。
第二类:Rugpull。Rugpull是DeFi领域中特有的骗局,指项目开发者在吸引大量投资后突然撤出资金并消失,导致投资者的资金被全部卷走。Rugpull通常发生在去中心化交易所(DEX)和流动性挖矿项目中。主要表现形式包括:
1)流动性撤离:开发者在流动性池中提供大量流动性吸引用户投资,然后突然撤出所有流动性,导致代币价格暴跌,投资者损失惨重。
2)伪造项目:开发者创建一个看似合法的DeFi项目,通过虚假的承诺和高收益诱骗用户投资,但实际上并没有任何实际产品或服务。
3)更改合约权限:开发者利用智能合约中的后门或权限,随时可以更改合约的规则或撤出资金。
第三类:智能合约漏洞。智能合约是自动执行的代码,运行在区块链上,一旦部署就不可更改。如果智能合约存在漏洞,将导致严重的安全问题。常见的智能合约漏洞包括:
1)重入漏洞:攻击者在上次调用未完成之前重复调用漏洞合约,导致合约内部状态出现问题。
2)逻辑错误:合约设计或实现中的逻辑错误,导致意外的行为或漏洞。
3)整数溢出:合约未正确处理整数运算,导致溢出或下溢。
4)价格操纵:攻击者通过操纵预言机价格实施攻击。
5)精度损失:由于浮点数或整数精度问题,导致计算错误。
6)缺乏输入验证:未对用户输入进行充分验证,导致潜在的安全问题。
第四类:治理风险。治理风险涉及到项目的核心决策和控制机制,如果被恶意利用,可能会导致项目偏离预期目标,甚至导致严重的经济损失和信任危机。常见的风险类型包括:
1)私钥泄漏
某些DeFi项目的特权账户由EOA(Externally Owned Accounts)或者多签钱包控制,如果这些私钥被泄漏或盗取,攻击者可以随意操纵合约或资金。
2)治理攻击
某些DeFi项目虽然采用了去中心化的治理方案,但仍然存在以下风险:
·借用治理代币:攻击者通过借用大量治理代币,在短时间内操纵投票结果。
·控制多数投票权:如果治理代币高度集中在少数人手中,这些人可以通过集中投票权控制整个项目的决策。
Q3:有哪些维度或者参数,可以初步评估DeFi项目的安全性和风险等级?
BlockSec安全团队:在参与一个 DeFi 项目之前,对项目进行一个整体的安全评估非常有必要的。特别是对于资金体量比较大的参与者来说,必要的安全尽职调查可以最大程度保障资金安全。
第一,建议对项目的代码安全进行全面评估,包括项目方是否经过审计以及是否具有良好安全声誉的审计公司审计,是否有多家审计公司参与,最新的代码是否经过审计等。通常来说,如果线上运行的代码经过多家具有良好安全声誉的安全公司的审计,会大幅降低被安全攻击的风险。
第二,要看项目方是否部署实时的安全监控系统。安全审计保证的安全是静态的,并不能解决项目上线后引发的动态安全问题。比如,项目方不适当地调整了项目的关键运行参数、增加了新的 Pool 等。项目方如果采用了一些实时的安全监控系统,那么其运行时的安全系数比没有采用这样方案的协议会更高一些。
第三,要看项目方是否具有紧急情况下的自动响应能力。这个能力长期被社区忽视。我们发现在多个安全事件中,项目方都没有能做到自动的功能熔断(或者资金敏感操作的熔断)。项目方在紧急情况下大多采用手动的方式来处理安全事件,而这样的方式被证明是低效甚至是无效的。
第四,要看项目方的外部依赖以及外部依赖的鲁棒性。一个 DeFi 项目会依赖第三方项目所提供的信息,如价格、流动性等。因此需要从外部依赖数量、外部依赖项目的安全性、是否有对外部依赖异常数据的监控和实时处理角度来评估项目等安全性。通常来说,外部依赖的项目方是头部项目方、并且对外部项目异常数据有容错和实时处理的项目会更安全。
第五,项目方是否具有比较良好的社区治理结构。这包括项目方对于重大的事件是否具有社区投票机制,敏感操作是否是多签完成,多签钱包是否引入了社区中立的参与,是否具有社区安全委员会等。这一些治理结构能提高项目透明性,降低用户在项目中的资金被 rugpull 的可能性。
最后,项目方过往的历史也非常重要。需要对项目团队和项目核心成员进行背景调查。如果项目方核心成员过往项目有过多次被攻击或者 rugpull 等不良历史记录,那么这样的项目的安全风险也会相对比较高。
总之,在参与 DeFi 项目前,用户特别是大额资金参与者要做好研究工作,从项目上线前的代码安全审计到项目上线后的实时安全监测和自动响应能力构建方面,考察项目方的安全投入和安全性,并且要从外部依赖、治理结构以及项目方过往历史等角度做好被调工作,保障投入到项目中的资金安全。
OKX Web3 钱包安全团队:虽然无法100%保证DeFi项目的安全性,但用户可以通过以下维度的交叉结合,来初步评估DeFi项目的安全性和风险等级。
一、项目技术安全性
1、智能合约审计:
1)检查项目是否经过多个审计公司的审计,审计公司是否具有良好的声誉和经验。
2)检查审计报告中报告的问题个数和严重性,确保所有问题都已修复。
3)检查项目部署的代码是否跟审计的代码版本一致。
2、代码开源:
1)查看项目的代码是否开源,开源代码允许社区和安全专家进行审查,有助于发现潜在的安全问题。
2)开发团队背景:了解项目开发团队的背景和经验,特别是他们在区块链和安全领域的经验,以及该团队的透明度和公开信息程度。
3)漏洞赏金计划:项目是否有漏洞赏金计划,以激励安全研究人员报告漏洞。
3、财务和经济安全性
1)资金锁定量:检查智能合约中锁定的资金量,较高的锁仓可能意味着项目具有较高的信任度。
2)交易量和流动性:评估项目的交易量和流动性,低流动性可能增加价格操纵的风险。
3)代币经济模型:评估项目的代币经济模型,包括代币分配、激励机制和通胀模型。比如,是否存在过度集中的代币持有情况等等。
4、操作和管理安全性
1)治理机制:了解项目的治理机制,是否有去中心化治理机制,并且社区能否对重要决策进行投票、并分析治理代币的分配和投票权的集中程度等等。
2)风险管理措施:项目是否有风险管理措施和应急预案,如何应对潜在的安全威胁和经济攻击。另外,在项目透明度和社区沟通方面,可以看看项目方是否定期发布项目进展报告和安全更新、以及是否积极与社区沟通并解决用户问题等等。
5、市场和社区评价
1)社区活跃度:评估项目的社区活跃度和用户基础,活跃的社区通常意味着项目有广泛的支持。
2)媒体和社交媒体评价:分析项目在媒体和社交媒体上的评价,了解用户和行业专家对项目的看法。
3)合作伙伴和投资方:查看项目是否有知名的合作伙伴和投资方支持,信誉良好的合作伙伴和投资方可以增加项目的可信度,但这并能成为判断其安全的决定性因素。
Q4:用户该如何看审计报告,以及开源状态等等?
BlockSec安全团队: 被审计过的项目,项目方通常会在官方渠道主动向社区公布审计报告。这一些审计报告通常在项目方的文档、Github 代码库等渠道中。另外,还需要对审计报告的真假和鉴别,鉴别的方法包括检验审计报告的数字签名、联系审计公司进行二次确认等。
那么拿到这样的审计报告,投资者如何去研读这样的审计报告呢?
第一,要看审计报告是否被一些安全声誉比较高的安全公司审计过,比如 Open Zeppelin, Trail of Bits, BlockSec 等头部审计公司。
第二,要看审计报告中提到的问题是否都已经修复,如果没有修复,要看项目方不修复的理由是否充分。这里也需要区分审计报告中的有效漏洞报告和无效漏洞报告。由于审计报告暂无统一的行业标准,因此安全审计公司会根据自己的安全认知来进行项目漏洞风险评级和报告。因此,对于审计报告中发现的漏洞,要重点关注有效漏洞报告。这个过程最好能有自己的安全咨询团队引入进行第三方独立评估。
第三,要看项目方公布的审计报告中的审计时间和最近项目的升级更新时间是否一致(或者接近),另外也需要注意审计报告中的项目方代码是否覆盖了项目方当前在线的所有代码。项目方出于经济成本和时间成本的考虑,通常会进行部分代码审计。因此在这种情况下,需要判断经过审计的代码是否是核心协议代码。
第四,要看项目方线上运行的代码是否经过验证(开源),经过验证的代码是否和审计报告中一致。通常审计会基于项目方的 Github 上代码(而不是已经部署到线上的代码)。如果项目最终部署到链上代码没有开源,或者和被审计代码具有较大差异,都是需要引起重视的点。
总之,阅读审计报告本身是一个专业性比较强的事情,建议在过程中引入独立的第三方安全专家来提供咨询意见。
OKX Web3 钱包安全团队:用户可以通过DeFi项目官网或者第三方网站,例如OKLink查看智能合约的审计报告和开源状态,下面介绍常见的查看项目审计报告和开源状态的步骤:
第一,查找官方公告或网站。大多数可信的DeFi项目都会在其官方网站展示其相关的文档信息,在项目文档页面,通常会有一个“安全”、“审计”或者“合约地址”等页面链接到审计报告及项目方部署的合约地址。除了在项目方官方网站,通常其还会在官方的社交媒体如Medium、Twitter等展示审计报告和部署的合约地址信息。
第二,在阅读项目方官方网站以后,可以通过OKLink浏览器,查询项目方给出的部署的合约地址信息,并在“合约”一栏中查看该地址部署合约的开源代码信息。
第三,在拿到项目方的审计报告和部署合约的开源代码信息后,可以开始阅读项目方的审计报告,阅读审计报告的时候有以下注意点:
1)理解审计报告的结构,对审计报告的内容有个总体的概念,审计报告大致分为简介、发现的问题、解决方案和建议和审计结果。
2)在阅读简介相关内容时,我们需要关注审计报告审计的范围和目标,通常审计报告会标注审计文件提交的Github Commit Id,我们需要对比审计报告审计的文件是否和链上部署的开源代码一致。
3)在阅读发现的问题、解决方案和建议和审计结果部分时,我们需要重点关注项目团队是否已经按照建议修复了发现的漏洞,以及项目方是否对修改的内容进行了后续审计,以确保所有问题都得到妥善处理。
4)对比多份报告。如果项目进行了多次审计,查看每次审计报告之间的差异,了解项目的安全改进情况。
Q5:黑客攻击历史、赏金计划,对DeFi项目安全性的参考价值?
OKX Web3 钱包安全团队:黑客攻击历史和赏金计划,对于DeFi项目的安全性评估提供了一定的参考价值,主要体现在以下几个方面:
第一,黑客攻击历史
1)揭示历史漏洞:攻击历史可以展示项目曾经存在的具体安全漏洞,让用户了解过去哪些安全问题被利用过,以及这些问题是否得到了彻底的修复。
2)评估风险管理能力:项目如何响应历史上的安全事件,能够体现出其风险管理和危机处理的能力。一个积极响应、及时修复漏洞并赔偿受影响用户的项目,通常被视为更可靠和成熟的投资选择。
3)项目信誉:频繁的安全问题可能减损用户对项目的信任,但如果项目能展示出从错误中学习并加强安全措施的能力,这也能够构建其长期的信誉。
第二,赏金计划
赏金计划在DeFi及其他软件项目中的实施,是提高安全性和挖掘潜在漏洞的重要策略。这些计划对项目的安全性评估带来了多方面的参考价值:
1)增强外部审计:赏金计划鼓励全球的安全研究者参与到项目的安全审计中。这种“众包”方式的安全测试能够揭露内部审计可能忽视的问题,从而增加了发现和解决潜在漏洞的机会。
2)验证安全措施的有效性:通过实际的赏金计划,项目可以在实战中测试其安全措施的有效性。如果一个项目的赏金计划历时较长但报告的严重漏洞较少,这可能是一个表明项目相对成熟和安全的指标。
3)持续的安全改进:赏金计划提供了一种持续改进的机制。随着新技术和新攻击手段的出现,赏金计划帮助项目团队及时更新和强化其安全措施,确保项目能够应对最新的安全挑战。
4)建立安全文化:项目是否设立赏金计划,以及该计划的严肃性和活跃度,能够反映出项目团队对安全的态度。一个积极的赏金计划显示了项目对建立坚实的安全文化的承诺。
5)提升社区和投资者信心:赏金计划的存在和效果可以向社区和潜在投资者证明项目对安全的重视。这不仅可以增强用户信任,还可能吸引更多的投资,因为投资者倾向于选择那些显示出高度安全责任感的项目。
Q6:参与DeFi时,用户如何构建监控感知能力
BlockSec安全团队: 以巨鲸用户为例,巨鲸主要是指个人投资者或小团队的投资机构,这些用户的资金规模较大,但通常没有非常强的安全团队,也没有自研安全工具的能力。因此,目前为止,实际上大部分巨鲸都没有足够的风险感知能力,否则就不会遭受如此巨大的损失了。
由于面临巨大损失的风险,一些巨鲸用户开始有意识地依赖一些公开的安全工具来监控和感知风险。现在,有很多团队在做监控产品,但是如何选择非常关键。这里有几个关键点:
首先,是工具的使用成本。许多工具虽然非常强大,但需要编程,使用成本并不低。对于用户来说,搞清楚合约的架构,甚至收集地址都不是容易的事情。
其次,是精准度。没有人希望在晚上睡觉时连续收到几个警报,结果发现是误报,这样会让人心态炸裂。因此,准确度也非常关键。
最后,是安全性。特别是在这种资金规模下,不能忽视工具研发及其团队的各种安全风险。最近的 Gala Game 被攻击事件,据说就是由于引入了不安全的第三方服务商。因此,可靠的团队和可信的产品至关重要。
截至目前,也有许多巨鲸找到我们,我们会为其推荐专业的资管方案,从而使巨鲸用户既能保证资金的安全,又能兼顾日常的资金管理如“挖提卖”,感知风险,甚至在紧急状态下的资金撤退。
Q7:参与DeFi的安全建议、以及如何处理安全风险
BlockSec安全团队:对于大额资金参与者,参与 DeFi 协议首要是要保证本金安全,在对可能的安全风险进行了比较充分的研究后进行投资。通常可以从以下几个方面保证资金安全。
首先,要多方位判断项目方的安全重视和投入程度。包括上面说的是否经过比较彻底的安全审计、项目方是否具有项目安全风险监控和自动响应能力、是否具有比较好的社区治理机制等。这一些都能反映出项目方对于用户资金安全是否放在比较重要的方面,是否对用户的资金安全具有高度负责的态度。
其次,大额资金的参与者也需构建自己的安全监控和自动响应系统。在投资的协议发生安全事件后,大额资金的投资人应该第一时间能感知并且能撤退资金,尽可能地挽回损失,而不是将所有的希望都寄托在项目方身上。在 2023 年我们能看到多个知名项目都被攻击过,包括 Curve、KyberSwap、Euler Finance 等。很遗憾的是,我们发现在攻击发生的时候,大额投资者往往缺乏及时、有效的情报,也没有自己的安全监控和应急撤退系统。
另外,投资人需要选择比较好的安全合作伙伴来对投资的项目标的安全进行持续的关注。无论是对项目方代码的升级、重要的参数改变等都需要能及时感知并且评估风险。而这样的事情没有专业安全团队和工具的参与是很难完成的。
最后,需要保护好私钥安全。对于需要经常交易的账户,最好通过线上多签和线下私钥安全解决方案相结合的方法来进行,杜绝单个地址和单个私钥丢失后的单点风险。
如果一旦投资的项目面临安全风险,又该如何处理 ?
相信对于任何巨鲸和投资者而言,遭遇安全事件的第一反应一定是先保本,尽快撤资是最优先的动作。但是攻击者的速度通常很快,手动操作往往来不及,因此最好能够根据风险自动撤资。当前,我们提供相关的工具,可以实现发现攻击交易后自动撤资,帮助用户优先撤离。
其次,如果真的遭遇了损失,除了吸取教训,还应该积极推动项目方寻求安全公司的帮助,对受损资金进行追溯和监控。随着整个 Crypto 行业对安全的重视,追回资金的比例在逐步提升。
最后,如果是大户,还可以请安全公司盘点投资的其他项目是否有类似问题。很多攻击的 Root cause 是一致的,例如 Compound V2 的精度损失问题,去年许多项目都存在相似的问题并被连续攻击。因此,可以请安全公司分析投资组合中其他项目的风险,如果发现风险,应该尽快与项目方沟通或撤出。
OKX Web3 钱包安全团队:参与 DeFi 项目时,用户可以通过采取多种措施来更安全地参与 DeFi 项目,降低资金损失的风险,享受去中心化金融带来的收益。我们分别从用户层面、以及OKX Web3 钱包2个层面来展开。
第一,对于用户而言:
1)选择经过审计的项目:优先选择经过知名第三方审计公司(如 ConsenSys Diligence、Trail of Bits、OpenZeppelin、Quantstamp、ABDK)审计的项目,审阅其公开的审计报告,了解潜在风险和漏洞修复情况。
2)了解项目背景和团队:通过研究项目的白皮书、官方网站和开发团队背景,确保项目具有透明性和可信度。关注团队在社交媒体和开发社区中的活动,了解其技术实力和社区支持。
3)分散投资:不要将所有资金投入到单一 DeFi 项目或资产中,分散投资可以降低风险。选择多个不同类型的 DeFi 项目,如借贷、DEX、Farming等,以分散风险敞口。
4)小额测试:在大额交易前,先进行小额测试交易,确保操作和平台的安全性。
5)定期监控账户及应急处理:定期检查自己的 DeFi 账户和资产,及时发现异常交易或活动。使用工具(如 Etherscan)监控链上交易记录,确保资产安全。检测到异常后及时采取应急措施,比如撤销账户的所有授权,联系钱包安全团队获取支持等。
6)谨慎使用新项目:对于刚上线或未经验证的新项目,保持谨慎态度。可以先投入少量资金进行试验,观察其运行情况和安全性。
7)使用主流Web3钱包进行交易:仅使用主流的Web3钱包与DeFi项目交互,主流Web3钱包提供更好的安全防护。
8)防范钓鱼攻击:谨慎点击陌生链接和不明来源的电子邮件,不要在不受信任的网站输入私钥或助记词,确保访问的链接是官方网站。使用官方渠道下载钱包和应用程序,确保软件的真实性。
第二,从OKX Web3 钱包层面而言:
我们提供了很多安全机制以保护用户资金安全:
1)风险域名检测:在用户访问DAPP时,OKX Web3钱包会在域名层面进行检测分析,如用户访问的是恶意DAPP,则会进行拦截或提醒,防止用户上当受骗。
2)貔貅盘代币检测:OKX Web3钱包支持完善的貔貅盘代币检测能力,在钱包中主动屏蔽貔貅盘代币,避免用户尝试跟貔貅盘代币交互。
3)地址标签库:OKX Web3钱包提供了丰富完善的地址标签库,在用户跟可疑地址交互时,OKX Web3钱包会及时给予告警。
4)交易预执行:在用户提交任何交易前,OKX Web3钱包都会模拟执行该交易,并将资产和授权变化结果展示给用户参考。用户可根据该结果评判是否符合预期,以便决定是否继续提交该交易。
5)集成DeFi应用:OKX Web3钱包已经集成了各类主流的DeFi项目的服务,用户通过OKX Web3钱包可以放心与集成的DeFi项目进行交互。另外OKX Web3钱包也会对DEX,跨链桥等DeFi服务进行路径推荐,以便给用户提供最优的DeFi服务和最优的Gas方案。
6)更多安全服务:OKX Web3钱包还在逐步增加更多安全功能,建设更多先进的安全防护服务,将更好更高效地保障OKX钱包用户安全。
Q8:不仅是用户,DeFi项目方面临的风险类型以及如何防护?
BlockSec安全团队:DeFi项目方面临的风险类型包括:代码安全风险、运营安全风险和外部依赖风险。
第一,代码安全风险。即DeFi项目在代码层面可能存在的安全隐患。对DeFi项目而言,智能合约是其核心业务逻辑(前后端处理逻辑等属于传统的软件开发业务,相对而言比较成熟),也是我们关注和讨论的重点,包括:
1)首先,从开发角度来说,需遵循业界公认的智能合约安全开发实践,比如对于用于防止重入漏洞的Checks-Effects-Interactions模式等等;此外,常用的功能尽可能选择可靠的第三方库来实现,避免因为重复发明轮子带来的不可知风险。
2)其次是做好内部测试,测试是软件开发中的重要环节,能够帮助发现很多问题。但对于DeFI项目而言,仅通过本地测试并不足以暴露问题,更需要在贴近实际上线的部署环境中做进一步测试,这方面可以通过使用类似Phalcon Fork这样的工具来帮助实现。
3)最后,在测试完成之后,接入口碑良好的第三方审计服务。审计虽然不能确保100%不出现问题,但系统性的审计工作能够在很大程度上帮助项目方定位已知常见的各类安全问题,而这些往往是开发者不熟悉或者因为思维方式的不同而较难触及的部分。当然,由于各家审计公司在专业和方向上存在差异,如果预算允许,在实践中也推荐2家或者多家审计公司参与。
第二,运营安全风险。即项目上线后在运营过程中的产生的安全风险。一方面,代码依旧可能存在未知漏洞。即便代码已经经过良好的开发、测试和审计,依旧可能存在未被发现的安全隐患,这一点在软件开发数十年的安全实践中得到了广泛证明;另一方面,在代码层面的问题之外,项目上线后面临更多挑战,比如私钥泄漏、系统重要参数错误设置等等,均可能造成严重的后果和巨大的损失。运营安全风险的应对策略建议包括:
1)建立健全私钥管理:采用可靠的私钥管理方法,比如可靠的硬件钱包或基于MPC的钱包解决方案等。
2)做好运行状态监控:监控系统实时感知特权操作和项目运行中的安全状态。
3)构建针对风险的自动化响应机制:比如采用BlockSec Phalcon,可以在遭遇到攻击的时候自动实施阻断,避免(进一步)的损失。
4)避免特权操作的单点风险:如用Safe多签钱包来执行特权操作。
第三,外部依赖风险是指项目存在的外部依赖带来的风险,比如依赖于其它DeFi协议提供的价格预言机,但预言机出现问题导致价格计算产生错误的结果。针对外部依赖风险的建议包括:
1)选择可靠的外部合作伙伴,如业界公认的可靠的头部协议等。
2)做好运行状态监控:类似运营安全风险,但这里的监控对象是外部依赖。
3)构建针对风险的自动化响应机制:类似运营安全风险,但处置方式可能有所区别,比如切换备用依赖而非直接pause整个协议。
此外,对于希望构建监控能力的项目方,我们也给出一些监控建议
1)准确地设置监控点:确定协议存在哪些关键的状态(变量)、在哪些位置需要监控,这是构建监控能力的第一步。但监控点的设置很难覆盖全面,特别是在攻击监控方面,建议采用外部专业第三方、经过实战检验的攻击检测引擎。
2)确保监控的精准性和及时性:监控的精准性是指不能有太多的误报(FP)和漏报(FN),缺乏精确性的监控系统实质上是不可用的;及时性是做出响应的前提(比如能否在可疑合约部署后、攻击交易上链前检测到),否则只能用于事后分析,这对监控系统的性能和稳定有极高的要求。
3)需要自动化响应能力:基于精准和实时的监控可以构建自动化的响应,包括pause协议阻断攻击等等。这里需要有可定制、可靠的自动化响应框架支持,可根据项目方的需求灵活地定制响应策略并自动触发执行。
总体而言,监控能力的构建需有专业的外部安全供应商参与建设。
OKX Web3 钱包安全团队:DeFi 项目方面临着多种风险,其中主要包括以下几类:
1)技术风险:主要包括智能合约漏洞和网络攻击。防护措施包括采用安全开发实践、聘请专业的第三方审计公司对智能合约进行全面审计、设置漏洞赏金计划以激励白帽黑客发现漏洞,以及做好资产隔离来提高资金的安全性等。
2)市场风险:主要包括包括价格波动、流动性风险、市场操纵和组合性风险。防护措施包括使用稳定币和风险对冲防范价格波动,利用流动性挖矿和动态费用机制应对流动性风险,严格审查DeFi协议支持的资产类型和使用去中心化预言机防止市场操纵,并通过持续的创新和优化协议功能来应对竞争风险。
3)运营风险:主要包括人为错误和治理机制风险。防护措施包括建立严格的内部控制和操作流程以减少人为错误的发生、使用自动化工具提升操作效率,以及设计合理的治理机制,确保去中心化与安全性平衡,如引入投票延迟和多签机制。并对上线的项目做好监控和应急预案,一旦出现异常可以立即采取措施,将损失降到最低。
4)监管风险:法律合规要求和反洗钱(AML)/了解你的客户(KYC)义务。防护措施包括聘请法律顾问确保项目符合法律和监管要求、建立透明的合规政策以及主动实施 AML 和 KYC 措施以提升用户和监管机构的信任。
Q9:DeFi项目方,如何判断并选择好的审计公司?
BlockSec安全团队:DeFi项目方如何判断并选择好的审计公司,这里有一些简单标准的可供参考:
1)是否审计过知名项目:这表明该审计公司被这些知名项目所认可。
2)审计过的项目是否被攻击过:固然从理论上来讲审计并不能保证100%的安全,但实践经验表明口碑良好的审计公司所审计的大部分项目未曾有过被攻击记录。
3)通过过往审计报告判断审计质量:审计报告是衡量审计公司专业程度的重要标志,尤其是在同样的审计项目、同样的审计范围可作对比的情况下,可重点关注漏洞发现的质量(危害程度)和数量等,漏洞发现是否通常被项目方采纳。
4)专业从业人员:审计公司的人员构成,包括学历和从业背景等,系统性的教育和从业经验对于确保审计质量有很大的帮助。
最后,感谢大家看完OKX Web3钱包《安全特刊》栏目的第05期,当前我们正在紧锣密鼓地准备第06期内容,不仅有真实的案例、风险识别、还有安全操作干货,敬请期待!
© 2024 OKX。本文可以全文复制或分发,也可以使用本文 100 字或更少的摘录,前提是此类使用是非商业性的。整篇文章的任何复制或分发亦必须突出说明:“本文版权所有 © 2024 OKX,经许可使用。”允许的摘录必须引用文章名称并包含出处,例如“文章名称,[作者姓名 (如适用)],© 2024 OKX”。不允许对本文进行衍生作品或其他用途。