一、 区块链现状

本质上来说,区块链还处于概念阶段,除了数字货币以外,基本上没有能够大规模落地的应用场景,然而因为其分布式记账以及去中心化的特点,依旧成为了近年最为火爆的话题之一。

国务院印发《“十三五”国家信息化规划》,区块链与大数据、人工智能、机器深度学习等新技术,成为国家布局重点。中国人民银行印发了《中国金融业信息技术 “十三五” 发展规划》,明确提出积极推进区块链、人工智能等新技术应用研究,去年 10 月,工信部发布《中国区块链技术和应用发展白皮书》,这是首个落地的区块链官方指导文件。

在这样的背景下,区块链更是成为了许多人投资、创业的首选。根据《2018中国区块链产业白皮书》显示,截至2018年3月底,我国以区块链业务为主营业务的区块链公司数量已经达到了456家,产业初步形成规模。其中,2017年是近几年的区块链创业高峰,新成立公司数量达到178家。占到了以区块链为主营业务的公司数量的近40%。

如此火爆的背景下,安全问题随之而来。

二、 区块链(数字币)安全事件

目前的区块链,主要应用的领域还是数字币,其他领域处于尝试阶段。因此本文的区块链安全约等同于数字币的安全,以下罗列三个数字币史上著名的安全事件进行分析。

2.1 Mt.Gox关停事件

2.1.1 事件描述

比特币交易平台Mt.Gox曾经几乎占据了全球比特币交易的80%,在2014年遭受黑客攻击后,该公司承认,平台上的850,000枚比特币(当时价值约4.8亿美元)已经从其金库消失了。比特币丢失后不久,位于东京的MtGox就申请了破产保护,撇下了大量愤怒的投资者并削弱了比特币的声誉。

在此间,Mt.Gox曾多次暂停了提现业务,尤其是在2014年2月7日,出现大量的提现无效,引起了比特币价格的暴跌。随后MtGox发出公告称已查明原因,提现交易受到了“伪造交易ID攻击”,并说明将尽快恢复提现。这次事件的罪魁祸首是由于“比特币交易的可锻性(transaction malleability)”引起的,可锻性体现在“交易ID可被伪造”,而“交易ID可被伪造”的原因是签名算法不够健壮。

2.1.2 安全问题分析

事件中的黑客攻击,总结起来就是两方面的攻击:针对交易所大规模的DDOS攻击以及所谓的“伪造交易ID攻击”。

DDOS攻击为我们所熟悉的攻击方式,“伪造交易ID攻击”是指:当交易发送到比特币网络中后,网络中的各个结点会根据之前生成的签名来验证交易的真实性。由于当时大部分使用的签名算法都是基于OpenSSL的ECDSA(椭圆曲线数字签名),这个签名算法的一个问题就是,修改签名的某个字节能够使得签名依然校验成功,这样伪造签名之后交易依然能成功进行。如果单在比特币网络中这似乎没什么大不了的,顶多可以捣捣乱,但是对于第三方交易系统就不同了,由于交易ID是根据签名生成的,而伪造之后的签名会生成一个完全不同的交易ID,第三方交易系统判断到两个ID不同便会确定当前交易失败,而事实上交易已经成功了。这时如果用户发现提款交易提示失败,可以再次发起提现交易,第三方交易系统一看之前确实失败了,那就会再进行一次提款,这时用户的比特币钱包里就会多收到一份比特币,也就造成了第三方交易平台资金损失。交易的可锻性体现在虽然签名被“锻造过”(修改伪造),但最终的交易依然有效。

“伪造交易ID攻击”利用了比特币网络的特性:发出一个比特币交易请求后不会立刻返回交易成功与否,所有交易请求是以网状形式随机处理的。这其实也是区块链分布式记账特性的体现。本质上,是属于加密算法的问题。

2.2 以太坊The DAO事件

2.2.1 事件描述

2016年6月17日,以太坊最大的智能合约项目The DAO受到了黑客的攻击原因是the DAO编写的智能合约中有一个splitDAO函数,攻击者利用此函数的漏洞,不断从the DAO项⽬的资产池中分离出the DAO资产并转到黑客自己建立的子DAO。在攻击发起的三个小时内,导致300多万以太币资产被转出the DAO 资产池,按照当时的以太币交易价格, 市值近6千万美元的资产被转移到了黑客的子DAO里。The DAO监护人提议社区发送垃圾交易阻塞以太坊网络,以减缓the DAO资产被分离的出去的速度。随后Vitalik在以太坊官方博客发布文章解释了被攻击的细节以及解决方案提议。提议方案为进行一次软分叉。不会有回滚,不会有任何交易或者区块被撤销。

2.2.2 安全问题分析

该事件的攻击思路很清晰,利用了智能合约的函数漏洞,进行了“转账”操作,从技术角度上来看,这就是一个源码问题,然而事件后续的处理方式(软分叉+硬分叉)以及事件本身背后的定位(根据以太坊的三不不可原则:即,不可伪造、不可虚构、不可纂改),对区块链的应用模式思考、安全的思考、甚至对区块链本身的定位(尤其是去中心化)都带来了很大的冲击。

