风险提示:理性看待区块链,提高风险意识!

区块链攻击方法有哪些?

2个回答

做个好人走到底2星评价

2020-11-03 11:35:10

区块链攻击方法有哪些?

区块链是一道打开新世界的大门,它仿佛让我们看到了一个透明、公平的世界,但是殊不知这道门也面临着各种攻击,有些什么样的攻击呢?

1. 交易延展性攻击

交易延展性攻击,也叫交易可塑性攻击。在现实生活中,我们把一块金子敲变形之后,虽然形状有所改变,但质量却没有发生变化,也就是说金子外观发生了变化但是仍然被认可,这种特性呢被称为“可锻性”。

在比特币系统中,也有一个类似的名词,“ Transaction Malleability ”。这个词通常翻译为“交易延展性”,也叫做“交易可锻性”,而利用交易延展性而造成的攻击就叫交易延展性攻击。

具体指的是比特币交易 A 发出之后,在还没有被确认之前,攻击者通过修改某些交易数据,使得一笔交易的唯一标识——交易哈希发生了改变,就形成了新的交易 B ,假如交易 B 先被记录到比特币账本中,那么交易 A 会因为双重支付问题,被验证为不合法,从而拒绝。

一个现实的例子就是:小黑从交易所发起提币,然后他提币这个交易就被广播出去了,在他这笔交易还没有被节点验证之前,小黑进行了延展性攻击,恰好攻击产生的新交易先被确认,而新交易照样会让他获得币(就像金子外观变了一样被认可),但是贪心的小黑却向交易所申诉自己并没有收到币,交易所一看之前给小黑转币的那笔交易确实被拒绝了,因此又给小黑汇了一笔币,小黑心里就美滋滋了,贪心的小黑还不满足,他又以同样的攻击方式继续多次攻击,这样就导致了交易所的资金大量流失。

所以当遇到交易无法确认时,需要立即停止,应当根据区块链上的交易报错信息以及查看是否在短时间内已经发起了这样的交易,再进行手动处理。

2. 粉尘攻击

“粉尘”的意思是少量的币(比如 1 聪就是“粉尘”,它只有 0.00000001 比特币)。通常情况下,很少人的交易金额会那么少,因为交易手续费就已经超过交易金额。

正是由于“粉尘”很小所以容易被用户忽视,这一现象被小黑(诈骗者)注意到了,因此小黑就像向用户的钱包地址转入“粉尘”,而收到这些“粉尘”的用户并没有引起注意,这些粉尘是收到的,但是还没有花费出去的,所以这些“粉尘”就和原来钱包地址里那些收到但还没有花费的币( UTXO )混在了一起。

区块链中的三大常见攻击手段介绍

不过现在的问题不大,只是混在了一起而已,真正的问题是使用这笔未花费的费用,当傻乎乎的把这笔钱用来向别的地址转账或其他交易的时候,就可能会用到这些“粉尘”,这个时候“粉尘”就悄悄地随着的交易跑到了别的用户地址里,一直跟踪。

这些“粉尘”就像荧光剂一样,把用户的行为一五一十的描述了出来,进而被小黑跟踪到,小黑就利用这些线索来猜测的身份,进而对进行威胁和勒索。这就是粉尘攻击。

要怎么避免这种攻击呢?上面已经提到真正出现问题的地方在于用了混有“粉尘”的未花费的货币,如果不花费这笔费用,“粉尘”就不会跑,小黑也就无法追踪了,然而我们不能要求因为这些“粉尘”就永远不花费那一池子的其他未花费的货币,因此一些钱包(比如:Electron Cash )可以把这些粉尘单独标记起来,提醒用户们不要去使用这些粉尘,相当于把粉尘和池子里其他的未花费货币隔离开,这样就可以安安心心地使用之前那些未花费的货币啦。从而有效的避免了粉尘攻击。

3. 女巫攻击

女巫攻击又叫 Sybil 攻击,名字来源于电影《女巫》( Sybli ),讲的是一个有 16 种人格的女人心理治疗的故事。而在区块链中的女巫攻击呢,指的是一个恶意的节点非法地对外呈现多个身份。

这就有点像小时候我们玩的“手拉手”游戏,当新的小朋友加入我们这个游戏圈的时候,他会去牵旁边人的手,进而对旁边的人有了进一步的认识。在区块链中也是这样,任何网络节点是可以发送加入的请求消息的,收到请求消息的其他节点会立即做出响应,回复其邻居节点信息。

