掌桥专利:专业的专利平台
掌桥专利
首页

基于多维度安全检测的区块链安全性评估方法及装置

文献发布时间:2023-06-19 19:30:30


基于多维度安全检测的区块链安全性评估方法及装置

技术领域

本发明涉及区块链应用技术领域,尤其涉及一种基于多维度安全检测的区块链安全性评估方法及装置。

背景技术

随着区块链3.0时代的到来,区块链系统通常分为五层,即应用层、合约层、共识层、网络层、数据层, 得益于近几年区块链的蓬勃发展,区块链安全问题也逐渐走进了研究者的视野,由于区块链应用的加速落地和广泛应用,参与的企业和技术人员良莠不齐,出现了很多因开发不规范造成的安全事件,目前区块链网络及其应用上发生安全事件最多的部分是智能合约、共识机制、以及上层应用。

相较于另外两层,针对合约层中的智能合约检测目前已有一些技术和工具,LoiLuu等人开发了一种基于符号执行的静态分析工具Oyente,使用符号值代替具体执行程序;Josselin Feist等人基于静态分析的方法,开发了一种静态分析工具Slither,通过抽象语法树获得中间表达并结合预定的分析检测漏洞;Petar Tsankov等人提出了符合模式和违反模式并开发了securify工具,提取精确的语义信息,然后检查符合性和违规模式;Tikhomirov等设计了一个名为 SmartCheck 的以太坊智能合约静态分析工具,该工具将Solidity源代码转换为基于XML(Extensible Markup Language)的中间表示,并根据 XML路径语言模式进行检测。现存的上述工具虽然可实现区块链的智能合约检测,但上述检测工具几乎都存在漏洞检测类型不够全面,检测时间较长且检测结果不够理想的问题,从而难以确保区块链系统的安全性。因此,如何准确的评估区块链系统的安全性,是亟待解决的技术问题。

发明内容

有鉴于此,本发明提供了一种基于多维度安全检测的区块链安全性评估方法及装置,以解决现有技术中存在的一个或多个问题。

根据本发明的一个方面,本发明公开了一种基于多维度安全检测的区块链安全性评估方法,所述方法包括:

获取智能合约源代码和文法规则,对所述文法规则进行优化,基于优化后的所述文法规则对所述智能合约源代码进行解析,并基于解析后的所述智能合约源代码构建语法分析树,对所述语法分析树进行遍历生成中间表达式;其中,优化后的所述文法规则包括对关键字进行识别的规则;

获取用于匹配智能合约漏洞的漏洞规则文件集合,基于所述漏洞规则文件集合中的各漏洞规则文件与所述中间表达式进行匹配,并得到第一匹配结果;所述漏洞规则文件包括用于匹配整数溢出、状态机或合约可终止类型安全问题的规则;

基于所述第一匹配结果确定第一评估分数。

在本发明的一些实施例中,所述方法包括:

获取共识算法、节点数、排序节点数、系统处理器总量、系统处理器占用量、系统内存总量、系统内存占用量、异常节点数、系统处理器最大安全使用率以及系统内存最大安全使用率,基于获取到的所述共识算法确定终局时间;

基于所述节点数、排序节点数、异常节点数、系统处理器总量、系统处理器占用量、系统内存总量、系统内存占用量、系统处理器最大安全使用率以及系统内存最大安全使用率确定系统调用风险以及各系统调用风险对应的第一风险等级分数;

基于所述终局时间以及调用并响应目标区块链的实际耗时确定上链测试风险以及各所述上链测试风险对应的第二风险等级分数;

基于各所述第一风险等级分数和各所述第二风险等级分数确定第二评估分数。

在本发明的一些实施例中,所述方法包括:

基于区块链平台系统特性确定输入向量;

基于所述输入向量确定模糊测试数据,基于确定的所述模糊测试数据对所述区块链平台系统进行应用漏洞检测得到应用漏洞数量和各所述应用漏洞的漏洞类型;

确定各所述应用漏洞对应的风险等级分数,基于各所述应用漏洞对应的风险等级分数确定第三评估分数。

