一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法技术

技术编号:11466847 阅读:99 留言:0更新日期:2015-05-17 19:15
本发明专利技术提供一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法,涉及安全检测技术领域,包括以下步骤:1、使用工具对目标源码提取函数调用关系,并用静态分析工具对每个函数进行脆弱性分析,形成建立脆弱性信息数据库;2、对公告中与该目标有关的最新漏洞信息,提取其触发点的脆弱性信息,基于函数调用关系形成脆弱性关联分析组合,并自动去重;3、根据漏洞信息数据库中的记录信息,对脆弱性关联分析组合进行数据挖掘与知识发现,提取脆弱性之间的强相关组合;4、根据脆弱性强相关组合,分析脆弱性信息数据库,发现新的可能存在的漏洞。该发明专利技术通过数据关联分析找出已公开漏洞隐含的脆弱性关联关系,辅助漏洞挖掘,为批量发现漏洞提供了可行方法。

【技术实现步骤摘要】
一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法
本专利技术涉及一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法,属于漏洞挖掘领域。首先利用静态分析工具得到大量的脆弱性分析数据,以函数调用关系为基础提取已公开漏洞隐含的脆弱性相关关系,并进行数据挖掘获得强相关分析组合,以此辅助漏洞挖掘,从而对可能的漏洞进行预警和防范。
技术介绍
据国家计算机病毒应急处理中心调查分析,“未修补网络(系统)安全漏洞”是网络安全事件发生的最主要原因。这些漏洞不仅是蠕虫、病毒等恶意代码的重要传播途径,也是网络攻防的焦点。保障网络系统安全的一个重要前提就是,快速挖掘并修复系统中的安全漏洞,消除系统的安全隐患。系统漏洞的数量在不断增加,其中隐含了一定的必然规律和规则,通过数据挖掘等手段对漏洞信息库中已公开漏洞隐含的有效信息进行处理,提取内在关联关系,可以有效辅助漏洞挖掘。程序静态分析是指在不运行代码的方式下,通过词法分析、语法分析、控制流分析等技术对程序代码进行扫描,找到匹配某种规则模式的代码从而发现代码中存在的问题。目前成熟的代码静态分析工具每秒可扫描上万行代码,相对于动态分析,具有检测速度快、效率高的特点。随着静态分析工具的扫描规则库的完善,静态分析发现的代码隐含错误,为进一步提取代码缺陷信息提供了一定可信度的数据。软件中隐含的缺陷数目与可靠性直接相关。一个漏洞的产生,可能是由一连串脆弱性组合累积导致的,而这个脆弱性组合的形成就是基于函数调用关系。函数调用关系体现了函数调用的先后次序,又包含了函数调用过程的重要信息,包括函数调用中传递的参数、隐含传递的参数以及返回值等。基于函数调用的脆弱性关联分析辅助漏洞挖掘,能够很好地与数据挖掘技术相结合,提高漏洞挖掘的自动化水平,有较强的现实意义。
技术实现思路
本专利技术技术解决问题:随着当前系统软件的爆炸式增长和安全问题的凸显,为了快速有效地进行漏洞挖掘,本专利技术充分利用了当前成熟的第三方静态分析工具得到的脆弱性分析数据,并提供了有效的方法将其转化为可能的漏洞。本专利技术的技术解决方案:通过对目标对象的源码进行静态分析,获得其脆弱性分布点及函数调用关系并建立脆弱性信息数据库;对漏洞信息库中已公开漏洞的有效信息进行处理,提取其隐含的基于函数调用的脆弱性关联关系;利用数据挖掘提取同一类型的脆弱性强相关组合,并将其用于辅助快速有效地漏洞挖掘。本专利技术具体实现步骤如下:步骤1、使用工具分析目标对象的源码,提取静态函数调用关系;并用静态分析工具对每个函数进行脆弱性分析,形成脆弱性信息数据库;步骤2、将以CVE(公共漏洞和暴露)为代表的安全漏洞库中与目标对象有关的用户所需的漏洞信息下载,并与脆弱性信息数据库进行操作,形成最原始的漏洞信息数据库;步骤3、根据漏洞信息数据库中的记录信息,按类型分类,对不同的漏洞信息分别进行数据挖掘与知识发现,提取漏洞隐含的基于函数调用关系的脆弱性关联分析组合,形成列表并自动去重;步骤4、根据脆弱性关联分析组合,分析脆弱性信息数据库,发现新的潜在的漏洞。所述步骤1中对目标对象的源码提取函数调用关系的具体实现为:使用开源工具,给GCC(GNU编译器套件)打个补丁,让GCC在编译每个源文件时复制出其中函数的调用关系,然后用Perl脚本收集并整理调用关系,输出为函数调用关系表存到脆弱性信息数据库。所述步骤1中对每个函数进行脆弱性分析的具体实现为:使用第三方静态分析工具对源码进行扫描,得到脆弱性分析结果。由于这些结果往往是定位到每个文件的行数,为方便关联分析,通过分析源码获取每个函数的起始行数和结束行数,进而将脆弱性分析结果定位到函数。经过上述处理,可以得到每个函数里面包含有哪些脆弱性,将该结果作为函数级的脆弱性信息表存放至脆弱性信息数据库中。所述步骤2所述的提取脆弱性关联分析组合的具体实现如下:A.定义与漏洞信息相关的搜索字段规则,包括字段名称、类型、前标识符、后标识符等关键信息;B.对以CVE为代表的安全漏洞库进行自动搜集处理即网络爬虫挖掘方法,将与目标对象有关的用户所需的漏洞信息下载,输出为漏洞表形成最原始的漏洞信息数据库;C.通过数据库接口中间件,对漏洞信息数据库中的漏洞表和脆弱性信息数据库中的函数调用关系表及函数级的脆弱性信息表进行各种查询和匹配,形成以漏洞触发点为参照点的脆弱性关联分析组合。所述步骤3所述的提取脆弱性之间的强相关组合的具体实现如下:(1)根据漏洞信息数据库中的记录信息,依据漏洞类型,对漏洞脆弱性关联分析组合进行分类,形成列表并自动去重;(2)运用关联规则挖掘算法,对同一漏洞类型的脆弱性关联分析组合进行关联规则挖掘,形成频繁项集,进而运用挖掘算法产生该漏洞类型对应的强相关组合;(3)将得到的脆弱性强相关组合存入到漏洞信息数据库中。所述步骤4所述的根据脆弱性强相关组合,辅助漏洞挖掘的具体实现为:根据漏洞信息数据库中脆弱性强相关组合,分析脆弱性信息数据库,除已公开漏洞触发点外,如果该目标对象的源码中存在漏洞信息数据库中的脆弱性强相关组合,则认为该脆弱性组合可能是潜在的漏洞,将相关数据作为潜在漏洞表存入漏洞信息数据库。该数据库为批量漏洞挖掘提供了可信度较高的数据。本专利技术与现有技术相比的优点如下:(1)为快速有效地进行漏洞挖掘,本专利技术充分利用了当前成熟的静态分析工具容易得到的脆弱性分析数据。这些数据可信度尚可,但是缺乏转化为漏洞的有效途径。本专利技术提供了一种有效的途径将其转化为可能的漏洞,提高漏洞挖掘的自动化水平,有较强的实践意义。(2)本专利技术以函数调用关系为基础,提取出已公开漏洞隐含的脆弱性关联分析组合,并利用Apriori关联规则算法挖掘出不同类型的漏洞对应的脆弱性强关联分析组合,形成匹配模型,为批量漏洞挖掘提供了可能性。附图说明图1为本专利技术的系统架构图;图2为本专利技术中漏洞隐含的关联关系提取过程;图3为本专利技术的Apriori关联规则挖掘算法。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细的描述。如图1所示,本专利技术一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法具体包括以下步骤:步骤1、使用工具分析目标对象的源码,提取静态函数调用关系;并用静态分析工具对每个函数进行脆弱性分析,形成脆弱性信息数据库;步骤2、将以CVE为代表的安全漏洞库中与目标对象有关的用户所需的漏洞信息下载,并与脆弱性信息数据库进行操作,形成最原始的漏洞信息数据库。步骤3、根据漏洞信息数据库中的记录信息,按类型分类,对不同的漏洞信息分别进行数据挖掘与知识发现,提取漏洞隐含的基于函数调用关系的脆弱性关联分析组合,形成列表并自动去重;步骤4、根据脆弱性关联分析组合,分析脆弱性信息数据库,发现新的潜在的漏洞。所述对目标源码提取函数调用关系具体实现为:使用开源工具(如Codeviz等),给GCC打个补丁,让GCC在编译每个源文件时复制出其中函数的调用关系,然后用Perl脚本收集并整理调用关系,输出为函数调用关系表存到脆弱性信息数据库。对每个函数进行脆弱性分析的具体实现为:使用第三方静态分析工具对源码进行扫描,得到脆弱性分析结果,这些结果往往是定位到每个文件的行数。根据CWE的定义,部分脆弱性标识号和描述如表1所示。为方便关联分析,通过分析源码获取每个函数的起始行数和结束行数,进而将脆弱性分本文档来自技高网
...
一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法

