[发明专利]一种基于属性提取的软件漏洞挖掘系统及方法有效
| 申请号: | 201410577779.3 | 申请日: | 2014-10-24 |
| 公开(公告)号: | CN104268085B | 公开(公告)日: | 2017-07-28 |
| 发明(设计)人: | 肖云鹏;刘亚;刘宴兵;徐光侠;卢星宇;钟晓宇;蹇怡;冉欢;马晶 | 申请(专利权)人: | 重庆邮电大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 重庆市恒信知识产权代理有限公司50102 | 代理人: | 刘小红 |
| 地址: | 400065 *** | 国省代码: | 重庆;85 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 属性 提取 软件 漏洞 挖掘 系统 方法 | ||
技术领域
本发明涉及计算机安全领域,涉及软件漏洞挖掘技术,尤其是一种基于属性提取的软件漏洞挖掘方法。
背景技术
随着信息技术的发展,计算机软件在经济、教育、国防等各个领域发挥着重要作用。在此情况下,软件安全已经成为人们日益关注的重要问题。其中,漏洞是指系统或软件存在的一些功能性或安全性的逻辑缺陷,包括一切导致威胁、损坏计算机系统安全性的所有因素,是计算机系统在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷和不足。由于种种原因,漏洞的存在不可避免,根据国内的权威机构国家信息安全漏洞共享平台(China National Vulnerability Database,简称CNVD)从2000年到2013年收集的漏洞数据统计显示,漏洞总体数量呈现上升趋势。不仅如此,新漏洞从公布到被利用的时间越来越短,黑客对发布的漏洞信息进行分析研究,往往在极短的时间内就能成功利用这些漏洞。除了利用已知漏洞,黑客们也善于挖掘并利用一些尚未公布的漏洞,发起病毒攻击,或出售漏洞资料,满足经济目的。尽早发现并及时修补软件中存在的漏洞,对保护互联网用户的个人信息安全、财产安全和维护国家安全都有积极的促进作用。因此,主动挖掘并分析软件安全漏洞,对网络攻防战具有重要的意义。
漏洞挖掘技术是指对未知漏洞的探索,综合应用各种技术和工具,尽可能地找出软件中的潜在漏洞。根据分析对象的不同,漏洞挖掘技术分为基于源码的漏洞挖掘技术和基于目标代码的漏洞挖掘技术两大类。基于源码的漏洞挖掘的前提是要必须获取源代码,通过分析其公布的源代码,找到存在的漏洞。例如对Linux系统的漏洞挖掘和android系统的漏洞挖掘都可以采取这种方法。但是大多数的商业软件其源代码很难获得,从源码的角度进行漏洞挖掘不可行,只能采取基于目标代码的漏洞挖掘技术。
目前常见的漏洞挖掘技术有多种,主要包括手工测试技术、Fuzzing技术、二进制比对技术、静态分析技术、动态分析技术等。在多种漏洞分析技术中,手工测试技术虽然实现简单但是测试过程高度依赖测试者;Fuzzing技术具有漏洞重现容易、不存在误报等优点,但是它不通用,构造测试周期长等缺点;二进制对比技术不足是受编译器优化的影响较大;静态分析技术不能发现程序动态运行过程中的安全漏洞,检测结果集大、误报率高等缺点;动态分析技术可以满足部分安全检测的需要,但是还是有较大的局限性,效率不高,不容易找到分析点,对分析人员要求较高等缺点。为了弥补上述现存漏洞分析技术存在的不足,进一步提高软件漏洞挖掘过程中的效率和精准度,提出了一种基于属性提取的软件漏洞挖掘技术。
发明内容
针对以上现有技术中的不足,本发明的目的在于提供一种提高软件漏洞挖掘的全面性和准确性的基于属性提取的软件漏洞挖掘系统及方法,本发明的技术方案如下:一种基于属性提取的软件漏洞挖掘系统,其包括发现模块、分析模块及推理模块;其中,
发现模块:用于对软件代码进行反汇编,并对得到的汇编代码进行代码切片,再根据代码片段的属性,通过机器学习分类器对代码片段进行分类,从软件的冗余代码中提取出关键代码,对关键代码汇集成发送给分析模块作为分析模块的目标对象;
分析模块:用于接收发现模块发送来的待测关键代码,并将待测软件在虚拟机环境中执行,并采用虚拟机故障注入引擎与待测关键代码的进程进行测试交互,对测试交互全程进行分析监测和控制,并观察和记录待测软件在不同测试情况下的信息状态与执行反应,并将记录结果传输给推理模块;
推理模块:用于接收根据测试对象在不同分析情况下的状态记录结果,结合挖掘经验知识库,对测试对象不同情况的结果进行推理,实现挖掘该软件发生漏洞的预测,完成被测软件发生漏洞触发的推理过程。
一种基于属性提取的软件漏洞挖掘方法,其包括以下步骤:
201.、提取待测软件关键代码的步骤;
202、对待测软件在虚拟机环境中执行,并采用虚拟机故障注入引擎与关键代码进行测试交互,记录测试结果;
203、将测试结果结合挖掘经验知识库进行推理。
所述步骤201中提取待测软件关键代码的步骤具体为:
S21、获取待测应用软件的冗余代码;
S22、对软件冗余代码进行反汇编,得到汇编代码;
S23、汇编代码切片,形成n个代码片段;
S24、通过分类器对代码片段进行分类,挖掘软件中关键代码;
S25、汇集关键代码类为目标代码,提供给下一层漏洞分析与漏洞挖掘。
进一步的,步骤S24中对代码片段进行分类的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆邮电大学,未经重庆邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410577779.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:控温控压的大规模沼气池发酵阵列
- 下一篇:一种批量生成测试用例的方法





