一种基于组件依赖图的软件安全漏洞预测方法技术

技术编号:17467771 阅读:53 留言:0更新日期:2018-03-15 05:12
本发明专利技术提出一种基于组件依赖图的软件安全漏洞预测方法,从不同的角度提出了一种软件代码的度量指标来建立漏洞预测模型。包括以下步骤:步骤一、建立所预测软件的组件依赖图:步骤二、计算步骤一所述组件依赖图中每个节点的网络属性值;步骤三、从公开的软件漏洞库中搜集针对所预测软件的所有软件漏洞,建立该软件的历史漏洞库;步骤四、步骤二中计算得到的每个节点的网络属性值作为机器学习算法的输入,将步骤三中漏洞的数量作为机器学习算法的输出,对机器学习算法进行训练和测试,根据机器学习算法的性能评价指标确定性能最优的预测模型;步骤五、将第四步中获得的性能最优的预测模型应用于该软件项目的新的软件组件的漏洞预测。

【技术实现步骤摘要】
一种基于组件依赖图的软件安全漏洞预测方法
本专利技术涉及一种基于组件依赖图的软件安全漏洞预测方法,属于软件质量保障

技术介绍
目前,很多文献资料对软件安全漏洞的预测进行研究,建立漏洞预测模型(VulnerabilityPredictionModel,VPM)。漏洞预测模型采用机器学习算法,从软件代码中提取代码的度量指标作为特征,从大量已知具有漏洞的代码中获取指标数据对模型进行训练,训练之后的模型可对新的代码中的漏洞进行预测。预测的结果给出模块具有漏洞的可能性,或者模块存在漏洞的数量。VPM的研究思路和方法主要借鉴了软件缺陷预测模型(DefectPredictionModel,DPM)的研究思路和方法,其软件代码的度量指标主要包括三个方面:代码复杂性、耦合性以及内聚性指标。研究资料认为高的复杂性、高的耦合性以及低内聚性能够造成软件开发人员对软件的理解、开发、测试以及维护的困难,因此能够引起软件系统中存在安全漏洞。软件复杂性、耦合性以及内聚性指标最早被用于软件缺陷的预测中,由于软件安全漏洞被认为是软件缺陷的子集,因此有人将这些指标用于软件安全漏洞的预测。Y.Shin等分析了9个本文档来自技高网...
一种基于组件依赖图的软件安全漏洞预测方法

【技术保护点】
一种基于组件依赖图的软件安全漏洞预测方法,其特征在于,包括以下步骤:步骤一、建立所预测软件的组件依赖图:所述组件是一个三元组C<DC,MC,RC>,其中,DC是共享变量或数据成员的集合,MC是函数或方法的集合,RC是组件中成员之间关系的集合;软件系统网络图定义为GSN(V

【技术特征摘要】
1.一种基于组件依赖图的软件安全漏洞预测方法,其特征在于,包括以下步骤:步骤一、建立所预测软件的组件依赖图:所述组件是一个三元组C&lt;DC,MC,RC&gt;,其中,DC是共享变量或数据成员的集合,MC是函数或方法的集合,RC是组件中成员之间关系的集合;软件系统网络图定义为GSN(Vd,Vm,Ec,Er,Ed,W),其中,Vd:是数据项节点的集合;Vm:是可执行代码节点的集合;是函数调用边的集合;是函数返回边的集合;是数据边的集合,包括数据读和数据写;W:表示边的权值集合;设P(m)表示函数m的参数个数,B(m)表示函数m的返回点个数,e&lt;m1,m2&gt;表示节点m1指向节点m2的边,如果e&lt;m1,m2&gt;∈Er,则W(e&lt;m1,m2&gt;)=B(m1);如果当m2∈Vd,则W(e&lt;m1,m2&gt;)=1;当m2∈Vm,则W(e&lt;m1,m2&gt;)=P(m2);将同属于一个组件的所有节点合并成一个节点,连接同一个组件的所有相同方向的边合并成一条边,边的权值求和;步骤二、计算步骤一所述组件依赖图中每个节点的网络属性值,该网络属性值即是建立预测模型的度量元指标;步骤三、从公开的软件漏洞库中搜集针对所预测软件的所有软件漏洞,建立该软件的历史漏洞库,并标明每...

【专利技术属性】
技术研发人员:危胜军林婷单纯胡昌振何涛
申请(专利权)人:北京理工大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1