赵赫区块链现在是黑客的提款机,很容易变现

雷锋网编者按:经常主打安全概念的区块链到底是不是安全的?作为多年研究区块链的专家,如何看待频出的安全事件?这背后的原因有哪些?

在ISC上,由众享比特主办的区块链与安全论坛中,来自中科院的博士赵赫就结合近年来众多著名的区块链安全事件来剖析背后的原因。赵赫本人不仅从事区块链的学术研究,同时也深耕行业,目前是中科智链的联合创始人,他当天的演讲是那场分论坛中反响最大的之一,现将其整理,以飨读者。

以下为赵赫(钟隐)在ISC区块链与安全论坛上的演讲,雷锋网编辑整理。

首先自我介绍一下,我是来自中科院的一名科研人员,从年开始就进入区块链和加密数字货币领域。

直接切入正题。为什么很多人都说区块链技术很安全,属于一种数据安全保护,或者软件系统安全架构的一种技术。

可能许多人都已经听说过了,包括像数据公开透明、记录不可篡改,还有经常说的分布式共识,相信代码,相信数学,相信组织,今天很多老师和同学都已经分享过了。

我们重点还是讲讲它不安全的地方。为什么我们要说区块链还不是很安全?

实际上就是区块链的现状导致的。区块链的现状等于黑客的提款机,很容易变现,前面的老师也说过,基本跟钱是一回事,而且很难追踪。我们把区块链里面的各种攻击,各种漏洞的形态也分成了三个大类,与大家也探讨一下,分享一下,最后再给出我们的建议或者最佳实践的一些内容。

首先,第一个是应用层的攻击,主要是讲钱包合乎智能合约,像这两个范围内的攻击手段。

第二个是和区块链相关的交易所和在线服务提供商。

第三种是特别针对于区块链本身系统里面的攻击手段。比如说共识算法、加密学的基础、P2P网络等等内容。

第一部分,应用侧的攻击,这个可能是爆发最多的,对于普通用户来说是最容易体会到,有一种很强烈的威胁感存在。这个币存在哪好呢?有可能存着存着就丢了。

这是以太坊非常流行的一个钱包,攻击的方式非常多,比如说被域名劫持,因为它是一个在线的情况,在网站上访问了之后,输入私钥就可以将以太币或者以太坊上面的Token都可以收发,很方便,但是黑客也就抓住了这个方便,把安全也就很容易把币转到他手里。比如钓鱼事件,现在有统计,统计了多种攻击,同时有多种都是针对于在线钱包的攻击。

第二种类型也是最古老的攻击手段,就是本地钱包地址替换的情况。大家可能听说过年好莱坞艳照门的事件,黑客把很多好莱坞的私密照片发到了网上,最后留了一个地址,希望大家给他打赏,结果这个地方出了一个问题,很多人把自己的地址给换了,最后没得到多少币。对于用户来说,我们这里看到代码逻辑非常简单,直接把内存里面监测到,把钱包直接给换掉。

最新的安全卫士已经增加了预警功能,这个值得点赞,如果发现钱包的地址被换了会提示,黑客会不停的收到币。比较普遍的方式是针对手机邮箱的,是基于社会工程学的一种东西,年年底的时候,国内的区块链大V在手机上被黑了,当时不仅自己损失了一大笔钱,而且造成了市场剧烈的振荡。智能合约的攻击事件我就不多说了。

我们再讲讲第二部分,系统层面的攻击。比如交易所的攻破,这个听说的也比较多,怎么比特币又被黑了,比特币又被偷了,比特币本身没错,是交易所被黑了。第二种比较大的类型是监守自盗,内*做案的事情,国内也出现过,应该是年的时候,如果进入这个圈子比较早的同学应该知道有一个比特币存钱罐,存一个比特币一年给你1.1个还是1.2个,过了一段时间存了几千个币之后跑了。第三种是针对于区块链底层BUG被利用的攻击。门头沟的盗币,监守自盗,也有一小部分被人利用了比特币交易延展性的攻击,偷了几千个比特币。

我们再看第二类,针对非交易所的,是一些在线服务商的安全事故,这样类型的也非常多。在去年的一个ICO的项目被攻击的原理是,服务器上有一个网站,很多程序员都知道,结果没有打好补丁,被人找到了一个漏洞,上传了木马,拿到服务器权限之后,把里面的币全都给转走了。

