LUD:币虎全球交易所:如何应对针对区块链的攻击_区块链

一、针对区块数据的攻击

针对区块数据的安全风险,大致总结了以下攻击方式:

1.恶意信息攻击

在区块链中写入恶意信息,例如病特征码、敏感话题等。借助区块链数据不可删除的特性,信息被写入区块链后很难删除。若区块链中出现恶意信息,将会遭到杀软件、敏感等多方面的问题。

2.资源滥用攻击

随着时间的推移,区块数据可能会爆炸式增长,也可能会呈线性增长,这主要取决于此区块链应用的设计,依赖现有的计算机存储技术,区块数据若发生爆炸式增长,可能导致节点无法容纳又或者使区块链运转缓慢,从而使稳定运行的节点越来越少,节点越少,则越趋于中心化,引发区块链危机。

3.攻击场景距离

若链中没有设计相应的操作限制,攻击者可以通过发送大量的垃圾信息来堵塞整个区块链,使区块链中真正的信息迟迟得不到处理,又或者使区块链中的存储节点超负荷运行。

二、针对加密签名机制的攻击

加密技术作为一个区块链整体的支柱,其安全性显得尤为重要,例如前些年所流行的MD5和SHA1哈希算法,目前已经证明安全性不足,现在已经不能被商用。目前大量使用的是SHA256算法,到目前为止,此算法还是安全的,虽然有人依然持有质疑,但是并没有任何直接的公开证据表明此算法存在漏洞。但是还是建议后期的区块链建设使用更新的SHA3算法。

针对加密签名机制大致有如下攻击方式:

1.穷举攻击

此类攻击方式主要作用于散列函数中,且几乎所有散列函数或多或少都受此攻击方式影响,而且其影响程度与函数本身无关,而是与生成的HASH长度有关,主要是一个概率论的问题,其中最典型的的方式是基于生日悖论的“生日攻击”。

生日悖论:如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。这就意味着在一个典型的标准小学班级中,存在两人生日相同的可能性更高。对于60或者更多的人,这种概率要大于99%。

2.碰撞攻击

此种攻击方式主要作用于散列函数中,比较典型的案例是“MD5摘要算法”和“SHA1摘要算法”。它的攻击原理是通过寻找算法的弱点,瓦解它的强抗碰撞性这一特性,使得散列函数原本要在相当长一段时间才能寻找到两个值不同HASH相同的值的特性被弱化,攻击者能在较短的时间能寻找到值不同但HASH相同的两个值。

3.长度扩展攻击

此种攻击方式主要作用于散列函数中,准确的说是基于Merkle-Damgard构造的摘要算法。其原理是通过算法弱点,在已知密文HASH和密文长度的情况下,推导出密文与另一消息拼接后计算出来的HASH。

4.后门攻击

此种攻击方式作用于所有开源加密算法库中,ECC算法是区块链中身份验证的基石,ECC算法本身是没问题的,但是在实际情况中,人们可能更多的是选择别人已经写好的“轮子”直接拿来用,而不是自己再去实现一套加密函数。这就带来了一个问题,在别人已经写好的“轮子”中,可能被安插后门。

5.量子攻击

此种攻击方式作用于大部分密码学算法。目前所有的加密算法以及摘要算法,其安全强度取决于它被穷举的时间复杂度,这使得依赖现有的计算机的计算能力,针对比较强的加密算法要对它进行暴力破解是非常难的,但是量子计算机拥有传统计算机无可比拟的算力,使得时间复杂度大大降低,于是,其安全强度便可能被瓦解。

三、针对分布式网络的攻击

去中心化的公链网络节点可能是普通家庭PC,可能是云服务器等等,其安全性必然是参差不齐的,其中必有安全性较差的节点,对其进行攻击将直接威胁节点的安全。针对分布式网络的安全风险,大致总结了以下攻击方式:

1.日食攻击

是其他节点实施的网络层面攻击,其攻击手段是囤积和霸占受害者的点对点连接间隙,将该节点保留在一个隔离的网络中。这种类型的攻击旨在阻止最新的区块链信息进入到日食节点,从而隔离节点。

2.窃听攻击

攻击者可以使用这种攻击来让区块链中的用户标识与IP关联起来,在某些情况下甚至可以追溯到用户的家庭地址。以比特币为例,当你在比特币网络上执行交易时,你的比特币客户端通常通过连接到一组八台服务器来加入网络,这个初始连接集合就是你的入口节点,每个用户都会获得一组唯一的入口节点。当你的钱包发送比特币完成购买时,入口节点将交易转交给比特币网络的其余部分,研究人员发现,识别一组一口节点意味着识别一个特定的比特币客户端,以此来推导出某个用户。那么,攻击者要做的是与比特币服务器建立多个连接,连接后,攻击者必须听取客户端与服务端的初始连接,这会泄露客户端的IP地址。随着交易流经网络,它们将会与客户端的入口节点相关联,如果匹配,那么攻击者就知道这是来自一个特定客户端的交易。

