针对比特币对等网络的隐形分区攻击(下)

 

0x01 Absert

本文中提出了一种更秘密的攻击,称为EREBUS攻击,该攻击无需任何路由操作即可对比特币网络进行分区,这使得该攻击对于控制平面甚至数据平面均不可检测。EREBUS的新颖之处在于,它通过耐心地影响目标节点的对等决策,使攻击者AS成为一个或多个目标比特币节点的所有对等连接的自然中间人网络。

在上一篇文章中介绍了隐蔽分区攻击的威胁模型和攻击方式,并回顾一下现有的比特币劫持和Eclipse攻击。

 

0x02 Harvesting Shadow IPs

在侦察步骤中,攻击者AS为其选择的受害节点枚举影子IP地址。影子IP是特定于攻击者和受害者的,因此每个攻击者-受害者对都有一组唯一的影子IP,这些影子IP由该对的拓扑关系确。许多AS(例如Tier-1和大型Tier-2 AS)可以有效地枚举大量(例如,数百万个或更多)的影子IP地址,且影子IP的地理位置分布良好(例如,在五大洲都可以找到影子IP),从而可以防止受害人与影子IP的连接看起来可疑。

A.获取影子IP

攻击者在侦察步骤中的主要目标是捕获所有可用的影子IP地址。这需要域间路径推断来理解从受害节点发送的流量路由,所有影子IP的枚举以及对这些IP地址的可选验证。

1)从受害节点推断BGP路径:攻击者推断从受害节点到世界其他地方的域间路由,以查看它们是否包括攻击者AS。请注意,攻击者AS必须位于受害者到影子IP的路径上,而不必位于影子IP到受害者的路径上,因为在受害者到影子IP的路径上足以用IP地址欺骗来模拟影子IP。

为了从托管受害节点的AS(例如上图AS V)推断出流量路由的默认AS路径,攻击者可以模拟具有给定AS拓扑的AS与广泛假定的数据包转发策略之间的BGP传播。将从受害者AS到自身的路径上包含攻击者AS的AS称为影子AS。例如上图中的AS C,D和E。

2)收集所有影子IP:攻击者从推断的影子AS中枚举影子AS拥有的所有影子IP,并将它们存储到自己的数据库中。

3)测试影子节点IP是否可用:收集的影子IP是BGP路由模拟的推断结果,其中可能包含一些错误。因此,攻击者可能想验证对手AS确实在从受害节点到影子节点IP的流量路由上。攻击者可以代表从影子AS中选择的影子IP与受害者节点建立连接(例如TCP),从而轻松地对其进行测试。如果攻击者没有从受害者那里收到任何数据包(例如SYN / ACK),将丢弃这些无法使用的影子IP及其前缀。此子步骤也可以在攻击执行阶段完成。

B.影子IP的地理分布

除了IP地址空间中的分布之外,还研究影子AS的地理分布情况。如果对等的比特币节点位于受限制的地理区域内,则它可能会怀疑EREBUS攻击。例如,如果所有传出连接都建立到一个地理区域,那将是可疑的。

在案例研究中将Amazon(AS 16509)视为托管受害者节点的AS,因为云提供商托管了大多数比特币节点,并且将成为此攻击的常见目标。选择了北美,南美,欧洲,亚太地区和非洲这五大洲中每一个的五个最大的二级AS作为攻击者AS,如上图。尽管攻击者AS的位置很高,但影子AS似乎在全球范围内分布良好。特别是,在五分之四的受测场景中,攻击者AS的影子AS分布在五大洲。结果表明,有战略的攻击者可以谨慎选择影子AS,以便受害者的联系在地理上看起来各不相同。

 

0x03 Creating Victim-Shadow Peering Connections

滴流攻击策略: EREBUS攻击首先使用影子IP尽可能多地占用new表,然后耐心等待它们迁移到tried表,并最终也控制tried表。将此称为滴流式攻击策略,在评估中,Tier-1或大型Tier-2 AS可以将足够数量的影子IP注入受害节点的tried表中,以在攻击持续数周内控制所有八个传出连接。