2.3 EOS私钥被盗事件

2.3.1 事件描述

2018年6月,EOS在被伏尔甘团队曝了高危漏洞后,又发生了EOS主网上线期间大量EOS私钥被黑客偷走,原因可能是用户在复制私钥的时候造成了数据的泄露;无独有偶,随后360安全监测中心发现,该段时间正是“剪贴板幽灵”木马非常活跃,该木马通过不断监控用户的剪贴板内容,判断是否为虚拟货币地址,并且在用户交易的时候将目标地址修改成自己的地址。

2.3.2 安全问题分析

EOS的漏洞属于社区漏洞,EOS 超级节点攻击有几个入口:1. P2P 端口;2. RPC 端口;3. 恶意智能合约;4. 服务器与集群等其他缺陷;5. 人员安全缺陷。伏尔甘团队发布的漏洞,选择的就是恶意智能合约攻击。智能合约最大的优点是具有无限的灵活性,正因为此也留下了无限的隐患,任何一个小的共识协议的疏忽,都会有机会DDOS整个区块链网络。

而随后的“剪贴板幽灵”则选择攻击的对象是人,也反映了我们ISC大会的理念:人是安全的尺度。

三、 区块链(数字币)安全建设思路

案例中的三个事件,都是发生在交易所的安全事件,当神秘的区块链(数字币)一旦被套上了交易所的实体设施后,安全要做的事情其实并不难思考。

3.1 交易所平台安全

从Mt.Gox事件当中我们可以看到,其实该交易所一直受到了黑客的DDOS攻击,虽然说在区块链当中存在着51%这样的透明化漏洞,然而一旦实体到了网络、交易所,DDOS攻击依旧是原始而有有效的攻击方式。

除了支付网站的可用性,网站的安全性也是币商应该重视的问题。

3.2 智能合约安全

The DAO事件以及EOS事件几乎都提到了智能合约,其本质就是源代码;然而有别于其他的源代码,智能合约的代码更关注的是逻辑漏洞,如The DAO事件中的智能合约,利用了合约的“不严谨”,导致黑客可以成功攻击;如EOS事件中植入的恶意智能合约,利用了区块链去中心化的特性,进行了恶意操作。因此源代码的安全问题是智能合约本质的问题。

3.3 交易过程安全

数字币作为区块链最好的应用,以商业化交易的模式存在,涉及到交易就想到认证问题。在Mt.Gox事件中,黑客利用的就是数字签名的漏洞。依照今天的发展模式,在完善签名算法的基础上,我们还可以为各个验证环节提供多元化的认证方式,以弥补单一签名的单点故障。

3.4 人的安全

数字币存在交易的双方,因为双方都可能被攻击,作为交易所,具备一定的能力去思考安全的问题,作为个人,是否也具备同样的能力呢?显然答案是否定的,因此,在交易环节中的个人环境安全问题,尤其显得重要。EOS事件中“剪贴板幽灵”木马攻击的对象不再是交易平台,而是交易者。所以作为一名交易者,我们需要做好最基本的环境安全保障,杀毒软件不可少。

当然人的安全不仅来自于外部,也同样来自于内部,因此对于内部人员的操作,也需要进行记录、审核。

四、 对于未来的思考

区块链对于大众人来说,就好比TCP/IP协议,是一个完全看不见摸不着的东西,凌驾于协议之上的,才是我们关注的焦点。区块链着力于解决信任问题,他最大的优势在于加密算法、去中心化、分布式记账。然而随着时间的流逝,基于区块链的信任面临了严重的考验。

The DAO事件,最终采用了软硬分叉的方式进行了数据的回滚,使得以太坊一分为二。这让我们的认知有些被打破:所谓的去中心化,最终还是存在中心化;所谓的51%攻击,其实并不一定要从外部发起,也可以从内部发起。该事件也是区块链历史一次关于信仰的战争。

区块链的技术逐步成熟,然而阻止他发展、前行更多的是法律层面、道德层面的问题。《中华人民共和国网络安全法》中提到过三同步原则,在以区块链为基础的应用尤为艰难,因为面临更多的不是安全问题,而是人性的问题:一旦发生对交易双方不利的智能合约,是否需要回滚?我们可以做大量的避免工作,然而知名如以太坊,依旧不能完全避免此类问题,以太坊的选择让我们看到,去中心化终究是很难实现,区块链的信任机制犹如乌托邦,在如今,还是很难实现。

当然,这并不影响区块链技术的前行。我们能在网上、大街上看到各类的区块链广告:数字币、基于区块链的企业活动(财务公开)、基于区块链的物流,甚至还能看到蹭热点有如基于区块链的手游等,这足以证明区块链的火爆程度。当区块链的防伪溯源、供应链管理、分布式记账、身份认证、共享数据等特性不再局限于金融行业,当区块链能像大数据一样不再局限于高高悬空,而是真真能够为各行各业当来实际的价值时,区块链的辉煌必将到来。

(本文作者:360企业安全技术专家 黄曦)

声明:本文来自安全内参,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。