币圈子-中国领先的数字货币/区块链用户平台
比特币24H 最新价格 : 涨额 : 涨幅 : 成交量 :
big
当前位置:首页 > 资讯中心 > 竞争币资讯>正文内容
exitscams 火币 gate

以太坊网络存在“致命报文” 漏洞,可直接造成区块链网络瘫痪!

全文导读

北京时间 6月28日凌晨3时,在刚刚结束的硅谷Blockchain Connect Conference大会现场,区块链安全公司PeckShield披露了一个能够造成以太坊geth节点休克或崩溃的安全漏洞。PeckShield将披露的漏洞命名为“Ethereum

 北京时间 6月28日凌晨3时,在刚刚结束的硅谷Blockchain Connect Conference大会现场,区块链安全公司PeckShield披露了一个能够造成以太坊geth节点休克或崩溃的安全漏洞。PeckShield将披露的漏洞命名为“Ethereum Packet of Death(EPoD)”,即“致命报文”,攻击者通过发送一个恶意报文即可向geth节点发动攻击。geth是以太坊主流的官方客户端,被众多重要节点采用,这也意味着一旦攻击者利用此漏洞向以太坊全部受影响geth节点实施攻击,涉及到的相关络节点将随时可能停摆。对整个以太坊网络来说,这样的漏洞如若被用来开展恶性竞争,将扰乱市场秩序,造成不可估量的严重损失。

波及2/3以上以太坊网络节点

在深入探讨漏洞细节之前,我们首先介绍一下以太坊客户端应用。根据以太坊基金会官方网站的描述,以太坊官方客户端有若干个独立的运行版本,其中占较多市场份额的主要为Go Ethereum和Parity两种。

图1.Ethernodes网站统计的不同以太坊客户端的市场份额

Go Ethereum即geth,是使用Go 语言编写的官方客户端。geth完全开源,采用的是GNU LGPL v3的授权。根据Ethernodes网站的统计,geth的份额大概占整个以太网客户端的2/3,是目前以太坊网络较为主流的客户端。而排名第二的Parity(是Parity科技公司的产品,以Rust语言编写)则占据了了剩余三分之一份额中的绝⼤大部分(如图1所示)。还有其他客户端, 占较小的一部分(如图2所示),共识机制的一致性,使得这些客户端在功能上几乎完全等同。

图2.Ethstats网站统计的不同以太坊客户端的市场份额

PeckShield的研究人员已经发现了一系列可能导致geth节点休克或崩溃的安全漏洞,而这些漏洞一旦被利用可能会给以太坊2/3以上的网络带来严重冲击。

“致命报文”漏洞细节

以太坊的核心在于所有的客户端都必须遵守同样的协议以保持共识。这些协议由RLPx、DΞVp2p和其他子协议,包括以太坊线路路协议(Ethereum Wire Protocol)或者轻量级以太坊协议(Light Ethereum Protocol)等组成。

图3展示了了以太坊应用的协议层。为了支持轻量量级的客户端,轻量量级以太坊⼦子协议(LES) 允许以太坊节点在同步获取区块时仅下载区块的头部,在需要时再获取区块的其他部分。为了实现这一功能,我们还需要一个全节点(或archive节点)作为LES服务器器,为轻量级节点 提供服务。

执行以下命令可以启动一个支持LES服务的geth全节点

geth --lightserv 20

在向LES服务器器请求区块头部时,LES客户端会发起类型为GetBlockHeaders的消息 (message),而LES服务器器的消息处理器(message handler)负责相应的解析工作。 图4给出了geth客户端负责处理GetBlockHeaders类型消息的代码片段。

(GetBlockHeaders)的信息处理器的代码片段:

图4.geth客户端中获取区块头部信息处理器由LES客户端发送的查询(query)请求遵循如下格式

从图4的第17行开始,LES服务器处理not reverse分支。在第19行,LES服务器会检测在忽略了query.Skip个区块之后,是否还有可用的区块头部。如果检测通过,GetBlockHashesFromHash方法就会被调用(即第20行),并返回一个区块头部数组。

然而对作为输入的请求(即query),LES服务器并未验证其有效性。攻击者可以构造形如query.Skip = -1 (0xFFF...F)这样的恶意请求。当query.Skip+1被作为待分配数组 的最大长度参数传递至GetBlockHashesFromHash方法时,长度为0的数组即被分配并返回。随后,通过索引query.Skip = 0xFFF...F访问该⻓长度为0的数组时,LES服务器就会彻底崩溃。

漏洞危害及后续

公链作为区块链世界的“操作系统”,为区块链生态提供数据储存、网络传输、交易算、共识机制等底层协议。当前市上已经有多条竞争公链,总市值稳居第一的以太坊无疑是目前公链领域的领跑者,一旦以太坊网络遭到攻击,将会给整个区块链生态带来重大影响。

此次漏洞所波及的以太坊geth客户端很可能包含着数字货币交易所以及部分矿池等关键节点。攻击者可以借助此漏洞实施恶性竞争,通过直接瘫痪竞争对手算力赢取更大的市场份额,这会严重影响以太坊市场秩序的稳定。我们在发现漏洞后的第一时间向以太坊基金会提交了漏洞报告,目前以太坊geth客户端的相关开发团队已发布了相应的补丁,

在此我们也呼吁受影响的关键节点尽快升级最新的版本,以抵御可能发生的攻击和危害。

图5.CVE-2018-12018 错误报告

这只是我们披露系列漏洞的开始,在合适的时间我们将会公开所发现的其他漏洞。

 

分享一下
以太坊网络存在“致命报文” 漏洞,可直接造成区块链网络瘫痪!
我们关注币圈最新动态,欢迎加入官方QQ群:878442063,请猛戳这里→ 点击入群
币圈首页»
交易平台 数字货币 钱包 百科知识 资讯中心

前一篇:什么样的数字货币才值得投资?币圈老韭菜来告诉你!

下一篇:一千多个加密货币项目“已死亡”,99%ICO死亡将成为现实?

0 条评论

发表评论共计xxx条评论
↖评论举报×
你认为的言论有什么问题?
币圈广告

热门交易平台

所有平台
  • 币虎

    3星
    新加坡
  • 比特亚洲

    3星
    中国台湾
  • ZBG

    4星
  • Zaif

    3星
    日本

热门数字货币

所有币种