自适应攻击策略:进一步提出了一种可选的自适应攻击策略,以加快攻击执行阶段。在基准滴流式攻击策略中,攻击者AS将等到与影子IP建立的所有八个传出连接的概率变得足够大(例如30%或50%)并触发受害节点重新启动。请注意,已经通过多种方法演示了重启目标比特币节点的方法,包括但不限于拒绝服务或利用比特币客户端的漏洞。在自适应攻击策略中,攻击者的AS会跟踪已与影子IP建立的受害节点的传出连接。当攻击者AS是大型中转自治系统时,受害节点甚至在攻击之前通常都会自然地与影子IP建立一些传出连接。此外,随着攻击的进行,一些现有的传出连接自然会过期,并且可以为影子IP建立新的传出连接。

适应性对手评估在攻击的最后阶段之前重新启动是否将是有益的(例如,增加到影子IP的传出连接的数量),如果有帮助,则触发重新启动。这种自适应重启策略确实可以将攻击持续时间缩短到40天左右,而攻击过程中只需重启几次即可。

 

0x04 Occupying Incoming Connections

只要存在任何未使用的传入连接,攻击者AS便可以使用其任何影子IP来简单地创建到受害者节点的传入连接。下图显示了实时比特币节点之一建立的传入和传出连接的数量。尽管该节点几乎总是将其所有八个传出连接都占用,但是在大多数情况下,传入连接的数量要少于最大连接数117。根据对比特币核心的最新更改,即使当一次所有传入连接都已满时,攻击者AS仍可以创建传入连接,因为受害节点在拥有117个传入连接时应退出一个现有连接。此外发现大多数传入连接的生命周期都很短(例如几分钟),因此攻击者可以轻松占据大多数传入连接。为了占据几乎所有传入连接的100%,在重新启动受害者节点之后,攻击者AS可能会用来自影子IP的连接请求向受害者进行泛洪。

 

0x05 Evalution

1)占据所有传出连接:上图显示了EREBUS攻击的一个实例,说明了攻击者如何通过自适应攻击策略逐渐占据所有八个传出连接。描述了与影子IP分别建立一个和八个传出连接的概率(分别为f和f8)以及对手所占用的实际传出连接数。攻击持续时间越长,概率f和f8都越大;但是,f8的增长速度比f慢得多,并且仅在攻击开始30天后才开始获得不可忽略的概率。

还观察到建立到影子IP的传出连接的数量逐渐增加,最终攻击者在第40天成功占领了所有受害者的传出连接。此外,当攻击者希望占据更多的传出连接时将仅重启受害者节点几次。当占用全部八个连接的概率达到15%时,会出现更多次。

为了更好地了解攻击者的攻击成功概率,在上图中说明了如何将影子IP插入到同一攻击实例的两个表中。总体而言,两个表中的影子IP数量都有增加的趋势。特别是在攻击的前25天,以相对较低的速率插入了影子IP。攻击的第25天之后,由于new表中现有的合法IP变得陈旧并被驱逐,影子IP的数量显着增加,见图a。同样,图b显示了攻击30天后,迁移到tried表的影子IP的数量显着增加。请注意,尽管攻击者无法驱逐所有合法IP,但影子IP仍在两个表中的可到达IP中占主导地位,这解释了对影子IP进行单个传出连接的可能性f增大。

2)不同受害者的存在时长和攻击者AS排名的攻击效率:在上图a显示了f的相似生长模式,只有很小的差异。这表明,即使排名差别很大,AS中的拓扑优势也非常有限。图b的结果表明,存在时长短的受害节点更容易受到EREBUS攻击,因为攻击者在攻击这些节点时的成功率更高。但是,攻击者仍然可以达到一定的成功率(例如,在50天节点的实验中为18%),这仅需要几次重新启动受害者,直到其所有传出连接都被占用。

