2022 年第三季度 Web3 行业安全报告

撰文:CertiK


2022 年第三季度,黑客从 Web3.0 领域中盗取了总价值约 5 亿美元的资产,这个数字相比上季度减少了 32.32%,同时今年的损失总额增长至 28.8 亿美元。

第三季度共发生了 98 起退出骗局,导致了 5619 万美元的资产损失,23 起闪电贷攻击则导致了 1737 万美元的资产损失。

仅 6 起多链安全事件造成的高达 4.3 亿美元的损失金额就占到了本季度总损失的 85.3%。

第三季度 CertiK 审计的 Web3.0 项目数量新增了 537 个,同时 CertiK 审计的项目总数达到了 4737 个。37 个 Web3.0 项目成功通过 KYC 项目背景调查,47 个项目入驻 CertiK Skynet。

截至目前,2022 年 CertiK 已完成了 183 个项目的 KYC 项目背景调查服务,同时有 846 个新的 Web3.0 项目入驻 CertiK Skynet。


第三季度攻击损失清单


① 以攻击类型分类

  • 98 起退出骗局,共计损失 5619 万美元
  • 23 起闪电贷攻击,共计损失 1737 万美元
  • 50 起其他攻击事件,共计损失 4.3 亿美元

② 以生态系统分类

  • Avalanche:4 起事件,共计损失 316 万美元
  • BNB Chain:105 起事件,共计损失 5389 万美元
  • Ethereum:25 起事件,共计损失 2838 万美元
  • Fantom:2 起事件,共计损失 39 万美元
  • Multichain:6 起事件,共计损失 3.53 亿美元
  • Polygon:3 起事件,共计损失 106 万美元
  • Solana:4 起事件,共计损失 2102 万美元
  • 其他 / 非区块链:11 起事件,共计损失 531 万美元

③ 以时间分类 

  • 7 月:59 起事件,共计损失 6673 万美元
  • 8 月:56 起事件,共计损失 2.55 亿美元
  • 9 月:53 起事件,共计损失1.82 亿美元


概要


7 月是今年到目前为止安全态势最为良好的一个月,黑客攻击、诈骗行为、漏洞利用和其他安全事件仅造成了 6600 万美元损失,但该数量在之后两个月内再次攀升。8 月总损失的 74% 源于 Nomad Finance 跨链桥攻击事件,而 9 月总损失的 89% 源于做市商 Wintermute 钱包被盗的 1.62 亿美元。

2022 年第三季度,Web3.0 行业仍然多受退出骗局的困扰。本季度,CertiK 共记录了 169 起独立安全事件,其中 58% 被归类为退出骗局。

如果仍然有一些经验不足的用户考虑把钱投资到未经审计的项目中,或是甘愿冒着风险急于成为代币早期持有人,那么退出骗局就会持续扩散,整个产业也将被其阴影笼罩。  

跑路的过程其实非常简单明了,欺诈团队所要做的仅仅是复制粘贴现成的骗局项目代码并将其部署,为去中心化交易所(DEX)的交易对增加流动性,然后将代币推销给用户,直到他们投入了足以让欺诈团队脱身的大量资金。

代码审计很容易就能发现项目钱包所存在的中心化风险及访问特权,从而根据一些疑点揭露团队欺诈。我们建议 Web3.0 用户不要投资任何未经审计,或者那些审计发现了中心化和特权风险却未修复的项目。

其实所有退出骗局基本都遵循着类似的套路,要规避那些明显有退出骗局迹象的项目并不困难,因此退出骗局并不能提供 Web3.0 安全方面的最具启发性案例分析。 

但是第三季度还发生了许多其他不寻常的事件,可以让 Web3.0 用户和开发者汲取到新的经验。本报告将分享三个案例,就其事件进行分析并从中为读者提取安全相关的重要启示。

Nomad 跨链桥黑客攻击事件:损失 1.9 亿美元,成为本季度最严重的安全事件;做市商 Wintermute 钱包私钥泄露事件:被盗 1.62 亿美元;Slope 被黑事件:损失 800 万美元,其是 Solana 生态中比较流行的热钱包,被黑数额相对较小。然而,以上所有损失都是由于不安全的应用程序代码所致,这就表明要实现 Web3.0 的全面安全不仅关乎智能合约,技术堆栈的各个层面也必须保证安全。 

实际上,Nomad 跨链桥被黑和 Wintermute 私钥泄露事件的资产损失合计占据了第三季度总损失的近 70%,这说明成功的漏洞攻击很可能不需要黑客付出过多「努力」,而其所得的回报有可能是巨大的。换句话说,无论目标钱包存有 162 美元还是 1.62 亿美元,如果攻击者想要暴力破解其私钥,所要付出的算力都是一样的。而在 Nomad 被黑事件中,任何普通用户都能简单复制原始攻击者的交易,并换成自己的钱包地址实施攻击,这也更加凸显 Web3.0 世界的残酷性。毫无疑问,所有漏洞都会受到最大程度地利用。Web3.0 开发者必须认真对待安全问题,不仅是为了保护用户资金,也是为了保障整个项目的长期生存和发展。


重大安全事件


私钥安全危机四伏

