深入了解区块链的漏洞之1:介绍篇

在这个系列里,我们将一起学习一篇论文:https://arxiv.org/pdf/2110.12162.pdf

这篇文章作者对区块链的脆弱性,采用独特地方法论,进行深入的探讨。为我们理解或梳理区块链的漏洞,提供了非常有意义的探索。下面是这篇论文的摘要和介绍。

摘要

大家都知道,区块链作为最近涌现出来的技术,其具有去中心化的特质,以及拥有加密货币属性和智能合约功能,让许多人都看好它,把它当作人类下一代IT革命的引擎技术。但是,区块链本质上是一款去中心化的超级账本软件,因此它不可避免地会存在软件上的漏洞。目前关于区块链的研究,大都聚焦在基于该技术智能合约和具体的应用上面,包括关于区块链安全方面也主要在合约和应用,而关于其底层系统级的安全漏洞则少有涉猎。这里,我们将针对具有代表性的区块链(比特币、以太坊等),探究区块链可能存在的系统漏洞。

目前关于区块链没有CVE信息发布系统,好在区块链都是开源的软件,因此我们收集它们Github上的Issues,以及PRs(pull requests),并从中抽取了上千个区块链漏洞,以及超过2000多个的补丁,来让大家看到这个技术存在的系统漏洞,以及可以补救办法。我们把收集到的脆弱点构建了一个数据集,并在该数据集上,我们将开展三种层级的分析:、

  1. 文件级,旨在找到易受攻击的模块,这个是通过不同区块链工程项目的模块路径来达到目标;
  2. 文本级,旨在发现易受攻击的类型,这个是通过自然语法和NLP来达到目标;
  3. 代码级,旨在寻找易受攻击的模式,这个则是通过分析处理补丁的代码片段来达到目标的。

经过仔细的分析,大家将会得到3个主要的发现:

  1. 有此区块链的模块相比其它模块更值怀疑,特别是那些关于共识、钱包和网络的模块应当重点关注,因为它个每个都有超过200个的issues。
  2. 区块链的漏洞类型70%以上是与传统软件上已有的,但在这里,将提出4种全新的类型。
  3. 多达21种的专属于区块链的攻击模式,包括检查区块链的唯一属性,验证各种区块链状态;并在这里,我们将演示通过这些模式,怎样来找到这些区块链中的被攻击点。

介绍

自从区块链首次被Bitcoin作为其加密货币交易账本以来,它就成为许多加密货币的底层设施了。并且它促使加密货币市场指数级增长,截止2021年4月初,它的市值总额已超过了2万亿USD[32]。而且基于这些区块链技术演进、智能合约,以及各类DApp也是如雨后春笋般涌现:像智能合约平台以太坊[14]和超级账本Fabric[9],去中心化的计算平台星际文件系统IPFS[13]和Blockstack[8],像去中心化金融(DeFi)[55],智能合约预言机[61,62],去中心化身份识别[43],去中心化IoT管理[49],基于去中心化应用市场[17]等等。为了保护这些系统的去中心化,保护它们的紧密相关加密货币的安全性,这些区块链的安全就特别值得我们关注了。

目前关于区块链安全的研究,主要聚焦在智能合约漏洞检查和网络安全分析上。特别是许多程序静态分析工具,例如Oyente[42], Zeus[29],Securify[52],Gigahorse[25], 以及ETHBMC[21], 它们都是基于语法的执行和模型检查,来探测智能合约可能存在的漏洞。而动态工具[19,27,47,51]和基于学习的工具[24,38,41]也被发明出来了。它们除了会进行应用程序级合约的分析,有此还会分析网络级的黑客攻击,挖矿攻击,以及交易执行级别攻击[20,31,63,66]。然而,关于区块链本身自己系统的安全问题,则很少有人探究。据我们所知,目前只有一篇这样的研究[53](来自软件工程社区)是这个方向。在这篇研究中,它具体分析了946种区块链的bugs,其中涵盖了18个安全相关的bugs,并对其中4个进行了剖析。

在这篇文章中,我们从理解区块链的脆弱性目标出发,从4个有代表性的区块链(包括经典Bitcoin[45], 智能合约平台以太坊[14], 匿名coin Monero[46], 以及支付网络Stellar[39])入手,来导出区块链实证存在的漏洞。这4种区块链不仅在加密货币市场广泛流行,而且也有扎实的技术文章支持。

本文的区块链漏洞探索的整体工作流程如下图所示:
在这里插入图片描述

正如上图所示,我们研究的第一步挑战就是要有效地收集这4个区块链中,易受攻击的issues,以及它们应对的补丁。这步的困难主要是针对这些区块链工程,基本没有可用的CVE(Common Vulnerabilities & Exposures)信息,以及大量原始的区块链bugs(超过34K);我们只能从这此庞大的bugs数据源中去出与安全漏洞相关的bugs,如果完全通过手工的方式去提取,简直就是不可完成的任务。为此,我们基于这些漏洞会有不同的特征和不同级别的直觉,提出了个过滤框架,让我们可以通过分析bug的属性,由粗到精地逐步识别出侯选的漏洞。具体的,我们将针对提交、文件、标签和关键词4种级别,来执行过滤。最后,我们获得了1037个

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值