首页 / 专利库 / 银行与财务事项 / 账户身份服务系统 / 一种基于渗透性测试用例集的区块链架构安全评估方法及系统

一种基于渗透性测试用例集的链架构安全评估方法及系统

阅读:739发布:2020-05-12

专利汇可以提供一种基于渗透性测试用例集的链架构安全评估方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 提供一种基于渗透性测试 用例 集的 区 块 链 架构安全评估方法及系统,其目的是针对区块链技术架构的层次化模型,基于渗透性测试方法对区块链技术架构关键协议、核心机制等方面的安全性进行评估,以在区块链平台、系统、应用等正式投入使用前及时识别安全 风 险和脆弱性,也可对运行中的区块链架构进行安全性评估,以评估结果指导区块链平台本身安全性的提升和在不同场景下的应用安全性。,下面是一种基于渗透性测试用例集的链架构安全评估方法及系统专利的具体信息内容。

1.一种基于渗透性测试用例集的链架构安全评估系统至少包括评估初始化模块
10,安全测试模块11、结果采集模块12、安全评估模块13、安全测试用例集14、安全评估知识库15;其中,评估初始化模块10用于基于测试需求、测试对象和测试目标,从测试用例集14选取适合的测试用例,形成针对性的评估方案并反馈给安全测试模块11;安全测试模块11用于根据评估初始化模块10形成的评估方案对区块链平台各关键层级实施安全测试,并产生测试结果;结果采集模块12用于采集安全测试模块11产生的安全测试结果,标准化处理后反馈给安全评估模块13;安全评估模块13用于基于安全评估知识库,评估由结果采集模块12反馈的安全测试结果中所包含的安全险,量化区块链平台安全性。
2.基于上述区块链架构安全评估系统,进行安全评估的具体流程如下:
步骤200:评估初始化模块10根据测试需求、测试对象和测试目标,从测试用例集14选取测试用例,形成针对性的评估方案。
3.测试用例集14所包含的测试用例包括:
表1
评估初始化模块根据待测区块链平台的特性,包括测试需求、测试对象、测试目标,选取并组合A1、A4、E5、P11、S3、S17测试用例,形成安全测试方案,并反馈给安全测试模块11;
步骤210:安全测试模块11根据安全测试方案,对区块链平台实施安全测试,并产生安全测试结果。
4.在实际区块链平台安全测试场景中,根据安全测试方案,每个层级可以实施的安全测试如下所示:
对区块链平台存储层区块链基础设施等核心功能的安全测试主要包括检测和测试是否存在基础设施安全风险、网络攻击威胁、数据丢失和泄露风险等,包括:
基础设施安全风险,主要测试来自区块链存储设备自身以及所处环境的安全风险;
网络攻击威胁,测试包括是否存在可以被用于进行的DDoS攻击、病毒木攻击等设备软硬件漏洞;
数据丢失和泄露风险,测试是否存在针对区块数据和数据文件的窃取、破坏,或因误操作、系统故障、管理不善等。
5.对数据的安全测试项S17可以包括:
当处理敏感数据时, 不以明文形式将数据写到其它单独的文件或者临时文件中;
数据备份应该加密, 恢复数据应考虑恢复过程的异常通讯中断等, 数据恢复后再使用前应该经过校验;
在数据删除之前,应当通知用户或者应用程序提供一个“取消”命令的操作,并能够按照设计要求实现其功能
在没有用户明确许可的前提下不损坏删除个人信息管理应用程序中的任何内容等。
6.对区块链平台协议层P2P网络等核心功能的安全测试主要包括区块链技术核心机制中是否存在潜在安全缺陷等,包括:
协议漏洞,测试是否存在针对共识机制漏洞的算攻击、分叉攻击、女巫攻击,以及是否存在P2P协议缺陷;
流量攻击,测试是否存在BGP劫持、窃听、阻塞等安全风险;
未授权节点,测试区块链中是否存在未授权节点。
7.对P2P协议缺陷的安全测试P7可以通过长时间、无间断注册激活区块链社区空账户地址,测试区块链社区状态是否膨胀。
8.对区块链平台扩展层智能合约等核心功能的安全测试主要包括测试代码实现中是否存在安全漏洞等,包括:
合约开发漏洞,在区块链钱包、众筹、代币发行等智能合约典型应用中,测试代码的安全;
合约运行安全,合约虚拟机是区块链应用中智能合约的运行环境,测试合约虚拟机自身是否存在安全漏洞,或验证,以及控制等机制是否完善。
9.对利用The DAO智能合约漏洞实施重入攻击的测试项E9可以包括以下步骤:
构造恶意合约并调用The DAO智能合约的donate函数;
触发恶意合约的fallback函数,根据运行结果判断该智能合约是否存在漏洞。
10.对区块链平台应用层app、Web等的安全测试主要包括测试是否存在传统安全隐患。
11.对区块链应用层app的安全测试可以包括在身份标识和鉴别机制、口令复杂度检查功能、登陆失败处理功能、授权访问和控制功能、敏感信息标记功能、安全审计功能等;
以身份标识和鉴别机制安全测试为例,包括以下测试项:
区块链app应提供专用的登录控制模块对登录用户进行身份标识和鉴别;
区块链app应提供用户身份标识唯一检查功能,保证应用系统中不存在重复用户身份标识;
对区块链app的身份标识和鉴别机制安全测试项A5具体方法如下:
检查app是否有登陆模块,并检查用户是否可通过该模块进行身份鉴别;
检查用户的唯一身份标识符,并新建一个与现有用户身份标识符重复的用户,测试是否可以通过该新建用户登录;
身份鉴别失败时,app应提供登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施。
12.对区块链应用层Web平台的安全测试包括SQL注入测试、XSS(跨站点脚本攻击)测试和CSRF(跨站点伪造请求)测试。
13.对区块链应用层Web平台XSS测试项A10可以包括以下步骤:
读取Web平台代码,查找关键的变量;
客户端将数据传送给Web 服务端一般通过三种方式 Querystring,表单,以及cookie;
如果变量未进行Html编码处理,则该变量存在XSS安全风险。
14.安全测试模块11在对区块链平台进行安全测试后,产生安全测试结果,包括安全测试日志等。
15.步骤220:结果采集模块11采集待评估的区块链平台安全测试结果,对测试结果实施去重、取样和规范化处理,并反馈给安全评估模块13.
安全测试模块11产生安全测试结果后,由结果采集模块12进行采集,并对其进行去重、取样等标准化处理,提取安全评估模块13所需要的字段,然后将标准化处理后的安全测试结果发给安全评估模块13;
采取这种方式,将评估目标集中在关键字段,提高安全评估模块12的评估效率。
16.标准化后的安全测试结果可包括的重点字段如表2所示:
表2
步骤230:安全评估模块13根据安全测试结果,基于安全评估知识库,如图4所示计算安全风险权重,对区块链平台进行量化评估。
17.安全评估模13接收结果采集模块12发送的标准化安全测试结果,从安全评估知识库中选取用于量化该类风险的权重,具体步骤包括:
测试结果产生并标准化后,根据测试结果对区块链平台进行安全评估,包括:
基于安全评估知识库,计算安全各类风险对应的危害权重,并根据权重,量化区块链平台安全性。