导致 Slope 钱包被黑的漏洞并不常见,该事件涉及了 9000 多个钱包地址,损失金额高达 800 万美元。大部分因退出骗局或智能合约代码错误造成的损失只发生在区块链上,但这次事件却源自一个链下漏洞。 

8 月 2 日晚,Solana 用户钱包中的资产开始神秘消失,且每笔转账都是有效交易,就像是钱包主人自己操作签名转移了所有代币。调查人员在调查被黑钱包之间共性的过程中,关于漏洞起源的一系列假设也开始流传。 

这些假设和结论让那些担忧大型 DeFi 平台被黑导致数十万用户和价值数十亿美元的资产都将处于险境之中的人们松了口气。因为就在前一天刚刚发生了 Nomad 跨链桥被黑事件,人们仍然处于神经紧绷的状态中。最终 Slope 的漏洞是在其钱包应用程序的代码中被发现的——该程序会在服务器上以明文形式存储用户的助记词。当攻击者获得该数据库的访问权时,就能完全控制所有受到影响的钱包,并立即卷走资产。

一些反应迅速的用户已将资金转移到了硬件钱包或其他不受 Slope 漏洞影响的热钱包中。 

安全启示:使用硬件钱包或者网络隔离(airgapped)电脑离线生成密钥是最安全的做法,而在热钱包中生成或导入的私钥都不宜用于存放任何重要资产。

谨慎处理钱包密钥 

9 月 20 日,最大数字资产做市商之一的 Wintermute 因私钥泄露造成 1.62 亿美元损失,原因是 Wintermute 使用第三方工具生成的「vanity」地址存在漏洞,并遭到黑客利用。造成这次意外事件的原因不同于由智能合约漏洞所致的常见情况,而是来自外部的基础设施问题。

大多数以太坊地址看起来是一串完全随机的字母和数字,开头都为 0x。这样的好处是提供了一定程度的隐私性,但这并不能满足想要一个独特地址的用户。基于人们对「vanity 地址」(如靓号车牌)的追求,一个名为「Profanity」的 vanity 生成器应运而生,它可帮助用户为包含指定单词或字符串的地址生成密钥。 

除此之外,Profanity 还可以被用来创建钱包地址,以优化手续费,这也是 Wintermute 团队创建 0x00000000AE347......b92280f9e75 地址的初衷,但却最终导致了钱包被黑。开头那串冗长的 0 简化了地址,减少了以太坊网络的算力需求,从而在一定程度上降低了交易手续费——这些节省下来的手续费看似微小,却会在成千上万的交易中积少成多。

2022 年 1 月,用户 k06a 曾在 Profanity 的 GitHub(已被开发者放弃三年以上):https://github.com/johguse/profanity/issues/61,提出了一个关于私钥生成方式的问题:Profanity 使用一个随机的 32 位种子数来生成 256 位私钥。

2022 年 9 月 15 日,1Inch 发表了一篇文章,详细介绍了如何破解 Profanity 生成的钱包私钥的方法。

仅过两天,该漏洞就在众目睽睽之下遭到黑客利用。0x6...b93 钱包账户抽空了多个 vanity 钱包,包括来自 0x0Babe...B05 的 500 枚 ETH、0x888888888...597 的 100 枚 ETH、0x000000...422 的 104.4 枚 ETH,以及更多其他钱包的资产,总价值为 330 万美元。 

在技术发展瞬息万变的 Web3.0 世界,只需要四天就能借助这一漏洞攻破一个 Wintermute 的 DeFi 交易钱包,其损失的 1.62 亿美元也是今年因私钥泄露造成的最高资产损失。  

事发后,攻击者迅速将价值 1.14 亿美元的稳定币转入 Curve Finance 的 3Pool(USDC、USDT 和 DAI)。有人猜测这是为了避免被盗资金被 USDT 和 USDC 列入黑名单并冻结。 

但问题还没解决:所有基于 Profanity 创建的钱包都存在风险。9 月 25 日,vanity 地址 0x000000000......Ff3791338975 被黑,攻击者卷走了钱包中价值超过 95 万美元的各种代币,将其换成 732.3 枚 ETH 后,又通过 15 次交易把这些代币全部存入 Tornado Cash。

通过 SkyTrace 可视化追踪黑客钱包 

数字金融服务提供商 Amber Group 称其团队能够在 48 小时内利用一台 M1 处理器和 16G 内存的 MacBook 复现黑客构建的漏洞并发起攻击。

安全启示:所有使用 Profanity 生成钱包的用户都应尽快将资产转移到可离线生成密钥的钱包中。 

Nomad 跨链桥遭劫

8 月 1 日,Nomad Finance 在 Ethereum、Moonbeam、Avalanche、Evmos 和 Milkomeda 之间的跨链桥遭到攻击,涉案金额约 1.9 亿美元。

在一次常规升级部署后,由于一个错误配置允许黑客绕过验证信息,最终导致了这起悲剧发生。最初攻击的消息被传开以后,其他黑客、机器人以及社区成员也纷纷效仿,通过克隆原始黑客的交易数据、换上他们自己的地址发起攻击,几乎抽空了跨链桥的所有资产。 