3)所需的攻击流量:估计EREBUS攻击所需的攻击流量,在攻击模拟的50天中,脚本以每秒2个IP的速率向受害者发送了影子IP。该速率仅略高于攻击开始之前的IP插入速率(大约每秒1.3个IP)。请注意,一旦攻击开始,非影子IP的速率就会大大降低,因为攻击者也占用了大多数传入连接。因此,攻击期间进入IP的总速率与攻击之前进入IP的典型速率相当。考虑到每500秒攻击者需要通过与受害者建立的TCP连接发送包含1,000个影子IP的地址消息。整个连接(即下游和上游)包括TCP握手(214字节),比特币版本握手(614字节),addr消息(30,093字节)和其他数据包,例如TCP ACK和比特币ping(约1,500字节) 。因此,总的来说,攻击者只需维持大约520位/秒的通信速率即可发起针对一个受害节点的EREBUS攻击。

4)攻击可扩展性:EREBUS攻击具有高度可扩展性。一个攻击者AS可以同时针对多个比特币节点,而无需延长攻击准备和执行时间。这是因为针对每个比特币节点的攻击执行彼此独立。

对于并发攻击,攻击者AS必须将不同的攻击比特币消息发送到不同的比特币节点。随着目标比特币节点数量的增加,这仅需要攻击流量的线性增加。考虑到每个目标节点的攻击流量较低,与大型AS的多Tbit / s流量相比,攻击多个节点(甚至数十个或几百个节点)所需的总攻击流量仍可忽略不计。

EREBUS攻击者可能想要仔细选择目标比特币节点以实现其最终攻击目标;例如,控制多个矿池网关,尝试进行双花。

 

0x05 Countermeasures

A.无效的对策

1)主动路由测量:受害比特币节点可以主动测量从其自身到其对等端的端到端路由,以测试其连接是否经过了常见的,潜在的恶意AS。但是,主动路由测量是无效的,因为它很容易被EREBUS攻击者欺骗,并且很难检测到这种欺骗。当路由探针数据包(例如,traceroute探针)穿过攻击者的AS时,他可以更改测量的路由(例如,通过对ICMP错误消息的IP进行欺骗来进行traceroute),并使路由看起来是良性的(即,不穿过攻击者AS) 。更糟糕的是,检测这种欺骗并非易事。受害者节点可能会尝试通过IP级路由分析来识别异常路由,从而检测出这种欺骗。但是,这种路由操纵检测的准确性仍是未知的,并且每当路由器级路径发生变化时,也可能发生许多误报。

2)域间路由估计:受害节点可能会尝试运行BGP模拟来估计其连接的域间路由(就像EREBUS攻击者所做的一样)以检测EREBUS攻击。然而,这种方法不幸地是无效的,因为由于缺乏真实路径测量数据,受害节点难以验证估计的路径。如果没有验证路径,则如果估算的与真实的路径不同,可能会出现许多误报和否定的情况。请注意,相比之下,EREBUS攻击者可以准确地验证其路由估计,因为如果他处于端到端路由,则可以看到来自受害节点的所有比特币数据包。

3)将IP地址列入白名单:防止EREBUS攻击的一种方法是在中心位置维护真实比特币节点的白名单,并将其告知所有比特币节点,以便它们可以轻松地忽略影子IP。但是,比特币原则上允许任何节点在任何时间点未经任何许可而加入和离开系统。因此,维持这样的白名单强烈违反了永久性的区块链原则。白名单可以是集中式或分布式的,但是无论哪种方式,操作白名单都是不切实际的。单个(或少量)集中式白名单可能是系统的完美单点故障,因为列表受到攻击可以完全控制网络图。白名单的分布实现并非易事,因为它需要在大量节点本身之间的此类列表上建立共识。

4)限制addr消息的速率:另一种解决方案是限制addr消息的数量,特别是从其他比特币节点接收的IP数量,以限制EREBUS攻击者的能力。由于大多数影子IP是通过传入连接发送的,因此受害节点可以对传入连接所接收的addr消息实施较低的限制,而对于传出连接所发送的addr消息,则实施较低的限制。但是攻击者AS发送的IP地址数量并没有太大差异(例如,仅是正常速率的1倍至2倍),这使得设计速率变得在实践中很困难。