说明书全文

一种基于渗透性测试用例集的链架构安全评估方法及

系统

技术领域

[0001] 本发明涉及网络安全领域,具体涉及一种基于渗透性测试用例集的区块链架构安全评估方法及系统。

背景技术

[0002] 区块链作为一种数据安全存储、传播和管理机制,通过让用户共同参与数据的计算和存储,并互相验证数据的真实性,可实现透明的数据开放共享,成为近年来炙手可热的
互联网技术。目前,区块链技术已在金融领域得到了广泛的应用,并向医疗、通信、保险等行
业领域迅速渗透。
[0003] 随着区块链技术的发展,各行业逐渐认识到其技术优势和应用价值,与此同时,区块链应用过程中存在的安全险也日益凸显。目前,鲜有针对区块链技术架构的安全评估
方法及系统,一方面,区块链技术迅猛发展的同时,大量区块链平台、系统、应用等产品在实
际应用中安全事件频发,大多数区块链产品开发者和服务提供者在其产品投入市场前,未
充分重视、及时识别和采取措施应对安全风险。另一方面,对区块链技术架构实施系统性的
安全评估需要认识清晰区块链技术的核心机制和应用场景特性,并针对其技术架构、应用
场景和攻击模式等提出针对性的测试方法和评价方式,目前国内外关于区块链的技术架构
尚无统一的定义,但ITU、ISO、TC260、CCSA等国内外标准化组织在相关标准文件中均从不同
度对其进行了描述和分析,并在技术架构的关键层次和核心机制上达成了共识。

发明内容

