日蚀攻击(Eclipse Attack)是对区块链的一种网络级攻击,攻击者基本上控制了点对点的网络,同时模糊了区块链上的节点视图。
波士顿大学副教授Sharon Goldberg在一篇题为“对以太坊点对点网络进行的低资源日蚀攻击”的论文中写道,Ethan Heilman,一名波士顿大学的博士研究生;以及匹兹堡大学的研究员Yuval Marcus描述了一种在以太坊网络上进行日蚀攻击的方法。
(研究人员在2018年1月9日向以太坊透露了他们的攻击,以太坊的开发者已经发布了一个补丁——Geth v1.8.1——来修复网络。)
在接受Bitcoin Magazine的采访时,Goldberg解释了这项研究,并谈到了它如何与比特币的Eclipse进行比较,以及为什么她认为这项工作很重要。
首先,她强调说,与以太坊的开发人员合作来修复漏洞是一个顺利的过程。她说道:
“这是一个非常实用、并容易披露的信息。”
在写给Bitcoin Magazine的一封电子邮件中,以太坊基金会(该基金会负责监督以太坊的开发)的安全指挥员Martin Holst Swende表示,最近的Geth补丁包含了对点对点层的几项修改,但它并不会影响关键的共识代码。。。。。。用户不必担心,因为“日蚀攻击是针对特定受害者的针对性攻击,”他写道,并补充说,“不过,我们建议所有用户把版本升级到1.8.1。”
分裂网络
与比特币一样,以太坊网络上的一个节点依赖于与其他节点的连接,以获得网络的完整视图。在日蚀攻击中,攻击者控制所有来自以目标受害者的节点及将要连接目标受害者的节点。这样,攻击者就可以防止受害者获得关于网络其他部分的完整信息。
人们通常认为日蚀攻击是一种将网络挖矿能力与共识相结合的方式,但是日蚀攻击在双花攻击中特别有用。收款人可以为交易发送币,并使用日蚀攻击来阻止接收方了解到这一过程,在网络的另一个部分中,同样的币会被用于了另一个交易。
Goldberg和Heilman以及另外两位研究人员,于三年前在Bitcoin network上发表了关于日蚀攻击的第一篇论文。通过与一个新实习生(Marcus)合作,他们想要探索同样类型的针对以太坊的攻击。Goldberg说道:
“我们很好奇它和比特币的比较会是如何。”
“完全不同”
Goldberg描述说,在以太坊网上发起一次日蚀攻击,与在比特币上发起一次攻击是“完全不同的”。为了实现对比特币的一次日蚀攻击,一个攻击者需要控制大量IP地址(机器)来垄断连接到受害者节点的连接,这使得攻击比特币的代价极高。
与此相反,研究人员仅使用一两台机器就能在以太坊层发动类似的攻击,使对以太坊的攻击比对比特币的要更强大。“这一部分让我有点吃惊,”她说道。
那么这到底有多重要呢?“很难知道,”Goldberg解释说,在以太坊的网络中,阻止这类攻击的主因并不是攻击的难度,而是对以太坊点对点网络如何运作缺乏理解。正如Goldberg所指出的那样,以太坊网络“基本上是无证明文件的”。
就像在早期对比特币网络的工作中一样,研究人员必须根据代码对协议进行反向设计,并从数据包中编写自己的解析器,所以一切都是从头开始做的。“要做到这一点很难,而且需要一段时间,”Goldberg说道。
弹性更差
乍一看,以太坊似乎对日蚀攻击更有弹性。尽管比特币节点只生成8个传出的TCP连接,以形成传播交易和区块的gossip网络,但以太坊节点却有13个。同时以太坊的点对点的网络使用了安全加密通道,而比特币的网络却没有。
但是,事实证明,以太坊实际上是容易受到攻击的,这主要是因为比特币依赖于一个非结构化网络节点的随机相互连接,而以太坊则依赖于结构化的基于一个称为Kademlia的协议的网络,其旨在更有效地允许一个节点可以连接到其它节点。
以太坊的点对点网络中的节点由其公钥所标识。显然,以太坊的版本(在Geth v1.8.1之前)允许用户运行无限数量的节点,每个节点都有一个不同的公钥,从同一个IP地址的同一台机器上运行。
通过使用密钥生成算法,攻击者可以非常快地创建无限数量的节点ID(在对等网络上的标识符)。更糟糕的是,攻击者甚至可以创建节点ID,使其相比于随机的节点ID来说对受害者更具吸引力,这样就能基本上把受害者拉到他们身边 。
“你在Kademlia的攻击中可以看到很多的例子,”Goldberg说道。
更多的工作要做
Goldberg说,她还不清楚为什么以坊太会首先选择了Kademlia网络。一个结构化的点对点网络通常被用来获取一些内容,比如电影,并把它分成几块,然后把这些片段发送给不同的点,然后从每个点下载片段,其类似于BitTorrent(点对点的文件共享协议)的工作方式。
但是在以太坊上,内容是以太坊的区块链,而节点将整个区块链存储在本地。我们根本没有必要去打破区块链,并让每个节点只存储其中的几个部分。Goldberg说道:“我认为这是一个有趣的设计决定,因为我一直认为一个非结构化的网络会对区块链系统更安全。”
Goldberg表示,她希望看到更多的研究人员深入挖掘区块链的核心内容,以便更好地理解“不那么性感”的部分是如何工作的。
她说:
“我们在基础设施的上建造复杂的系统,重要的是确保基础设施本身的安全。”
像Goldberg,、Heilman和Marcus这样的研究者在以太坊生态系统中扮演着重要的角色。研究人员通过以太坊的的bug bounty program(漏洞奖励计划)提交了他们的发现,该程序是一个奖励个人提交漏洞的程序。
“Goldberg等人在公开发行前与我们共同分享了这篇论文,并慷慨地帮助我们评估了Geth的补丁,”以太坊基金会的Holst Swende证实道。