文字及数据 | Carol 视觉设计 | Tina 编辑 | Tong
数据合作伙伴 | PeckShield
“只要黑客中奖了他就让结果生效,不中奖就一直不生效,直至他中奖。”
“在EOSBet遭受假转账攻击之后的两三天内,市场上弥漫着一股恐慌的情绪。开发者们都不知道是由于什么原因导致了这次的攻击,唯一知道的是EOSBet突然间遭受了史无前例的巨大损失,于是大家只能纷纷把游戏暂时关闭,等到漏洞修复之后才重新开放。”
EOS在目前DApp之争中遥遥领先,也成为黑客的沃土。据区块链数据与安全服务商PeckShield的统计,去年7月至12月间,EOS链上的DApp共发生49起安全事件,波及37个DApp,导致项目方共损失近75万枚EOS,按照攻击发生时的币价折算,总损失约合319万美元。
“现在的攻击手段都还属于早期,远远还没到深层次的安全漏洞”,黑客地毯式的攻击,让EOS生态“危机四伏”,而攻防之间,安全的“围墙”日益高起。
11种常见攻击手法
单次攻击最高获利80万美元
DAppTotal 1月11日数据显示,EOS链上目前已有219个活跃的DApp,共有43782个活跃用户,累计交易量超过1189万个EOS。虽然在活跃DApp数量上比ETH少了144个,但在活跃用户和累计交易量(代币数量)上分别比ETH高出5倍和1000倍。
EOS生态红红火火的建设的同时,频发的安全事件也成为不容忽视的隐患。在统计时间范围内的49起安全事件中,共出现11种攻击类型,包括溢出攻击、随机数问题、重放攻击、假EOS攻击、假转账通知、拒绝服务攻击、敏感权限、私钥泄漏、交易回滚攻击、内联反射攻击、同名混淆交易。
最早出现的手法是发生在去年7月的溢出攻击,这主要是由于EOS系统底层asset类代码存在缺陷,这个缺陷导致极小的金额可以通过相乘放大无数倍,变成极大的金额。这个漏洞在被爆出之后,就立刻被修复,此类攻击手法也只发生在主网上线的早期。
在诸多攻击类型中,泛随机数安全事件最多发,共发生31次,占去年下半年总安全事件的63.27%。PeckShield安全团队认为随机数问题和交易回滚都是针对随机数进行的攻击,同属于泛随机数安全范畴内的攻击手法。
其中,最常发生的安全事件是随机数问题,一共发生了16次,这种手法通常是指随机数算法被破解,黑客根据破解出来的随机数成功计算出开奖结果。比如11月10日,名为“1supereosman“的黑客就用这种方法攻击了MyEosVegas,致使开发者损失了7530个EOS,按当天币价折算,约4万多美元。这也是所有随机数攻击中,黑客获利最丰厚的一次。
次多发的安全事件则是交易回滚,一共发生了15次,如果具象化到攻击案例中就是,由于下注和开奖通常在一个事务里完成,如果开奖时黑客发现他并未中奖,就直接采用中断攻击,让事务中断,整个交易就会回滚,等待下一次开奖。这个过程对黑客来说相当于一个循环,简单来说就是,只要黑客中奖了,他就会让结果生效,如果一直没中奖,黑客就会让结果一直失效,直到黑客自己中奖为止。由于EOS网络的交易速度很快,使得这种试错的循环运转也很快,而且对黑客而言,这种试错几乎没有成本。
但出人意料的是,虽然发生次数最多,但随机数问题和交易回滚并非造成DApp开发者损失最惨重的攻击手法,假转账通知才最具“杀伤力”。尤其是名为“ilovedice123”和“whoiswinner1”的黑客在10月15日对EOSBet发起的
但出人意料的是,虽然发生次数最多,但随机数问题和交易回滚并非造成DApp开发者损失最惨重的攻击手法,假转账通知才最具“杀伤力”。尤其是名为“ilovedice123”和“whoiswinner1”的黑客在10月15日对EOSBet发起的假转账通知攻击,直接造成开发者超过14万个EOS的损失,按当天币价折算,近80万美元。这也是所有49起安全事件中,黑客获利最丰厚的一次攻击。
“假转账通知攻击其实是利用了开发者校验不严谨产生的一个漏洞”,PechShieldEOS安全负责人施华国在接受PANews专访时解释道:“开发者出于自身业务需求对EOS的apply接口做了相应的修改,可是修改完后,开发者没对收入的EOS做基本逻辑判断,导致开发者接收到EOS后,没有检查转账收款方是否是自己,把其他人之间的转账当成给转给自己,直接做了开奖处理,造成了巨大的损失。”在EOSBet遭受假转账攻击之后的两三天内,市场上弥漫着一股恐慌的情绪。开发者们都不知道是由于什么原因导致了这次的攻击,唯一知道的是EOSBet突然间遭受了史无前例的巨大损失,于是大家只能纷纷把游戏暂时关闭,等到漏洞修复之后才重新开放。
跟假转账通知类似的攻击手法还有假EOS攻击,这也是由于开发者没做基本校验。具体而言,开发者没有校验收到的EOS是真的EOS Token还是同名代币,却把两者都当做真的EOS收进来交易了,是一种以假乱真的攻击手法。
假转账通知和假EOS攻击是发生在EOS主网上线三个月左右的时候,在PechShield安全团队看来,那个时候的漏洞还是比较初级,只是涉及到一些程序的漏洞。
就在PANews截稿前夕,1月11日对DApp的攻击又出现了第12种新类型——交易阻塞攻击。黑客用这种攻击手法影响超级节点出块,造成全网拥堵,等于把整个网络搞瘫痪了。施华国认为:“交易阻塞攻击的影响面是非常大的,因为这个是公链层面的漏洞,不同于以往DApp合约层的安全事件影响,一旦被黑客利用,危害的会是基于主网生态上的每一个参与者,包括超级节点、DApp开发者,乃至每一个用户。”
交易阻塞攻击几乎影响全部EOS竞猜类游戏DApp的正常开奖,已有多款知名EOS游戏被攻击,虽然目前EOS 主网已发布补丁,但还不能完全确保DApp免受此漏洞攻击。
平均每周发生2次攻击 12月最多
波及37个DApp EOSBet成“靶心”
PAData估算了统计时间范围内的49起安全事件后发现,EOS上的DApp几乎平均每3.5天就会面临1次攻击,即几乎每周会发生2次攻击。
其中,12月是发生攻击次数最多的一个月,共发生了20次安全事件,相当于1.5天发生1次,远高于平均水平。同时,12月也是统计时间范围内因攻击导致开发者损失EOS数量最多的一个月,共有近35万枚EOS被黑客收入囊中。
PeckShield安全团队认为这是由于12月出现了新型的回滚交易攻击,本来,经历过7月到10月之间的损失以后,大多数开发者都建立了自己的安全风控系统。当一个交易请求或者一个事件发生以后,安全风控系统可以对它做预知判断,一般来说,如果是通常的攻击手段,都会在系统的预判之内,系统会直接做熔断处理。但开发者没预料到会发生回滚交易攻击,新的攻击手法无法触发安全风控系统的熔断机制,“手无寸铁”DApp迅速沦陷。
“而且这种攻击是针对游戏逻辑层面的问题进行的,那时候大多游戏都有各种各样的逻辑问题,所以黑客的得手率也很高。”
币价的下跌,也严重影响了黑客的攻击获利。虽然12月份无论在攻击次数还是开发者损失的EOS数量上都远高于其他月份,但12月加密货币市场整体已经进入寒冬,受币价下跌的影响,按照攻击当日的币价来折算,12月并不是损失金额最大的一个月,相比币价较高的10月,12月发生的20次攻击导致开发者共损失近88万美元,而10月份仅有的5次攻击却导致开发者损失了121万美元。从损失的金额上来讲,恐怕开发者要庆幸回滚交易攻击发生在熊市了。
在统计时间范围内,EOS上共有37个DApp遭遇了黑客攻击。其中,EOSBet被花样攻击过3次,分别遭遇过EOS系统缺陷、假EOS和假转账通知攻击,总共损失了近19万枚EOS,分别按照攻击发生当日的币价来折算,总损失约为103万美元,是所有被攻击的DApp中损失最惨重的一个。EOSBet成为靶心主要还是由于交易量太大了,正如施华国在采访中所说的:“黑客攻击肯定是盯大户。”
其次,狼人游戏、EOSBetDice、EOSCast、EOSMAX也是损失较为惨重的DApp,按照币价折算,都超过了10万美元。
每15天出现新攻击手法
“攻击手段仍处于早期”
黑客的技术在不停地演进,攻击手段也越来越复杂。PAData统计发现,几乎平均每15天就会出现一种新的攻击手法。去年7、8月的时候以攻击系统最基础的漏洞为主,9、10月开始攻击程序逻辑漏洞,11、12月上旬,攻击者已经开始研究开发者的算法——泛随机数问题开始爆发。而12月下旬开始,攻击手法又一次升级,黑客不止利用了程序逻辑漏洞,甚至还利用了系统的一些严重漏洞。
“现在的安全风控系统还很不完善,但至少大家都有意识在做这个事情。”施华国认为这是一个好现象,“但是开发者的精力主要在产品上,安全只能是基于他的理解对一些已知漏洞做的保护,实际上效果还是很差的。”比如PeckShield安全团队经常强调正常的随机算法已经是安全的了,不应该再加任何参数,但还是有好多开发者加比如时间戳和余额信息等其他参数,开发者认为多一个参数多一份安全,但实际上增加的参数反而会影响随机化机制,而大部分回滚交易最后回溯都是因为这些参数让随机数变得可预判了,或者说可变化了。
PeckShield创始人兼CEO蒋旭宪在接受PANews采访时曾表示,“我认为现在的攻击手段都还属于早期,远远还没到深层次的安全漏洞,比如定位智能合约的逻辑来攻击等。现在比较多发的随机数、交易回滚还处于黑盒子就能测出来的阶段,但接下来这种攻防少不了。”
虽然区块链安全事件频发,但技术的演进与黑客的博弈也是发展的必然过程,就如同移动互联网时期的安卓系统,刚开始也是千疮百孔,漏洞百出,而随着攻防演进,技术终将不断向前发展。