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

阅读量    382932 |   稿费 200

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

 

0x01 Absert

网络攻击者例如恶意中转自治系统(ASes),能够通过路由级别的攻击来对比特币对等网络进行分区。例如,网络攻击者利用BGP漏洞并执行前缀劫持攻击。由于BGP的性质,这种劫持在全球范围内都是可观察到的,因此可以立即检测到攻击并确定攻击者。

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

事实证明影响比特币节点的对等决策,在针对早期Eclipse攻击进行一系列漏洞修补后被认为是不可行的,但对于使用大量网络地址资源(例如,在许多其他AS中欺骗数百万个IP地址)的网络攻击者来说是可能的,并且成本可以忽略不计。 EREBUS攻击可轻松用于大型AS,例如Tier-1和大型Tier-2 AS,针对绝大多数10K公共比特币节点,每个目标比特币节点的攻击流量仅约520 bit / s,且拥有适度(例如5-6周)的攻击执行期。

 

0x02 Partitioning Bitcoin Nodes

简要回顾一下现有的两种最著名的攻击:比特币劫持和Eclipse攻击

A.比特币网络分区的动机

•攻击比特币共识:划分一组矿工的攻击者可能会停止最新的区块链状态,从而浪费他们的挖矿工作。将一部分矿工(例如30%)从网络的其余部分中划分出来,可以使一个甚至无法控制大部分采矿能力(例如40%)的攻击者发动51%的攻击。此外,攻击者可以利用自私挖矿攻击劫持分区矿工的计算能力,以挖掘其区块链。而且即使在谨慎等待区块链上的某些区块确认之后,分区的比特币节点(例如,连接到商家,交易所或SPV客户的节点)也容易受到双花攻击。

•攻击比特币的链下协议: 攻击者阻止分区的受害者节点在区块链上结算支付渠道,并从受害者的链下交易中窃取受害者的资金。

•破坏加密货币:一个强大的攻击者,甚至可能旨在破坏加密货币的底层基础对等网络的很大一部分。在较小的规模上,攻击者可以任意审查受害者的交易。

B.比特币劫持和缺陷

比特币劫持攻击者利用BGP劫持流量,以转发特定(例如,最多/ 24)的IP前缀,其中包括目标比特币节点的IP地址。当攻击者AS劫持节点的所有域间路由时,他控制(例如,注入,删除,修改,延迟)目标节点的比特币消息。此外,比特币劫持攻击还提出了几种算法,以找到必须一起劫持的目标比特币节点集,以将所有比特币节点与对等网络的其余部分高度隔离。

主要缺点:比特币劫持攻击的一个主要缺点是,攻击者在发起攻击后(例如5-10分钟)会立即向公众披露其身份。众所周知,用于比特币劫持攻击的BGP劫持消息会传播到整个网络,并最终由全局路由监视系统(例如RIPE ,RouteViews )观察到。当路由监视系统捕获比特币劫持消息时,可以轻松识别出攻击的执行者,因为其AS号必须包含在劫持消息中。在揭露攻击者之后,比特币劫持攻击可能会引起巨大的政治争议。

C.日蚀攻击和对策

如前所述,Eclipse攻击直接操纵了受害比特币节点的对等选择决策。比特币节点通过传入对等连接(即由其他对等体发起的连接)和传出对等连接(即由节点本身发起的连接)维持与其他对等方的许多连接。选择传出连接时,比特币节点从其内部数据库中选择对等IP地址,特别是new表(包含从对等方获知的IP地址)和tried表(包含该节点曾经连接到的IP地址)。

在引入Eclipse攻击之前,比特币协议在管理和使用两个表中的IP地址时存在多个漏洞。即,任何远程攻击者都能够以最小的努力用任意的IP地址填充目标节点的两个表,从而最终控制目标节点的对等连接决策。比特币社区迅速修补了这些漏洞。几种对策中最值得注意的一项是禁止任何远程攻击者直接访问两个表之一(即tried表)。结果,攻击者只能直接填充另一个表(即new表),而不能同时填充两个表。而且,在修补之后,填充new表变得更加困难。这些修复程序和其他一些修复程序使带有僵尸网络的攻击者无法进行Eclipse攻击。

 

0x03 EREBUS Attack

上图是EREBUS攻击的高级概述。 恶意自治系统(AS)M间接将AS V中目标比特币节点的所有对等连接切换到其他精心选择的比特币节点,以将自身定位在受害节点的所有对等连接的中间。 此攻击不需要任何路由操作(例如,劫持BGP路径),从而使自身无法被控制平面异常检测系统检测到。