百闻不如一见:人们对一个持有 9 位数资产的跨链桥实施了去中心化式抢劫?

–@0xfoobar 

这次的漏洞本质上源于 acceptableRoot(messages[_messageHash]) 函数中的一个错误,它允许用户绕过从跨链桥上提取资金所需要的验证。关于此次事件的完整技术分析,欢迎阅读 CertiK 官方公众号发布的 Nomad 事件分析报告《惊天魔盗,近 2 亿美金损失!Nomad Bridge 攻击事件分析》。

跨链桥为巨额资金提供托管服务,是其成为黑客主要目标的原因。今年初,Wormhole 跨链桥遭漏洞利用,损失超过 3.2 亿美元,是有史以来第二大 DeFi 被黑事件。

值得注意的是,在这场混乱不堪的攻击中,所有对相关技术稍有了解的投机用户都能轻松复制原始攻击者的交易,这些人蜂拥而上将跨链桥洗劫一空。 

作为回应,Nomad 宣布向所有归还赃款的用户提供 10% 的白帽赏金,同时将对那些不归还资金的人采取法律行动。

安全启示:某个漏洞一旦被公开,就别指望恶意者不会抓紧机会闻风而动,因为开源的代码意味着所有人都可以对其进行最大程度的恶意利用。


本季度大事记


以太坊已顺利合并

9 月 15 日凌晨,无数目光聚焦在以太坊。Web3.0 史上最重大的网络升级顺利完成,以太坊的共识机制正式转为 PoS 权益证明。关闭 PoW 工作证明后,以太坊的网络能耗从 112 TW/ 年骤降为 0.01 TW/ 年。这 99.95% 的能耗降幅不仅减少了以太坊网络对环境的影响,也让 ETH 在面对那些曾因环保顾虑而放弃了合作的用户和投资者时更具吸引力。

本次合并是一项了不起的技术成就,此次升级的巨大成功也得益于开发者与网络成员多年的精心准备。如果升级失败,整个网络都将承受灾难性的后果。 

尽管人们仍然担心验证者的中心化问题,但如果消除了对昂贵挖矿设备的需求,更加多样的网络参与者会被吸引加入。虽然还有许多其他 PoS 网络也在运行,但对于锁定价值数千亿美元资产的以太坊网络来说,其雄心勃勃的发展计划已经箭在弦上。

史上最强制裁风暴 

8 月 8 日,美国财政部下属海外资产控制办公室(简称 OFAC)宣布将以太坊混币隐私应用 Tornado Cash 和相关 44 个钱包地址纳入制裁名单(Specially Designated Nationals, SDN) ,禁止任何美国个人和实体与 Tornado Cash 相关地址进行交互,并要求 Tornado Cash 向 OFAC 报告其平台上所有的美国资产。 

与此同时,现年 29 岁的 Tornado Cash 软件开发者 Alexey Pertsev 被荷兰当局逮捕,理由是「涉嫌利用 Tornado Cash 以太坊混合服务参与洗钱和隐瞒犯罪资金流动」。截至发稿前,Pertsev 尚未被正式指控任何罪行,而荷兰法律规定犯罪嫌疑人在未受指控的情况下最长可被羁押 110 天。

美国财政部对 Tornado Cash 采用「声名狼藉」的描述也并非毫无理由。Tornado Cash 自 2019 年成立以来,已被用于价值超过 70 亿美元的数字货币洗钱活动。其中包括由朝鲜国家支持的黑客组织 Lazarus Group 所盗取的超过 4.55 亿美元、来自 Harmony Bridge 漏洞攻击的 9600 万美元,以及 2022 年 8 月 2 日 Nomad Heist 事件中的至少 780 万美元等事件。 

但美国财政部将 Tornado Cash 的所有应用均概括为洗钱活动就有失偏颇了。虽然 Tornado Cash 的确成了犯罪分子清洗不义之财的首选工具,但在区块链技术的开放世界中,该平台也作为重要的金融隐私工具之一发挥着作用。以太坊联合创始人 Vitalik Buterin 在制裁后透露,他曾使用 Tornado Cash 进行过私人捐款。而仅在今年,反对金融监管的斗争已经赢得了来自不同意识形态的个人和团体支持,如美国的支持选择权活动家和加拿大的反疫苗授权抗议者。

在禁令宣布后,Tornado Cash 在 GitHub 上的开源代码被迅速删除,但在 OFAC 就此事作出了澄清后,代码又被重新恢复。9 月 13 日,OFAC 在其常见问题页面中发布了指导意见:

「虽然美国被禁止与 Tornado Cash 或其被封锁的财产或财产权益进行任何交易,但只要不涉及禁止交易,与 Tornado Cash 开源代码本身的互动就是被允许的。例如,美国制裁法规不会禁止人们复制开源代码并将其在线提供给他人查看、讨论以及教学,或将开源代码收录于书面出版物(如教科书)中。」

这个仍在继续的 Web3.0 传奇故事凸显了 Web3.0 资产与行业相关实体(如 GitHub)所面临的挑战:在试图遵守严格的政府行动的同时,又要对事后迟来的指导意见及时作出反应。