北京时间 6月28日凌晨3时,在刚刚结束的硅谷Blockchain ConnectConference大会现场,区块链安全公司PeckShield披露了一个能够造成以太坊geth节点休克或崩溃的安全漏洞。PeckShield将披露的漏洞命名为“EThereumPacket ofDeath(EPoD)”,即“致命报文”,攻击者通过发送一个恶意报文即可向geth节点发动攻击。geth是以太坊主流的官方客户端,被众多重要节点采用,这也意味着一旦攻击者利用此漏洞向以太坊全部受影响geth节点实施攻击,涉及到的相关络节点将随时可能停摆。对整个以太坊网络来说,这样的漏洞如若被用来开展恶性竞争,将扰乱市场秩序,造成不可估量的严重损失。
波及2/3以上以太坊网络节点
在深入探讨漏洞细节之前,我们首先介绍一下以太坊客户端应用。根据以太坊基金会官方网站的描述,以太坊官方客户端有若干个独立的运行版本,其中占较多市场份额的主要为GoEthereum和Parity两种。
图1.Ethernodes网站统计的不同以太坊客户端的市场份额
GoEthereum即geth,是使用Go 语言编写的官方客户端。geth完全开源,采用的是GNU LGPLv3的授权。根据Ethernodes网站的统计,geth的份额大概占整个以太网客户端的2/3,是目前以太坊网络较为主流的客户端。而排名第二的Parity(是Parity科技公司的产品,以Rust语言编写)则占据了了剩余三分之一份额中的绝⼤大部分(如图1所示)。还有其他客户端,占较小的一部分(如图2所示),共识机制的一致性,使得这些客户端在功能上几乎完全等同。
图2.Ethstats网站统计的不同以太坊客户端的市场份额
PeckShield的研究人员已经发现了一系列可能导致geth节点休克或崩溃的安全漏洞,而这些漏洞一旦被利用可能会给以太坊2/3以上的网络带来严重冲击。
“致命报文”漏洞细节
以太坊的核心在于所有的客户端都必须遵守同样的协议以保持共识。这些协议由RLPx、DΞVp2p和其他子协议,包括以太坊线路路协议(Ethereum WireProtocol)或者轻量级以太坊协议(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服务器处理notreverse分支。在第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 错误报告
这只是我们披露系列漏洞的开始,在合适的时间我们将会公开所发现的其他漏洞。
以太坊是什么:
以太坊是一项基于比特币中技术和概念运用到计算机的创新。 以太坊本身仿制了很多比特币的技术,以此来维护计算机平台。 区块链技术就是其中之一。 以太坊平台可以安全的运行用户想要的任何程序。
以太坊和其余竞争币比的优势
以太坊出现之前,已经有一些数字货币模仿比特币出现了。 但是,这些项目本身有一定的缺点,仅仅可以同时支持一种或几种特定应用。 (更好的数字货币交易平台尽在“币汇”)
然而以太坊之所以能超越以往这些项目的局限性,是因为以太坊的核心思想。
以太坊要实现的是一个内置了编程语言的区块链协议,由于支持了编程语言,那么理论上任何区块链应用都可以用这门语言进行定义,进而作为一种应用,运行于以太坊的区块链协议之上。
以太坊的设计十分灵活,极具适应性。
以太坊目标集区块链技术之长,为了把区块链优点,如去中心化、开放和安全等特点都加入到近乎所有的计算领域。
以太坊的区块链应用
以太坊有很多区块链应用,如黄金和股票的数字化应用、金融衍生品应用、DNS 和数字认证等等。
以太坊被很多创业公司实现出的区块链应用就已经达到100多种。
以太坊也被一些金融机构、银行财团(比如 R3),以及类似三星、Deloitte、RWE 和 IBM 这类的大公司所密切关注,由此也催生出了一批诸如简化和自动化金融交易、商户忠诚指数追踪、旨在实现电子交易去中心化的礼品卡等等区块链应用。
以太坊与区块链的关系:
以太坊是可编程的区块链。
以太坊是并不是给用户一系列预先设定好的操作(例如比特币交易),而是允许用户按照自己的意愿创建复杂的操作。
这样一来,以太坊是就可以作为多种类型去中心化区块链应用的平台,包括加密货币在内但并不仅限于此。
和其他区块链一样,以太坊也有一个点对点网络协议。 以太坊区块链数据库由众多连接到网络的节点来维护和更新。 每个网络节点都运行着以太坊模拟机并执行相同的指令。 因此,人们有时形象地称以太坊为“世界电脑”。
在区块链中以太坊(eth)目前有哪些问题?以太坊区块链目前暴露出三大问题,长时间以来其创始人VitalikButerin一直无力解读。 第一是以太坊区块链整体很低的性能和TPS;第二是资源不隔离,CryptoKitties虚拟猫咪的事件,一度占据了整个以太坊20%的流量,直接造成以太坊网络用户无法展开及时的交易,就是资源不隔离最大的痛点;第三个问题在于以太坊治理结构的体现,区块链作为去中心化的分布式账本,以太坊过去以来,创始人团队主导了其网络发展,过于中心化的治理模式,让目前的以太坊出现了ETH、ETC、ETF等分叉,以太坊社区目前进入四分五裂的治理状态。 而以太坊网络目前出现的各种弊病,在「aelf」创始人与CEO马昊伯看来,这是无法接受的。 于是,「aelf」定位,就是为对标以太坊的下一代去中心化底层计算平台,重点解决目前以太坊存在的性能不足、资源不隔离、治理结构三方面的问题而诞生的。
以太坊的安全漏洞及防范措施以太坊是一种数字货币,其在去中心化和区块链技术方面具有可靠性和灵活性。 基于以太坊的智能合约使得更多的应用得以实现,但同时也带来了安全问题。 以下是以太坊的常见漏洞及对应的解决方案:1.重入漏洞重入攻击是智能合约最常见的安全问题。 它是由一次合约调用引起的。 在这个场景中,攻击者利用了某个智能合约函数进行回调,从而使函数被重复执行,并造成意料之外的损失。 针对重入漏洞,开发人员应采取以下预防措施:首先,应当避免在合约中使用send和transfer。 可以使用call替换send和transfer。 然后,在修改状态变量之前,应确保准确地检查完成状态。 最后,在重入的函数中使用mutex来避免同时执行。 2.溢出漏洞溢出是另一个很常见的漏洞。 在以太坊合约中,有一些计算都是使用非常大的整数进行的。 如果某个操作导致数据类型超出该类型支持的取值范围,就会发生溢出。 针对溢出漏洞,应采取以下措施:首先,应将contract的钱包余额限制在可接受的低值范围内。 其次,链上的某些操作应当进行安全限制。 例如,blockchain上的分配操作必须限制超出区块中的余额值。 最后,合约中的数据类型必须是所需的。 必须对使用的计算和数据类型进行适当的检查,以防止数据类型溢出。 3.地址簿漏洞地址簿漏洞是用户在使用智能合约时遇到的安全风险之一。 它是由于用户在合约交互过程中输入的地址存在安全问题。 针对地址簿漏洞,采取以下预防措施:首先,在合约处理过程中,避免直接从输入地址中读取,减少执行的安全风险。 其次,在处理地址时,确保地址值的合法性,包括必须是正确的以太坊地址、不是可能被用于安全攻击的地址,并且必须是已经在以太坊网络中被完全验证的地址。 最后,在处理地址时,确保用适当的方式验证地址。 总结以上是以太坊的一些常见漏洞和对应的解决方案。 在构建以太坊智能合约时,应严格遵循安全规则,尽最大努力规避各种可能的安全隐患,从而确保智能合约的安全运行。
Copyright @ 2024 啦啦收录网 此内容系本站根据来路自动抓取的结果,不代表本站赞成被显示网站的内容或立场。
你是本站第位访客 | 网站地图 | 粤ICP备2022150304号