3.BGP劫持攻击

边界网关协议是因特网的关键组成部分,用于确定路由路径。BGP劫持,即利用BGP操纵因特网路由路径,最近几年中已经变得越来越频繁。无论是网络犯罪分子还是政府,都可以利用这种技术来达到自己的目的,如误导和拦截流量等,目前在区块链网络中节点的流量一但被接管又能对整个网络造成巨大的影响,如破坏共识机制,交易等各种信息。

4.分割攻击

攻击者可以利用BGP劫持来讲区块链网络划分成两个或多个不相交的网络,此时的区块链会分叉为两条或多条并行链。攻击停止后,区块链会重新统一为一条链,以最长的链为主链,其他的链将被废弃,其上的交易、奖励等全部无效。

5.延迟攻击

攻击者可以利用BGP劫持来延迟目标的区块更新,而且不被发现。因为它是基于中间人修改目标请求区块的数据来做到的:在目标请求获取最新区块的时候,将它的这一请求修改为获取旧区块的请求,使得目标获得较旧的块。

6.节点客户端漏洞

攻击者在内网或者外网利用各种手段譬如漏洞扫描,0DAY漏洞利用等技术,对节点客户端进行攻击,此类攻击主要针对客户端自身软件可能存在安全漏洞进行利用,获取节点的控制权限。

7.拒绝服务攻击

通过大流量,或者漏洞的方式攻击P2P网络中的节点,使网络中部分节点网络瘫痪,节点瘫痪意味着链中总算力受损,使得其更容易遭受51%攻击,而目前进行拒绝服务攻击成本也较低,大量的攻击工具平台能轻易在黑市购买用于攻击。

8.双重支出攻击

双重支出攻击又称双花问题,指的是一个代币花费在多笔交易中的攻击,它的实现方法主要有以下几种:

种族攻击。在面对0确认的交易便立刻进行付款的商家可能会遭遇此攻击。欺诈者直接向商家发送支付给商家的交易,并发送冲突的交易,将代币投入自己到网络的其余部分。第二个冲突的交易很可能会被开采出来,并被区块链节点认为是真的,于是付款交易作废。

芬尼攻击。当接受0确认的付款时可能会遭遇此攻击。假设攻击者偶尔产生数据块。在他生成的每个区块中,他包括从他控制的地址A到地址B的转移。为了你,当他生成一个块时,他不会广播它。相反,他打开您的商店网页,并使用地址A向您的地址C付款。您可能会花费几秒钟的时间寻找双重花费,然后转让商品。接着他广播他之前的区块,他的交易将优先于你的交易,于是付款交易作废。

Vector76攻击。也被称为单一确认攻击,是种族攻击和芬尼攻击的组合,因此即使有一次确认的交易仍然可以逆转。对于种族攻击,相同的保护措施显然降低了发生这种情况的风险。值得注意的是,成功的攻击会使攻击者花费一个块,他们需要通过不传播它来“牺牲”一个块,而是仅将其转让给被攻击的节点。

替代历史攻击。即使商家等待一些确认,这种攻击也有机会成功,但风险较高。攻击者向商家提交支付的交易,同时私下挖掘其中包含欺诈性双重支出交易的分支。等待n次确认后,商家发送产品。如果攻击者此时碰巧找到n个以上的区块,他就会释放他的分支并重新获得他的硬币。

51%攻击。篇详细介绍过51%攻击问题,不再赘述。如果攻击者控制全网算力的一半以上,则前面提到的替代历史攻击有100%的概率成功。由于攻击者可以比网络的其他部分更快地生成块,所以他可以坚持自己的私有分支,直到它比诚实节点网络建立的分支更长,它将代替主链。

交易延展性攻击。延展性攻击者侦听P2P网络中的交易,利用交易签名算法的特征修改原交易中的input签名,生成拥有一样input和output的新交易,然后广播到网络中形成双花,这样原来的交易就可能有一定的概率不能被确认,在虚拟货币交易的情况下,它可以被用来进行二次存款或双重提现。

验证绕过。验证机制的代码是区块链应用的核心之一,一旦出现问题将直接导致区块链的数据混乱,而且核心代码的修改与升级都涉及到区块链分叉的问题,所以验证机制的严谨性就显得尤为重要。必须要结合验证机制代码的语言特性来进行大量的白盒审计或是模糊测试,来保证验证机制的不可绕过。例如2010年8月15日,有人在比特币区块链的第74638块上发现了一条让人惊愕的交易,这笔交易里竟然出现了184,467,440,737.09551616个比特币,其中各有922亿个比特币被发送到两个比特币地址。这次攻击的根本原因则是比特币的验证机制中存在大整数溢出漏洞,由于大整数溢出为负数,网络各个节点对黑客的交易均验证通过,导致了比特币区块链中凭空出现了大量比特币。