在本发明的一些实施例中,所述方法包括:

基于所述第一评估分数、第二评估分数以及第三评估分数计算所述区块链平台的综合评估分数。

在本发明的一些实施例中,基于所述输入向量确定模糊测试数据,包括:

获取常见漏洞模板,基于所述输入向量通过所述常见漏洞模板生成第一模糊测试数据集;

对所述第一模糊测试数据集中的数据进行变异操作得到第二模糊测试数据集;

将所述第二模糊测试数据集中的数据作为模糊测试数据。

在本发明的一些实施例中,基于优化后的所述文法规则对所述智能合约源代码进行解析,基于解析后的所述智能合约源代码构建语法分析树,包括:

利用左递归消除方法对优化后的所述文法规则进行解析得到解析后的文法规则;

基于解析后的所述文法规则对所述智能合约源代码进行解析;

基于解析后的所述智能合约源代码构建语法分析树。

在本发明的一些实施例中,第一评估分数的计算公式为:

第二评估分数的计算公式为:

第三评估分数的计算公式为:

其中,n表示第一匹配结果中的漏洞数量,

在本发明的一些实施例中,综合评估分数的计算公式为:

P=[(P

其中,P

根据本发明的另一方面,还公开了一种基于多维度安全检测的区块链安全性评估系统,该系统包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如上任一实施例所述方法的步骤。

根据本发明的再一方面,还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一实施例所述方法的步骤。

本发明实施例所公开的基于多维度安全检测的区块链安全性评估方法及装置,基于优化后的文法规则对智能合约源代码进行解析,且漏洞规则文件集合中的漏洞规则文件包括用于匹配整数溢出、状态机或合约可终止类型安全问题的规则,基于该方法可更精确细致的匹配到对应的合约语法,提高检测效率,并且该方法可全面的检测智能合约层的漏洞,从而提高了区块链系统的安全性。

另外,本发明实施例所公开的基于多维度安全检测的区块链安全性评估方法及装置,在对区块链平台进行智能合约安全检测的前提下,还评估区块链系统中基于当前共识算法以及系统资源是否能够保证区块链共识机制安全且稳定的运行,以及通过模糊测试方法检测区块链上层应用可能存在的安全性问题;基于上述内容可知,该方法实现了区块链的多维度安全检测,进一步的提高了区块链系统的安全性。

本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在书面说明及其权利要求书以及附图中具体指出的结构实现到并获得。

本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。附图中的部件不是成比例绘制的,而只是为了示出本发明的原理。为了便于示出和描述本发明的一些部分,附图中对应部分可能被放大,即,相对于依据本发明实际制造的示例性装置中的其它部件可能变得更大。在附图中:

图1为本发明一实施例的基于多维度安全检测的区块链安全性评估方法的流程示意图。

图2为本发明一实施例的基于多维度安全检测的区块链安全性评估系统的架构示意图。

图3为本发明一实施例的区块链安全性评估方法的智能合约检测流程示意图。

图4为本发明一实施例的区块链安全性评估方法的共识机制检测流程示意图。

图5为本发明一实施例的区块链安全性评估方法的应用安全检测流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

在此,需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。

应该强调,术语“包括/包含/具有”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。

区块链技术应用中常见的安全风险和事件主要集中在共识层、合约层和应用层,对应的关键技术即智能合约、共识算法以及上层应用;各层的安全性情况都直接影响着区块链系统的安全性。因而为了提高区块链系统的安全性,本发明提供一种区块链安全性评估方法高效全面的检测智能合约的漏洞来保障合约层的安全;除此之外,一些实施例中的安全性评估方法还检测已部署区块链底层共识机制的安全性,以及针对区块链平台上层应用系统安全问题进行应用安全检测。因此,针对区块链系统中多维度的且各层相互关联的安全问题,本发明提出了一种基于多维度安全检测的区块链安全性评估方法及装置。

具体的,本发明所公开的基于多维度安全检测的区块链安全性评估方法及装置,针对区块链核心技术层面涉及的安全风险提供整体安全性评估,该方法可分别对区块链系统的智能合约、共识机制、上层应用进行安全评估。该方法具体的将网络安全技术和漏洞检测技术应用到区块链中,将代码审计与智能合约结合,改进现有静态检测技术,对检测过程中的语法遍历逻辑进行改进,能够更精确细致的匹配到对应的合约语法,提高效率和准确度,并且改进漏洞匹配规则,使该方法能够检测更多种类的智能合约漏洞类型。另外,将算法检测和性能监测技术与共识算法运行状态结合,通过对共识算法类型的检测、上链检测以及服务器性能监控,评估区块链系统中基于当前共识算法以及系统资源是否能够保证区块链共识机制安全且稳定的运行;将网络应用安全检测与区块链平台相结合,通过有保障的检测手段对平台进行安全检测,测试区块链上层应用可能存在的安全性问题。

在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。

步骤S10:获取智能合约源代码和文法规则,对所述文法规则进行优化,基于优化后的所述文法规则对所述智能合约源代码进行解析,并基于解析后的所述智能合约源代码构建语法分析树,对所述语法分析树进行遍历生成中间表达式;其中,优化后的所述文法规则包括对关键字进行识别的规则。

该步骤是为了实现智能合约的检测,即基于静态代码检测技术检测智能合约中的漏洞。在该步骤中,基于源代码构建中间表达式,比如语法树或者字节码等形式,以供后续更深入的解析。

其中,基于优化后的所述文法规则对所述智能合约源代码进行解析,基于解析后的所述智能合约源代码构建语法分析树,具体包括:利用左递归消除方法对优化后的所述文法规则进行解析得到解析后的文法规则;基于解析后的所述文法规则对所述智能合约源代码进行解析;基于解析后的所述智能合约源代码构建语法分析树。在该实施例中,解析优化后的所述文法规则时,对其中左递归的文法规则进行消除以避免歧义,利用消除左递归后的所述文法规则对所述智能合约源代码进行解析,从而基于解析后的智能合约源代码构建语法分析树。

本申请在构建中间表达使用的是语法分析树,构建语法分析树通常使用自顶向下的LL(k)构建方法,但是这种方法在某些语法结构的匹配上有一些限制,因为无法解决歧义而无法识别文法规则中最自然的文法,而这种文法规则通常是左递归的。鉴于此,本发明使用All(*)方法辅助构建中间表达,All(*)方法优化了对文法规则的解析,简化了文法规则的构建,针对左递归类型的文法规则,All(*)方法将左递归文法规则通过算法复写为同一规则的非左递归形式以便于简单高效的处理有歧义的文法规则,在处理左递归文法规则的过程中将以下四种文法规则子表达式模式认定为左递归:二/三元

步骤1:找出文法规则中符合四种左递归规则模式的子表达式;

步骤2:将一元前缀表达和主表达式组合为

步骤3:将二元表达、三元表达、一元后缀表达式组合为

步骤4:将

步骤5:将二元表达、三元表达、一元前缀中的

步骤6:将所有表达集合

步骤7:将原始

在该实施例中,基于All(*)方法将智能合约源代码解析完成后生成可扩展标记语言格式的解析树,从而生成中间表达式。而为了进一步的衔接后续漏洞匹配,可以利用诸如数据流、污点分析等方法来丰富中间表示。

步骤S20:获取用于匹配智能合约漏洞的漏洞规则文件集合,基于所述漏洞规则文件集合中的各漏洞规则文件与所述中间表达式进行匹配,并得到第一匹配结果;所述漏洞规则文件包括用于匹配整数溢出、状态机或合约可终止类型安全问题的规则。

在该步骤中,是基于漏洞规则文件集合中的各漏洞规则文件与中间表达式进行漏洞匹配,从而匹配出智能合约的漏洞或安全问题。在该实施例中,漏洞规则文件集合中的漏洞规则文件能够匹配到智能合约中较多类型的漏洞和安全问题,例如整数溢出、状态机和合约可中止等类型。另外,在步骤S10中对文法规则进行优化,则在语法分析的时候能够更加准确的解析合约代码,从而使得更多的代码特征能被正确识别并且能够被该步骤的漏洞规则匹配到。

步骤S30:基于所述第一匹配结果确定第一评估分数。

在该步骤中,进一步的基于匹配得到的智能合约漏洞确定智能合约的第一评估分数。第一评估分数用于表征智能合约的安全性。示例性的,第一评估分数的计算公式为:

通过上述步骤S10至S30可以发现,本申请的基于多维度安全检测的区块链安全性评估方法在进行智能合约检测时采用静态分析技术,具体的,首先利用All(*)方法基于优化后的文法规则对智能合约源代码进行解析,即将智能合约源代码转换为语法分析树,再将语法分析树进行遍历,转换为可扩展标记语言形式的中间表达式,最后根据可扩展标记语言路径语言模式的漏洞匹配规则对中间表达式进行匹配,如果匹配到则表明智能合约存在相应的漏洞。本申请通过优化语法分析过程,优化现有针对智能合约的文法规则,使优化后的所述文法规则包括对关键字进行识别的规则,即在生成语法分析树的时候能够匹配到更多的特征代码,能够更精确的分析智能合约代码;另外本申请的用于匹配智能合约漏洞的漏洞匹配规则覆盖面广,能够匹配到更多类型的安全问题,例如状态机和可中止等类型,因而本申请的智能合约检测方法提高了区块链系统安全监测的准确度,从而提高了区块链系统的安全性。

相应的,通过本申请的基于多维度安全检测的区块链安全性评估系统对智能合约进行检测时,首先用户在评估系统进行注册并登陆后,进入系统界面,在安全检测模块里用户选择智能合约检测。参考图2,进一步的,在智能合约检测一级界面将待检测的智能合约源代码上传到区块链核心安全漏洞测评系统中,此时合约会被保存到后台,等待用户操作指令进行检测;当智能合约源代码进入检测模块后,检测模块先将源代码转换为中间表达语法树(IR),以便于后续的漏洞匹配;进而检测模块加载漏洞匹配规则,与中间表达式进行比对,如果匹配成功,则认为智能合约存在对应漏洞。漏洞匹配完成后,检测结果和最终的第一评估分数会返回给前端应用,智能合约检测一级界面会展示出具体的评测项是否合格,二级界面会将合约内容和漏洞点展示出来,并给出相应的评测建议;二级界面中还支持回归检测,检测结果也可以通过一级界面的导出功能完整导出,并且支持结果可信上链。

综上所述,上述实施例的智能合约检测规则首先将智能合约源代码转换为语法分析树,利用左递归消除方法使得所生成的语法树更加准确,再通过语法遍历技术将语法分析树转换为可扩展标记语言形式的中间表示(IR),根据转换规则的不同可以标记不同类型的代码,最后根据可扩展标记语言路径语言模式的漏洞匹配规则对中间表示进行匹配,如果匹配到则表明智能合约存在相应的漏洞。图3为本发明一实施例的区块链安全性评估方法的智能合约检测流程示意图,参考图3,在进行智能合约检测时,具体执行步骤包括:(1)首先,根据智能合约编写语言种类L的不同,通过对应优化后自定义的文法规则

ContractVulnDetect

Input:

Output:VulnRes

1:Begin

2: if (Exist(RuleFile)) then

3:IR = Interpreter(

4: if(Exist(RB)) then

5:VulnRes = VulnMatch(IR,RB)

6: return VulnRes

7: else

8: return error;

9:End

在本发明另一实施例中,基于多维度安全检测的区块链安全性评估方法还包括如下步骤:获取共识算法、节点数、排序节点数、系统处理器总量、系统处理器占用量、系统内存总量、系统内存占用量、异常节点数、系统处理器最大安全使用率以及系统内存最大安全使用率,基于获取到的所述共识算法确定终局时间;基于所述节点数、排序节点数、异常节点数、系统处理器总量、系统处理器占用量、系统内存总量、系统内存占用量、系统处理器最大安全使用率以及系统内存最大安全使用率确定系统调用风险以及各系统调用风险对应的第一风险等级分数;基于所述终局时间以及调用并响应目标区块链的实际耗时确定上链测试风险以及各所述上链测试风险对应的第二风险等级分数;基于各所述第一风险等级分数和各所述第二风险等级分数确定第二评估分数。

现有技术中针对共识机制的检测主要集中在性能的检测上,几乎没有针对运行中的共识算法进行安全和稳定性的检测技术,不同共识算法的特性并不会直接体现在区块链网络的正常运作中,难以用直观的方式直接获取到区块链网络中使用的共识算法种类,并且共识算法的安全性也取决于网络本身节点数量、网络所在环境、服务器资源等因素,因此本发明提供上述方法用于检测共识机制的安全性。

在本发明公开的上述实施例中,区块链安全性评估方法在对智能合约进行安全性检测的基础上,进一步的对共识算法进行检测,共识机制处于整个区块链架构的底层位置,在区块链网络启动之后便将设定好的共识算法用于达成节点间的共识,不同共识算法的特性并不会直接体现在区块链网络的正常运作中,难以用直观的方式直接获取到区块链网络中使用的共识算法种类,并且共识算法的安全性也取决于网络本身节点数量、网络所在环境、服务器资源等因素,因此本发明提出的共识安全检测技术综合考虑多种影响共识算法安全性的因素,利用两种检测技术——RESTful Interface格式的调用技术以及系统调用技术,检测区块链网络所使用的共识算法及节点数,以及监测系统资源使用情况,多方位且全面的评定被检测区块链网络所使用的共识机制是否符合安全、可信、可靠的要求。

示例性的,可通过系统调用方法获得对应区块链网络的共识算法

其中,异常节点数为

或者:

记系统处理器和内存最大安全使用率分别为

;/>

而RESTful调用通过实例上链的方法对共识可靠性和一致性进行测试,以保证系统正常运行的节点能在系统性能所要求的规定时间达成一致的共识,根据系统调用检测得到的共识算法设定对应的终局时间

通过上述实施例可以发现,共识检测采用多种技术综合检测的方法,既进行实际数据上链分发测试,也对区块链网络底层配置进行检测,综合得出共识机制的安全性,从而进一步确保了共识算法安全性检测的准确性,从而也进一步的提高了区块链系统的安全性。

相应的,通过本申请的基于多维度安全检测的区块链安全性评估系统对共识算法进行检测时,类似的,首先用户在评估系统进行注册并登陆后,进入系统界面,在安全检测模块里用户选择共识算法检测。进一步的,在共识算法检测一级界面将待检测区块链网络对应服务器相关信息输入,相关信息会被保存到后台,等待用户操作指令进行检测;检测模块加载上链调用二级界面,用户输入上链测试相关数据,平台会根据输入信息进行数据上链测试,并展示数据上链后的区块返回信息,并且检测共识安全一致性;进而检测模块加载系统远程调用代码,在共识算法检测二级界面将展示所检测得到的共识算法种类、排序和同步节点数、资源消耗等检测项,直观展示区块链网络在当前共识机制下的安全性和稳定性;共识问题修复后可以再次调用进行回归测试,结果可以在平台导出或在平台可信上链。

综上所述,上述实施例的共识算法检测规则包括两部分,一部分是利用主机系统调用,对区块链网络基本配置和资源消耗情况进行检测,另一部分是利用RESTfulInterface技术调用区块链网络中的上链相关API,通过实际上链测试区块链网络是否能够安全稳定的运行。主机系统调用部分首先在检测系统上事先编写好检测代码,在平台上传入对应主机参数,然后通过远程连接被检测服务器,利用内部系统调用函数,对区块链网络共识算法、Orderer以及Peer节点数量进行检测,根据检测情况判断所用算法是否安全可靠,并且判断该算法实现下的节点数是否能够满足安全性和稳定性的应用需求,给出相应结果。

图4为本发明一实施例的区块链安全性评估方法的共识算法检测流程示意图,参考图4,在进行共识算法检测时,具体执行步骤包括:(1)上链测试部分先填写上链测试元数据,包括测试时间、人员、内容、方式等,封装到RESTful请求中,发送给被测试区块链系统进行上链测试,即

BlockTest

Input:

Output:ConsensusRes

1:Begin

2: if (Verify(account)) then

3: BlockData = CreateBlock

4:if (Exist(BlockData)) then

5:ConsensusRes = BlockDistrubute(BlockData)

6: return ConsensusRes

7: else

8: return error;

9: else

10:return error;

11:End

在本发明再一实施例中,基于多维度安全检测的区块链安全性评估方法还包括如下步骤:基于区块链平台系统特性确定输入向量;基于所述输入向量确定模糊测试数据,基于确定的所述模糊测试数据对所述区块链平台系统进行应用漏洞检测得到应用漏洞数量和各所述应用漏洞的漏洞类型;确定各所述应用漏洞类型对应的风险等级分数,基于各所述应用漏洞对应的风险等级分数确定第三评估分数。示例性的,基于所述输入向量确定模糊测试数据,包括:获取常见漏洞模板,基于所述输入向量通过所述常见漏洞模板生成第一模糊测试数据集;对所述第一模糊测试数据集中的数据进行变异操作得到第二模糊测试数据集;将所述第二模糊测试数据集中的数据作为模糊测试数据。

在该实施例中,区块链安全性评估方法在对智能合约、共识算法进行安全性检测的基础上,进一步的对应用层进行安全检测。上层应用通常通过构建用户友好的界面来对区块链网络进行调用和管理,构建过程中容易产生各种常见的Web安全问题,例如XSS漏洞,注入漏洞,信息泄露等,在检测应用安全问题时通常会使用Fuzzing(模糊测试)技术来检测。Fuzzing数据的生成通常有两种手段,一种是基于变种的方法,基于已知的数据样本进行数据生成和测试;另一种是基于漏洞模板的方法,根据已知协议或情报进行数据生成和测试。本发明将两种方法结合起来,在对目标进行初始请求后,依据正常请求得到的数据包,插入已知的漏洞集合,并在此基础上进行大量异常请求的生成和发送,全面检查区块链应用常见安全漏洞。

在该实施例中,首先基于漏洞模板中已知的漏洞信息获得一批模糊测试数据,然后再基于变种的方法,将模糊测试数据变异为大量的测试数据进行模糊测试。该方法既发挥了基于模板的已知漏洞优势,又发挥了基于变种的数量优势,能够在较高的准确度的前提下生成更多的模糊测试数据,提升检测效率。

示例性的,本申请涉及的Fuzzing技术可以概括为如下:

相应的,通过本申请的基于多维度安全检测的区块链安全性评估系统对应用层面进行安全检测时,类似的,首先用户在评估系统进行注册并登陆后,进入系统界面,在安全检测模块里用户选择应用安全检测。进一步的在应用安全检测一级界面输入对应平台的URL和IP地址,此时相关信息会被保存到后台,等待用户操作指令进行检测;检测模块会自动发起Fuzzing数据生成的调用,为测试做准备;检测模块利用各个漏洞扫描单元对相应URL进行模糊测试,将检测到的异常记录并进行漏洞判断;扫描结果经过处理后会以检测项和检测评级的形式展示在一级界面,对应的二级界面展示出漏洞详情和修复建议,漏洞修复后可以再次调用扫描模块进行回归测试,结果可以在平台导出或在平台可信上链。

综上所述,上述实施例的应用安全检测技术利用了Fuzzing技术,一种通过向目标程序注入大量的异常数据,并监控程序是否产生异常来挖掘程序漏洞的黑盒检测技术,Fuzzing技术结合了手动渗透测试的深入、准确以及高效且自动的特点,利用Fuzzing技术构建大量预设的测试用例,对目标系统的各个子系统及其下的各个数据输入点进行全方面的测试覆盖,可以简单、高效、高自动化地挖掘目标系统中的各种异常和应用漏洞,并且在测试的过程中对重复数据进行筛选,做到尽可能精准的找出漏洞。

图5为本发明一实施例的区块链安全性评估方法的共识算法应用安全检测流程示意图,参考图5,在进行应用安全检测时,具体执行步骤包括:(1)确定输入向量:首先对目标平台进行正常请求,获取正常请求报文,根据目标系统特性确定输入向量,输入向量为能对目标系统产生影响的请求参数集;

WebVulnDetect

Input:

Output:Vulns

1:Begin

2: if (Exist(IP)) then

3:if (Exist(URL)) then

4:Vector = WebInfoDetect(IP,URL)

5:FuzzData = DataGenerate(Vector,ALGO)

6: for(exception = Fuzzing(FuzzData,IP,URL))

7:if(isVuln(exception))

8:vulns[n+1] =exception

9:else

10:continue

11return vulns

12:else

13:return error;

14: else

15:returnerror;

16:End

目前现有技术的区块链相关安全检测技术和工具更多的针对智能合约、共识算法以及应用安全中的某一项区块链核心技术或者某一类安全问题,研究产物通常为较为单一的应用形式,无法满足目前区块链系统的多维度的安全检测和评估的需求,缺乏对整个区块链网络及其上层应用进行全面安全检测的应用实践落地,并且检测结果亟需可信验证和溯源的途径。基于此,在上述实施例的基础上对区块链安全性评估方法进一步改进,以进一步提高区块链系统的安全性。

具体的,在该实施例中,基于多维度安全检测的区块链安全性评估方法还包括:基于所述第一评估分数、第二评估分数以及第三评估分数计算所述区块链平台的综合评估分数。示例性的,综合评估分数的计算公式为:P=[(P

相应的,本发明还提供了一种基于多维度安全检测的区块链安全性评估系统,该系统包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如上任一实施例所述方法的步骤。

该区块链安全性评估系统中,智能合约检测技术、共识机制检测技术、应用安全检测技术三种检测方法均能够以模块化的形式集成到综合统一的评估系统中,三个模块分则各自评估一类区块链关键技术的安全性,合则对区块链网络及其平台进行完整全面的安全性评估。在评估系统中,每一种安全性评估结果会根据不同安全指标项的综合结果来进行评价和打分,在对某一区块链网络及其平台进行综合评估时可以根据应用场景的不同以不同的权重对其进行综合评估。即在该安全性评估系统中,可以根据实际需求对一种或多种安全项进行评估,并根据漏洞类型进行评价并给出评级,结合多项指标进行综合评估,解决当前区块链技术应用中出现的各方面、多层次的安全问题;将区块链相关安全检测自动化、平台化、工程化,使得检测技术能切实落地到真实的应用场景中,平台本身所有的区块链系统也能将测评结果可信透明的存储在链上,解决评估结果可信溯源的问题,检测技术与区块链的融合和创新,能有效保障区块链系统安全性,减少因为安全问题而不自知所造成的损失。

通过上述实施例可以发现,本申请的基于多维度安全检测的区块链安全性评估方法及装置,基于智能合约、共识算法以及应用安全三种检测技术对目前区块链系统最易受到攻击的三个部分——智能合约、共识机制、上层应用相应的安全性进行检测,智能合约检测采用静态检测方法,分析代码语法树并匹配漏洞规则,高效精确的对合约进行漏洞检测;共识算法检测采用多种技术综合检测的方法,既进行实际数据上链分发测试,也对区块链网络底层配置进行检测,综合得出共识机制安全性;应用检测结合Fuzzing技术,生成大量访问数据,依据异常判断对应用漏洞进行检测。本发明中涉及的系统底层技术采用联盟链中最成熟,使用场景最广泛的Hyperledger Fabric作为区块链底层框架,支撑平台漏洞检测结果数据可信上链。

除上述之外,本申请中涉及的系统将提及的评估方法及技术融合到区块链平台中,提高漏洞检测自动化程度,实现安全检测→对应检测项安全评级→检测结果导出并上链全过程,将检测技术工程化、平台化,能够落地到实际应用场景中,解决现有工具仅针对单一种类安全风险,操作复杂,不能自动高效地对区块链系统进行整体安全性评估的问题,满足目前日益增长的对区块链系统安全评估的需求,提高社会区块链应用整体的安全水位,为区块链技术的安全应用提供保障。

另外,该发明还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一实施例所述方法的步骤。

本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120115936604