新型DoS攻击将阻止支付交易,闪电网络不再“闪电”

转载
1889 天前
12352
星球日报

来源:星球日报     译者:Moni


作为第二层支付解决方案,闪电网络无疑让很多比特币支持者眼前一亮。但是随着越来越多安全漏洞的出现,闪电网络安全性也遭到了广泛质疑。最近来自耶路撒冷希伯来大学和维也纳大学的三位研究人员发现,比特币闪电网络其实非常脆弱,“只需”一些简单的破坏性攻击就会带来严重后果。

事情还要从今年八月底说起,当时比特币闪电网络核心 Rusty Russell “突然”声称许多闪电网络相关的项目都存在安全问题,而且可能会导致用户资金损失。为了不让黑客利用相关漏洞,Rusty Russell 并没有公布相关漏洞的具体细节,只是督促运行闪电网络的用户升级客户端,声称 c-lightning 客户端低于 0.7.1 版本、lnd  客户端低于 0.7 版本,eclair 客户端低于 0.3 版本都很容易遭到攻击。

之后,Lightning Labs 首席技术官 Olaoluwa Osuntokun 证实了闪电网络漏洞,但他表示不清楚是否有用户遭遇损失、也不知道造成了多少损失、以及受影响的用户数量。

然而,一波未平一波又起。

最近,耶路撒冷希伯来大学研究人员Saar Tochner 和 Aviv Zohar,以及维也纳大学研究人员 Stefan Schmid发布了一篇题为《支付网络中的劫持路线》(Hijacking Routes in Payment Networks)的论文,其中发现一种针对闪电网络的 DoS(拒绝服务)攻击,该攻击会减慢甚至阻止网络上很大比例的支付交易,甚至可能是迄今为止闪电网络上发现的最大缺陷之一。不过值得庆幸的是,这个最新发现的攻击还没有被广泛传播,而且闪电网络技术仍在不断发展。

Aviv Zohar 透露,他们最新发现的 DoS 攻击可能会使闪电网络的支付交易中断。事实上,Aviv Zohar 并不是在危言耸听,因为闪电网络的每笔付款都是跨节点网络传递才能达到目的地,如果这些中间节点中有一个是不良行为者,那么整个付款速度便会降低,支付交易也就无法像预期那样迅速完成——“闪电”将不再“闪电”。

更“可怕”的是,在闪电网络上执行 Dos 攻击甚至不需要太多时间。Aviv Zohar 解释说:

“在闪电网络上执行 DoS 攻击非常容易,只需要在一个关键节点打开几个闪电通道,然后承诺提供零费用,就可以不再中继任何支付交易了。”

按照研究人员的说法,他们此前从未见过类似的攻击,然而这种攻击一旦执行起来,闪电网络会变得更难使用,因此此漏洞也引起了比特币和闪电技术开发人员的关注,其中就包括比特币研究人员 Gleb Naumenko 和闪电网络初创公司 Acinq 首席技术官 Fabrice Drouin。Gleb Naumenko 坦言自己从未想过闪电网络会出现这种漏洞,而 Fabrice Drouin 则表示:

“这篇论文非常有趣,其中针对网络探路采用了不同的探索分析方法同样很有趣,我们很高兴看到独立研究人员对闪电网络滥用和攻击进行研究。”


01
闪电网络会放大 DoS 攻击

当用户通过闪电网络发送付款时,他们的应用程序会根据许多因素(比如哪个节点的费用最低)来决定采用哪种路径传输交易。

尽管闪电网络中有数百个节点,但不良行为者可以使用 DoS 攻击把交易路由到他们“选择”的节点上。通过分析每种路由计算方式,攻击者可以设计出一套策略,让闪电网络尽可能多的路由选择被感染节点,这样当交易聚集在一个地方的时候,就会引发网络阻塞。

闪电网络初创公司 Acinq 首席技术官 Fabrice Drouin 补充说:

“我们可以打开闪电网络中路径最短且成本最低的路线通道,然后(几乎总是)会选择这条路线发送交易。这样一来,攻击者可以在给定时间内获得很大一部分网络付款交易。我们发现仅五个新链接就足以吸引 65%-75% 的流量。”

接下来,攻击者就会一遍又一遍地执行类似的操作,让网络付款一直流向他们给定的节点。

耶路撒冷希伯来大学研究人员 Aviv Zohar 表示:

“当攻击者收到付款请求的时候,他们可以拒绝这笔交易,然后继续转发。然后该交易会选择新路径,可在选择新路径的时候又会受到同样的攻击,继而再次被路由到攻击者的节点,再次被拒……形成了一个恶性循环。”

