2019独角兽企业重金招聘Python工程师标准>>>

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

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

1

基于区块链网络的 Sybil攻击

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

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

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

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

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

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

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

2

基于区块链网络的Eclipse攻击

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

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

Eclipse攻击的原理。

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

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

3

基于区块链网络的DDoS攻击

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

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

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

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

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

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

4

小结

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

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

内容来源:天下数据 整理:区块链兄弟

转载于:https://my.oschina.net/u/3782027/blog/2980634

区块链安全:基于区块链网络攻击的方式原理详解相关推荐

  1. 操作系统:基于页面置换算法的缓存原理详解(下)

    概述: 在上一篇<操作系统:基于页面置换算法的缓存原理详解(上)>中,我们主要阐述了FIFO.LRU和Clock页面置换算法.接着上一篇说到的,本文也有三个核心算法要讲解.分别是LFU(L ...

  2. 操作系统:基于页面置换算法的缓存原理详解(上)

    概述: 作为一个学计算机的一定听过缓存(注意这里是缓存,不是缓冲).比如我们在登录网页时,网页就可以缓存一些用户信息:比如我们在写界面代码的时候,可能就会遇到界面的绘制是基于一些缓存算法的.所以,了解 ...

  3. 基于Vue2.0数据双向绑定原理-详解

    在线使用-线上测试-源码 //代码: <div id="app"><input v-model="name" type="text& ...

  4. 陀螺产业区块链第三季 | 基于区块链的百信银行商户清算方案

    2020年4月,国家发改委在例行新闻发布会上宣布区块链被正式列为新型基础设施中的信息基础设施,自此区块链正式搭上新基建的"风口". 与传统基础设施建设相比,新型基础设施建设更加侧重 ...

  5. R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置、置信区间、坐标轴(刻度、标签、范围)、无效线去除、水平线、辅助线、box形状、色彩等

    R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置.置信区间.坐标轴(刻度.标签.范围).无效线去除.水平线.辅助线.box形状.色彩等 目录

  6. 基于Kubernetes构建Docker集群管理详解

    from: 基于Kubernetes构建Docker集群管理详解 Kubernetes是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动 ...

  7. 基于MIG控制器的DDR3读写控制详解

    基于MIG控制器的DDR3读写控制详解 目的:详细介绍FPGA中基于MIG IP核控制的DDR3详细控制及内部逻辑 平台:AX7350-Xilinx 软件:Vivado 2017.4 1.MIG IP ...

  8. python是基于什么原理_Python基于class()实现面向对象原理详解

    首先,类是一个集合,包含了数据,操作描述的一个抽象集合 你可以首先只把类当做一个容器来使用 class Cycle: def __init__(self,r): self.pi=3.14 self.r ...

  9. php7自定义异常处理,基于PHP7错误处理与异常处理方法(详解)

    PHP7错误处理 PHP 7 改变了大多数错误的报告方式.不同于传统(PHP 5)的错误报告机制,现在大多数错误被作为 Error 异常抛出. 这种 Error 异常可以像 Exception 异常一 ...

  10. 基于C语言的JPEG编码代码详解

    一.基于C语言的JPEG编码代码详解 #include <stdio.h> #include <stdlib.h> #include <string.h>#prag ...

最新文章

  1. ajax入门实例代码,AJAX、AJAX实例及AJAX源代码
  2. c+和python先学哪个比较好-【编程先学什么好,c还是python】python教程c
  3. 鸿合一体机触屏没反应怎么办_无线鼠标没反应,我来教您无线鼠标没反应怎么办?...
  4. Python学习之 !/usr/bin/python 和 !/usr/bin/env python区别
  5. oracle report builder 6i下载,oracle report builder 6i - 数据模型中的SQL查询代码
  6. 前端学习(1432):模板引擎概述
  7. ​听说,私有云也出新一代了?
  8. 设备树语法和多任务处理
  9. Java:从 Map 到 HashMap 的一步步实现!
  10. Guava Cache 使用笔记
  11. apache多域名403配置
  12. 软件开发的一些感想(五年工作总结版)
  13. 【阿里云】视频点播开通与配置
  14. RAISECOM交换机命令摘要
  15. 雷神911air 装黑苹果
  16. 如何把字符串复制给数组杭电11页几小题的总结
  17. 团队管理---管理经典理论
  18. Python爬取实习僧职位信息
  19. 【数据结构】【A鹿】malloc和其他相关预备知识
  20. 什么是第三方支付公司?

热门文章

  1. redhat最小化安装是多少包_Linux的最小化安装
  2. Apache Flink 1.10.0 重磅发布,年度最大规模版本升级!
  3. 上层应用开发是否真的没有底层开发有前途?
  4. python terminal_一个简单、易用的Python命令行(terminal)进度条库
  5. python将多重列表中的成绩按大小输出_Python编程从入门到实践-连载5(字 典)
  6. mongodb 日期分组聚合_如何在MongoDB中按其他字段分组时聚合时间序列数据?
  7. 计算机职业英语一级是什么,计算机职业英语一级.doc
  8. php array sum 小数位,多维数组上的PHP Array_Sum
  9. 帆软统计函数之统计有效性
  10. mobx中跟新了数据视图没变化_如何做一个好的大数据平台架构