更多有关加密世界2021年回顾,2022年展望请关注专题:回顾Crypto 2021,展望2022

区块链以无审查著称,是一片鼓励创新的热土,也是滋生犯罪的温床。当年众筹超过1.5亿美金的The Dao被黑客盗币后,进行了硬分叉操作,由此产生了如今的以太坊。自区块链创世以后,各种针对交易所、钱包以及dapp的黑客盗币事件频发。那么,2021年区块链安全领域又经历了何种波澜,后续的处理工作又是如何的呢?

(本文由分布式资本原创,受访者CertiK高级安全工程师王沛宇,撰文有匪。)

2021年区块链黑客盗币事件整理

由于2021年市场情绪热烈,黑客盗币的金额打破了往年的历史记录。截至三季度,统计一共有32起黑客入侵事件导致了15亿美金的资产被盗,而去年全年这个数字是1.8亿美金。

1)defi协议

UraniumFinance——逻辑漏洞

2021年4月份流动性挖矿协议Uranium受到了攻击,被攻击的智能合约是MasterChief的修改版本。(MasterChief是用于创建质押池并向用户返还质押奖励的智能合约。)其中,用于执行“质押奖励”的代码出现了逻辑漏洞,使得黑客可以获得比别人多的挖矿奖励。黑客抽干了RAD/sRADS的池子,并将它换成了价值130万美元的BUSD以及BNB。

Cream Finance——预言机操纵

10月27日,Cream Finance预言机受到操纵。攻击者从MakerDAO借用DAI来创建大量yUSD代币,同时通过操纵多资产流动性池(包含yDAI、yUSDC、yUSDT和YTUUSD)来操纵预言机对yUSD的报价。在提高了yUSD的价格后,攻击者的yUSD价格被人为提高,从而创造了足够的借款限额以借走Cream Finance在以太坊v1借贷市场的绝大部分资金。而Cream.Finance于8月30日也曾遭到闪电贷攻击。

Badger DAO——前端恶意代码注入

攻击者获取了项目方在Cloudflare后台的API Key,以此在网站的前端代码里面注入一系列的恶意代码。当用户访问前端网站时,触发恶意代码后会发起交易让用户去确认。假如用户确认了那笔恶意交易,就会将通证使用权给到攻击者。攻击者就可以通过托管使用权将钱全部转走。

Anyswap——后台签名

出事是因为后台签名时采用了不恰当的值,攻击者通过两笔交易来推导出了它签名的私钥。

简而言之,defi协议除了自身的代码需固若金汤,因其需与其他协议交互的可组合型,业务逻辑也要严丝合缝。最重要的是,Defi协议需借助第三方服务(外部预言机、中心化的云平台等),而这些第三方服务很有可能面临外部操纵的风险,这也是产品受到黑客攻击的主要原因。

2)钱包——钓鱼信息

举个比特币钱包Electrum的例子,当用户旧版本并连接到攻击者的节点是,攻击者通过节点向这个钱包发送钓鱼信息。当用户看见钓鱼信息并下载带有后门的钱包时,黑客便轻松掌握了用户的私钥。

3)交易所

不同于项目方一旦出事,人们可以通过链上公开的交易记录进行分析;交易所出事只有内部人员知道发生了什么,那些信息也不会被公开。一般交易所出事来自于这几个方面:交易所的服务器被黑了,攻击者访问到了服务器里面存在热钱包的私钥。交易所的工作人员被钓鱼攻击,然后攻击者通过工作人员的账号访问到内部系统,接触到了热钱包的私钥等等。

资产被盗后的处理方式

关于资产被盗后的处理方式,可以从三个角度(即项目方、交易所以及第三方安全公司)来分析。

项目方一般会采取这几个解决方式:

1)即时暂停智能合约中的通证转移和交易服务;对于不能暂停的合约,查看合约里可以使用的特权函数并屏蔽掉一部分合约的服务,避免合约被再次攻击。

2)同时向社区发出警告,避免新的投资者把财产放到有漏洞的合约里面。

3)联系第三方安全公司,请求帮助分析漏洞产生的原因,并合作共同修复漏洞。

4)对于被盗资金的去向,假如合约里面存在黑名单功能;第一时间屏蔽黑客地址,防止黑客进行资金转移。

5)和安全公司和执法部门合作追回被盗的财产,同时想出合理的补偿方案来减少用户的损失。

从交易所的角度来说,有两种情况:

1)假如交易所本身被盗,需第一时间暂停所有的提现充值功能,把损失降到最少。交易所保留系统里面的所有信息(比如说日志)以便日后做分析使用,联系安全公司或者执法部门,帮忙做财产追踪。

2)假如某个项目被黑的话,交易所可以监控黑客相关链上地址,如果监测到最新充值的关联地址,冻结该账户。

安全公司需要做到以下几点:

1)在事件发生之后分析漏洞产生的原因,并修复漏洞。

2)在项目重新上线之前提供安全审计服务,以减少项目重新上线之后的安全风险。

3)发布社区警告,同时查看有没有别的项目存在相同的漏洞。如果有项目存在相同漏洞,可以通过保密渠道发出警告。

4)通过链上技术手段来追踪资金流向以及分析链下信息(比如说黑客的IP地址以及设备),帮助执法部门抓到黑客。

那么,为何安全公司对于漏洞已经层层筛查,还会被黑客有机可趁?事实是,对于某个项目的审计工作只能持续数个星期,而黑客的时间和精力是无限的。他们一旦瞄准某类项目,便会有比审计公司多得多的时间进行研究并展开行动。

今年出现的跨链桥项目屡次受到攻击便是因为此类项目中锁着大量的用户资产。其次,跨链桥和其他Defi项目的不同的点是:普通Defi项目几乎100%的逻辑是在智能合约上实现的,而跨链桥是web2和web3的结合,是智能合约和传统后台的结合。非去中心化且存有巨额锁仓资金的赛道给到了黑客攻击的机会。

未来区块链安全展望

未来随着技术的发展,区块链行业会变得日益安全吗?理论上是的。先说底层技术,首先编写智能合约的solidity语言是在慢慢变得成熟的。在最近的solidity版本8.0之后,之前比较常见的一种漏洞叫做integer overflow(整数溢出)便销声匿迹了。

其次,安全的开源代码库也会提高安全系数。OpenZeppelin代码库是由专业人员写的一个开源的代码库,它的代码质量会相对比较高、比较安全。项目方只需要在代码库的基础上添加想实现的一些功能,便能实现从零开始写代码。

(https://github.com/OpenZeppelin/openzeppelin-contracts)

现在有很多安全工具会对代码进行检查;它可以帮助项目方在没有联系安全公司的情况下,找到一些潜在的漏洞,从而提高代码的安全性。随着越来越多的技术人员加入到这个领域来,区块链行业的安全壁垒会不断被加固。

从人为因素出发,项目方需要考虑金融模型以及商业逻辑是否值得推敲,并进行不计其数的测试才能消弭潜在的风险。

总而言之,Defi协议乃至整个区块链安全问题是主流资金无法进入行业的主要因素。环顾Defi出事的所有原因,最主要的还是Defi项目还无法完全去中心化,需要借助第三方的外部服务。Defi行业在安全性上达到无懈可击,是这一赛道项目必需实现的目标(尤其对中心化严重的跨链赛道而言),期待行业下一周期跑出拥有全新业务逻辑的Defi产品来!