CN101847125A - 一种基于智能动态模糊检测的软件质量缺陷检测方法和系统 - Google Patents

一种基于智能动态模糊检测的软件质量缺陷检测方法和系统 Download PDF

Info

Publication number
CN101847125A
CN101847125A CN201010192320A CN201010192320A CN101847125A CN 101847125 A CN101847125 A CN 101847125A CN 201010192320 A CN201010192320 A CN 201010192320A CN 201010192320 A CN201010192320 A CN 201010192320A CN 101847125 A CN101847125 A CN 101847125A
Authority
CN
China
Prior art keywords
detection
software
fuzzy
strategy
detected
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201010192320A
Other languages
English (en)
Inventor
高新宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201010192320A priority Critical patent/CN101847125A/zh
Publication of CN101847125A publication Critical patent/CN101847125A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于智能动态模糊检测的软件质量缺陷检测方法和系统,所述方法步骤包括:确定待检测软件、界定检测范围以调用相应检测策略;根据检测策略构造用于检测的模糊检测数据;利用模糊检测数据执行对待检测软件的缺陷检测;对待检测软件进行缺陷检测的过程进行监控;如监控发现异常,则对待检测软件模糊检测的过程进行状态记录并将记录结果反馈至策略编辑器;策略编辑器根据反馈回的记录结果自动进行策略编辑调整,以形成新的检测策略,并根据新的检测策略重复步骤二~步骤六的操作;根据检测结果进行缺陷定位。所述系统包括:策略编辑器;检测策略库;智能模糊数据发生器;检测引擎;软件状态监控器;缺陷定位模块;结果生成模块。

Description