虽然这个攻击听上去有些可怕,但好在目前尚未在闪电网络里大范围出现。

Aviv Zohar 进一步解释说:

“我认为这个攻击尚未在闪电网络里大规模使用,而且破坏攻击可能不会造成太大伤害,因为攻击本身不会直接将资金发送给攻击者。所以,只有在闪电网络被大量用于支付的时候,可能才会对整个网络产生影响。”

需要说明一点的是,攻击者做这样的操作需要花费一定成本。正如 Fabrice Drouin 所说,攻击者需要打开实际通道并锁定资金,只要交易被锁定或超时,攻击者就需要支付链上费用。不过 Aviv Zohar 认为如果考虑用户损失,这种攻击可能并没有那么昂贵,他表示:

“你可能只需要 20 个左右的新通道就能攻击 80% 的全部交易,总成本大约为 2000 美元。”


02
这种攻击能被阻止吗?

到目前为止,闪电网络开发人员基本上同意 DoS 攻击对网络的影响是比较严重的,但同时他们也认为随着未来闪电网络不断升级可能会让攻击者实施攻击变得越来越难。对此,Lightning Labs 基础架构负责人 Alex Bosworth 解释说:

“这件事真的很难被分析讨论,因为 Lightning Labs 仍在继续开发 LND 客户端的寻路系统,而且这本身也是一个不断变化的目标。”

LND 是 Lightning Labs 开发的闪电网络客户端,Alex Bosworth 透露即将对其进行升级,本周二(10 月 22 日)发布的LND 新版本就已经包含了许多重大变更,在这种情况下,本文中提到的 DoS 攻击路由可能没有办法轻松实现。Alex Bosworth 表示:

“我现在并不会说已经有办法可以最终阻止那些试图中断闪电网络支付的攻击者,因为闪电网络本身就是一个 peer-to-peer 设计系统,任何人都可以按照自己的意愿参与和路由(或不路由)交易。”


03
闪电网络的反击:会使不良行为者更难执行攻击

闪电网络初创公司 Acinq 首席技术官 Fabrice Drouin 认为,随着网络规模的不断增长,闪电网络会部署一些更积极的代码变更以禁止行为不端的“peer”,因此本次提及的 DoS 攻击可能只是一个暂时性问题,他进一步说道:

“举个例子,当闪电网络在计算交易转接路由的时候,不仅会查询费用最便宜的节点,还会选择一些自己经常使用的通道。在这种情况下,攻击者就不得不等待……然后才能实施攻击。”

不仅如此,闪电网络还有其他改进,比如 Blockstream 闪电网络开发人员 Christian Decker 提出的“蹦床支付”(trampoline payment)——这个概念是在 2015 年提出的,Christian Decker 认为,如果闪电网络容量越来越大,路由表也会随之增大,这时对于带宽和存储空间有限的移动节点来说,源路由就不那么实用了。闪电网络支付的一个最大特点就是即时性,但在网络背后,从点A到点B进行支付的每个节点在进行数据传输时都需要进行一些计算,实际上,并非所有闪电网络用户都具有足够强大的设备来执行这些计算,因此就需要“蹦床”系统。举个例子,如今闪电网络中的典型用户可能会从智能手机(不是一台功能强大的计算)发送比特币付款,因此有人就提出可以允许这些小节点将计算外包给具有更多计算能力的“蹦床”节点。

“蹦床支付”就是在这种情况下蕴育而生的,这个解决方案其实就是将路由外包给“蹦床节点”,减少移动节点在数据量和计算量上的负担。蹦床节点就是掌握全网路由表的闪电网络节点,负责在付款人与收款人之间找到一条路径。节点客户端无需下载并持续更新路由图,只需连接到一个可靠的蹦床节点上即可,闪电网络付款就会从一个蹦床节点跳到另一个,直到达到收款人那里为止。 不过将路由外包给蹦床节点也会带来隐私性风险,因为蹦床节点需要知道收付款双方才能为找到付款路径,当然,这可能是另一个需要讨论的话题了。

闪电网络的代码更新迭代速度非常快,即便是在今天,依然有大量代码正在被修改。

对于这次出现的 DoS 攻击问题,闪电网络开发人员似乎很有信心,他们认为即将到来的一些代码变更会使不良行为者更难执行攻击,甚至可能会设计一套系统专门禁止“不良用户”。不可否认,现在我们还无法看到这次攻击对闪电网络造成的破坏性究竟有多大,也许只有时间能够证明一切。