着重于攻击者的AS网络如何设法控制目标受害者比特币节点的所有对等连接(此处仅显示两个)。 攻击者AS无需操纵底层路由协议,而是将受害节点(在AS V中)的现有传出对等连接(请参见蓝色虚线虚线)更改为与比特币节点(在 AS C和D),其受害者到节点的域间路径包括攻击者AS M。

结果,攻击者AS最终被放置在受害节点的所有对等连接的路径上。值得注意的是,影响远程比特币节点的对等决定被认为对于最新的比特币核心(0.18.0版)不可行,因为所有相关的错误已在早期的Eclipse攻击后得到修复。具体来说,拥有数千个傀儡机的远程攻击者不再可以强制目标比特币节点专门连接到其傀儡机。

与通常的看法相反,EREBUS网络攻击者仍然可以影响比特币节点的对等决策。攻击之所以可行,不是因为比特币核心实现中有任何新发现的错误,而是因为成为网络攻击者的基本拓扑优势。也就是说,EREBUS攻击者自治系统作为一个稳定的中间人网络,可以在延长的时间段内(例如,数个个星期或更多)可靠地利用大量的网络地址(例如,模拟数百万个或更多的有效IP地址)。

EREBUS攻击者AS可以同时攻击多个精心选择的比特币节点(例如,流行采矿池的网关),以进行强大的比特币分区攻击。由于EREBUS攻击并未利用比特币核心实现的特定漏洞,因此似乎没有简单,快速的补丁可用。

 

0x04 Threat Model

类似于比特币劫持攻击,考虑一个完全控制单个AS网络的攻击者,称其为攻击者AS。攻击者可以任意插入/修改/删除/延迟通过其网络的任何消息。攻击者的目标是控制比特币对等网络中目标节点的所有对等连接。目标是大约1万个接受传入连接的比特币节点。由于缺乏公共IP接口而无法接受传入连接的比特币节点(例如,网络地址转换(NAT)后面的节点或通过Tor桥连接的节点)不在本文攻击范围内。

此外,认为目标比特币节点在整个攻击执行期间具有可靠的IP地址。假设比特币分区攻击的主要目标将是众所周知的且有影响力的节点(例如,流行矿池的网关节点),它们将以稳定的IP地址可靠地运行。请注意,即使目标节点更改了其IP地址(例如DHCP),攻击者也可以通过比特币节点指纹技术来识别具有不同IP的同一节点。

假设一个比特币节点在任何给定时间只能受到一个攻击者攻击。当两个或多个攻击者同时攻击同一节点时,攻击的成功率可能会由于他们的竞争而下降。

 

0x05 Naive EREBUS Attack

攻击者是一个恶意的AS(例如图中的AS M),将一个良性的比特币节点作为受害者(例如图中的AS V中的节点)。由于攻击者可能不在受害节点的原始对等连接的路径上(请参见蓝色虚线虚线),因此攻击目标是强制受害节点连接到其他良性比特币节点(例如,AS C或D),以便受害者节点的已更改对等连接(请参见红色实线箭头)遍历攻击者AS。

请注意,应仔细选择受害者的新比特币对等节点,以使受害者到节点的路由(例如,V到D的路由)包括攻击者AS M。攻击者重复此操作直至其服务受害者节点的所有对等连接。作为受害者节点对等连接的自然中间人网络,攻击者AS现在可以插入/修改/删除/延迟从他选择的比特币对等节点传递到受害者节点的任何比特币消息,有效控制受害节点;即达到了攻击目标。

技术挑战:尽管从直观上讲吸引人,但由于几种有限的未知攻击功能,在实践中实施朴素的EREBUS攻击非常困难。首先,可能没有足够数量的良性比特币节点(例如,AS C或D中的节点),其到受害节点的通信路径恰好包含攻击者AS。

请注意,当前一个比特币节点可能最多具有125个对等连接,因此在正确的位置,需要125个或更多这样的比特币对等节点才能进行可靠的攻击。其次,即使存在足够数量的此类比特币对等节点,仍然很难影响任何比特币节点的对等选择,尤其是在已部署了多种对策来阻止Eclipse攻击之后。

 

0x06 Full EREBUS Attack

现在描述EREBUS攻击的完整版本,EREBUS攻击者不仅使用现有的比特币节点,而且还使用其受害者到IP地址路由包括攻击者AS的任何有效IP地址。例如,图中的攻击者AS M可以枚举AS C和D中的大量有效IP地址,并迫使受害节点与任何枚举的IP地址进行对等。称此类攻击者枚举的IP地址为影子IP。