可是有些小朋友为了认识更多的小伙伴,就每次换一个面具,这样就可以到不同的位置去牵别的小朋友。恶意节点就像这个恶搞的小朋友,它对外伪装成多个身份,这样就可以获取大量的区块链网络节点信息,以便进一步的攻击和破坏。

解决女巫攻击的一种方法是工作量证明机制,即用计算能力去证明你是一个节点,这样极大地增加了攻击的成本。

另一个方法是身份认证,可以是基于第三方可靠节点的认证。就像在所有参加游戏的小伙伴中选出眼睛最亮的那个,这样来避免大家被搞怪小朋友的面具蒙骗。身份认证也可以是全节点制的认证。这就相当于每个小朋友都要对恶搞小朋友进行身份审核,这样就大大降低了恶搞小朋友成功伪装多个身份的几率。

天天快乐杨君8星评价

2020-10-24 11:38:48

目前对区块链网络安全威胁最大的3种攻击方式:Sybil攻击、Eclipse攻击和DDoS攻击。

本文将重点讲解上述三种攻击方式的原理,以供有关机构参考,在开发基于区块链网络的应用系统时采取措施加强防范。

基于区块链网络的 Sybil攻击

Sybil攻击最初是由Douceur在点对点网络环境中提出的,他指出这种攻击破坏了分布式存储系统中的冗余机制,并提出直接身份验证和间接身份验证两种验证方式。后来,Chris Karlof等人指出Sybil攻击对传感器网络中的路由机制同样存在着威胁。

Sybil攻击,又称女巫攻击,是指一个恶意结点非法地对外呈现出多个身份,通常把该结点的这些身份称为Sybil结点。Sybil攻击方式主要有以下几种类型:直接通信、间接通信、伪造身份、盗用身份、同时攻击、非同时攻击。

在区块链网络中,用户创建新身份或者新节点是不需要代价的,攻击者可以利用这一漏洞发动Sybil攻击,伪造自己的身份加入网络,在掌握了若干节点或节点身份之后,随意做出一些恶意的行为。例如误导正常节点的路由表,降低区块链网络节点的查找效率;或者在网络中传输非授权文件,破坏网络中文件共享安全,消耗节点间的连接资源等,而且不用担心自己会受到影响。图2示出了在区块链网络中攻击者进行Sybil攻击的原理。

Sybil攻击对区块链网络的影响主要体现在以下几个方面:

1. 虚假节点加入:在遵循区块链网络协议的基础上,任何网络节点都可以向区块链网络发送节点加入请求消息;收到请求消息的区块链节点会立即做出响应,回复其邻居节点信息。利用这个过程,Sybil攻击者就可以获取大量的区块链网络节点信息来分析区块链网络拓扑,以便更高效地对区块链网络进行攻击或破坏。

2. 误导区块链网络节点的路由选择:节点间路由信息的实时交互是保证区块链网络正常运行的关键因素之一。节点只需定时地向其邻居节点宣告自己的在线情况,就能保证自己被邻居节点加入到其路由表中。恶意的Sybil入侵者通过这个过程,可以入侵正常区块链节点的路由表,误导其路由选择,大大降低区块链节点的路由更新和节点查找效率,极端情况下,会导致Eclipse攻击。

3. 虚假资源发布:Sybil攻击者一旦入侵区块链网络节点的路由表,就可以随意发布自己的虚假资源。区块链网络的目的是实现用户间资源的分布式共享,如果网络中充斥着大量的虚假资源,那么在用户看来,这将是无法接受的。

基于区块链网络的Eclipse攻击

Moritz Steiner等人在Kad网络中提出了Eclipse攻击,并且给出了该攻击的原理。Eclipse攻击是指攻击者通过侵占节点的路由表,将足够多的虚假节点添加到某些节点的邻居节点集合中,从而将这些节点“隔离”于正常区块链网络之外。当节点受到Eclipse攻击时,节点的大部分对外联系都会被恶意节点所控制,由此恶意节点得以进一步实施路由欺骗、存储污染、拒绝服务以及ID劫持等攻击行为。因此,Eclipse攻击对区块链网络的威胁非常严重。

区块链网络的正常运行依赖于区块链节点间路由信息的共享。Eclipse攻击者通过不断地向区块链节点发送路由表更新消息来影响区块链节点的路由表,试图使普通节点的路由表充满虚假节点。当区块链节点的路由表中虚假节点占据了较高的比例时,它对区块链网络的正常行为,包括路由查找或者资源搜索,都将被恶意节点所隔绝开,这也是这种攻击被称为月食攻击的原因。图3示出了在区块链网络中攻击者进行Eclipse攻击的原理。