我想多说一说这一块。很多人觉得区块链是代码写好就OK了,人的因素攻击还是蛮严重的隐患。BTP是硅谷的一个名企,属于支付商。如果你在网上用比特币买东西,比如在国外海淘付款,有可能你用的支付就是他们提供的。他们的首席财*官有一天收到一个邮件,这个邮件是黑客给他发的,他当然不知道。他说我们是一个币圈人或者链圈的一个媒体,需要提供一个答案,他就真的点了邮件里面的链接,没有这么简单,点了链接之后让他输一个帐号密码。输进去之后黑客拿到了邮箱的登陆帐号。拿到了邮箱登陆帐号,黑客很鸡贼,先去学习,先学习邮箱里的所有软件,发邮件是什么样的内容,有什么规定,掌握完了之后黑客模仿CFO的身份给CEO发了一个邮件,我们现在有一个大客户,用什么缘故要转个比特币,我已经检查过了没有什么问题,请您批示一下。没有多想就给他批准了,黑客拿到这个币之后,一而再在二三偷了三次,偷了一共5个亿。这个是针对人的攻击。最后BTP找保险公司索赔了,但是没有获得赔偿。

第三种是针对云平台或者云服务器的攻击,这也是早前发生过的一个案例。国外有一个云平台,类似阿里云、腾讯云,当时国际上也有很多矿池的云平台服务,当时它的管理权限被人获取了,有好几个比较早的创业企业被偷了2万多个比特币。

我们重点讲一讲第三部分,很多人觉得这个技术像比特币,很多年没有出过大的安全问题,所以这个数字货币是非常可信的。其实这个数字不是特别严谨,不是没有出现过,而且出现过不仅一次,各种因素化险为夷了。第一个案例,德国的一个码农,发现比特币的脚本程序里面有一处潜在的破坏力极强的BUG,这个BUG基本内容是,右上角是原始代码的逻辑,case,黑客利用BUG可以调用语句,使得可以用之前钱包里面的比特币。如果我能花你钱包里的钱,这个钱还值钱吗?

这个BUG最早的时候是没有被公开的,这个程序员发了一个邮件给比特币的创始人,在邮件里讲,对于不知道BUG的人,千万别讲BUG的名字,如果你是很熟悉的人,你一听就知道到底怎么调用这个BUG,你可以想想当时的影响到底有多大。

这个BUG没有被公开,悄悄被修复。悄悄的来,悄悄的我又走了,这个BUG后面的比特币升级其它的内容,就是常规性的内容更新的时候,把问题给悄悄的修复了,修复完之后在所有的节点,大部分都更新了之后才被公之于众。所以这个程序员也是比特币或者区块链历史上最鲜为人知的大救星,他第一次救了比特币。也有一种说法,因为他自己也持有比较多的比特币,他不想自己的币贬值,所以他写了这个邮件。这也是加密经济学里面的角度考虑。

比特币天量刷币漏洞,比特币诞生半年到一年的时候,仅过了一个月出现了第二个BUG,是美国的一个码农程序员(Jeff),他发现比特币的区块链里面多个区块有一个很异常的交易,有三个收款地址,有两个收了多亿比特币,一共是多亿个。知道比特币的同学都知道,在求和的这个逻辑里面,有一个求和溢出,当时是没有被处理的。发现这个BUG之后,这个时候比特币已经在运营当中了,而且是比较严重的BUG,结果社区表现出来比较强的能力。开发者出了修复BUG的版本之后,号召大家赶紧在Node的版本上去挖矿,哪一个链最长,才是最终被认可的链,结果带有补丁版本的区块链的程度最后赶上并且超越了原来有BUG的这个链,最终才化险为夷。

说完核心代码的一些漏洞之后,我们来聊一聊共识机制的问题。先讲一个,大家可能都知道,51%攻击的问题,现在发现它是现实的存在,原来以为是理论的存在。我们提出一种方案,他可以避免双花。通过什么呢?通过PUW,是有前提的。恶意用户不能超过50%。比特币的历史上曾经有过这种担忧,年的时候有一个矿池,不停的增长,几乎已经达到甚至要超过一半了,结果就说大家别在我这儿挖了,我这儿已经变成一个中心化的矿池了,我要提高手续费了,后面慢慢也就没有出现51%攻击的隐患。

