EOS:直指本质,EOS 漏洞的复盘和深层次原因探讨

链闻ChainNews:本文详细论述了EOS设计理念中的技术漏洞,从合约、节点设计和功能层面深度分析了EOS漏洞的必然性。

360报的EOS漏洞,技术层面并不复杂,蛮容易搞懂的攻击逻辑。但是这个漏洞背后却显现了EOS设计理念有着一些深层次的安全隐患。

先简单复盘下漏洞本身:文尾的可以看原始的360英文报告

根源是在https://github.com/EOSIO/eos/blob/master/libraries/chain/webassembly/binaryen.cpp#L78这行代码,有个数组越界的内存漏洞:

火币火星计划第二期将于8月2日20时正式启动:据火币官方公告,火币将于8月2日启动火星计划第二期活动。公告显示,8月2日20:00至8月22日23:59(UTC+8)为任务时间,用户完成币币/杠杠/合约/理财交易等一次性任务、循环任务、月度结算任务即可获得太空NFT Mint机会。8月2日20:00至8月28日23:59(UTC+8)为太空NFT Mint时间,用户需在活动?面绑定一个TRON链上地址,以便接收获得的NFT。更多详情关注官网公告。

据悉,火币于今年4月首次对外公布火星计划,用户参与活动即有机会抽取由火币提供的价值600万美元的太空船票,并与火币全球顾问委员会成员孙宇晨共赴太空。此前公开数据显示,火星计划首期活动累计超5.5万人次参与,共铸造20,359个太空NFT,平台发放各类奖励20,107次。最终,UID为436940364的幸运用户成为首位太空候选人。[2023/8/2 16:13:27]

因为binaryen.cpp这个代码是负责解析EOS智能合约的,所以攻击者可以:

火星云矿总裁商思林:在Filecoin大矿工测试奖励前不建议个人投资者投入太多资金:金色财经现场报道,8月7日“2020 Cointelegraph中文大湾区·国际区块链周”在深圳举行。火星云矿总裁商思林在“Filecoin构建的世界,如何理解火热的Filecoin与IPFS”圆桌上表示,Filecoin是2020年下半年最不可错过的项目,但作为一个新兴项目,相比比特币风险也是比较高。在主网上线之前,不要把鸡蛋放在一个篮子里。他建议,在大矿工测试奖励前个人投资者不要投入太多资金在上面,一定要等大到矿工测试完。如果在之前投资可以选择头部几家,根据实际表现再加大投资。[2020/8/7]

先创建一个「恶意」的智能合约;

声音 | 火星人许子敬:美国不同监管部门对比特币的定位并不相同:火星人许子敬在微博中表示,美国不同监管部门对比特币的定位并不相同:CFTC倾向于认为比特币是商品,所以CME推出了比特币的期货交易;IRS倾向于认为比特币是证券,所以对与比特币的税收才落下实锤;FinCEN认为比特币是货币,所以对于数字货币服务提供商,需要特殊的反牌照。尽管存在诸多争议,比特币的合规之路已然是定局[2019/7/29]

把「恶意」的合约上传到EOS网络让超级节点来解析,进而触发越界,形成EOSWASM虚拟机进程的内存漏洞;

由于EOS为了性能的考虑,常用的内存缓解技术没有做到位,攻击者可以进一步在虚拟机进程里控制整个超级节点的机器,达到远程代码执行的效果。详情可参考下图漏洞发现者的解释。

声音 | 火星人柯里昂:脱离实际需求的TPS和人性的经济模型最后必然会走向失败:火星人柯里昂昨晚发微博表示,真正的区块链技术,应当符合如下特征:强隐私保护,抗审查,抗中心化,社区自治,有效防止单节点故障……技术是为人服务的,脱离了实际需求的TPS,和脱离了人性的经济模型,最后必然会走向失败。[2019/1/11]

而EOS官方的漏洞修复也是很奇葩的,BM在GitHub上创建了这样一个bugissue:https://github.com/EOSIO/eos/issues/3498根据标题,就不难发现,BM根本没修复根源的漏洞本身,却只是改了assert在release版也触发

以致于漏洞发现者都说,你这种修复没有本质上解决问题:

说完了漏洞本身,我们再来探讨下深层次的原因

1.这个攻击的一大亮点是,合约本身可以是「恶意」的,是用来攻击节点的。

那为什么「恶意合约」这个威胁会对EOS特别显著?似乎之前的其他区块链都还没遇到这个threatmodel的。

因为EOS部署合约是零成本的,任何人只要锁定一定量的EOS都可以免费发布合约来让超级节点解析。这样攻击者几乎是零成本。所以这个threatmodel对EOS“特别”适用。

2.EOS的21个超级节点的设计,会让这种攻击在现实世界里更容易实行。

EOS超级节点的本质,就是用中心化来提高性能。可是无论每个超级节点背后有多少机群,一定有个主控端的机器。这样,攻击者只需要知道怎么破解每个主控机器的内存保护措施就可以了,反正最差情况也就适配21种。而相对地,就拿ETH举例好了:ETH区块链网络现在有18266个节点,而这些节点又有下图这么多不同的客户端版本和机器版本,光适配这些不同配置的exploit就够黑客头疼的了写PoC是相对简单的,现实运行是麻烦的,所以安全问题有时候是被一定程度地夸大了的。

而且,由于EOS的中心化,超级节点会保存一般区块链节点不会有的太多的重要信息,一旦攻破,后果比攻破一个或多个普通区块链节点问题严重的多。

3.EOS为啥不用更严格的沙盒来限制内存漏洞呢?

因为EOS的智能合约功能太多了,除了跟操作系统层有很多交互,合约本身还支持异步执行

结语:想做的功能越多,被攻击的危险就越大。有时候,设计越是简单,往往越有力量。想想比特币为什么是最安全的吧,因为人家只想安安静静地做个「美男子」。

360英文报告:http://blogs.360.cn/blog/eos-node-remote-code-execution-vulnerability/

更多精彩内容,关注链闻ChainNews公众号,或者来微博@链闻ChainNews与我们互动!转载请注明版权和原文链接!

来源链接:mp.weixin.qq.com

本文来源于非小号媒体平台:

链闻研究院

现已在非小号资讯平台发布1篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/3626839.html

EOS柚子漏洞风险安全

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

下一篇:

魏斯评级发布最新加密货币评级,首次披露评级依据

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

链链资讯

[0:0ms0-4:351ms