今日,Bitcoin Unlimited软件被曝存在一个远程DOS崩溃漏洞,有近70%的BU节点因被攻击而崩溃下线。
因为这一漏洞,攻击者可通过向节点发送某种类型的消息导致它们脱机。所谓节点,它是负责区块链交易验证,维持整个交易历史记录副本的存在。
这一问题最初是由BU开发者Peter Tschipper在GitHub上标记的。随后细节便在社交媒体上传播了出来,这也引发了该项目的支持者以及批评者的广泛讨论。
在BU节点数大量下降之后,关于这一漏洞的讨论越来越激烈。
根据加密货币网站Coin.Dance的数据显示,在攻击期间,BU节点数最低下降到了252个。
这次攻击事件之后,大约有780个BU节点离线,截至记者发稿时,在线的BU节点仅有240个。相比之下,比特币全网的全节点大约有6100个。
BU是一种替代型比特币软件,其主张的是通过链上(onchain)扩容来扩展比特币的交易吞吐量。它已经吸引了强有力的支持者,同时也引来了尖锐的批评,一些人认为它提供了一个扩展网络规模的途径,而另一些人则批评它会导致比特币网络分裂。
Bitcoin Core开发者Peter Todd在其个人twitter上评论称:
“ BU远程DOS崩溃漏洞:
https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/371/files这是多么离谱的漏洞:assert(0) in和一个if分支明显被不受信的网络输入控制了。#检查代码
貌似这个远程DOS崩溃漏洞在BU上已经存在了一年,也许会是更长的时间。”
截至发稿时,BU开发者Andrew Stone已发布了最新1.0.1.1版本的 BU软件,并声称解决了这一漏洞问题:
https://github.com/BitcoinUnlimited/BitcoinUnlimited/releases/tag/1.0.1.1此外,他还给出了这一漏洞的解释:
BUIR-2017–2–23: 全网范围内比特币客户端故障声明
2017年2月23日和2017年3月6日,约5%的“中本聪”比特币客户端(Bitcoin Core,Bitcoin Unlimited,XT)暂时性地连不到网络(详见1,2,点这里可以看到2月23日左右的数据范围)。 对该时间段完整节点的日志分析显示重复的“PROCESSMESSAGE:INVALID MESSAGESTART”出错信息。 当节点连接并发送一些不良数据到另一个节点时,会出现这些信息(PROCESSMESSAGE:INVALID MESSAGESTART)。 我们对PROCESSMESSAGE:INVALID MESSAGESTART代码路径的影响的分析显示了罕见的节点崩溃的。 这就是为什么节点会暂时性丢失。
虽然我们无法确定这些信息是故意的,但我们发现一个异常的,难以创建的输入结果为负的结果,所以我们将其归为网络攻击。尽管迄今为止这种攻击的负面影响是微乎其微的,我们选择遵循负责任的披露程序,请矿工,比特币企业和客户端开发人员不要对外说这件事,等到补丁和升级完成。
我们已经在Bitcoin Unlimited 1.0.1.0版本中实现了2类修复。 首先,我们已经确定了节点崩溃的根本原因,并修复了它们。 其次,我们对导致“INVALID MESSAGESTART”错误的任何节点添加了4小时的禁令。 由于攻击似乎是概率性的(对于单个故障潜在地需要几百个“INVALID MESSAGESTART”错误),4小时的禁令将限制攻击者造成该错误的能力,虽然这样我们不能从根本上修复。
这不是一个关键问题,因为节点故障的可能性似乎只有5%。 然而,攻击者可能通过制定更有效的攻击序列或使用更多的机器攻击网络来提高此故障率。 因此,我们敦促您尽快升级到Bitcoin Unlimited1.0.1.0版本或不同客户端的修补版本。
编译:隔夜的粥