[发明专利]一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法有效
申请号: | 201510072607.5 | 申请日: | 2015-02-11 |
公开(公告)号: | CN104615542B | 公开(公告)日: | 2017-12-01 |
发明(设计)人: | 吴晓慧;马恒太;刘小霞;邱春光 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京科迪生专利代理有限责任公司11251 | 代理人: | 成金玉,孟卜娟 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 函数 调用 脆弱 关联 分析 辅助 漏洞 挖掘 方法 | ||
技术领域
本发明涉及一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法,属于漏洞挖掘领域。首先利用静态分析工具得到大量的脆弱性分析数据,以函数调用关系为基础提取已公开漏洞隐含的脆弱性相关关系,并进行数据挖掘获得强相关分析组合,以此辅助漏洞挖掘,从而对可能的漏洞进行预警和防范。
背景技术
据国家计算机病毒应急处理中心调查分析,“未修补网络(系统)安全漏洞”是网络安全事件发生的最主要原因。这些漏洞不仅是蠕虫、病毒等恶意代码的重要传播途径,也是网络攻防的焦点。保障网络系统安全的一个重要前提就是,快速挖掘并修复系统中的安全漏洞,消除系统的安全隐患。系统漏洞的数量在不断增加,其中隐含了一定的必然规律和规则,通过数据挖掘等手段对漏洞信息库中已公开漏洞隐含的有效信息进行处理,提取内在关联关系,可以有效辅助漏洞挖掘。
程序静态分析是指在不运行代码的方式下,通过词法分析、语法分析、控制流分析等技术对程序代码进行扫描,找到匹配某种规则模式的代码从而发现代码中存在的问题。目前成熟的代码静态分析工具每秒可扫描上万行代码,相对于动态分析,具有检测速度快、效率高的特点。随着静态分析工具的扫描规则库的完善,静态分析发现的代码隐含错误,为进一步提取代码缺陷信息提供了一定可信度的数据。
软件中隐含的缺陷数目与可靠性直接相关。一个漏洞的产生,可能是由一连串脆弱性组合累积导致的,而这个脆弱性组合的形成就是基于函数调用关系。函数调用关系体现了函数调用的先后次序,又包含了函数调用过程的重要信息,包括函数调用中传递的参数、隐含传递的参数以及返回值等。基于函数调用的脆弱性关联分析辅助漏洞挖掘,能够很好地与数据挖掘技术相结合,提高漏洞挖掘的自动化水平,有较强的现实意义。
发明内容
本发明技术解决问题:随着当前系统软件的爆炸式增长和安全问题的凸显,为了快速有效地进行漏洞挖掘,本发明充分利用了当前成熟的第三方静态分析工具得到的脆弱性分析数据,并提供了有效的方法将其转化为可能的漏洞。
本发明的技术解决方案:通过对目标对象的源码进行静态分析,获得其脆弱性分布点及函数调用关系并建立脆弱性信息数据库;对漏洞信息库中已公开漏洞的有效信息进行处理,提取其隐含的基于函数调用的脆弱性关联关系;利用数据挖掘提取同一类型的脆弱性强相关组合,并将其用于辅助快速有效地漏洞挖掘。
本发明具体实现步骤如下:
步骤1、使用工具分析目标对象的源码,提取静态函数调用关系;并用静态分析工具对每个函数进行脆弱性分析,形成脆弱性信息数据库;
步骤2、将以CVE(公共漏洞和暴露)为代表的安全漏洞库中与目标对象有关的用户所需的漏洞信息下载,并与脆弱性信息数据库进行操作,形成最原始的漏洞信息数据库;
步骤3、根据漏洞信息数据库中的记录信息,按类型分类,对不同的漏洞信息分别进行数据挖掘与知识发现,提取漏洞隐含的基于函数调用关系的脆弱性关联分析组合,形成列表并自动去重;
步骤4、根据脆弱性关联分析组合,分析脆弱性信息数据库,发现新的潜在的漏洞。
所述步骤1中对目标对象的源码提取函数调用关系的具体实现为:使用开源工具,给GCC(GNU编译器套件)打个补丁,让GCC在编译每个源文件时复制出其中函数的调用关系,然后用Perl脚本收集并整理调用关系,输出为函数调用关系表存到脆弱性信息数据库。
所述步骤1中对每个函数进行脆弱性分析的具体实现为:使用第三方静态分析工具对源码进行扫描,得到脆弱性分析结果。由于这些结果往往是定位到每个文件的行数,为方便关联分析,通过分析源码获取每个函数的起始行数和结束行数,进而将脆弱性分析结果定位到函数。经过上述处理,可以得到每个函数里面包含有哪些脆弱性,将该结果作为函数级的脆弱性信息表存放至脆弱性信息数据库中。
所述步骤2所述的提取脆弱性关联分析组合的具体实现如下:
A.定义与漏洞信息相关的搜索字段规则,包括字段名称、类型、前标识符、后标识符等关键信息;
B.对以CVE为代表的安全漏洞库进行自动搜集处理即网络爬虫挖掘方法,将与目标对象有关的用户所需的漏洞信息下载,输出为漏洞表形成最原始的漏洞信息数据库;
C.通过数据库接口中间件,对漏洞信息数据库中的漏洞表和脆弱性信息数据库中的函数调用关系表及函数级的脆弱性信息表进行各种查询和匹配,形成以漏洞触发点为参照点的脆弱性关联分析组合。
所述步骤3所述的提取脆弱性之间的强相关组合的具体实现如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510072607.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种宽带深截止红光荧光滤光片
- 下一篇:网页加载方法