5)限制传入连接的速率:类似地,可以尝试限制每单位时间传入连接的数量,以使新的传入连接泛滥到受害节点的效率降低。但是,当攻击者的传入连接请求与其他请求无法区分时,限制传入连接的速率不会减少攻击者占用传入连接的机会。

6)网络级数据层面检测:良性,谨慎的AS可能会通过监视任何数量异常多的比特币消息(例如版本,verack,addr)来尝试检测相邻AS发起的EREBUS攻击是否来自单一AS的比特币节点。但是,这种数据层面的网络内检测很困难,因为:(1)攻击流量没有明显高于良性情况; (2)无法确切确认任何可疑比特币消息的始发者。

B.变更比特币协议的对策

1)表大小减小:new表和tried表的大小是一个重要的系统参数,它会影响为外出连接选择的注入攻击者的IP地址的概率。比特币社区已将表大小增加了四倍,作为对抗Eclipse攻击的对策,因为它增加了Eclipse攻击的僵尸网络成本。但是,实际上,增加表的大小会使EREBUS攻击变得更加容易。表大小的减小使EREBUS攻击更加困难。下图显示了针对不同对策与影子IP建立的所有八个传出连接的评估概率。如果增加表的大小,则攻击者可以获得更高的成功概率。表大小的减小使EREBUS攻击的效果降低。与Eclipse攻击者相反,EREBUS攻击者具有更大的带宽能力和可用于攻击的更多IP地址。

但是,此更改的实际部署需要在社区中进行更多讨论,因为减小表大小可能会限制比特币对等网络中良性和稳定IP的存储,这可能会影响比特币对等网络的动态。系统。

2)更多外向连接:另一个有效的解决方案是增加每个比特币节点中可以建立的传出连接的数量。当前的最大值为8,通过增加最大值将更难占用所有传出的连接。如上图所示,如果将其加倍,则EREBUS攻击者的成功概率要低得多。

请注意,针对Eclipse攻击也提出了类似的对策,但尚未在比特币核心中采用。必须仔细设计外发连接的增加,因为这种增加可能会立即增加对等连接的数量和系统的总流量。数量的突然增加很容易增加比特币网络中消息和块的延迟。

(1)和(2)结合:结合了两个有效的比特币协议修改,并评估了其最终检测效果。上图的最后一行显示了当比特币节点将表大小减小四倍并使输出连接数增加一倍时的攻击成功概率。这清楚地表明,组合方法确实使EREBUS攻击变得极为困难。例如,即使在执行攻击两个月后,成功率也只有5%。

3)在对等节点选择中合并AS拓扑:另一个极有希望的对策是使对等选择算法了解AS级别的拓扑,以便对等决策本身会使EREBUS攻击更加困难。具体来说可以使用AS将两个表中的IP地址而不是其前缀组进行分组。这样,对于IP分布在大量前缀组中但仅托管在几个AS中的攻击者来说,攻击变得更加困难或更不可能。例如,由于这种防御,没有至少100个影子AS的AS大约15%概率下将无法发起EREBUS攻击。

4)驱逐策略:可保护提供较新的块数据的对等方。 跨层防御方法是改善对等驱逐策略,以使比特币节点保留传播较新的区块数据的对等体。 结果,如果存在合法的传入连接提供较新的块,则从受害者的角度审查特定的阻止或交易将变得无效。

已于2019年6月上旬向比特币核心安全团队披露了此发现。自2019年7月1日起,比特币核心开发人员正在积极考虑部署对策[C3]和[C4]。将在公共项目网页https://erebus-attack.comp.nus.edu.sg/上继续更新这些措施的状态以及任何新的对策。

 

0x06 Conclution

无论是价值数十亿美元的加密货币还是小型区块链,只要它们是去中心化的,分布式对等节点都将严重依赖当前的互联网,在该互联网上,几个大型自治系统(ASes)可能会加重危险。本文表明,如果没有仔细考虑EREBUS攻击来精心设计其对等协议,则这些大型AS的拓扑优势使他们可以控制区块链的对等连接。希望本工作能引发关于加强数千种加密货币的新讨论,即使是针对强大,复杂(例如国家组织)的网络攻击者。

(完)