一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面向硬件系统多维脆弱性的快速探测方法

2022-06-29 08:03:51 来源:中国专利 TAG:

1.本发明涉及硬件安全领域,具体涉及一种面向硬件系统多维脆弱性的快速探测方法。
背景技术
:2.硬件系统作为互联网的基础设备,只有其能可靠的收集、交换以及处理数据,互联网才能正常执行功能。在很长一段时间内,硬件系统在制造后都被认为是安全可靠的,然而随着信息技术的发展,针对硬件系统的攻击越来越多,因此急需硬件脆弱性分析方法。3.硬件系统脆弱性分析主要包括设计、测试以及运行共三个阶段,但是根据bakirtzisg等人的文献可知大部分的硬件缺陷都是在设计阶段引入的(参见“data-drivenvulnerabilityexplorationfordesignphasesystemanalysis”,bakirtzisg,simonbj,collinsag,etal.,ieeesystemsjournal,2019,14(4):4864-4873),同时设计阶段相较于后两个阶段来说,硬件架构方便更改,更加容易消除脆弱性,因此我们重点研究设计阶段的脆弱性探测技术。4.针对设计阶段的脆弱性探测技术研究持续了很多年,主要可分为两大类:软件脆弱性探测技术和硬件脆弱性探测技术。5.(1)软件:软件设计包含两个阶段:架构设计和代码设计,前者是用文档描述顶层系统的架构信息,后者是完成系统的详细代码设计。针对架构设计阶段,通常用基于设计文档建立的模型来表示系统的架构,以支持系统的脆弱性分析。例如,数据流图(dataflowdiagram,dfd)(参见“structureanalysisandsystemspecification[m]”,demarcot,pioneersandtheircontributionstosoftwareengineering.springer,berlin,heidelberg,1979:255-288),它显示了信息如何从一个模块转移到另一个模块,以及如何离开系统。数据流图是威胁建模的第一步(参见“developer-driventhreatmodeling:lessonslearnedinthetrenches”,dhillond,ieeesecurity&privacy,2011,9(4):41-47),支持系统威胁分析。jürjens提出了统一安全性建模语言(unifiedmodelinglanguagesecurity,umlsec)(参见“jürjensj.umlsec:extendingumlforsecuresystemsdevelopment,internationalconferenceontheunifiedmodelinglanguage.springer,berlin,heidelberg,2002:412-425”),它是uml的安全性扩展,使设计人员能够在系统架构图中表示安全属性与约束,并支持从不同的角度描述系统架构。针对代码设计阶段,常用静态分析方法定位脆弱性。该方法自动检查系统代码而不实际执行它们,大大降低了传统的基于专家的脆弱性分析方法的人力成本和时间成本。然后,李珍等人(参见“vuldeepecker:adeeplearning-basedsystemforvulnerabilitydetection”,liz,zoud,xus,etal.,arxivpreprintarxiv:1801.01681,2018)首先提出了一种基于深度学习的脆弱性探测系统,该系统使用国家漏洞数据库(nationalvulnerabilitydatabase,nvd)和软件保障数据集(softwareassurancereferencedataset,sard)项目作为数据集,通过学习漏洞特征定位有问题的代码,该方法相较于传统的静态分析方法来说提高了脆弱性检测率。[0006](2)硬件:硬件系统的设计包含两个阶段:芯片级硬件设计与系统级硬件设计。针对芯片级硬件设计阶段,通常使用形式化验证的方法(例如模型检测和定理证明)验证芯片设计是否安全。定理证明技术使用形式化语言描述芯片的设计规范,并将电路的安全属性转化为逻辑定理,通过定理自动验证电路设计是否符合安全属性。例如love等(参见“proof-carryinghardwareintellectualproperty:apathwaytotrustedmoduleacquisition”,lovee,jiny,makrisy,ieeetransactionsoninformationforensicsandsecurity,2011,7(1):25-40)开发了pchip(proof-carryinghardwareintellectualproperty)框架,该框架利用coq定理证明语言表示硬件描述语言(hardwaredescriptionlanguage,hdl)并构造安全属性定理,形式化验证电路的hdl代码是否遵循一组安全属性。bidmeshki等在pchip的基础上(参见“averilog-to-coqconverterforproof-carryinghardwareautomation”,bidmeshkimm,makrisy.vericoq,2015ieeeinternationalsymposiumoncircuitsandsystems(iscas).ieee,2015:29-32),实现了寄存器传输级别(rtl)verilog代码到coq定理证明语言的自动转换。模型检查方法使用模型来描述芯片的行为和结构,通过算法穷举式遍历验证模型的状态空间,验证芯片模型的各种属性。例如,bradley提出了一种基于sat的模型检测算法ic3(incrementalconstructionofinductiveclausesforindubitablecorrectness)(参见“sat-basedmodelcheckingwithoutunrolling”,bradleyar,internationalworkshoponverification,modelchecking,andabstractinterpretation.springer,berlin,heidelberg,2011:70-87),该算法利用并行计算环境来更快地验证安全属性。随后,eén等人开发了pdr算法(propertydirectedreachability,pdr)(参见“efficientimplementationofpropertydirectedreachability”,eénn,mishchenkoa,braytonr,2011formalmethodsincomputer-aideddesign(fmcad).ieee,2011:125-134),这是另一种比ic3更简化、更快的模型检查算法。[0007]在系统级,漏洞通常来自两个维度。横向来说,系统由芯片互联构成模块、由模块互联构成设备,单个芯片、模块和系统都有可能存在漏洞,同时它们之间的通信也会存在漏洞。纵向来说,单个芯片无法执行功能,芯片需要操作系统和固件对其进行控制才能工作,而系统内使用的操作系统和固件有可能存在漏洞,以及其与硬件的协同工作也有可能存在漏洞。目前,硬件系统漏洞消除的研究尚为空白,如何准确地检测系统中多维度脆弱性是该领域的一个挑战。[0008]综上所述,我们可以得知在软件设计阶段的脆弱性探测技术已有大量的成果。对于硬件设计方面,针对芯片级硬件的脆弱性探测技术有一定的研究成果,而对系统级硬件的脆弱性探测技术方法十分欠缺。因此,本发明在设计阶段探测硬件系统多维度脆弱性。技术实现要素:[0009]本发明提出了面向硬件系统多维脆弱性的快速探测方法,目的是在硬件系统的设计阶段探测不同维度的脆弱性,并及时修改硬件系统架构避免脆弱性的产生,减少硬件系统在后期无法修改架构时通过增加安全性补丁消除脆弱性所需要的成本,提高系统安全性防御水平。[0010]本发明提出了一种面向硬件系统多维脆弱性的快速探测方法,具体包括如下步骤:[0011]步骤s1)构建硬件系统特征集[0012]选取6个硬件系统架构的关键特征作为硬件系统特征集,所述6个硬件系统架构的关键特征为芯片、模块、设备、操作系统、固件和通信协议;该硬件系统特征集不仅能够表征一般的硬件系统架构,同时也能够将漏洞条目表征为能够触发漏洞的硬件系统架构,支持其脆弱性分析;[0013]步骤s2)构建硬件系统数据[0014]采用硬件系统的架构文档作为设计数据实现硬件脆弱性探测,首先,基于硬件系统特征集,识别硬件系统的架构文档中的特征元素,随后,基于特征元素将硬件系统s转化为四部分数据,包括架构元素集合es、关系矩阵rs、架构元素标签集合les和关系标签矩阵rls;[0015]其中,es是组成硬件系统的架构元素集合,包含n个元素,形式如下所示:[0016]es={es|es=组成硬件系统的架构元素}[0017]rs是储存系统架构元素之间的连接关系的矩阵,大小为n×n,形式如下所示:[0018][0019]其中rsi,j对应架构元素esi和元素esj之间是否有连接关系,有连接关系则rsi,j=1,无连接关系则rsi,j=0,i,j=1,2,…,n;[0020]les是架构元素标签集合,包含n个标签,形式如下所示:[0021]les={les|les=架构元素的标签}[0022]其中les是一个大小为1×4的向量,形式如下所示:[0023]les=(ts,fs,ns,ws)[0024]其中ts描述架构元素的特征类别;fs描述架构元素的功能类别,形式如下所示:[0025]fs={fs1,fs2,…,fsh}[0026]fsk,k=1,2,…,h表示硬件元素的一种功能,h为硬件元素功能类别总数,软件元素的的其中,硬件元素包括芯片、模块和设备;软件元素包括操作系统和固件;ns是架构元素的名称;ws是版本号,表示固件或者操作系统元素的版本号,硬件元素的ws="null";[0027]rls是储存连接关系的标签矩阵,大小为2×n×n,形式如下所示:[0028][0029]其中rlsi,j是一个大小为1×2的向量,表示关系矩阵rs中矩阵元素rsi,j的标签,形式如下所示:[0030]rlsi,j=(q,p)[0031]其中,q是连接类别,描述架构元素与架构元素之间的连接形式,包括“通信”与“控制”两种连接形式,“通信”用于描述硬件与硬件元素之间的连接形式,“控制”用于描述软件与硬件元素之间的连接形式;p是通信方式,描述硬件元素之间以何种协议进行通信,当rlsi,j[q]=“通信”时,rlsi,j[p]=具体通信协议;当rlsi,j[q]=“控制”时,rlsi,j[p]="null";[0032]步骤s3)构建漏洞数据库[0033]选取开源漏洞数据库nvd作为漏洞数据库d的数据源,随后基于硬件系统特征集,将开源漏洞数据库中的漏洞条目转换成共k条漏洞记录vk添加至漏洞数据库d中,其中k=1,2,…,k;单条漏洞记录vk包含四部分数据,分别是触发元素集合ev、关系矩阵rv、触发元素标签集合lev和关系标签矩阵rlv;[0034]其中,ev是漏洞记录中含有的能触发对应漏洞条目的硬件系统架构元素集合,包含m个元素,形式如下所示:[0035]ev={ev|ev=能够触发漏洞的架构元素}[0036]rv是储存漏洞记录触发元素之间的连接关系的矩阵,大小为m×m,形式如下所示:[0037][0038]其中rvi′,j′对应触发元素evi′和元素evj′之间的是否有连接关系,有连接关系则rvi′,j′=1,无连接关系则rvi′,j′=0,i′,j′=1,2,…,m;[0039]lev是触发元素标签的集合,包含m个标签,形式如下所示:[0040]lev={lev|lev=触发元素的标签}[0041]其中lev是一个大小为1×5的向量,形式如下所示:[0042]lev=(iv,tv,fv,nv,wv)[0043]其中iv描述漏洞条目的编号,同一个vk内所有触发元素的标签向量中iv值相同;tv描述触发元素的可能的硬件特征,形式如下所示:[0044]tv={tv1,tv2,…,tvh′}[0045]tvk′,k′=1,2,…,h′表示触发元素的可能的硬件特征类别,h′为触发元素可能的硬件特征类别总数;fv描述触发元素功能类别;nv是触发元素的名称;wv是版本号,表示固件或者操作系统元素的版本号,硬件元素的wv="null";[0046]rlv是储存连接关系的标签的矩阵,大小为2×m×m,形式如下所示:[0047][0048]其中rlvi′,j′是一个大小为1×2的向量,表示关系矩阵中元素rvi′,j′的标签,形式如下所示:[0049]rlvi′,j′=(q,p)[0050]当rlvi′,j′[q]=“通信”时,rlvi′,j′[p]=具体通信协议;当rlvi′,j′[q]=“控制”时,rlvi′,j′[p]="null"(本发明中向量后接[*]表示该向量中的*取值);[0051]同一个漏洞的任意一条漏洞记录匹配成功后其余漏洞记录不做遍历;[0052]步骤s4)硬件系统漏洞搜索[0053]基于构建的硬件系统数据与漏洞数据库,设计漏洞搜索算法,找到漏洞数据库d中所有能匹配于硬件系统s的漏洞记录vk;[0054]步骤s5)输出系统漏洞结果[0055]经过漏洞搜索算法对漏洞数据库进行遍历匹配后,得到了硬件系统中存在的满足触发条件的漏洞条目集合a,因此输出集合a作为硬件系统漏洞结果。[0056]本发明提出的面向硬件系统多维脆弱性的快速探测方法可以基于硬件系统的设计文档和漏洞数据库进行脆弱性探测,在硬件系统的设计阶段发现系统内存在的不同维度协同工作产生的多维度脆弱性,支持在设计阶段及时更改系统架构消除脆弱性。因此,本发明为硬件系统设计中引入的漏洞提供了一种有效的探测方法,保障了硬件系统设计的安全性。附图说明[0057]图1是本发明面向硬件系统多维脆弱性的快速探测方法流程图;[0058]图2是本发明硬件漏洞搜索算法流程图。具体实施方式[0059]为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,所描述的实施例是本发明一部分实施例,而不是全部的实施例,也并非旨在限制要求保护的本发明的范围。本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0060]本发明提出面向硬件系统多维脆弱性的快速探测方法,具体的步骤流程图如图1所示。首先,根据硬件系统的结构抽取硬件系统特征集;其次,基于硬件系统特征集,构建硬件系统数据与漏洞数据库;最后,通过漏洞搜索算法找到能够匹配成功的漏洞条目与硬件系统,实现多维度脆弱性探测。[0061]步骤1:构建硬件系统特征集[0062]首先,为了在硬件系统早期阶段检测设计中存在的脆弱性,我们需要对硬件系统的设计文档进行分析。由于设计文档中存在过多的无用信息,无法精准找到其中隐藏的脆弱性,因此我们需要构建一组通用的特征集用于描述现代任何硬件系统的架构,并支持脆弱性的精准定位。[0063]通过对大量硬件系统的架构进行深度研究后,我们从中抽取了6个硬件系统架构的关键特征作为硬件系统特征集(芯片,模块,设备,操作系统,固件,通信协议)。该特征集不仅能够表征一般的硬件设备架构,同时也能够将漏洞条目表征为能够触发漏洞的硬件系统架构,支持其脆弱性分析。[0064]步骤2:构建硬件系统数据[0065]设计数据包含硬件系统的需求、功能、逻辑与架构等文档。其中,架构文档主要描述了硬件系统的组成结构,包括系统内电子器件清单、描述硬件连接的电路图以及硬件上部署的软件(操作系统和固件)清单。本发明仅用系统的架构文档作为设计数据实现硬件脆弱性探测。[0066]首先,基于硬件系统特征集,识别硬件系统的架构设计文档中的特征元素。随后,基于特征元素将硬件系统s转化为四部分数据,包括架构元素集合es,关系矩阵rs,架构元素标签集合les和关系标签矩阵rls。[0067]es是组成硬件系统的架构元素集合,包含n个元素,形式如下所示:[0068]es={es|es=组成硬件系统的架构元素}[0069]rs是储存系统架构元素之间的连接关系的矩阵,大小为n×n,形式如下所示:[0070][0071]其中rsi,j对应架构元素esi和元素esj之间是否有连接关系,有连接关系则rsi,j=1,无连接关系则rsi,j=0,i,j=1,2,…,n。[0072]les是架构元素标签集合,包含n个标签,形式如下所示:[0073]les={les|les=架构元素的标签}[0074]其中les是一个大小为1×4的向量,形式如下所示:[0075]les=(ts,fs,ns,ws)[0076]其中ts描述架构元素的特征类别。fs描述架构元素的功能类别,形式如下所示:[0077]fs={fs1,fs2,…,fsh}[0078]fsk,k=1,2,…,h表示硬件元素(芯片、模块和设备)的一种功能,h为硬件元素功能类别总数,软件元素(操作系统和固件)的ns是架构元素的名称。ws是版本号,表示固件或者操作系统元素的版本号,硬件元素的ws="null"。[0079]rls是储存连接关系的标签矩阵,大小为2×n×n,形式如下所示:[0080][0081]其中rlsi,j是一个大小为1×2的向量,表示关系矩阵rs中矩阵元素rsi,j的标签,形式如下所示:[0082]rlsi,j=(q,p)[0083]q是连接类别,描述架构元素与架构元素之间的连接形式,包括“通信”(硬件与硬件元素)与“控制”(软件与硬件元素)两种连接形式,p是通信方式,描述硬件元素之间以何种协议进行通信,当rlsi,j[q]=“通信”时rlsi,j[p]=具体通信协议,软件与硬件元素之间的“控制”连接关系的rlsi,j[p]="null"(本发明中向量后接[*]表示该向量中的*取值)。[0084]步骤3:构建漏洞数据库[0085]在本发明中,我们基于开源漏洞数据库挖掘硬件系统多维脆弱性,我们选取开源漏洞数据库nvd作为本发明的漏洞数据库d的数据源。随后,我们基于硬件系统特征集,将开源漏洞数据库中的漏洞条目转换成共k条漏洞记录vk(k=1,2,…,k)添加至漏洞数据库d中。单条漏洞记录vk包含四部分数据,分别是触发元素集合ev,关系矩阵rv,触发元素标签集合lev和关系标签矩阵rlv。[0086]ev是漏洞记录中含有的能触发对应漏洞条目的硬件系统架构元素集合,包含m个元素,形式如下所示:[0087]ev={ev|ev=能够触发漏洞的架构元素}[0088]rv是储存漏洞记录触发元素之间的连接关系的矩阵,大小为m×m,形式如下所示:[0089][0090]其中rvi′,j′对应触发元素evi′和元素evj′之间的是否有连接关系,有连接关系则rvi′,j′=1,无连接关系则rvi′,j′=0,i′,j′=1,2,…,m。[0091]lev是触发元素标签的集合,包含m个标签,形式如下所示:[0092]lev={lev|lev=触发元素的标签}[0093]其中lev是一个大小为1×5的向量,形式如下所示:[0094]lev=(iv,tv,fv,nv,wv)[0095]其中iv描述漏洞条目的编号,同一个vk内所有触发元素的标签向量中iv值相同。tv描述触发元素的可能的硬件特征,形式如下所示:[0096]tv={tv1,tv2,…,tvh′}[0097]tvk′,k′=1,2,…,h′表示触发元素的可能的硬件特征类别,h′为触发元素可能的硬件特征类别总数。fv描述触发元素功能类别。nv是触发元素的名称。wv是版本号,表示固件或者操作系统元素的版本号,硬件元素的wv="null"。[0098]rlv是储存连接关系的标签的矩阵,大小为2×m×m,形式如下所示:[0099][0100]其中rlvi′,j′是一个大小为1×2的向量,表示关系矩阵中元素rvi′,j′的标签,形式如下所示:[0101]rlvi′,j′=(q,p)[0102]q是连接类别,描述架构元素与架构元素之间的连接形式,包括“通信”(硬件与硬件元素)与“控制”(软件与硬件元素)两种连接形式,p是通信方式,描述硬件元素之间以何种协议进行通信,当rlvi′,j′[q]=“通信”时rlvi′,j′[p]=具体通信协议,软件与硬件元素之间的“控制”连接关系的rlvi′,j′[p]="null"(本发明中向量后接[*]表示该向量中的*取值)。[0103]需要注意的是,同一个漏洞的任意一条漏洞记录匹配成功后其余漏洞记录不做遍历。[0104]步骤4:硬件系统漏洞搜索[0105]基于构建的硬件系统数据与漏洞数据库,设计漏洞搜索算法,找到漏洞数据库d中所有能匹配于硬件系统s的漏洞记录vk。所述漏洞搜索算法流程图如图2所示,总共包含三个步骤。[0106]第一步:元素映射矩阵生成[0107]该步骤构建触发元素到架构元素的映射矩阵mf,大小为m×n,mf中矩阵元素mfi′,j表示ev中第i′个元素evi′与es中第j个元素esj的映射关系(i′=1,2,…,m;j=1,2,…,n),当同时满足下列条件时mfi′,j=1,否则mfi′,j=0。[0108]lesj[ts]∈lesi′[tv][0109]levi′[fv]∈lesj[fs][0110]levi′[nv]=lesj[ns]orlevi′[nv]="null"[0111]levi′[wv]=lesj[ws][0112]对于条件lesj[ts]εlevi′[tv],架构元素的特征类别只有一个值,为芯片、模块、设备、操作系统或者固件的其中之一,而触发元素的特征类别能够是前面芯片、模块、设备、操作系统或者固件这五个类别中的多个值,因此需要满足触发元素的特征类别包含架构元素的特征类别;[0113]对于条件(levi′[fv]∈lesj[os])。架构元素的功能类别有多个值,触发元素的功能类别只有一个值,因此需要满足架构元素的功能类别包含触发元素的功能类别。[0114]对于条件(levi′[nv]=lesj[ns]orlevi′[nv]="null")。需要满足架构元素和触发元素的元素名称相同,或者触发元素没有名称。[0115]对于条件(levi′[wv]=lesj[ws])。需要满足架构元素和触发元素的版本号相同。[0116]该步骤目的是为了确保所有漏洞触发元素在系统中都存在架构元素与之映射,实现元素验证,具体分为以下10个子步骤:[0117](1)元素映射矩阵初始化[0118]若遍历完数据库d中所有漏洞记录,则退出算法,否则遍历漏洞记录vk。并遍历元素映射矩阵mf,令所有矩阵元素mfi′,j=0。[0119](2)重复检测[0120]判断集合lev中任意标签向量levi′中的levi′[iv]的值是否在漏洞条目集合a中,若存在,则返回(1),否则进入(3)。[0121](3)查找触发元素类别[0122]若vk中所有触发元素已遍历完,则跳至(10),否则遍历触发元素evi′,i′=1,2,…,m,找到其对应的标签向量levi′。[0123](4)特征标签判定[0124]若硬件系统数据s中所有架构元素已遍历完,则跳至(9),否则遍历架构元素esj,判断lesj[ts]∈lesi′[tv]是否成立,若不成立,则退出此次遍历,重复此步骤遍历下一个架构元素esj 1,否则进入(5)。[0125](5)类型标签判定[0126]判断levi′[fv]∈lesj[fs]是否成立,若不成立,则退出此次遍历,返回(4),否则进入(6)。[0127](6)名称标签判定[0128]判断levi′[nv]是否为空,若为空,则进入(7),否则判断levi′[nv]=lesj[ns]是否成立,若不成立,则退出此次遍历,返回(4),否则进入(7)。[0129](7)名称标签判定[0130]判断levi′[wv]=lesj[ws]是否成立,若成立,则认为两个标签向量levi′和lesj等价,认为esj与evi′相映射,进入(8)。否则,返回(4)。[0131](8)元素过滤[0132]此步骤是根据元素的邻接关系来进行筛选,提前过滤掉后面由于关系矩阵与关系标签不同导致漏洞条目无法匹配成功的架构元素,加快该算法的搜索速度。[0133]基于漏洞条目的连接关系矩阵rv找到与触发元素evi′存在连接关系的触发元素集合{eva|eva=与evi′有连接关系的触发元素},根据相邻集合中所有触发元素的标签向量构建其邻接元素向量集合nevi′={leva|leva=触发元素eva的标签向量},同理构建架构元素esj的邻接元素向量集合nesj,判断nevi′是否是nesj的子集,若是,则将元素映射对(evi′,esj)添加至候选集c中,返回(3),否则,返回(4)。[0134](9)匹配失败判定[0135]若候选集c中不包含当前触发元素evi′的元素映射对,则说明该触发元素evi′在系统中无架构元素与之映射,认为此条漏洞记录匹配失败,退出遍历,并返回(1)。否则,返回(3)。[0136](10)元素映射矩阵生成[0137]遍历候选映射对集合c,根据映射对(evi′,esj)令mf中元mfi′,j=1。[0138]第二步:元素验证矩阵生成[0139]元素映射矩阵mf包含了单条漏洞记录vk所有漏洞触发元素evi′与其在系统s中能够映射的元素esj的映射对(evi′,esj)。由于每个漏洞触发元素evi′可能存在多个映射对,因此我们需要每次选取所有触发元素evi′的任意一个映射对组成一个待验证映射对集合,保证待验证映射对集合中每一个触发元素evi′只能与系统s中的一个架构元素映射,同时系统s中的任意一个架构元素不能存在一个以上的映射对。因此,该步骤的流程如下:[0140](1)映射子矩阵生成[0141]对mf中每一行任取一个值为1的矩阵元素保留,其余矩阵元素置为0,得到多个映射子矩阵(mf1,mf1,...,mfb,...,mfb),b为映射子矩阵的数量,将所有映射子矩阵添加至元素验证矩阵集合f。[0142](2)矩阵筛选[0143]映射子矩阵mfb可能存在不同的触发元素与同一个的架构元素esi相映射,我们需要删除这些矩阵,因此步骤如下:[0144]遍历映射子矩阵mfb的每一列的所有矩阵元素,判断同一列中矩阵元素等于1的个数,若同一列中不止一个值等于1的矩阵元素,则在元素验证矩阵集合f删除当前映射子矩阵mfb,否则,进入第三步。[0145]第三步:关系及关系标签验证[0146]若元素验证矩阵集合f中的所有元素验证矩阵已满足触发元素的映射,在该步骤中需要验证触发元素之间的连接关系及连接关系所对应的标签是否能够映射,分为以下四个子步骤:[0147](1)计算关系验证矩阵[0148]遍历集合f中的元素验证矩阵mfb,计算关系验证矩阵me=mfbrs(mfb)t中的元素值(其中上标t表示矩阵的转置)。[0149](2)关系矩阵映射判定[0150]矩阵mfb的行对应的是触发元素,列对应的是架构元素,矩阵元素值为1则表示触发元素和架构元素能够映射。因此对系统架构连接关系矩阵rs左乘mfb进行行变换,右乘(mfb)t进行列变换后的矩阵me表示根据对应关系将矩阵rs中架构元素的位置调整至与漏洞触发元素关系矩阵rv的位置相同。[0151]因此判断me=rv是否成立,若成立,则表明漏洞触发元素的交互关系在其映射的系统架构元素之间的连接关系映射成功。若不成立,则退出遍历跳至第三步的(1)。[0152](3)计算关系标签验证矩阵[0153]计算关系标签验证矩阵ml=mfbrls(mfb)t中的元素值。[0154](4)关系标签矩阵映射判定[0155]与关系矩阵同理,判断ml=rlv是否成立,若成立,则认为关系标签也映射成功,将漏洞条目编号值levi′[iv]添加至漏洞集合a中,若不成立,则退出遍历跳至第三步的(1)。[0156]步骤5:输出系统漏洞结果[0157]经过漏洞搜索算法对漏洞数据库进行遍历匹配后,得到了系统中存在的满足触发条件的漏洞条目集合a,因此输出集合a作为系统漏洞结果。[0158]实施例[0159]根据本发明的内容,我们分别从物联网架构的云端-管端-终端部分选取了几个硬件系统,在网上爬取了所有实验硬件系统的设计信息,并通过步骤2构建硬件系统的设计信息数据,实验设备如表1所示。[0160]表1实验设备信息[0161][0162][0163]随后,通过步骤3将开源漏洞数据库nvd中的漏洞条目转换为漏洞记录,构成漏洞数据库d。[0164]最后,基于我们定义的漏洞搜索算法、设计数据与漏洞数据进行硬件系统脆弱性探测,搜索结果如表2所示。[0165]如表2所示,我们的方法在4个设备(redminote4x、lemfolem8、thinkpadx280ahk和hpenvy795-0020)的设计信息中找到了共11个已发布的脆弱性,这些设备发布时间都在脆弱性发布之后,因此说明硬件设备存在引入重复脆弱性的问题。此外,我们成功验证这些脆弱性真实存在,说明我们的方法能够有效的在硬件系统设计阶段探测到系统多维度脆弱性,在设计阶段提升硬件系统的安全性,减少后期返工或增加安全机制的成本。[0166]表2实验设备漏洞搜索结果[0167][0168]尽管上面对本发明说明性的具体实施方式进行了描述,以便于本
技术领域
的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本
技术领域
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献