Eclipse攻击和Sybil攻击密切相关,它需要较多的Sybil攻击节点相配合。为了实现对特定区块链节点群的Eclipse攻击,攻击者必须首先设置足够多的Sybil攻击节点,并且向区块链网络宣称它们是“正常”的节点,然后使用这些Sybil节点与正常的区块链节点通信,入侵其路由表,最终把它们从区块链网络中隔离出去。

Eclipse攻击对区块链网络的影响十分重大。对于区块链网络来说,Eclipse攻击破坏了网络的拓扑结构,减少了节点数目,使得区块链网络资源共享的效率大大降低,在极端情况下,它能完全控制整个区块链网络,把它分隔成若干个区块链网络区域。对于受害的区块链节点来说,它们在未知的情况下脱离了区块链网络,所有区块链网络请求消息都会被攻击者劫持,所以它们得到的回复信息大部分都是虚假的,无法进行正常的资源共享或下载。

基于区块链网络的DDoS攻击

DDoS攻击是一种对区块链网络安全威胁最大的攻击技术之一,它指借助于C/S技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动攻击,从而成倍地提高拒绝服务攻击的威力。

传统的DDoS攻击分为两步:第一步利用病毒、木马、缓冲区溢出等攻击手段入侵大量主机,形成僵尸网络;第二部通过僵尸网络发起DoS攻击。常用的攻击工具包括:Trinoo、TFN、TFN2K、Stacheldraht等。由于各种条件限制,攻击的第一步成为制约DDoS攻击规模和效果的关键。

新型的DDoS攻击不需要建立僵尸网络即可发动大规模攻击,不仅成本低、威力巨大,而且还能确保攻击者的隐秘性。图4示出了在区块链网络中攻击者进行DDoS攻击的原理。

区块链网络中具有数以百万计的同时在线用户数,这些节点提供了大量的可用资源,例如分布式存储和网络带宽。如果利用这些资源作为一个发起大型DDoS攻击的放大平台,就不必入侵区块链网络节点所运行的主机,只需要在层叠网络(应用层)中将其控制即可。理论上说,将区块链网络作为DDoS攻击引擎,如果该网络中有一百万个在线用户,则可以将攻击放大一百万倍甚至更多。

根据攻击方式的不同,基于区块链的DDoS攻击可分为主动攻击和被动攻击两种。基于区块链的主动DDoS攻击是通过主动地向网络节点发送大量的虚假信息,使得针对这些信息的后续访问都指向受害者来达到攻击效果的,具有可控性较强、放大倍数高等特点。这种攻击利用区块链网络协议中基于“推(push)”的机制,反射节点在短时间内会接收到大量的通知信息,不易于分析和记录,并且可以通过假冒源地址避过IP检查,使得追踪定位攻击源更加困难。此外,主动攻击在区块链网络中引入额外流量,会降低区块链网络的查找和路由性能;虚假的索引信息,会影响文件下载速度。

基于区块链的被动DDoS攻击通过修改区块链客户端或者服务器软件,被动地等待来自其它节点的查询请求,再通过返回虚假响应来达到攻击效果。通常情况下,会采取一些放大措施来增强攻击效果,如:部署多个攻击节点、在一个响应消息中多次包含目标主机、结合其它协议或者实现漏洞等。这种攻击利用了区块链网络协议中基于“取(pull)”的机制。被动攻击属于非侵扰式,对区块链网络流量影响不大,通常只能利用到局部的区块链节点。

小结

Sybil攻击是Eclipse攻击成功实施的基础。Sybil攻击的目标是单个物理节点在区块链网络上产生大量不同的身份,成功的Sybil攻击可以使发动Eclipse攻击变得更为容易。对单个节点进行DDoS攻击的前提是向区块链网络发布大量的虚假消息或被动地做出虚假响应,Eclipse攻击可以帮助攻击者劫持网络节点间传递的信息,增大成功实施DDoS攻击的可能性。

Sybil攻击只是冒充单个区块链网络节点,对区块链网络的影响是比较小的;Eclipse攻击使得部分区块链节点脱离区块链网络,这对受攻击的节点来说是无法接受的;DDoS攻击的目的是大量占用受害节点的资源,使其无法正常提供服务,因此DDoS攻击对区块链网络的影响是致命的。