2020攻击事件总结 | 900亿人民币不翼而飞,2021我们如何远离黑客?
“如果那东西看上去像鸭子,走起路来也像鸭子,我们就说它是鸭子。”
这句来自某位政客所说的话被许多人奉为圭臬。
如同我们每一个人,很多时候我们对外界释放出的信息都会再通过外界评价反馈和影响到自身。
这个道理不仅仅应用于某一个特殊领域,相反,它在所有事情上都可以找到痕迹。
区块链发展日久,但对于很多人来说,它依旧是一个暗藏着骗局、跑路、黑客的法外之地。
人们心中的认知很难被其他信息所影响,当然,这也的确需要归因于目前区块链项目所受的攻击愈发猛烈。
在铺天盖地的黑客事件中,想要扭转人们对于区块链的不安和抗拒只有依靠提高区块链的安全标准,建立安全健康的区块链生态。
同理,当整个区块链不再受负面新闻所缠身时,这个“鸭子”也会变成有利的那一只。
经统计,2020年传统领域的网站及软件安全率达到了 97.5% ,其中损失最大的一笔资产仅仅是接近 5万 人民币。
而区块链领域内,智能合约及相关节点的安全率只有 89% ,且 损失往往处于600万至6,000万人民币之间 ,这是需要几个大卡车都运不下的天价资产。
一次来自于区块链领域的损失资产,也许就是传统网络损失资产的千倍以上。
因此,CertiK安全专家盘点了 2020年较为典型的23个区块链项目 ,分析了其受攻击的原因和黑客使用的攻击方式,以作为业内安全事故警示的参考。
在分析的这23个区块链项目中,其中实现逻辑错误所导致的攻击事件8起,价格预言机操纵事件5起,项目方欺诈事件4起,重入攻击事件3起,闪电贷攻击事件2起,钱包攻击事件1起。
这些安全事故项目列表如下:
表1:2020年区块链重大事故项目列表
图一:2020年区块链重大事故项目损失图
表一和图一展示了2020年区块链重大事故项目损失情况。
图二:攻击类型损失图
2020年重大攻击事件明细
1 Cover Protocol
2020年12月28日晚, CertiK安全验证团队发现Cover Protocol发生代币无限增发漏洞攻击。
攻击者通过反复对项目智能合约进行质押和取回操作,触发其中包含铸造代币的操作,对Cover代币进行无限增发,导致Cover代币价格崩盘。
最终损失共计约2850万人民币。
2 Warp Finance
2020年12月17日,攻击者利用Warp Finance项目使用的oracle计算质押的LP代币资产价格错误的漏洞,从Warp finance项目中获利约1462枚ETH代币,总价值约615万人民币。
此外,攻击者还mint了价值大约3,990万人民币的DAI-ETH LP share,约650万人民币的获利流入了uniswap和sushiswap的LP中。
在本次攻击中,Warp finance 遭受的损失大约为5,000万人民币。
3 Compounder.Finance
2020年12月1日下午3点,CertiK安全技术团队通过Skynet发现Compounder.Finance项目智能合约发生数笔大量代币的交易。
经过仔细验证得知这些交易为内部操作,项目拥有者将大量数额代币转移到自己的账户中。
经过统计,最终共损失价值约7,610万人民币的代币。
4 SushiSwap
2020年11月30日,Sushiswap项目被发现遭到恶意流动性提供者的攻击,攻击者利用该项目Sushi Maker合约中的漏洞进行攻击,最终获利约10万人民币。
5 Compound
2020年11月26日,Compound项目发生价格预言机代币价格错误。
其所采用的Coinbase价格预言机对DAI价格出现巨大波动,导致约58,250万人民币的资产被清算。
6 Pickle Finance
2020年11月22日凌晨2点37分,CertiK安全验证团队通过Skynet发现Pickle Finance项目遭到攻击。
攻击者利用合约中未检查外部Jar合约是否合法的漏洞进行攻击。
最终项目共损失约1975万枚Dai代币,价值约12,800万人民币。
7 Origin Protocol
2020年11月17日,Original Protocol项目OUSD遭到闪电贷与重入攻击的组合攻击。
攻击者利用合约中mintMultiple()函数中的重入漏洞,增加闪电贷贷来的资金作为杠杆,扩大攻击收益。项目最终损失约4,500万人民币。
8 Cheese Bank
2020年11月16日,DeFi项目Cheese Bank遭到闪电贷攻击。
攻击者通过操纵流动性池中代币数目,利用重置预言机来提高Uniswap LP流动性凭证价格进行攻击。
最终项目损失约2,100万人民币,其中包括价值1,300万人民币的USDC。
9 Value DeFi
2020年11月15日,DeFi项目Value Defi遭到闪电贷攻击。
攻击者通过项目中使用Curve价格预言机,通过闪电贷操纵预言机代币价格计算漏洞进行攻击。
最终攻击者获利约4,800万人民币价值的DAI。
10 Axion Network
2020年11月2日晚上,黑客利用Axion Staking合约的unstake函数设法铸造了约800亿个AXN代币。
黑客随后将AXN代币在Uniswap交易所中兑换以太币,重复此过程,直到Uniswap中ETH-AXN交易对的以太币被耗尽,同时AXN代币价格降至0。
该攻击是内部操作造成的,该内部操作通过在部署代码时,对项目依赖的OpenZeppelin依赖项注入恶意代码,最终损失约330万人民币。
11 Harvest Finance
2020年10 月 26 日 Harvest.Finance 项目发生套利攻击事件,损失超 3380 万美元。
根据官方报告,计算了攻击者返还给项目的 1300 万 USDC 和 11 万 USDT 之后,总损失超过 2 亿人民币。
在 Harvest.Finance 这次的套利攻击事件中,攻击者通过影响 USDC、USDT 代币的价格来进行套利。
12 Eminence
2020年9月29日,攻击者使用脚本程序,通过闪电贷借得初始资金, 利用 Eminence 项目中的联合曲线(Bonding Curve)模型漏洞,反复购买出售 EMN 和 eAAVE 来获得收益。项目最终损失约9,800万人民币。
13 GemSwap
2020/09/26日,DeFi项目GemSwap遭到项目拥有者的后门攻击。
项目拥有者通过调用后门函数emergencyWithdraw()将所有的流动性证明取出并转移至自己拥有的账户中,最终项目损失约850万人民币。
14 Soda Finance
2020年9月21日,CertiK安全研究团队发现soda区块链项目中存在智能合约安全漏洞。
该漏洞允许任意外部调用者通过调用智能合约函数,无视受害用户债务中的代币数目,强行结算受害用户的债务,并将通过结算操作所得的收益转入到自己的收款地址。
最终项目损失约105万人民币。
15 BASED
2020年8月14日,流动性挖矿项目Based出现初始化失误造成的漏洞。
其智能合约在进行部署时,Base官方仅通过调用智能合约中的 renounceOwnership 函数声明了所有者,而并没有对智能合约初始化。
而一名外部攻击者在 Based 官方之前,抢先调用 initialize 函数对智能合约进行了初始化。
16 YAM
2020年8 月 12 日,YAM Finance 官方宣布他们发现了一个智能合约漏洞,并称该漏洞将生成超出最初设定数量的 YAM 代币,在计算 totalSupply 时,给出了错误的结果,这会导致系统保留的代币数量过多。最终项目损失约500万人民币。
17 NUGS
2020年8月11日,CertiK安全研究团队发现基于以太坊的代币项目NUGS出现安全问题。
其智能合约中存在安全漏洞,致使其代币系统出现巨额通胀。
由于该智能合约的安全漏洞无法被修复,因此最终NUGS项目官方发布公告决定放弃该项目,存入其中的代币也无法被取出。此次攻击损失巨大,直接造成该项目失败。
18 Opyn
2020年8月4日,DeFi项目Oypn发生攻击事件。
攻击产生的原因是Opyn在智能合约oToken中的exercise函数出现漏洞。
攻击者在向智能合约中发送某一数量的ETH时候,智能合约仅仅检查了该ETH的数量是否与完成该次期货买卖需要的数量一致,而不是动态的检查攻击者发送的ETH数量是否在每一次的交易之后仍旧等于完成该次期货买卖所需要的数量。
也就是说,攻击者可以用一笔ETH进行抵押,并在赎回两次交易,最终获得自身发送数量两倍的ETH最终项目损失约240万人民币。
19 Cashaa
第一次攻击发生于7月10日北京时间晚6点57分,Cashaa的比特币钱包之一被盗用并向攻击者账户转移了1.05977049个BTC。
根据Cashaa报告中描述,攻击者通过控制受害者电脑,操作受害者在Blockchain.info上的比特币钱包,向攻击者账户转移BTC。
第二次攻击发生于7月11日北京时间凌晨8点10分,Cashaa的总计8个比特币钱包,共计335.91312085个比特币被攻击者通过同样的手段转移到同一个地址中。
最终项目损失约2,000万人民币。
20 Balancer
2020年6月29日凌晨2点03分,攻击者利用从dYdX闪电贷中借到的WETH,大量买进STA代币,使得STA与其他代币的兑换价格急剧上升。
然后使用最小量的STA(数值为1e-18)不断回购WETH,并在每次回购后,利用Balancer的合约漏洞重置其内部STA的数量(数值为1e-18),以此稳住STA的高价位。
攻击者不断利用漏洞,用高价的STA将某一种代币完全买空(WETH,WBTC, LINK和SNX),最终用WETH偿还闪电贷,并剩余大量STA,WETH,WBTC, LINK和SNX,并通过uniswap将非法所得转移到自己账户中。
继6月29日凌晨2点CertiK捕获Balancer攻击事件后,2020年6月29日20点与23点23分,Balancer项目再次遭到攻击。
攻击者从dYdX闪电贷中借到代币并铸币后,通过uniswap闪贷获得cWBTC和cBAT代币,然后将借得的代币在Balancer代币池中大量交易,从而触发Compound协议的空投机制,获得空投的COMP代币,再使用Balancer有漏洞的gulp()函数更新代币池数量后,取走所有代币并归还闪电贷。
攻击者相当于利用了Compound协议的金融模型、闪电贷和Balancer代码漏洞,无中生有了COMP。
两次攻击直接导致Balancer损失了约300万人民币。
21 Hegic
2020年4月27日,Hegic项目中由于代码实现存在错误,导致合约中用户资金被锁定,无法被任何方法操作。最终项目损失约18万人民币。
22 Lendf.Me
2020年4月19日,Lendf.me项目遭到基于ERC777标准缺陷问题的重入攻击。最终项目损失约16,200万人民币。
23 Uniswap
2020年4月18日,DeFi项目Uniswap遭到攻击。
攻击者利用ERC777可以在同一笔交易中完成代币兑换的特性,通过其tokensToSend()函数对Uniswap进行重入攻击。最终Uniswap项目损失共计约150万人民币。
总结
从上文的数据统计里可以看出,这23次重大攻击事件,损失总金额高达约18亿人民币。
这18亿人民币被包括价格预言机操纵、重入攻击、实现逻辑错误、闪电贷攻击、项目方欺诈、钱包攻击在内的各种攻击方式所盗取,让人防不胜防。
计算机领域中早有统计,平均每1000行代码中,会有1-25个bug。
也就是说,这个概率的区间是 千分之一(0.1%)至百分之二点五(2.5%) 。
想知道这个概率意味着什么吗?点击【 飞机颠簸总怕下一秒空难?我们每天遇到有漏洞的DeFi合约概率是多少? 】寻找答案!
区块链领域内,任何一个小bug都可能会给项目或者投资者造成无法挽回的损失。
想要改变“鸭子”的偏见和刻板印象,建立起安全有保障的区块链健康生态,离不开每一个项目和个人对于安全的坚持与付出。