软件系统漏洞风险评估方法及装置的制造方法

文档序号:9327238阅读:616来源:国知局
软件系统漏洞风险评估方法及装置的制造方法
【技术领域】
[0001] 本发明涉及信息安全技术领域,尤其涉及一种软件系统漏洞风险评估方法及装 置。
【背景技术】
[0002] 随着软件系统越来越复杂,规模越来越庞大,促使了组件化软件开发等现代软件 工程方法的应用,软件系统往往不会从零全新开发,而会大量引用或依赖于其他第三方软 件。这些软件以软件包、组件、函数库、模块、Web服务等形式存在,通过一致的接口规范, 使用函数调用、数据传递、模块组合等方式进行交互,可共同组成大规模复杂的大型软件系 统。组件化的软件工程开发方法,有利于组件的重用,可快速利用已有的组件构建复杂应 用,能够大幅提高软件开发效率。一些组件由于实现了重要的基础功能,并且可免费获取开 放源代码,具有较高的声誉和很广的使用范围,因此这些组件更可能被用于其他软件系统 的开发。
[0003] 尽管依赖第三方软件包有利于进行软件系统的开发,但是给软件系统的安全带来 潜在的隐患。这主要是因为开发者使用第三方软件包时,往往会因为软件包是开放的而且 具有较高的声誉,只重视其所提供的功能而不会对软件包的安全性进行审计,当软件系统 引入软件包时则可能将其脆弱性一并带入;其次,软件测试或维护人员往往将工作重心放 置在自身业务功能方面,容易忽视对所依赖的第三方软件包进行及时的升级和维护。
[0004] 目前,用于软件系统安全风险评估的技术手段有:功能验证、安全漏洞扫描、模拟 攻击和侦听技术。
[0005] 功能验证是采用软件黑盒测试方法对具体的软件功能模块进行验证。该方法适合 对单个软件模块或小型软件系统进行评估,而难以用于大规模复杂软件系统。
[0006] 安全漏洞扫描通常借助特定的漏洞扫描器对软件系统进行检测,能够发现系统中 存在的安全漏洞,有利于及时防范避免造成严重的危害。该方法不能有效评估安全漏洞对 整体系统的影响,而且往往不能发现新近披露的漏洞。
[0007] 模拟攻击测试也称渗透测试,采用模拟拒绝服务、缓冲区溢出、木马病毒等实际攻 击手段来验证软件系统的安全防护能力。该技术手段类似于一组特殊的软件黑盒测试案 例,对系统的测试覆盖率难以保证。
[0008] 侦听技术主要是通过分析系统的运行轨迹、运行中的行为以及数据通信等信息, 从而推断系统的安全性。该方法难以全面、准确地评估软件系统的安全性。
[0009] 在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
[0010] 现有的软件系统安全风险评估方法不能直观准确地对软件系统存在的安全风险 进tx综合评估。

【发明内容】

