http://www.7klian.com

复盘 EOS 安详事件,再议区块链安详的重要性

5 月 29 日中午,360 公司在其官方微信公家号上发布了区块链平台 EOSIO 的高危安详裂痕的动静

3.1. 完善代码安详审查机制

回首 ERC20 裂痕事件和 EOSIO 的缓冲区溢失事件,他们完全都可以通过有效的代码安详审查机制来制止。以 ERC20 裂痕为例,颠末核查,利用 ERC20 协议的项目竟然有 20 余个都存在雷同的问题。

因此在发明该裂痕后,开拓团队已将 assert 改为可正常挪用的名为 FC_ASSERT 的宏界说。

同时,假如能将风险节制在单机范畴内,那对全局来说影响照旧相对可接管的。但正是由于恶意代码可以是一个区块链上的合约,因此 EOSIO 将合约打包成区块后会在整个网络中流传,使得所有节点均可被此恶意代码节制,即整个网络都受到致命影响。

2. 技能阐明

我们首先从奇虎 360 技能博客的陈诉 “EOS 节点长途代码执行裂痕 — EOS 智能合约 WASM 函数表数组越界” 中来查察本次裂痕的具体技能内容。

2)内部测评小组项目构成立内部安详测评小组,梳理业界常见的安详问题清单,并逐一对宣布的项目举办安详审计,通过简朴的梳理和测评便能将常见的根基裂痕一扫而空,大大增加了系统的靠得住性。

2)精力鼓励除了物质嘉奖,对付 Hacker 这一很是另类、有性格的群体来说,精力上的鼓励或者是更耐久有效的方法。对付每一个为平台可能项目作出孝敬的黑客来说,项目组、基金会可能社区都应将给与其相应的荣誉嘉奖。可以是排行榜、孝敬值亦或是某种稀缺头衔等等,使其不只能被社区其它成员知晓,更能明明区别于普通会员,加强其在社区的存在感、参加感和荣誉感。更可思量用较为“极客”的方法举办精力鼓励,譬喻将白帽黑客对平台、社区的孝敬记录在区块链上,形成更有针对性的生态系统良性轮回。

回到本次 EOSIO 的这个裂痕,按照 360 的陈诉我们可以看到:当查抄代码失效后,假如 offset 变量被任意配置一个地点,譬喻 0xfffffff,则会引起 segmentation fault 的错误而导致措施瓦解;而假如对合约举办经心设计,进攻者可通过对内存越界写入的方法来执行恶意代码,正如 360 陈诉中附加的视频所示。

知道了问题地址后,我们再来看一下编写 EOSIO 所利用的 C++措施的内存布局及语言特性。
内存问题引起措施瓦解示例

3.2. 成长白帽黑客鼓励机制

世界无非南北极,一阴一阳、一黑一白、一正一邪,有黑客肆意粉碎,就有白帽黑客维护世界公理。跟着种种数字资产的市值越来越高,黑客们从中套取的收益也越来越客观,对比之下,白帽黑客们却穷酸的多。

这种庞大的收入差导致越来越多人插手的黑客的阵营,而白帽黑客们则为数稀少。通过鼓励白帽黑客来抑制可能是均衡黑客越来越肆无顾忌的粉碎行为或者将成为一种有效的手段。

除此之外我们也可以通过设立黑客奖金池、黑客基金可能项目出格参谋等方法来鼓励白帽黑客主动挖掘裂痕,辅佐平台耐久安详地运行。

2018 年 5 月 29 日,360 发布了其发明 EOSIO 严重裂痕的动静。此新闻及后续一系列相关跟进事件迅速成为区块链规模内的舆论热点。跟着越来越多的声音与内容呈现,各界对此次事件也逐渐有了更为清晰的认识。在此有须要从技能角度对此次事件举办客观复盘与阐明,并再次对区块链安详举办探讨。

瞬息万变的币圈确实成长的太快,每一小我私家都是飞驰着前进,都赶着写白皮书、赶着募资、赶着上项目,自然而然就很少有人沉下心来好好做测试,好好做安详审查,导致裂痕频出、安详事件频发。

按照陈诉所述,,在修复该裂痕的提交 ea89dce21d13d41a22b3512a27be97b4be9df755 之前的代码版本上,我们可以看到在 libraries/chain/webassembly/binaryen.cpp 文件的 76 行,有 assert 用于查抄变量取值环境。但 assert 一般仅合用于措施编译构建的 Debug 模式,对付正式宣布的 Release 模式凡是并不起浸染,因此相当于没有做查抄,导致 78 行对数组的会见存在隐患。

3)外部专家评测对付某些新型的,非凡性的裂痕,项目组可以借助于譬喻第三方评测机构等外部安详专家的辅佐举办梳理和测评,争取在项目宣布前将安详隐患降到最低水平。

作为计较机及互联网上十分常见且潜在影响庞大的进攻手段,操作缓冲区溢出举办进攻有记录的最早一次是产生在 1988 年的 Morris 蠕虫进攻。据预计,它一经呈现便影响了互联网上 10% 的计较机,造成约 10 万至 100 万美元的损失。从其首次呈现到本日的 30 年间,许多著名的进攻事件都采纳了缓冲区溢出的方法举办,其影响也跟着互联网的成长而扩大。

1)多人代码审核由于一小我私家的本领和认知老是有限的,所以对付同一段代码,差异的人将会发明差异的问题,多人代码审核机制能使得代码的 BUG 率和裂痕率大大低落。这种方法也是软件行业低落错误率最为通用和有效的方法之一。
3. 构建区块链安详生态

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!