一种基于智能动态模糊检测的软件质量缺陷检测方法和系统
技术领域
本发明涉及一种软件质量缺陷检测方法和系统,特别是一种基于智能动态模糊检测的软件质量缺陷检测方法和系统。
背景技术
软件质量缺陷目前广泛存在于信息系统中,并且和具体的系统环境密切相关。具有以下特点:1)缺陷问题与时间紧密相关。随着时间的推移,旧的缺陷会不断得到修补或纠正,新的缺陷会不断出现,因而缺陷问题会长期存在;2)缺陷与软件规模、复杂度密切相关,一般来说,软件规模越大、功能越复杂,则存在的缺陷越多;3)缺陷被恶意利用后会造成软件部分、全部信息的破坏、丢失,或导致软件功能无法正确实现。对软件缺陷产生原因进行分析,主要有:1)需求的不完善定义,需求分析是软件开发的第一个阶段,难免存在着调研不充分,考虑不全面等情况;2)客户与开发者沟通不够,开发者没有及时与客户沟通协调,可能导致与系统使用环境的不符合;3)对软件需求的故意偏离,开发者由于技术或其他原因故意偏离了需求;4)逻辑错误设计,软件在概要设计阶段,设计的逻辑存在错误,如身份鉴别机制存在多于一种的路径可通过身份验证;5)编码错误,编程开发人员由于缺乏培训,使用了有问题的函说或调用,或者不及时释放内存等,导致软件存在缺陷;6)检测不充分:由于检测手段的局限性,当前的检测不能做到全部覆盖,因此会存在漏测、误测的情况。
软件质量缺陷的检测方法很多,根据被测软件的开源与否又可分为两种:对于开源软件主要采用白盒检测以及直接或者借助一些自动化工具来对源代码进行审查,而对于非开源的商业系统则主要采用灰盒检测和黑盒检测以及逆向工程中的反汇编技术来对产生的汇编代码进行审查;而从抽象的层次来看,有基于数据流的分析和基于控制流的分析方法;从是否需要执行被测软件的角度可以将软件缺陷检测技术分为两种:一种是静态分析技术,它不实际运行代码而只是通过静态地查看代码以找出潜在的缺陷,另一种是动态检测技术,它通过实际运行程序代码来发现其可能存在的缺陷。本发明则属于动态检测技术的一种。
随着信息技术的高速发展,软件产品(从底层的操作系统到高层的应用程序)代码量越来越大,程序设计越来越复杂,其本身存在着大量的质量缺陷,危害着信息系统的可用性、可靠性和安全性,因此如何检测软件程序中可能存在的缺陷成为目前信息技术领域高度关注的热点。模糊检测(来源于fuzzing)是一种快速有效发现程序缺陷的方法,正逐渐被开发商和安全研究者应用开来,比如,微软公司的产品在正式推向市场之前大约有20%到25%的安全缺陷是通过模糊检测发现的。目前,这种检测方法尚没有正规定义,有人称其为杂凑,有人称其为fuzz检测,在本书中统一称其为模糊检测。为了说明它的概念,在此将模糊检测概括为:一种软件检测方法,它在程序外部提供非预期输入,并监控程序对输入的反应,从而发现程序内部故障。模糊检测最早被用于发现可靠性问题,1989年,Barton Miller教授和他的操作系统课题组开发了一个初级模糊程序,用于检测UNIX程序的健壮性和可靠性,这就是模糊器的一个原型。虽然在现在看来,当时那个模糊器比较原始,但它却开创了模糊检测的历史。1999年左右,Oulu大学开始进行PROTOS检测集的开发,这是一种结合白盒和黑盒两种技术的检测方法。这种方法首先分析协议规则或标准,然后构造与协议规则不符的报文,以用于对产品进行检测。这种检测技术已经初步具有了模糊检测的特点2002年,Dave Aitel编写了第一个公开的开源Fuzzing检测框架SPIKE[10],安全研究人员可以很方便的在SPIKE框架的基础之上开发自己的Fuzzing工具,SPIKE被认为是Fuzzing检测技术的另一重要里程碑。SPIKE可以用于对基于网络的应用程序进行缺陷发现,SPIKE使用基于数据块的协议描述方法,可以描述不同长度的协议数据块,并内嵌了一些最可能导致程序错误的经验检测字符串。近些年来,模糊检测的面向对象主要是网络协议解析器,检测目标对象解析网络协议(例如:TCP/IP、SSH、RPC、DNS、NFS等)的过程是否存在缺陷。其思想是模糊检测工具通过socket与被测目标应用进行通信,向被测目标应用发送变异或包含错误的模糊值,并监视目标应用以发现错误。进行网络协议解析器的模糊检测,通常需要首先研究协议的规范和标准,以便创造更合理的检测数据。
本发明可以对以下类型的软件做缺陷检测,从而大幅度提高软件质量:(1)针对网络协议处理类软件的模糊检测:此类模糊检测的面向对象主要是网络协议解析器,检测目标对象解析网络协议(例如:TCP/IP、SSH、RPC、DNS、NFS等)的过程是否存在缺陷。其思想是模糊检测工具通过socket与被测目标应用进行通信,向被测目标应用发送变异或包含错误的模糊值,并监视目标应用以发现错误。进行网络协议解析器的模糊检测,通常需要首先研究协议的规范和标准,以便创造更合理的检测数据。(2)针对文件处理类软件的模糊检测:检测工作中遇到较多的文件格式解析器包括:图片文件(如BMP、TIFF、JPEG等)解析器、文档和可执行文件(如:DOC、SWF、PDF、PE、ELF等)解析器。此检测方法的思想是首先识别出文件解析器所支持的文件格式,然后构造足够多的畸形文件去开启解析器应用。例如可以构建大量畸形的JPEG文件并让应用去读取这些文件,同时监控该应用的执行情况。(3)针对内嵌控件类软件的模糊检测:当前软件开发模式普遍是采用公共的控件,操作系统、开发社区也提供了大量的控件供开发者直接使用,从而大大提高了开发的效率。如果控件存在缺陷,则影响的范围巨大,危害要比单个软件大得多。本系统可以对当前内嵌的主流ActiveX控件、COM控件等作动态缺陷检测,从而提高软件开发质量。针对软件的动态缺陷检测工具较多,比较著名的有PROTOS、SPIKE、Mangleme、Hamachi、以及FileFuzz。本系统与同类工具相比,拥有智能检测功能,同时检测范围广泛,实用性更大,检测效率更高,代表了软件动态缺陷检测的发展方向。
发明内容
本发明针对现有技术的弊端,提供一种智能程度高,检测效率高,检测范围广和实用化程度高的软件质量缺陷检测方法及系统。
为实现上述目的,本发明采用如下技术方案:本发明提供了一种基于智能动态模糊检测的软件质量缺陷检测方法,其步骤包括:
步骤一,确定待检测软件、界定检测范围以调用策略编辑器编辑的相应检测策略;
步骤二,根据检测策略构造用于待检测软件的模糊检测数据;
步骤三,利用所述模糊检测数据执行对待检测软件的缺陷检测;
步骤四,对待检测软件进行缺陷检测的过程进行监控;
步骤五,如监控发现异常,则对待检测软件模糊检测的过程进行状态记录并将记录结果反馈至策略编辑器;
步骤六,策略编辑器根据反馈回的记录结果自动进行策略编辑调整,以形成新的检测策略,并根据新的检测策略重复步骤二~步骤六的操作;
步骤七,根据检测结果进行缺陷定位。
优选的是,本发明所述的基于智能动态模糊检测的软件质量缺陷检测方法,所述步骤二还进一步包括结合随机或者变异的方法构造模糊检测数据。
优选的是,本发明所述的基于智能动态模糊检测的软件质量缺陷检测方法,在所述步骤三中,在执行模糊检测的过程中,还包括根据输入参数调整检测策略的步骤。
优选的是,本发明所述的基于智能动态模糊检测的软件质量缺陷检测方法,如果没有监控到模糊检测过程中的任何异常情况,步骤三中的缺陷检测过程将跳过步骤五和步骤六,而直接执行步骤七。
优选的是,本发明所述的基于智能动态模糊检测的软件质量缺陷检测方法,在所述步骤三中,根据待检测软件的类型来选择适当的检测引擎,所选择的检测引擎利用所述模糊检测数据执行对待检测软件的缺陷检测。
本发明还包括一种基于智能动态模糊检测的软件质量缺陷检测系统,包括:策略编辑器,用于添加或修改检测策略,并能根据对待检测软件状态监控的反馈编辑出新的检测策略;检测策略库,和所述策略编辑器相连,用于存储大量的检测策略,检测策略库中的策略随着系统的使用并依据被检测软件的特性做出适时调整;智能模糊数据发生器,和所述策略编辑器相连且根据所述策略编辑器中的相应检测策略构造用于模糊检测的模糊数据;检测引擎,用于通过使用所述智能模糊数据发生器产生的模糊数据对输入检测引擎的待被检测软件做缺陷检测;软件状态监控器,和所述检测引擎相连,负责收集并分析待检测软件的响应状态,如果出现异常情况就反馈给所述策略编辑器;缺陷定位模块,和所述检测引擎模块相连,并将检测引擎发现的缺陷故障触发点场景进行记录,以使得用户能够进行缺陷重现与定位;结果生成模块,和所述缺陷定位模块相连,将缺陷定位模块的输出进行转化并表示为检测人员能够读懂的形式。
优选的是,本发明所述的基于智能动态模糊检测的软件质量缺陷检测系统,根据待检测软件的类型来选择适当的检测引擎,所选择的检测引擎用于通过使用所述智能模糊数据发生器产生的模糊数据对输入检测引擎的待被检测软件做缺陷检测。
优选的是,本发明所述的基于智能动态模糊检测的软件质量缺陷检测系统,所述检测引擎包括协议检测引擎、控件检测引擎和/或文件检测引擎。
优选的是,本发明所述的基于智能动态模糊检测的软件质量缺陷检测系统,在所述软件状态监控器监控下,若待检测软件返回的响应不符合标准或文档声明格式,则表明软件存在异常。
本发明通过软件状态监控器的监控,及时反馈出软件质量缺陷检测的检测状态。如果检测出现异常,本发明所独有的智能化,将使得策略编辑器根据反馈情况调整检测策略,以再次进行检测,从而大大提高了检测效率和检测水准。
附图说明
图1为本发明所述的一种基于智能动态模糊检测的软件质量缺陷检测方法的流程示意图;
图2为本发明所述的一种基于智能动态模糊检测的软件质量缺陷检测系统的框图;
图3为本发明所述的一种基于智能动态模糊检测的软件质量缺陷检测系统的设计方案图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
如图1所示,本发明所述的一种基于智能动态模糊检测的软件质量缺陷检测系统,包括如下步骤:
步骤101,确定待检测软件、界定检测范围以调用策略编辑器编辑的相应检测策略。
本步骤中,由于针对不同目标对象(文件解析类软件、网络协议解析类软件、内嵌控件类软件)需要调用不同的检测策略,因此在检测开始前必须首先识别被测目标,确定调用策略编辑器中的相应检测策略,从而进行下面的步骤。
步骤102,根据检测策略构造用于待检测软件的模糊检测数据。
本步骤中,目标对象确定以后,便根据目标对象调用的检测策略开始构建模糊检测数据。从检测策略库选择已有的检测规则,结合随机和变异的方法生成模糊检测数据。例如,构造针对网络协议解析类软件的检测数据,可以使用以下方法:随机方法创造伪造的数据包;对网络包中特定字段进行设置终止符和无效字符串等操作;截断网络包数据流等等。构造针对文件解析类软件的检测数据,可以使用以下方法:用随机数填充整个文件或部分文件;将文件中的终止字符串替换为非空字符;设置整型数据类型为负值、零或2N±1;交互相邻字节或对字节的所有位进行异或等操作等等。
步骤103,利用所述模糊检测数据执行对待检测软件的缺陷检测。
本步骤中,根据目标特点生成检测数据之后,就可以使用工具利用这些数据进行检测。实际执行检测过程中,需要根据不同的参数情况适时调整数据驱动策略。因为策略中的很多运行参数会影响到检测效果,例如运行检测程序所并发的进程数会影响检测速度,发送是否经过优化的检测数据顺序会影响检测效率,数据包的发包方式是按照顺序还是按照一定规律也会影响检测效率,是否配置监控器会影响对目标的监控,基于网络的模糊检测过程是否需要抓包重放会影响漏洞的分析和定位等等。
步骤104,对待检测软件进行缺陷检测的过程进行监控。
本步骤中,在检测过程中,需要对目标出现的故障或异常进行监控,以确定由哪些检测数据引起的什么问题。因为被测对象的缺陷所造成的系统响应集合本身存在未知性,因此监控有利于提升检测的效率。
步骤105,如监控发现异常,则对待检测软件模糊检测的过程进行状态记录并将记录结果反馈至策略编辑器。
本步骤中,监控器在出现下述情况时会对被测对象进行状态记录(状态包括发包序号、发包顺序、字符串长度和字符串内容等)并反馈给策略编辑器以便进行策略优化调整。1)被测对象的响应不符合相关标准规范的规定:例如,被测对象是WEB服务器时,检测器可以在发送完一组畸形测试数据后向被测目标主机发送一个“HTTP GET”请求侦察包,并确认在发送下一组畸形数据包之前收到一个回应,以判断被测目标系统是否已经在畸形报文作用下出现异常。2)被测对象发生异常,如死机、不响应、自动重启、弹出异常对话框、进程僵死或输出段错误等现象。
步骤106,策略编辑器根据反馈回的记录结果自动进行策略编辑调整,以形成新的检测策略,并根据新的检测策略重复步骤二~步骤六的操作。
本步骤中,策略编辑器根据反馈回的状态信息自动进行智能策略调整,主要内容有:发包数量调整、字符串长度调整等。采用的方法是二分减半法,即以触发被测对象异常的数据为终点,以开始发送数据为起点,选取二分之一长度的数据重新发送检测数据,如发生异常则以新的原长度的二分之一为新的起点再次重新发送检测数据,依次循环,最终无限逼近触发异常的数据。检测系统将最后逼近的检测策略自动记录,并赋予高优先级,在对下一目标检测时将优先执行该条策略,从而提高检测效率和命中精度。
步骤七,根据检测结果进行缺陷定位。
本步骤中,辅助其他技术手段进行缺陷的定位与机理分析,从而完成缺陷检测工作。
本发明所述的一种基于智能动态模糊检测的软件质量缺陷检测方法,通过软件状态监控器的监控,及时反馈出软件质量缺陷检测的检测状态。如果检测出现异常,本发明所独有的智能化,将使得策略编辑器根据反馈情况调整检测策略,以再次进行检测,从而大大提高了检测效率和检测水准。
本发明还包括一种基于智能动态模糊检测的软件质量缺陷检测系统,如图2所示,策略编辑器主要功能是用户使用该工具可以添加或修改任意协议检测策略,并将这些检测策略保存在检测策略库当中。这些策略是协议检测核心引擎生成畸形数据的依据。检测策略库储着大量的检测策略,即发生模糊检测数据所依据的规则和专家知识。检测策略随着系统的使用并依据被检测软件的特性做出适时调整,从而提高检测系统的命中率和工作效率,至少包括如下类型的策略:1)整数类型策略:对于整数型参数,通常的数据生成策略是使用上界和下界进行检查,以发现是否存在整数溢出漏洞,如0和0xFFFFFFFF。但在实际在很多整数溢出的案例中,整数型参数并不是直接使用,而是经过一些加减运算(如+1,-1)或者乘法运算之后作为函数的参数使用,因此直接使用边界进行检查往往不一定能触发漏洞。因此本策略进行了改进,除了对上界和下界进行检查之外,还对一些经常容易造成问题的数值进行检查,如:
0x100000000,0x80000000,0x40000000,0x20000000,0x01000000,0x00100000,0x00010000,0x00001000,0x00000100,0x00000010,0x00000001等。2)字符串类型策略:对于字符串类型参数,经典的策略是使用超长的字符串“A”进行检查,比如发送50000个A。有些软件会检测超常的“A”字符串,如果发现超长的“A”字符串则拒绝响应。因此本策略设计中对字符串型参数不使用“A”字符进行测试,而是使用“Y”来代替“A”,使用长度从1到1024*10的“Y”字符串来进行测试,字符串长度以64为步长进行变化。3)格式化字符串数据策略:本策略设计中采用%s和%n来生成测试数据,原因是%n是唯一个会导致内存写入的格式化字符串,而%s会导致更大量的内存读取操作。格式化字符串测试数据示例如下:
″%n%n%n%n%n%n%n%n%n%n%n%n%n%n%n%n%n%n%n%n%n%
″%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%
智能模糊数据发生器主要功能是根据检测策略的规定构造用于检测的数据报文,并能根据目标对象的反馈适时调整发包的顺序、个数以及数据包自身的构造,实现智能数据发生,从而提到检测系统的效率,为缺陷定位提供手段。
检测引擎为整个系统的核心关键模块,主要功能是对被检测软件做缺陷检测,工作原理如下:
下面设Gv代表模糊检测可能发现的缺陷,设模糊检测过程中用于提供给目标对象以激发其内部反应的数据集合为H={H1,H2,…,Hn},其中Hi(i=1,2,…,n)表示单个数据或类似的独立数据块。这些数据有可能基于网络,也有可能基于文件格式等不同层次。设可能激发缺陷Gv的数据集为Ha,则Ha可分为如下两类:
(1)Ha只包含一个数据单元或数据快,即Ha={Hj},其中,Hj∈Hi(i=1,2,…,n)。
(2)Ha包含多个数据单元或数据块,此时,Ha={Hj1,Hj2,…,Hjr},其中Hjp∈H,(1≤p≤r),且r≤n。
可见Ha H。可能触发被测目标缺陷的触发条件集是H的部分子集所组成的集合。由上面分析可知,要发现被测目标内部的缺陷,只要确定Ha的数据元素即可。而确定是否发现缺陷,还要看被测目标内部的反应情况,即需根据输入触发元素所得到的待测系统响应,判断被测目标中其是否存在缺陷。
在此,用|I|表示一个集合I的元素个数。根据“一个含n个元素的有限集合的所有子集是2的n次方个,即”,则输入到被测对象系统的各种数据或数据组合集的个数为。与之对应,用R表示系统的所有响应集合。设k H,则与k对应的响应Rk可能是系统的正常输出,可能是触发了系统缺陷,也可能是由k触发了系统缺陷后的输出。若用Ra表示所有响应的集合,用Rb表示出现缺陷的集合,用Rv表示出现的缺陷集合,则Rv Rb Ra。设f表示检测过程,则f可以看作是由个元素的集合到R的一个对应。根据以上分析,模糊检测进行缺陷挖掘就是尽可能穷尽Ha集合,向被测目标提供输入,并分析被测目标的响应R是否在Rv的过程。从理论上讲,如果模糊检测工具可以产生各种数据或数据组合,且被测目标确定存在缺陷,则这种检测方式一定能够使它得到触发。
软件状态监控器主要功能是负责收集并分析目标软件的响应状态,依次判断目标设备是否存在异常情况。举例说明,若目标设备返回的响应不符合标准或文档声明格式,则表明软件存在异常。存在异常的情况下,监控器会报告给检测引擎。
缺陷定位模块主要功能是将检测引擎发现的缺陷故障触发点场景进行记录,记录内容主要包括:缺陷触发的时间、触发时的数据包、触发时的软件状态等等,使得用户能够进行缺陷重现与定位。
结果生成模块主要功能是将缺陷定位模块的输出进行转化,表示为检测人员能够读懂的形式。缺陷定位模块的输出为缺陷触发时的场景信息,晦涩难懂且难以判断,因此用户无法确定被检测的程序存在缺陷的具体位置。通过该模块的工作可以根据缺陷触发信息给出分析指导建议,方便用户进行下一步的分析。
换言之,本发明的一种基于智能动态模糊检测的软件质量缺陷检测系统,包括:策略编辑器,用于添加或修改检测策略,并能根据对待检测软件状态监控的反馈编辑出新的检测策略;检测策略库,和所述策略编辑器相连,用于存储大量的检测策略,检测策略库中的策略随着系统的使用并依据被检测软件的特性做出适时调整;智能模糊数据发生器,和所述策略编辑器相连且根据所述策略编辑器中的相应检测策略构造用于模糊检测的模糊数据;检测引擎,用于通过使用所述智能模糊数据发生器产生的模糊数据对输入检测引擎的待被检测软件做缺陷检测;软件状态监控器,和所述检测引擎相连,负责收集并分析待检测软件的响应状态,如果出现异常情况就反馈给所述策略编辑器;缺陷定位模块,和所述检测引擎模块相连,并将检测引擎发现的缺陷故障触发点场景进行记录,以使得用户能够进行缺陷重现与定位;结果生成模块,和所述缺陷定位模块相连,将缺陷定位模块的输出进行转化并表示为检测人员能够读懂的形式。
本发明的基于智能动态模糊检测的软件质量缺陷检测系统,其中根据待检测软件的类型来选择适当的检测引擎,所选择的检测引擎用于通过使用所述智能模糊数据发生器产生的模糊数据对输入检测引擎的待被检测软件做缺陷检测。
本发明的基于智能动态模糊检测的软件质量缺陷检测系统,其中所述检测引擎包括协议检测引擎、控件检测引擎和/或文件检测引擎。
本发明的基于智能动态模糊检测的软件质量缺陷检测系统,其中在所述软件状态监控器监控下,若待检测软件返回的响应不符合标准或文档声明格式,则表明软件存在异常。
本发明所述的一种基于智能动态模糊检测的软件质量缺陷检测系统,其将特有的智能监控和智能反馈以及智能调整为软件质量缺陷的检测大大提高了效率,并且其检测范围覆盖网络协议处理类软件、文件处理类软件和内嵌控件类软件,其实用性必将使其得到更广的应用。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