影子IP代表虚拟的(因此可能不存在的)比特币节点,该节点可能成为受害者到节点的路由,包括攻击者的AS。重要的是要注意,真正的比特币节点甚至任何主机都不一定使用影子IP。影子IP仅用于向受害者提供对等网络的逻辑视图,并且从攻击者节点劫持并完成从受害者节点连接到它们的任何尝试,并由攻击者AS进行正常的比特币消息交换。

用以下两个攻击阶段描述EREBUS攻击:侦察阶段(步骤I)和攻击执行阶段(步骤II)。

[步骤I]收集影子IP。在此步骤中,攻击者旨在收集尽可能多的IP地址,这些IP地址可用于影子IP。如上图所示,此步骤包含三个子步骤。

在步骤I-➊中,攻击者评估域间路由状态,并枚举可能具有其受害节点到节点数据包将遍历其自己的网络M的节点的所有AS。

在步骤I-➋中,攻击者枚举所有所选AS中的可用IP地址,并将它们用于受害人专用的影子IP,并将其插入其数据库中。

在步骤I-➌中,攻击者测试来自受害节点的数据包是否确实经过其网络到达所选的影子IP。请注意,此测试步骤可以集成到下一个攻击执行步骤中。对于大型攻击者AS和典型的受害节点,可以轻松获得数以千万计的影子IP。

[步骤II]创建受害者阴影对等连接。在此攻击执行步骤中,攻击者旨在耐心地影响受害者节点,使其仅与它在步骤I中获取的影子IP建立对等连接。请注意,不再可以用某些僵尸网络控制比特币的对等决策。

EREBUS攻击者利用了成为网络攻击者的基本优势。也就是说,攻击者AS在数周内可靠地模拟了数百万个或更多的影子IP,以缓慢填充受害者节点的内部数据库。

在步骤II-➊中,攻击者代表其选择的多个影子IP与受害者节点建立传入连接。尤其是,攻击者通过欺骗影子IP地址来发起比特币版本的握手。

然后,在步骤II-➋中,攻击者在addr消息中使用大量的影子IP淹没受害节点的内部IP地址表

在步骤II-➌中,攻击者等待受害者的现有传出连接自然断开,并替换为与影子IP的连接。为了加快该过程,攻击者可能会触发受害者节点进行重置,并从内部表中选择新的连接。

 

0x07 Attack Properties

•无法检测:比特币劫持攻击与EREBUS攻击之间的最大区别在于,前者是仅控制平面的攻击,而后者是仅数据平面的攻击。 EREBUS攻击者不会传播任何控制平面消息(例如,路由通告),因此对于控制平面监视器(例如BGP消息收集器和分析工具,例如RIPE ,RouteView , CAIDA BGPStream)。

由于数据平面流量的数量大得多,因此互联网上不存在数据平面流量的公共存储库,这使得对EREBUS攻击的公众审查几乎变得不可能。一些谨慎而愿意的AS可能会使用其深包检查(DPI)功能来捕获来自可疑AS的所有比特币消息,并尝试识别EREBUS攻击的任何可疑数据平面消息(例如,在第二步中交换的比特币消息)。但是,EREBUS攻击者总是可以拒绝执行攻击,因为如果没有任何负责任的互联网体系结构,就无法确定数据包的实际发起者。

•立即可用:事实证明,对于几乎所有(19.5万个)公共10K比特币节点,任何Tier-1 AS都可以轻松使用EREBUS攻击。同样,许多大型Tier-2 AS可以将网络中的大多数公共比特币节点作为目标。攻击者AS的网络覆盖范围很重要,因为域间拓扑中的网络覆盖范围越大(例如,提供到多个大洲的连接的Tier-1 AS),通常更多的影子IP地址可用于EREBUS攻击。

•缺乏细化的对策:由于EREBUS攻击不会利用任何特定的协议漏洞,而只能利用网络攻击者的基本拓扑优势,因此很难找到简单,快速的修复方法。潜在有效的对策要么违反了比特币的分权哲学(例如,依赖第三方代理),要么要求对比特币核心进行不重要的更改(也尚未通过验证)。

 

0x08 Conclution

本文简要介绍了隐蔽分区攻击的威胁模型和攻击方式,并回顾一下现有的比特币劫持和Eclipse攻击。在下一篇文章中,将继续介绍如何获得影子IP、创建受害者影子连接和对EREBUS攻击的评价总结与防御对策。

本文表明如果没有仔细考虑EREBUS攻击来精心设计其对等协议,则这些大型AS的拓扑优势使他们可以控制区块链的对等连接。希望此工作能引发关于加强数千种加密货币的新讨论,即针对强大,复杂的的网络攻击者。

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多