【技术保护点】
一种基于函数调用的脆弱性关联分析辅助漏洞挖掘方法,其特征在于实现步骤如下:步骤1、使用工具分析目标对象的源码,提取静态函数调用关系;并用静态分析工具对每个函数进行脆弱性分析,形成脆弱性信息数据库;步骤2、将以CVE(即公共漏洞和暴露)为代表的安全漏洞库中与目标对象有关的用户所需的漏洞信息下载,并与脆弱性信息数据库进行操作,形成最原始的漏洞信息数据库。步骤3、根据漏洞信息数据库中的记录信息,按类型分类,对不同的漏洞信息分别进行数据挖掘与知识发现,提取漏洞隐含的基于函数调用关系的脆弱性关联分析组合,形成列表并自动去重;步骤4、根据脆弱性关联分析组合,分析脆弱性信息数据库,发现新的潜在的漏洞。

【技术特征摘要】
1.一种基于函数调用的脆弱性关联分析辅助漏洞挖掘方法,其特征在于实现步骤如下:步骤1、使用工具分析目标对象的源码,提取静态函数调用关系;并用静态分析工具对每个函数进行脆弱性分析,形成脆弱性信息数据库;对每个函数进行脆弱性分析的具体实现为:使用第三方静态分析工具对源码进行扫描,得到脆弱性分析结果;由于这些结果往往是定位到每个文件的行数,为方便关联分析,通过分析源码获取每个函数的起始行数和结束行数,进而将脆弱性分析结果定位到函数;经过上述处理,得到每个函数里面包含有哪些脆弱性,将该结果作为函数级的脆弱性信息表存放至脆弱性信息数据库中;步骤2、将以CVE(即公共漏洞和暴露)为代表的安全漏洞库中与目标对象有关的用户所需的漏洞信息下载,并与脆弱性信息数据库进行操作,形成最原始的漏洞信息数据库;步骤3、根据漏洞信息数据库中的记录信息,按类型分类,对不同的漏洞信息分别进行数据挖掘与知识发现,提取漏洞隐含的基于函数调用关系的脆弱性关联分析组合,形成列表并自动去重;步骤4、根据脆弱性关联分析组合,分析脆弱性信息数据库,发现新的潜在的漏洞,具体实现为:根据漏洞信息数据库中脆弱性强相关组合,分析脆弱性信息数据库,除已公开漏洞触发点外,如果该目标对象的源码中存在漏洞信息数据库中的脆弱性强相关组合,则认为该脆弱性组合可能是潜在的漏洞,将相关数据作为潜在漏洞表存入漏洞信息数据库;该数据库为批量漏洞挖掘提供了可信度较高的数据。2.根据权利要求1所述基于函数调用的脆弱...

【专利技术属性】
技术研发人员:吴晓慧马恒太刘小霞邱春光
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:北京;11

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

1