[0004] 本发明提供一种基于渗透性测试用例集的区块链架构安全评估方法及系统,其目的是针对区块链技术架构的层次化模型,基于渗透性测试方法对区块链技术架构关键协
议、核心机制等方面的安全性进行评估,以在区块链平台、系统、应用等正式投入使用前及
时识别安全风险和脆弱性,也可对运行中的区块链架构进行安全性评估,以评估结果指导
区块链平台本身安全性的提升和在不同场景下的应用安全性。
[0005] 本发明的目的采用以下技术方案实现:一种基于渗透性测试用例集的区块链架构安全评估方法,包括:
根据区块链平台核心架构的层次性特性,自下而上将测试对象的核心功能进行层次化
拆分,在存储层、扩展层、网络层和应用层等不同层面映射测试对象;
根据测试需求、测试对象和测试目标,对应测试对象所属评估层级,从测试用例集中选
取针对性的测试用例,形成组合测试方案;
根据制定的测试方案,对区块链架构实施安全测试,测试方法包括但不限于:
各层安全测试用例的组合,包括:
存储层测试用例:扫描LevelDB、Redis等数据库中可能存在的安全漏洞,实施DDoS攻击
性测试,实施病毒木攻击性测试,实施数据窃取、数据破坏等模拟性攻击;
协议层测试用例:扫描共识机制、P2P协议中存在的安全漏洞,实施BGP劫持、窃听、阻塞
等流量接管手段,实施节点仿冒、非法提权等攻击性测试手段;
扩展层测试用例:实施代码分析,发现智能合约中存在的控制流劫持、未授权访问、拒
绝服务等安全漏洞,验证合约虚拟机认证控制机制;
应用层测试用例:探测私钥管理机制、账号管理机制、应用软件漏洞,模拟流量攻击等
测试手段;
可能的各层间接口安全测试;
实施组合测试用例后,对测试结果进行去重、取样处理,标准化测试结果,包括但不限
于:
对测试结果中处于同一技术架构层、对同一测试对象造成影响的的安全风险项实施合
并去重;
对同一测试对象的概率性测试结果实施取样处理;
对测试标量不统一的测试结果实施归一化处理。
[0006] 测试结果采集经标准化处理后,评估系统根据测试结果对整个区块链架构的安全性进行量化评估,包括:
基于安全评估知识库,建立安全风险递阶层次结构;
根据区块链技术架构层次模型,建立安全风险判断指标项;
对各关键层级存在的安全风险实施两两比对,按9分位比率排定各层级安全风险的威
胁权重,依次构造出评估安全风险的判断矩阵 、归一化矩阵 和按行求和矩阵C;
矩阵A满足:
其中, 为要素与要素 为重要程度比较结果,且满足: , ;
将判断矩阵 每一列归一化,得到矩阵B:
,将矩阵B按行求和,得到矩阵C:
,矩阵C中元素代表安全评估知识库中安全风险对应的权重;
根据安全评估知识库计算出安全风险对应的权重后,量化区块链架构安全性。
[0007] 一种基于渗透性测试用例集的区块链架构安全评估系统,其特征在于,包括:评估初始化模块,确定测试需求、测试对象和测试目标,从测试用例集中选取针对性的
测试用例组合形成评估方案;
安全测试模块,根据测试自下而上对区块链平台存储层、协议层、扩展层和应用层进行
安全测试,并产生和记录安全测试结果;
结果采集模块,用于采集上述安全测试产生的结果,并对安全测试结果标准化处理和
反馈给安全评估模块;
安全评估模块,用于基于安全量化知识库和结果采集模块反馈的安全测试结果,对被
测架构的安全性进行评估。
[0008] 评估系统基于安全评估知识库对采集的安全测试结果进行安全评估,包括:根据安全测试结果中各区块链关键层级所包含的安全风险,基于安全评估知识库中计
算用于量化该类风险的权重,量化区块链平台安全性。
[0009] 本发明实施例中,安全评估的对象是区块链架构,对区块链架构的关键层进行安全测试,并产生和记录安全测试结果,当评估系统收到初始化的安全评估需求时,通过从测
试用例集中选取针对性的用例组合,采集安全测试结果,并基于区块链平台安全量化知识
库对安全测试结果进行量化分析。这样,便通过基于渗透性测试用例集的区块链架构安全
评估系统达到量化和评估区块链架构安全性的目的,并且,基于量化评估结果,在区块链平
台正式投入使用前,及时发现区块链平台安全风险,降低安全事件发生概率,达到推动区块
链平台安全发展的目的。
附图说明
[0010] 图1为本申请实施例中区块链架构安全评估系统架构图;图2为本申请实施例中区块链架构安全测试方案生成流程图
图3为本申请实施例中区块链架构安全评估流程图;
图4为本申请实施例中区块链安全风险递阶层次结构图。

