关于比特币P2P网络的隐形分隔攻击

最近有一个项目,需要整理卫星链路和区块链方面的材料,而且本身我自己的方向又是区块链,所以最近区块链方面的文章看的比较多,这次分享的是最近刚看的一篇关于比特币P2P网络的隐形分隔攻击的论文。

在介绍这篇论文之前,大家可以先了解一下关于BGP劫持攻击和对于比特币区块链点对点网络的日蚀攻击这两种攻击的原理和方法,这对理解该篇论文所讲的攻击方法很重要!

关于BGP劫持攻击的介绍,可以参考这篇公众号的推文:

什么是BGP劫持?

链接失效的话,直接按照我给的问题去搜就好!

关于比特币网络中存在的日蚀攻击:

比特币点对点网络中的日蚀攻击

有了前面的这些东西,再来理解关于比特币P2P网络中的隐形阻隔攻击就容易多了。下面开始切入正题!

论文题目:

A Stealthier Partitioning Attack against Bitcoin Peer-to-Peer Network

文章来源:

2020 IEEE Symposium on Security and Privacy

与之相关的论文

  • Hijacking Bitcoin: Routing attacks on cryptocurrencies
  • Eclipse Attacks on Bitcoin’s Peer-to-Peer Network

几篇文章之间的联系

首先是Eclipse Attacks on Bitcoin’s Peer-to-Peer Network这篇论文,这篇论文是USENIX Security上的一篇论文,讲的是比特币点对点网络中的日蚀攻击,作者在给出攻击方法和攻击原理后,还给出了6种防御方法,并且将攻击过程和防御方法告诉了比特币开发社区,比特币开发社区由此对更新了比特币系统的源代码,之后这篇论文的作者作为第二作者,又发表了关于以太坊中存在的低资源日蚀攻击的论文。

然后是Hijacking Bitcoin: Routing attacks on cryptocurrencies这篇论文,这是2017年发表在这个会议上的一篇论文。它是主要介绍加密货币中存在的BGP路由劫持攻击,我查了一下相关的资料,对于BGP劫持,目前没有很好的防御方法,只能通过一些监测器和相关的审查措施来检测恶意的自治系统的行为,现在也已经出现了一些比较有效的监测工具。

关于BGP路由前缀攻击检测的介绍,可以看下面这篇介绍:

浅析BGP路由前缀攻击检测

最后就是今天看的这篇最新的2020年的这篇论文,它这篇论文主要对比的就是上面说的BGP劫持攻击对于比特币的点对点网络攻击,因为BGP劫持攻击虽然可行,但还是存在被监测出来的风险。而这篇论文的新颖之处在于:他假定了一个攻击者可以完全控制一个AS(即自治系统),然后这个AS就成为一个恶意的AS,攻击者通过这个AS,以欺骗和冒充的方式去诱导被攻击的比特币节点去和自己设法获得的合法的IP地址建立连接,然后自己的这个AS充当一个中间人网络,可以劫持所有流经自己的流量,并且对流量任意进行篡改,删除等一些操作,达到分隔比特币网络的目的。这种攻击的好处在于:它利用了BGP 的路由策略,进行的攻击操作对于BGP路由来说是完全合法的行为,没有对路由进行任何操作,所以就不会被监测出来,这就是这种攻击相对于BGP劫持攻击来说更为隐秘,更难防御的一点。作者称这种攻击为EREBUS attack,下面对该攻击的原理和方法进行一个详细的说明。

威胁模型

图1

  • 假定有一个攻击者,该攻击者可以控制一整个的自治系统网络,即控制一个AS,这个自治网络被称为Adversary AS
  • 攻击者可以在自己控制的这个AS中,任意修改、插入、删除、延迟发送经过自己这个自治系统的数据信息
  • 攻击者最终的目标是:控制比特币P2P网络中目标节点的所有peer connection(对等连接)
  • 攻击者的目标节点的选择有一个局限性:攻击者只能选择那些可以接受传入连接,即接受外部连接建立请求的节点。因为攻击者需要通过与目标节点建立连接来进行攻击,如果这个比特币节点都不具备和外部节点建立连接的功能,那就无法进行攻击。在比特币的P2P网络上,符合攻击要求的节点大概有10000个

