在《网安信:都是分布式存储,IPFS(fil)与Swarm(bzz)有什么区别?》这篇文章中,网安信安全团队为大家阐明了Swarm(bzz)与IPFS(FIL)两种分布式存储项目之间的区别,让大家了解到两者在基础层面、激励层面、技术层面、安全层面等几个层面都存在较大差异。
它们一个是区块链“后起之秀”,底层技术是IPFS星际文件访问传输协议,具有极大的商用价值,甚至可以取代目前被广泛使用的http访问传输协议;另一个是由以太坊官方推出的基于以太坊生态的去中心化存储项目,商用价值不明显,但以太坊稳坐加密货币第二把交易,关注度肯定会越来越高。也就是说,两者各有各的优势,没有好坏之分。
当然,既然同属区块链技术,并涉及到到加密货币,两者的安全问题肯定也是大家最关心的问题之一。之前网安信安全团队已经总结发不过IPFS领域的十大安全威胁,今天网安信安全团队就向大家分享一下Swarm(bzz)有哪些值得注意的安全风险。
八大安全漏洞可能对Swarm(bzz)造成影响
理论上来讲,Swarm(bzz)既然属于以太坊生态的一部分,以太坊目前存在的所有安全风险和漏洞都将对Swarm(bzz)产生影响。事实上,在Swarm(bzz)刚刚流行起来的时候,网安信安全团队第一时间进行了节点测试与安全研究,经过与达尔文威胁情报库进行比对后,发现近段时间在以太坊公链上共产生了8个可能对Swarm(bzz)安全造成严重威胁的高、中危漏洞。
1、Ethereum Aleth拒绝服务漏洞 | |
CVE ID | CVE-2020-26800 |
公开日期 | 2021-01-14 |
危害级别 | 中 |
漏洞描述 | Ethereum Aleth是以太坊(Ethereum)社区的一个基于C++语言实现的可支持以太坊协议的客户端应用。 Aleth Ethereum C++ client version <=1.8.0版本存在拒绝服务漏洞,该漏洞源于config.json文件可能会导致服务被拒绝。目前没有详细的漏洞细节提供。 |
解决方案 | 厂商尚未提供漏洞修复方案,请关注厂商主页更新:https://github.com/ethereum/aleth/issues/5917 |
2、Ethereum Go-ethereum资源管理错误漏洞 | |
CVE ID | CVE-2020-26264 |
公开日期 | 2021-1-26 |
危害级别 | 中 |
漏洞描述 | ethereum go-ethereum是ethereum社区的一个用go语言实现以太坊协议的代码库。 |
解决方案 | 目前厂商已发布升级补丁以修复漏洞,补丁获取链接:https://github.com/ethereum/go-ethereum/commit/bddd103a9f0af27ef533f04e06ea429cf76b6d46 |
3、Ethereum Go-ethereum共识漏洞 | |
CVE ID | CVE-2020-26265 |
公开日期 | 2020-12-11 |
危害级别 | 中 |
漏洞描述 | ethereum go-ethereum是ethereum社区的一个用go语言实现以太坊协议的代码库。 ethereum go-ethereum 1.9.4和1.9.20之前版本中存在共识漏洞,该漏洞可能导致链分裂,其中易受攻击的版本拒绝接受规范链。目前没有详细的漏洞细节提供。 |
解决方案 | 厂商尚未提供独立的漏洞修复方案,建议更新到最新版本 |
4、Ethereum Go-ethereum拒绝服务漏洞 | |
CVE ID | CVE-2020-26242 |
公开日期 | 2020-11-25 |
危害级别 | 中 |
漏洞描述 | ethereum go-ethereum是ethereum社区的一个用go语言实现以太坊协议的代码库。 |
解决方案 | 厂商尚未提供独立的漏洞修复方案,建议更新到最新版本 |
5、Ethereum Go-ethereum共识漏洞 | |
CVE ID | CVE-2020-26241 |
公开日期 | 2020-11-25 |
危害级别 | 中 |
漏洞描述 | ethereum go-ethereum是ethereum社区的一个用go语言实现以太坊协议的代码库。 ethereum go-ethereum 1.9.18之前的版本中的存在共识漏洞,该漏洞可能导致规范链的节点易受攻击从而发生链裂。因Geth的预编译dataCopy(在0x00...04处)协定在调用时做了浅表复制,让攻击者可以部署一个合约,将X写入EVM内存区域R,然后使用R作为参数调用0x00...04,然后将R覆盖为Y,最后调用RETURNDATACOPY操作码。调用此合约时,符合共识的节点会将X推入EVM堆栈,而Geth会将被覆盖后的Y推入Y。目前没有详细漏洞细节提供。 |
解决方案 | 厂商尚未提供独立的漏洞修复方案,建议更新到最新版本 |
6、Ethereum Go-ethereum挖掘DAG生成漏洞 | |
CVE ID | CVE-2020-26240 |
公开日期 | 2021-11-25 |
危害级别 | 中 |
漏洞描述 | ethereum go-ethereum是ethereum社区的一个用go语言实现以太坊协议的代码库。 |
解决方案 | 厂商尚未提供独立的漏洞修复方案,建议更新到最新版本 |
7、EthereumJ代码问题 | |
CVE ID | CVE-2018-15890 |
公开日期 | 2019-6-20 |
危害级别 | 高 |
漏洞描述 | EthereumJ是一款以太坊协议的Java语言实现。 EthereumJ 1.8.2版本中的crypto/ECKey.java文件的decoder.readObject和mine/Ethash.java文件的ois.readObject存在代码问题漏洞。 攻击者可利用该漏洞执行任意的操作系统命令。 |
解决方案 | 厂商尚未提供独立的漏洞修复方案,建议更新到最新版本 |
8、CPP-Ethereum越界读取漏洞 | |
CVE ID | CVE-2017-14451 |
公开日期 | 2020-12-2 |
危害级别 | 高 |
漏洞描述 | CPP-Ethereum的libevm(以太坊虚拟机)中存在一个可利用的越界读取漏洞。该漏洞存在于特制的智能合约代码中,可能导致越界读取,从而触发越界写入,最终导致远程代码执行。攻击者可以创建/发送恶意智能合约来触发此漏洞。目前没有详细漏洞细节提供。 |
解决方案 | 厂商尚未提供独立的漏洞修复方案,建议更新到最新版本 |
此外,bee 5.3之前的版本中存在索引越界的高危漏洞,该漏洞导致黑客拒绝服务攻击,让bee服务器全线崩溃,长时间无法正常挖矿。
安全漏洞具体对Swarm(bzz)造成什么影响
事实上,作为一个开源的公共区块链平台,平台上的开源软件都是由社区极客共同编写完成,如果某个社区极客疏忽或者测试不充分,就很容易造成软件的代码存在漏洞,而且越是功能强大的软件,就越是逻辑复杂,也越容易出现逻辑上的漏洞。上述8个漏洞目前已经广泛存在于以太坊网络中,且高、中危漏洞都非常容易被黑客利用并攻击,从而导致Swarm(bzz)挖矿流产,造成严重经济损失。
拒绝服务漏洞会导致Swarm(bzz)不能正常同步,无法正常挖矿;共识漏洞会导致Swarm(bzz)异常分叉,很容易被黑客利用去攻击别人;生成缺陷漏洞会导致Swarm(bzz)智能合约的双提情况;代码错误漏洞会导致Swarm(bzz)工作量证明失效,致使挖矿流产;而越界读取漏洞直接导致远程命令注入,通过该漏洞,黑客可以轻松进入 Swarm(bzz)服务器进行任何操作,非常危险。
当然,上述8个漏洞在以太坊最新的版本中已经得以修复,如果使用以太坊最新的版本进行Swarm(bzz)挖矿将不会受到上述安全漏洞的威胁,但据业内人士透露,Swarm(bzz)挖矿使用最新版本的以太坊出块率并不理想,必须采用比较老的版本才能保证出块率,如果消息属实,上述8个漏洞很有可能让Swarm(bzz)“中招”,网安信安全团队提醒广大Swarm(bzz)矿工请务必提高警惕,做好相关防护工作。