首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EOS 节点执行远程代码漏洞

截止到目前,EOS团队并未就此次漏洞时间发表官方声明。Daniel Larimer仅是在Telegram的EOS Developers频道口头阐述此次时间并非360所描述的那样,而同时并未就360相关blog的截图回复。希望此次EOS事件不会像IOTA一样收尾。

漏洞发现者

Yuki Chen of Qihoo 360 Vulcan Team

Zhiniang Peng of Qihoo 360 Core Security

漏洞描述

360安全团队在 EOS 解析 WASM 文件时, 成功的发现如何利用缓冲区溢出写入漏洞.

通过这个漏洞, 攻击者可以上传一个包含恶意代码的智能合约, 在节点服务器解析了这个智能合约后, 这个恶意代码就可以在服务器上执行并接管整个服务器.

在控制了节点服务器后, 攻击者可以将恶意合约打包到新的块中, 并进一步控制 EOS 网络的所有节点.

漏洞报告时间线

2018-5-11 发现EOS 缓存溢出漏洞

2018-5-28 在 EOS 超级节点实现重现漏洞 Demo

2018-5-28 将漏洞详情报告给EOS项目方

2018-5-29 EOS 项目方在Github Fix 并关闭了 Issue

2018-5-29 通知项目方Fixing并未完全完成

360团队与 Daniel Larimer的 Telegram 聊天记录:

发送的邮件截图

漏洞的技术描述

这是一个缓冲溢出写入漏洞.

在libraries/chain/webassembly/binaryen.cpp(Line 78), 函数binaryen_runtime::instantiate_module:

漏洞上的修改记录

Bytemaster 在 EOS 的 github 上创建了一个issue 3498来描述这个漏洞:

并通过如下代码解决了问题

但正如 guhe120所说的, 这个修改在32位处理器上还是存在问题的, 所以这个修改并非完全解决了漏洞问题.

如何复现漏洞

1. 构建 EOS 最新版本的代码:./eosio-build.sh

2. 启动EOS 节点, 并按照Tutorial-Getting-Started-With-Contracts内的表述完成所有设置

3. 设置一个漏洞 Contract:在一个proof of concept WASM 内将|offset|字段设置为 0xffffffff 以便在溢出时立即崩溃.

测试 PoC:

如果一切正常, 你会在 nodeos 进程看到segment fault

利用漏洞实现远程代码执行

利用此漏洞可以在nodeos进程中实现远程代码执行,漏洞利用方法是将恶意合约上传到受害节点,并让节点解析恶意合约。而在真正的攻击中,攻击者可能会向EOS主网络发布恶意合约。

EOS超级节点解析恶意合约触发漏洞后,攻击者将可以完全控制这个节点。

攻击者可以窃取超级节点的私钥或控制新区块的内容,更重要的是攻击者可以将恶意合约打包成一个新块并发布进行攻击,最终整个网络中的所有节点都将受到攻击并被控制。

我们完成了概念性的漏洞验证程序,并在基于64位Ubuntu系统的nodeos上进行了测试。这个漏洞的攻击过程是这样的:

1. 攻击者将恶意合约上传到nodeos服务器。

2. 服务器nodeos进程解析引发漏洞的恶意合约。

3. 使用越界写入的原生代码,我们可以覆盖WASM模块实例的WASM内存缓冲区,在恶意WASM代码的帮助下,最终可以在nodeos进程中实现了任意内存读/写操作,并绕过了64位操作系统上的DEP/ ASLR等常见的攻击缓解技术。

4. 漏洞利用一旦成功,会启动一个反向shell连接攻击者。

To be continued...

后续本号会持续跟踪漏洞的相关信息.

随想

其实除了 EOS, 老牌的 IOTA 也出现了同样的安全问题, 如果大家感兴趣请在文末留言, 如果需求强烈, 会对 IOTA 做同样的追踪报道.

[360官方博客原文地址](http://blogs.360.cn/blog/eos-node-remote-code-execution-vulnerability/)

END

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180530G0UVZ400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券