理想的EREBUS attack

  • 如上图所示,目标比特币节点处在自治系统V当中,现在它和自治系统B还有自治系统F中的比特币节点建立了连接,中途经过了A和G,并没有经过攻击者所在的自治系统M,所以目前M无法控制目标节点的两个对外的连接,也就是蓝色虚线部分所表示的连接
  • M需要想办法去控制目标节点的连接,首先就是要让V中的目标节点在和其他的自治系统中的对等节点建立连接的时候要经过自己,所以M可以想办法让目标节点和C还有D中的节点建立连接,这样目标节点建立的连接就会经过自己的自治系统。其中,C和D是M通过筛选比特币网络中所有的AS之后挑选出来的,用BGP协议的路由原则,让目标节点合法的通过自己和C还有D中的节点建立连接

理想的EREBUS attack存在的两个挑战

  • 自治系统C和D中没有那么多的比特币节点符合攻击者的要求,也就是C和D中,能够和目标节点建立连接的时候,恰好要通过自治系统M的这些比特币节点的数量可能并不够。因为值得注意的一点是,当前的比特币节点能够接受的外部对等连接的数量已经可以达到125个了,而我们想要对目标节点发动攻击,达到攻击效果,必须让我们可以控制的连接把目标节点的外部连接全部占有。也就是我们必须要有125个及以上的在合适位置的对等节点(即这些节点和目标节点建立连接是会经过M),才能为我们发起攻击提供可靠的保证
  • 即使有足够多的这样的比特币节点存在,先要去影响目的节点和其他节点建立对等连接,依旧非常困难。尤其是在比特币社区为了抵御日蚀攻击,已经采取了相对应的措施,更新了代码,使得这种攻击更加困难

full EREBUS attack

所以在实际攻击的时候,就采取了这样的操作:M会让目标节点和C还有D中的大量有效的IP地址建立连接,至于这些IP地址所在的主机是不是比特币节点,这个无所谓,甚至它不是一台主机都没关系,因为实际建立连接和目标节点建立连接的是M中的攻击者,只是借用了一个合法的IP地址而已,任何消息的回复,连接的维持等操作,都可以通过攻击者来操作。所以,只要是合法的IP就可以!

具体分两个阶段

侦查阶段

图2

  • 获得大量的shadow IPs
    • 先对所有的AS进行评估,然后确定目标AS与哪些AS建立连接的时候要经过自己
    • 筛选出这些AS以后,会把这些AS中有效的IP地址添加到自己的数据库当中
    • 再测试一下目标节点额这些IP地址建立连接的时候会不会经过自己的AS

攻击阶段

图3

  • 建立目标节点和shadow IPs的连接
    • M会代表shadow IPs与目标节点(victim node)建立连接
    • 建立连接以后,M会把shadow IP洪泛给victim node的IP地址表
    • 攻击者会等待victim node的全部外连接都断开,然后全部与shadow IP建立连接。为了加快这个进程,攻击者可能会诱导victim node去重置自己的连接,根据自己的IP地址表重新建立新的连接。因为此时目标节点的IP地址表,已经被攻击者用shadow IP填满了,所以建立的新连接都会被攻击者所控制

这就是这篇论文所提出的这个攻击的原理和攻击方法,目前还没有很好的防御方法,论文里给出了一些,我这里还没进行总结,等后续把这篇论文研究透以后,可以再详细总结一下!

最后说一下这个攻击的三个特点:

  • Undetectability(不可检测性)
  • Immediate availability(实时可用性)
  • Lack of trivial countermeasures(缺乏详细的防御措施)

最后论文作者通过搜集了比特币网络四个月的数据进行测试实验,实验结果表明:任何一个Tier-1或者大型的Tier-2的自治系统,仅仅只需要一个很小的带宽成本(,对于每一个目标节点,只有520bps的流量)就可以控制一个目标节点,并且攻击周期也不会太长,大概在5-6周左右,并且还可以通过灵活调整的攻击策略,让攻击周期进一步缩短。

至于具体实验怎么做的,怎么攻击,等下篇博客再进行详细介绍!

图4

上一篇博客整理了一篇区块链方面最新的报告和发展趋势,我把报告的PDF版本放在了公众号,想要报告PDF版本的可以去公众号后台回复“报告”两个字,就可以拿到下载链接!

猜你喜欢

转载自blog.csdn.net/loveCC_orange/article/details/112688470
P2P
今日推荐