Claims (9)

1.一种基于智能动态模糊检测的软件质量缺陷检测方法,其特征在于,步骤包括:
步骤一,确定待检测软件、界定检测范围以调用策略编辑器编辑的相应检测策略;
步骤二,根据检测策略构造用于待检测软件的模糊检测数据;
步骤三,利用所述模糊检测数据执行对待检测软件的缺陷检测;
步骤四,对待检测软件进行缺陷检测的过程进行监控;
步骤五,如监控发现异常,则对待检测软件模糊检测的过程进行状态记录并将记录结果反馈至策略编辑器;
步骤六,策略编辑器根据反馈回的记录结果自动进行策略编辑调整,以形成新的检测策略,并根据新的检测策略重复步骤二~步骤六的操作;
步骤七,根据检测结果进行缺陷定位。
2.如权利要求1所述的基于智能动态模糊检测的软件质量缺陷检测方法,其特征在于,所述步骤二还进一步包括结合随机或者变异的方法构造模糊检测数据。
3.如权利要求1所述的基于智能动态模糊检测的软件质量缺陷检测方法,其特征在于,在所述步骤三中,在执行模糊检测的过程中,还包括根据输入参数调整检测策略的步骤。
4.如权利要求1所述的基于智能动态模糊检测的软件质量缺陷检测方法,其特征在于,如果没有监控到模糊检测过程中的任何异常情况,步骤三中的缺陷检测过程将跳过步骤五和步骤六,而直接执行步骤七。
5.如权利要求1所述的基于智能动态模糊检测的软件质量缺陷检测方法,其特征在于,在步骤三中,根据待检测软件的类型来选择适当的检测引擎,所选择的检测引擎利用所述模糊检测数据执行对待检测软件的缺陷检测。
6.一种基于智能动态模糊检测的软件质量缺陷检测系统,其特征在于,包括:
策略编辑器,用于添加或修改检测策略,并能根据对待检测软件状态监控的反馈编辑出新的检测策略;
检测策略库,和所述策略编辑器相连,用于存储大量的检测策略,检测策略库中的策略随着系统的使用并依据被检测软件的特性做出适时调整;
智能模糊数据发生器,和所述策略编辑器相连且根据所述策略编辑器中的相应检测策略构造用于模糊检测的模糊数据;
检测引擎,用于通过使用所述智能模糊数据发生器产生的模糊数据对输入检测引擎的待被检测软件做缺陷检测;
软件状态监控器,和所述检测引擎相连,负责收集并分析待检测软件的响应状态,如果出现异常情况就反馈给所述策略编辑器;
缺陷定位模块,和所述检测引擎模块相连,并将检测引擎发现的缺陷故障触发点场景进行记录,以使得用户能够进行缺陷重现与定位;
结果生成模块,和所述缺陷定位模块相连,将缺陷定位模块的输出进行转化并表示为检测人员能够读懂的形式。
7.如权利要求6所述的基于智能动态模糊检测的软件质量缺陷检测系统,其特征在于,根据待检测软件的类型来选择适当的检测引擎,所选择的检测引擎用于通过使用所述智能模糊数据发生器产生的模糊数据对输入检测引擎的待被检测软件做缺陷检测。
8.如权利要求7所述的基于智能动态模糊检测的软件质量缺陷检测系统,其特征在于,所述检测引擎包括协议检测引擎、控件检测引擎和/或文件检测引擎。
9.如权利要求6所述的基于智能动态模糊检测的软件质量缺陷检测系统,其特征在于,在所述软件状态监控器监控下,若待检测软件返回的响应不符合标准或文档声明格式,则表明软件存在异常。
CN201010192320A 2010-05-31 2010-05-31 一种基于智能动态模糊检测的软件质量缺陷检测方法和系统 Pending CN101847125A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010192320A CN101847125A (zh) 2010-05-31 2010-05-31 一种基于智能动态模糊检测的软件质量缺陷检测方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010192320A CN101847125A (zh) 2010-05-31 2010-05-31 一种基于智能动态模糊检测的软件质量缺陷检测方法和系统

