《我学区块链》—— 二十一、以太坊安全之 日食攻击 1、概念讲解

二十一、以太坊安全之 日食攻击 1、概念讲解

eclipse-attack

1、什么是日食攻击(Eclipse attack)

  日食攻击是通过其他节点实施的网络层面攻击,这种攻击目的是阻止最新的区块信息进入到被攻击的节点,从而隔离节点。

2、日食攻击是怎么产生的

  其攻击手段为:囤积和霸占受害者的点对点连接时隙(slot,类似时间间隔的意思),将该节点保留在一个隔离的网络中,达到隔离节点的目的。

3、日食攻击能搞什么破坏

  目前的比特币网络和以太坊网络已经被证实均受日食攻击影响。

  1)针对比特币网络的日食攻击:

  攻击者可以控制足够数量的 IP 地址来垄断所有受害节点之间的有效连接。然后攻击者可以征用受害者的挖掘能力,并用它来攻击区块链的一致性算法或用于 “重复支付和私自挖矿”。

  2)针对以太坊的日食攻击:

  攻击者可以垄断受害节点所有的输入和输出连接,从而将受害节点与网络中其他正常节点隔离开来。 然后攻击者日食攻击可以诱骗受害者查看不正确的以太网交易细节,诱骗卖家在交易其实还没有完成的情况下将物品交给给攻击者。

  3)其他方面

  日食攻击还可以攻击以太坊合约,方法就是让受害节点无法看清楚区块链信息,从而延迟节点看清楚智能合约的内部计算可能用到的各个参数,导致不正确的智能合约输出,因而攻击者可以大捞一笔。

  在论文中,研究者仅用2台主机就成功的发起了日食攻击,且每台主机只有一个IP地址。这说明以太坊更容易被日食攻击影响。

  

4、为什么以太坊网络比比特币网络更容易被日身攻击?

  更具体点说,以太坊网络中的节点通过加密 ECDSA 公钥来标识,值得注意的是,Geth v1.8 之前的以太坊版本允许从具有相同单个 IP 地址的同一台机器运行无限数量的以太坊节点,每个节点都具有不同的 ECDSA 公钥。由于生成新的 ECDSA 公钥很简单,只需要运行 ECDSA 密钥生成算法,就可以在几秒钟内轻松创建数千个以太坊节点ID,而不会耗费大量计算资源。因此,我们的攻击者生成一组以太坊节点ID,然后使用协调策略从两台主机(每台主机)仅使用一个IP地址便可以发起 eclipse 攻击。更糟糕的是,以太坊节点以偏见的方式与对等节点建立连接(即,一些节点 ID 比其他节点更容易成为对等节点),这很容易被攻击者预测到。 因此,我们的攻击者仔细选择他的节点 ID,以便受害者更可能连接到攻击者节点 ID,而不是合法的 ID。

5、日食攻击的成本多大

  日食攻击为网络层面的攻击,对比特币网络上的节点实施日食攻击需要成千上万个恶意节点才能搞垮一个受害者的节点。但在以太坊上,攻击者通过建立一个僵尸网络(买点云服务器就可以做到),就可以发起攻击,极端情况下,攻击者甚至只需要两个恶意的以太坊节点就能隔离和影响另一个节点,所以说成本不算很高。
  

6、漏洞的现状

  撰写该漏洞论文的研究团队表示,他们并不是冷不防的突然发布研究结果,他们与以太坊基金会合作,已经悄悄给这些问题打上了补丁,修复后的版本为 Geth 1.8.0。

  但研究人员同时表示,这些对策无法完全防止日食攻击,而只是将实施这种攻击所需的恶意节点数量从两个增加到了几千个。

7、面对日食攻击,我们要怎么办?

  注意平常电脑使用,避免被恶意控制,等待官方及时更新最新客户端,以免旧客户端有漏洞而被黑客们利用。

原文可参阅尤瓦尔•马库斯(Yuval Marcus)等研究人员共同撰写的
《针对以太坊的点对点网络发动的低资源日食攻击》

猜你喜欢

转载自blog.csdn.net/xuguangyuansh/article/details/81389348