具体实施方式

[0011] 为了实现及时发现区块链技术架构安全风险,提高区块链产品和服务安全性,促进区块链技术安全应用,本申请实施例中设计了一套新的安全评估系统,该安全评估系统
针对区块链技术架构,根据区块链技术架构层次特性,对其进行安全测试,根据测试结果评
估区块链技术架构安全性。
[0012] 下面结合附图对本申请的实施方式进行详细说明。
[0013] 参阅图1所示,基于区块链平台的安全评估系统至少包括评估初始化模块10,安全测试模块11、结果采集模块12、安全评估模块13、安全测试用例集14、安全评估知识库15;其
中,评估初始化模块10用于基于测试需求、测试对象和测试目标,从测试用例集14选取适合
的测试用例,形成针对性的评估方案并反馈给安全测试模块11;安全测试模块11用于根据
评估初始化模块10形成的评估方案对区块链平台各关键层级实施安全测试,并产生测试结
果;结果采集模块12用于采集安全测试模块11产生的安全测试结果,标准化处理后反馈给
安全评估模块13;安全评估模块13用于基于安全评估知识库,评估由结果采集模块12反馈
的安全测试结果中所包含的安全风险,量化区块链平台安全性。
[0014] 基于上述区块链架构安全评估系统,参阅图2所示,本申请实施例中,进行安全评估的具体流程如下:
步骤200:评估初始化模块10根据测试需求、测试对象和测试目标,从测试用例集14选
取测试用例,形成针对性的评估方案。
[0015] 测试用例集14所包含的测试用例包括:表1
关键层级 安全测试项 安全测试用例
应用层 A1、A2、A3、A4…..An 探测私钥管理机制、账号管理机制、应用软件漏洞,模拟流量攻击等测试手段等;
扩展层 E1、E2、E3、E4…..En 发现智能合约中存在的控制流劫持、未授权访问、拒绝服务等安全漏洞,验证合约虚拟机认证控制机制等;
协议层 P1、P2、P3、P4…..Pn 共识机制、P2P协议中存在安全漏洞,实施BGP劫持、窃听、阻塞等流量接管手段等;
存储层 S1、S2、S3、S4…..Sn LevelDB、Redis等数据库中可能存在的安全漏洞,实施DDoS攻击性测试,实施病毒木马攻击性测试等。
如图3所示,评估初始化模块根据待测区块链平台的特性,包括测试需求、测试对象、测
试目标,选取并组合A1、A4、E5、P11、S3、S17测试用例,形成安全测试方案,并反馈给安全测
试模块11;
步骤210:安全测试模块11根据安全测试方案,对区块链平台实施安全测试,并产生安
全测试结果。
[0016] 如图1所示,在实际区块链平台安全测试场景中,根据安全测试方案,每个层级可以实施的安全测试如下所示:
对区块链平台存储层区块链基础设施等核心功能的安全测试主要包括检测和测试是
否存在基础设施安全风险、网络攻击威胁、数据丢失和泄露风险等,包括:
基础设施安全风险,主要测试来自区块链存储设备自身以及所处环境的安全风险;
网络攻击威胁,测试包括是否存在可以被用于进行的DDoS攻击、病毒木马攻击等设备
硬件漏洞;
数据丢失和泄露风险,测试是否存在针对区块数据和数据文件的窃取、破坏,或因误操
作、系统故障、管理不善等。
[0017] 例如,对数据的安全测试项S17可以包括:当处理敏感数据时, 不以明文形式将数据写到其它单独的文件或者临时文件中;
数据备份应该加密, 恢复数据应考虑恢复过程的异常通讯中断等, 数据恢复后再使
用前应该经过校验;
在数据删除之前,应当通知用户或者应用程序提供一个“取消”命令的操作,并能够按
照设计要求实现其功能;
在没有用户明确许可的前提下不损坏删除个人信息管理应用程序中的任何内容等。
[0018] 对区块链平台协议层P2P网络等核心功能的安全测试主要包括区块链技术核心机制中是否存在潜在安全缺陷等,包括:
协议漏洞,测试是否存在针对共识机制漏洞的算攻击、分叉攻击、女巫攻击,以及是
否存在P2P协议缺陷;
流量攻击,测试是否存在BGP劫持、窃听、阻塞等安全风险;
未授权节点,测试区块链中是否存在未授权节点。
[0019] 例如,对P2P协议缺陷的安全测试P7可以通过长时间、无间断注册激活区块链社区空账户地址,测试区块链社区状态是否膨胀。
[0020] 对区块链平台扩展层智能合约等核心功能的安全测试主要包括测试代码实现中是否存在安全漏洞等,包括:
合约开发漏洞,在区块链钱包、众筹、代币发行等智能合约典型应用中,测试代码的安
全;
合约运行安全,合约虚拟机是区块链应用中智能合约的运行环境,测试合约虚拟机自
身是否存在安全漏洞,或验证,以及控制等机制是否完善。
[0021] 例如,对利用The DAO智能合约漏洞实施重入攻击的测试项E9可以包括以下步骤:构造恶意合约并调用The DAO智能合约的donate函数;
触发恶意合约的fallback函数,根据运行结果判断该智能合约是否存在漏洞。
[0022] 对区块链平台应用层app、Web等的安全测试主要包括测试是否存在传统安全隐患。
[0023] 对区块链应用层app的安全测试可以包括在身份标识和鉴别机制、口令复杂度检查功能、登陆失败处理功能、授权访问和控制功能、敏感信息标记功能、安全审计功能等;
例如,以身份标识和鉴别机制安全测试为例,包括以下测试项:
区块链app应提供专用的登录控制模块对登录用户进行身份标识和鉴别;
区块链app应提供用户身份标识唯一检查功能,保证应用系统中不存在重复用户身份
标识;
对区块链app的身份标识和鉴别机制安全测试项A5具体方法如下:
检查app是否有登陆模块,并检查用户是否可通过该模块进行身份鉴别;
检查用户的唯一身份标识符,并新建一个与现有用户身份标识符重复的用户,测试是
否可以通过该新建用户登录;
身份鉴别失败时,app应提供登录失败处理功能,可采取结束会话、限制非法登录次数
和自动退出等措施。
[0024] 对区块链应用层Web平台的安全测试包括SQL注入测试、XSS(跨站点脚本攻击)测试和CSRF(跨站点伪造请求)测试。
[0025] 例如,对区块链应用层Web平台XSS测试项A10可以包括以下步骤:读取Web平台代码,查找关键的变量;
客户端将数据传送给Web 服务端一般通过三种方式 Querystring,表单,以及cookie;
如果变量未进行Html编码处理,则该变量存在XSS安全风险。
[0026] 安全测试模块11在对区块链平台进行安全测试后,产生安全测试结果,包括安全测试日志等。
[0027] 步骤220:结果采集模块11采集待评估的区块链平台安全测试结果,对测试结果实施去重、取样和规范化处理,并反馈给安全评估模块13.
安全测试模块11产生安全测试结果后,由结果采集模块12进行采集,并对其进行去重、
取样等标准化处理,提取安全评估模块13所需要的字段,然后将标准化处理后的安全测试
结果发给安全评估模块13;
采取这种方式,将评估目标集中在关键字段,提高安全评估模块12的评估效率。例如,
标准化后的安全测试结果可包括的重点字段如表2所示:
表2
步骤230:安全评估模块13根据安全测试结果,基于安全评估知识库,如图4所示计算安
全风险权重,对区块链平台进行量化评估。
[0028] 安全评估模13接收结果采集模块12发送的标准化安全测试结果,从安全评估知识库中选取用于量化该类风险的权重,具体步骤包括:
测试结果产生并标准化后,根据测试结果对区块链平台进行安全评估,包括:
基于安全评估知识库,计算安全各类风险对应的危害权重,并根据权重,量化区块链平
台安全性。
[0029] 本申请实施例中,安全评估系统的对象是区块链平台,对区块链平台应用架构的各层进行安全测试,产生安全测试结果,当评估系统收到确定的安全评估需求时,由结果采
集模块采集,进行安全风险关键字标准化处理,并由安全评估模块基于安全评估知识库,量
化区块链平台安全性,达到识别和发现区块链平台安全风险的目的,并且,基于量化评估结
果,在区块链平台投入使用前在区块链平台正式投入使用前,避免安全事件的发生,达到推
动区块链平台安全发展的目的。
[0030] 本申请实施例可提供为方法、系统或计算机程序。因此,本申请可采用完全软件实施例或软件和硬件结合实施例的形式。而且,本申请可采用在一个或多个其中包含有计算
机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器
等)上实施的计算机程序产品的形式。
[0031] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优
选实施例以及落入本申请范围的所有变更和修改。
[0032] 显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求
及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