Publications (1)

Publication Number Publication Date
CN101847125A true CN101847125A (zh) 2010-09-29

Family

ID=42771750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010192320A Pending CN101847125A (zh) 2010-05-31 2010-05-31 一种基于智能动态模糊检测的软件质量缺陷检测方法和系统

Country Status (1)

Country Link
CN (1) CN101847125A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486747A (zh) * 2010-12-02 2012-06-06 中兴通讯股份有限公司 软件系统及工程常用功能的统计方法
CN102624544A (zh) * 2012-01-31 2012-08-01 华为技术有限公司 监控任务的创建方法及装置
CN103186639A (zh) * 2011-12-31 2013-07-03 腾讯科技(北京)有限公司 数据生成方法及系统
CN106953843A (zh) * 2017-02-15 2017-07-14 江苏大学 一种基于NuSMV的访问控制规则的覆盖性检测方法
CN110727576A (zh) * 2019-08-22 2020-01-24 中国平安财产保险股份有限公司 一种web页面测试方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714118A (zh) * 2009-11-20 2010-05-26 北京邮电大学 一种二进制代码缓冲区溢出漏洞的检测器及其检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714118A (zh) * 2009-11-20 2010-05-26 北京邮电大学 一种二进制代码缓冲区溢出漏洞的检测器及其检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《信息安全与通信保密》 20070930 岳彩松等 基于Fuzz的MSOffice漏洞检测 第111-113页 1-9 , 第9期 2 *
《清华大学学报(自然科学版)》 20091231 张宝峰等 基于模糊测试的网络协议漏洞挖掘 第2113-2118页 1-9 第49卷, 第S2期 2 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486747A (zh) * 2010-12-02 2012-06-06 中兴通讯股份有限公司 软件系统及工程常用功能的统计方法
CN102486747B (zh) * 2010-12-02 2015-06-03 中兴通讯股份有限公司 软件系统及工程常用功能的统计方法
CN103186639A (zh) * 2011-12-31 2013-07-03 腾讯科技(北京)有限公司 数据生成方法及系统
CN103186639B (zh) * 2011-12-31 2017-10-10 腾讯科技(北京)有限公司 数据生成方法及系统
CN102624544A (zh) * 2012-01-31 2012-08-01 华为技术有限公司 监控任务的创建方法及装置
CN102624544B (zh) * 2012-01-31 2015-01-21 华为技术有限公司 监控任务的创建方法及装置
CN106953843A (zh) * 2017-02-15 2017-07-14 江苏大学 一种基于NuSMV的访问控制规则的覆盖性检测方法
CN110727576A (zh) * 2019-08-22 2020-01-24 中国平安财产保险股份有限公司 一种web页面测试方法、装置、设备及存储介质
CN110727576B (zh) * 2019-08-22 2024-04-26 中国平安财产保险股份有限公司 一种web页面测试方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
Ohmann et al. Behavioral resource-aware model inference
Mingsong et al. Automatic test case generation for UML activity diagrams
Lo et al. SMArTIC: Towards building an accurate, robust and scalable specification miner
Mendling et al. Detection and prediction of errors in EPCs of the SAP reference model
CN103036730B (zh) 一种对协议实现进行安全测试的方法及装置
Bento et al. Automated analysis of distributed tracing: Challenges and research directions
CN108628748B (zh) 自动化测试管理方法和自动化测试管理系统
CN110083340A (zh) 代码生成方法、装置、计算机设备及存储介质
CN101847125A (zh) 一种基于智能动态模糊检测的软件质量缺陷检测方法和系统
Yang et al. Improving model inference in industry by combining active and passive learning
US20070162427A1 (en) Query parameter output page finding method, query parameter output page finding apparatus, and computer product
Weyns Towards an integrated approach for validating qualities of self-adaptive systems
Nguyen et al. Automated oracles: An empirical study on cost and effectiveness
Walkinshaw et al. Iterative refinement of reverse-engineered models by model-based testing
Zhang et al. An empirical study of the impact of bad designs on defect proneness
Botella et al. Risk-based vulnerability testing using security test patterns
Zeller Search-based testing and system testing: a marriage in heaven
CN107003931A (zh) 将测试验证从测试执行分离
CN116909788A (zh) 一种任务导向和视角不变的多模态故障诊断方法及系统
Shan et al. Face it yourselves: An llm-based two-stage strategy to localize configuration errors via logs
CN118095163A (zh) 一种芯片验证方法及系统
Shen et al. A systematic review of fuzzy testing for information systems and applications
Valueian et al. Constructing automated test oracle for low observable software
Fischer et al. A source level empirical study of features and their interactions in variable software
Che et al. Scenario-based architectural design decisions documentation and evolution

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100929