首发 | 2020攻击事件总结:900亿人民币不翼而飞 2021我们如何远离黑客?
“如果那东西看上去像鸭子,走起路来也像鸭子,我们就说它是鸭子。”
这句来自某位政客所说的话被许多人奉为圭臬。
如同我们每一个人,很多时候我们对外界释放出的信息都会再通过外界评价反馈和影响到自身。
这个道理不仅仅应用于某一个特殊领域,相反,它在所有事情上都可以找到痕迹。
区块链发展日久,但对于很多人来说,它依旧是一个暗藏着骗局、跑路、黑客的法外之地。
人们心中的认知很难被其他信息所影响,当然,这也的确需要归因于目前区块链项目所受的攻击愈发猛烈。
在铺天盖地的黑客事件中,想要扭转人们对于区块链的不安和抗拒只有依靠提高区块链的安全标准,建立安全健康的区块链生态。
同理,当整个区块链不再受负面新闻所缠身时,这个“鸭子”也会变成有利的那一只。
经统计,2020年传统领域的网站及软件安全率达到了97.5%,其中损失最大的一笔资产仅仅是接近5万人民币。
而区块链领域内,智能合约及相关节点的安全率只有89%,且损失往往处于600万至6,000万人民币之间,这是需要几个大卡车都运不下的天价资产。
一次来自于区块链领域的损失资产,也许就是传统网络损失资产的千倍以上。
在分析的这23个区块链项目中,其中实现逻辑错误所导致的攻击事件8起,价格预言机操纵事件5起,项目方欺诈事件4起,重入攻击事件3起,闪电贷攻击事件2起,钱包攻击事件1起。
表1:2020年区块链重大事故项目列表
图一:2020年区块链重大事故项目损失图
2020年重大攻击事件明细
Cover Protocol
攻击者通过反复对项目智能合约进行质押和取回操作,触发其中包含铸造代币的操作,对Cover代币进行无限增发,导致Cover代币价格崩盘。
Warp Finance
此外,攻击者还mint了价值大约3,990万人民币的DAI-ETH LP share,约650万人民币的获利流入了uniswap和sushiswap的LP中。
Compounder.Finance
经过仔细验证得知这些交易为内部操作,项目拥有者将大量数额代币转移到自己的账户中。
SushiSwap
Compound
其所采用的Coinbase价格预言机对DAI价格出现巨大波动,导致约58,250万人民币的资产被清算。
Pickle Finance
攻击者利用合约中未检查外部Jar合约是否合法的漏洞进行攻击。
Origin Protocol
攻击者利用合约中mintMultiple()函数中的重入漏洞,增加闪电贷贷来的资金作为杠杆,扩大攻击收益。项目最终损失约4,500万人民币。
Cheese Bank
攻击者通过操纵流动性池中代币数目,利用重置预言机来提高Uniswap LP流动性凭证价格进行攻击。
Value DeFi
攻击者通过项目中使用Curve价格预言机,通过闪电贷操纵预言机代币价格计算漏洞进行攻击。
Axion Network
黑客随后将AXN代币在Uniswap交易所中兑换以太币,重复此过程,直到Uniswap中ETH-AXN交易对的以太币被耗尽,同时AXN代币价格降至0。
Harvest Finance
根据官方报告,计算了攻击者返还给项目的 1300 万 USDC 和 11 万 USDT 之后,总损失超过 2 亿人民币。
Eminence
2020年9月29日,攻击者使用脚本程序,通过闪电贷借得初始资金, 利用 Eminence 项目中的联合曲线(Bonding Curve)模型漏洞,反复购买出售 EMN 和 eAAVE 来获得收益。项目最终损失约9,800万人民币。
GemSwap
项目拥有者通过调用后门函数emergencyWithdraw()将所有的流动性证明取出并转移至自己拥有的账户中,最终项目损失约850万人民币。
Soda Finance
该漏洞允许任意外部调用者通过调用智能合约函数,无视受害用户债务中的代币数目,强行结算受害用户的债务,并将通过结算操作所得的收益转入到自己的收款地址。
BASED
其智能合约在进行部署时,Base官方仅通过调用智能合约中的 renounceOwnership 函数声明了所有者,而并没有对智能合约初始化。
YAM
2020年8 月 12 日,YAM Finance 官方宣布他们发现了一个智能合约漏洞,并称该漏洞将生成超出最初设定数量的 YAM 代币,在计算 totalSupply 时,给出了错误的结果,这会导致系统保留的代币数量过多。最终项目损失约500万人民币。
NUGS
其智能合约中存在安全漏洞,致使其代币系统出现巨额通胀。
Opyn
攻击产生的原因是Opyn在智能合约oToken中的exercise函数出现漏洞。
攻击者在向智能合约中发送某一数量的ETH时候,智能合约仅仅检查了该ETH的数量是否与完成该次期货买卖需要的数量一致,而不是动态的检查攻击者发送的ETH数量是否在每一次的交易之后仍旧等于完成该次期货买卖所需要的数量。
Cashaa
根据Cashaa报告中描述,攻击者通过控制受害者电脑,操作受害者在Blockchain.info上的比特币钱包,向攻击者账户转移BTC。
Balancer
然后使用最小量的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。
Hegic
2020年4月27日,Hegic项目中由于代码实现存在错误,导致合约中用户资金被锁定,无法被任何方法操作。最终项目损失约18万人民币。
Lendf.Me
2020年4月19日,Lendf.me项目遭到基于ERC777标准缺陷问题的重入攻击。最终项目损失约16,200万人民币。
Uniswap
2020年4月18日,DeFi项目Uniswap遭到攻击。
总结
从上文的数据统计里可以看出,这23次重大攻击事件,损失总金额高达约18亿人民币。
计算机领域中早有统计,平均每1000行代码中,会有1-25个bug。