现在有很多诟病说中国的几家矿池联合起来也是可以完成51%攻击的,这也是理论上的可能。但是比特币没有真正被51%攻击成功过。有一个比方,为什么说安全没有被51%攻击,因为它的代价太大了,如果对它产生足够的挑战。我以前看了一个数据,需要全国Top的怪兽级的超散,包括中国的神威、美国的泰坦集合在一起才可能发起有一定威胁性的攻击。现在差距可能更大了。

51%攻击的风险在于其它的币种,而不是比特币,这种攻击是史诗级的,或者是毁灭级的攻击。大部分都是一些所谓的空气币或者是山寨币。BitcoinGold、Zencash、Vnrge,这些币种都比较小,没有特别强的保护措施,很容易被人通过租用云端算力,租用大量算力冲进来到这个小比重里面去挖矿,超过原始整个网络的算力,一下就造成了51%攻击双花。我们预计未来可能会越来越多。也有学者做过研究,ETC采用的共识算法和挖矿的机制和以太币是完全一样的。巴西的学者研究出来,可能多万的攻击成本就有可能造成10个亿的收益。

刚才讲过门头沟被盗其实有一部分被交易延展性比特币的BUG给坑了,根据这个基础协议上的,我没确认吗?黑客这部分的交易被确认了,我就把这个币再重发一遍,就是发币过程有问题。造成的影响还是挺大的,比特币的协议升级已经把这个问题解决掉了。第二个是日蚀攻击,也是很常见的一个手段,在比特币和以太坊的节点里都被找出了BUG,都被人修复了,原理也是通俗易懂的,节点在连上区块链网络的时候需要有很多连接来看,比如说现在的区块高度是多少,现在网上哪些交易已经被确认了,相关的交易有没有被确认,交易的是什么,你连接的节点都是黑客控制的节点,他可以告诉你某一个交易的时间根本就没有,现在的高度是某一个区块高度,其实你根本就不是这个高度,浪费了你的算力,告诉你的时间冲也是不对的等等,这个问题就在于,如果说我们写新的系统的时候,比特币和以太坊都出过这种BUG。

下面讲一下漏洞算法的问题。这个漏洞发生过程也很有意思。年5月份,IOTA是集DOT做的一个区块链系统,请MIT的研究组来审计代码,本来是一个好事,MIT的研究者就做了检查,两个月之后他们发现确实好,这个里面还有问题,我一开始也上当了,IOTA创始人我们是Curl被骗了,是一个加密(哈西)值的漏洞。我可以构造两个不一样的原始数据,本来(哈西)要避免的事情,在这个里面竟然有这样一个问题,显而易见,导致数字签名的安全性是无法保障的。9月份MIT,因为这个BUG已经修复了,就公布了漏洞审查的报告,没成想出现了戏剧性的一幕,IOTA马上表示强烈的抗议,MIT违反学术道德,我们是故意把它放在你们的,我放在你们是防止别人抄我们的代码。这个也是很有意思的,区块链漏洞系统里面的历史事件。

第二个是共识机制里面的攻击,这个叫IOTA缠结缝合攻击,缠结是区块链的一个名词,今年有一个科幻电影《湮灭》,IOTA经历了这样的事情,黑客造出来的各种垃圾交易,并且在这两个链之间不停的用链串联出来。这个造成什么结果呢?IOTA当时的共识算法是不需要交手续费的,交易的确认是需要打包前面两个交易,就造成了普通的用户去确认的时候,大家基本上都在确认大量的垃圾交易,黑客也在确认垃圾交易,这样造成整个网络是无法使用很长一段时间,整个系统等于是不可用了。后面通过共识机制的升级,才解决了这个问题。

其实我们聊了很多,还有大量的,今天时间关系没有办法和大家一起分享讨论。

我们再回到区块链的安全主题上来。区块链到底是不是重新定义安全,我们觉得区块链技术并不是安全的一个万能钥,区块链系统里面仍然会继承现有的互联网安全、软件安全等问题,同时还引用了新的攻击向量。

区块链确实在有些方面是显著提高安全性的。比如这里提出了两点,容忍部分节点做,但是系统还是不影响的。还有一个没列出来的,能够抗审查,在微博、

转载请注明:http://www.abuoumao.com/hyls/3552.html

网站简介| 发布优势| 服务条款| 隐私保护| 广告合作| 网站地图| 版权申明

当前时间:
粤ICP备19025322号-2