四、针对共识机制的攻击

1.短距离攻击

此类攻击比较典型的是“贿赂攻击”,此攻击主要影响PoS共识机制,贿赂攻击流程如下:

1)攻击者购买某个商品或服务。

2)商户开始等待网络确认这笔交易。

3)此时,攻击者开始在网络中首次宣称,对目前相对最长的不包含这次交易的主链进行奖励。

4)当主链足够长时,攻击者开始放出更大的奖励,奖励那些在包含此次交易的链条中挖矿的矿工。

5)六次确认达成后,放弃奖励。

6)货物到手,同时放弃攻击者选中的链条。

因此,只要此次贿赂攻击的成本小于货物或者服务费用,此次攻击就是成功的。相比之下,PoW机制中贿赂攻击就需要贿赂大多数矿工,因此成本极高,难以实现。

2.长距离攻击

此类攻击比较典型的是“51%”攻击。虽然某一个节点控制了51%及以上算力,就有能力篡改账本,但达到51%算力是件极其困难的事情。而在PoS中缺乏对算力的约束,那么就存在潜在可能篡改账本。

3.币龄累计攻击

在最早的Peercoin版本中,挖矿难度不仅与当前账户余额有关,也与每个币的持币时间挂钩。这就导致,部分节点在等待足够长时间后,就有能力利用Age的增加来控制整个网络,产生非常显著的影响。

4.预计算攻击

当PoS中的某一节点占有了一定量的算力后,PoS中占有特定算力的节点,就有能力通过控制Hprev来使自己所在算力范围有能力去计算Hnext。

5.女巫攻击

又称Sybil攻击,在Sybil攻击中,攻击者通过创建大量的假名标识来破坏对等网络的信誉系统,使用它们获得不成比例的大的影响。对等网络上的实体是能够访问本地资源的一块软件。实体通过呈现身份在网络上通告自身。多于一个标识可以对应于单个实体。换句话说,身份到实体的映射是多对一的。对等网络中的实体为了冗余,资源共享,可靠性和完整性而使用多个标识。在对等网络中,身份用作抽象,使得远程实体可以知道身份而不必知道身份与本地实体的对应关系。默认情况下,通常假定每个不同的标识对应于不同的本地实体。实际上,许多身份可以对应于相同的本地实体。对手可以向对等网络呈现多个身份,以便出现并充当多个不同的节点。因此,对手可能能够获得对网络的不成比例的控制水平,例如通过影响投票结果。

五、针对应用层的攻击

应用层安全主要囊括涉及数字货币交易,管理着大量资金的交易所等中心化节点的安全问题。这些节点处在整个区块链网络的单点失败处,攻击收益高而成本低,是攻击者们的首选目标。

1.交易所服务器未授权访问

交易所往往存放着大量资金,极易成为被攻击目标。一旦获得交易所服务器权限或访问,修改关键信息,攻击者便可盗取资金密钥、篡改交易金额或者泄漏敏感信息等,给交易所造成经济和名誉上的毁灭性打击。

2.交易所DDoS攻击

据Incapsula2017年Q3季度DDoS威胁报告分析称,尽管其行业规模依然相对较小,比特币已经成为十大最容易被DDoS攻击的行业之一。这一定程度反映了整个区块链行业面临着严峻的DDoS攻击安全挑战。

六、针对合约层的攻击

在使用类似Ethereum,EOS,Zilliqa等DApp开发平台进行智能合约及DApp应用项目开发时,需要尤其注意合约的安全性。由于区块链不可篡改的特点,使得智能合约一旦发布极难修改,合约的安全与否往往决定了一个项目的生死。合约开发者应该充分重视并在部署合约前做好智能合约的安全审计工作。

针对合约层的攻击主要是重入攻击,即Reentrancy攻击,本质是劫持合约控制流,破坏事务原子性,可以理解为一种逻辑上的条件竞争问题。

TheDAO是一个众筹合约,在2016年6月18日被攻击前募集了$150M。攻击者利用合约中的漏洞发动了Reentrancy攻击,获得了$60M。为了追回这部分资金,以太坊社区决定进行硬分叉,在新分支中回滚自攻击开始后的所有交易记录并修复合约漏洞,但因为此举违背了‘Codeislaw’精神,部分成员拒绝新分支,导致最终形成了两个分支。旧分支称为以太坊经典,新分支为现行以太坊。攻击者最终离开以太坊经典,带走了数千万美元。

总结与展望

总体而言,区块链的发展引起了产业界与学术界的广泛关注,尽管其不断得到研究与应用,但是目前区块链技术在系统安全何应用安全等方面都存在着很多亟待解决的问题。这些问题也是区块链技术应用于更多核心领域时需要重视且解决的关键问题,值得进一步探索与深入研究。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:0ms0-5:326ms