[0011] 本发明提供的软件系统漏洞风险评估方法及装置,能够对软件系统的安全风险进 行直观准确的综合评估。
[0012] 一方面,本发明提供一种软件系统漏洞风险评估方法,包括:
[0013] 对软件系统中的软件包依赖元数据进行预处理,构建软件依赖网络,其中,所述软 件包依赖元数据为所述软件系统中记录所有软件包信息的文件;
[0014] 获取漏洞信息,根据所述漏洞信息构建漏洞与软件包之间的关联关系;
[0015] 根据所述软件依赖网络和所述漏洞与软件包之间的关联关系,查询存在漏洞的软 件包以及直接或间接依赖所述软件包的其他软件包,构建软件包依赖关系子图;
[0016] 基于所述软件包依赖关系子图中各节点的重要程度,评估漏洞对整体软件系统的 安全风险。
[0017] 另一方面,本发明提供一种软件系统漏洞风险评估装置,包括:
[0018] 依赖网络构建单元,用于对软件系统中的软件包依赖元数据进行预处理,构建软 件依赖网络,其中,所述软件包依赖元数据为所述软件系统中记录所有软件包信息的文 件;
[0019] 关联关系构建单元,用于获取漏洞信息,根据所述漏洞信息构建漏洞与软件包之 间的关联关系;
[0020] 依赖关系子图构建单元,用于根据所述软件依赖网络和所述漏洞与软件包之间的 关联关系,查询存在漏洞的软件包以及直接或间接依赖所述软件包的其他软件包,构建软 件包依赖关系子图;
[0021] 风险评估单元,用于基于所述软件包依赖关系子图中各节点的重要程度,评估漏 洞对整体软件系统的安全风险。
[0022] 本发明提供的软件系统漏洞风险评估方法及装置,对软件系统中的软件包依赖元 数据进行预处理,构建软件依赖网络,并获取漏洞信息,根据所述漏洞信息构建漏洞与软件 包之间的关联关系,根据所述软件依赖网络和所述漏洞与软件包之间的关联关系,查询存 在漏洞的软件包以及直接或间接依赖所述软件包的其他软件包,构建软件包依赖关系子 图,基于所述软件包依赖关系子图中各节点的重要程度,评估漏洞对整体软件系统的安全 风险。与现有技术相比,本发明基于软件依赖网络来评估漏洞对软件系统带来的影响,能够 对软件系统的安全风险进行更加直观准确的综合评估。
【附图说明】
[0023] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它 的附图。
[0024] 图1为本发明实施例1提供的软件系统漏洞风险评估方法的流程图;
[0025] 图2为软件依赖网络示例图;
[0026] 图3为查询与file软件包有直接依赖关系的软件包子图示例图;
[0027] 图4为查询与file软件包有间接依赖关系的软件包子图示例图;
[0028] 图5为图1中S14的流程图;
[0029] 图6为节点重要度系数的计算示例图;
[0030] 图7为本发明实施例2提供的软件系统漏洞风险评估装置的结构示意图;
[0031] 图8为图7中风险评估单元14的结构示意图。
【具体实施方式】
[0032] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它 实施例,都属于本发明保护的范围。
[0033] 实施例1
[0034] 本发明实施例提供一种软件系统漏洞风险评估方法,如图1所示,所述软件系统 漏洞风险评估方法包括:
[0035] S11、对软件系统中的软件包依赖元数据进行预处理,构建软件依赖网络,其中,所 述软件包依赖元数据为所述软件系统中记录所有软件包信息的文件。
[0036] 例如:Ubuntu 系统中的 /dists/lucid/main/binary_i386/packages· gz 文件,从 元数据中可以获取系统中每一个软件包的信息,包括软件包名称、依赖软件包、优先级等。
[0037] 通过依赖软件包信息构建系统中所有软件包的依赖关系网络图G(V,E),即软件依 赖网络,其中,V表示图的所有节点集合,E表示所有边的集合。例如,从元数据中读取到软 件包B依赖于软件包A,软件包C依赖于软件包B,软件包D依赖于软件包B,则可形成软件 依赖网络如图2中所示。
[0038] 其中圆形节点表示软件包,圆形节点之间的有向连接边表示软件包之间的依赖关 系。图中软件包B依赖于软件包A ;软件包C和软件包D依赖于软件包B,并间接依赖于软 件包A ;A->B->C和A->B->D为软件依赖链,整个图即构成该软件系统的软件包依赖网络。 节点的连接数称为度,根据方向可细分为入度和出度,图中节点B的度为3,其中入度为1, 出度为2。
[0039] S12、获取漏洞信息,根据所述漏洞信息构建漏洞与软件包之间的关联关系。
[0040] 具体地,从公开漏洞网络中获取漏洞信息,所述漏洞信息包括漏洞名称、受影响软 件包、安全等级、漏洞描述等数据信息;根据所述漏洞信息,构建漏洞与软件包之间的关联 关系。
[0041 ] 例如,从公开漏洞网站Ubuntu CVE Tracker
[0042] (http://people. canonical, com/ ~ ubuntu-security/cve/main. html)中获取 一条漏洞信息CVE-2014-9426,可获得其漏洞名称为CVE-2014-9426,受影响软件包为php5 和 file,安全等级为中等,漏洞描述为:"The apprentice_load function in libmagic/ apprentice, c in the Fileinfo component in PHP through 5. 6. 4attempts to perform a free operation on a stack-based character array, which allows remote attackers to cause a denial of service (memory corruption or application crash)or possibly have unspecified other impact via unknown vectors. "据此信息,可构建漏洞与软件包 之间的关联关系,即软件包php5->CVE-2014-9426,软件包file->CVE-2014-9426。
[0043] S13、根据所述软件依赖网络和所述漏洞与软件包之间的关联关系,查询存在漏洞 的软件包以及直接或间接依赖所述软件包的其他软件包,构建软件包依赖关系子图。
[0044] 例如,从步骤Sll得到的G(V,E)中查询与php5和file两个软件包存在依赖关 系的软件包,得到依赖关系子图G'(V',E'),其中,E'为V'内所有节点之间的边的集合, Vv e K'. 却5' or ν' -·'///_<:>',即:任意一个软件包节点V属于V',都有V依赖于php5软 件包或者V依赖于file软件包。得到的直接依赖软件包子图如图3所示,其中,中心节点 为file软件包,其他节点为直接调用file的软件包。
[0045] 通过查询依赖于G'(V',E')中所有节点的软件包,可构建间接依赖该软件包的依 赖关系子图,以此类推,可查询出所有此类依赖关系的软件包,得到最后的软件包依赖关系 子图,如图4所示,中心节点0为file软件包,其他节点为直接或间接调用file的软件包。
[0046] S14、基于所述软件包依赖关系子图中各节点的重要程度,评估漏洞对整体软件系 统的安全风险。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1