首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 265 毫秒
1.
模糊测试技术研究综述   总被引:4,自引:1,他引:3  
张雄  李舟军 《计算机科学》2016,43(5):1-8, 26
软件中的安全漏洞可能导致非常严重的后果,因此漏洞挖掘已成为网络与信息安全领域的重大课题和研究热点。目前常用的漏洞挖掘技术包括静态分析、动态分析、二进制比对、模糊测试等。随着软件的规模和复杂度不断增大,模糊测试具有其它漏洞挖掘技术无法比拟的优势。首先介绍和分析了各种漏洞挖掘技术的优点和缺点;然后分别详细描述了模糊测试的研究进展、模糊测试的过程、测试用例的生成技术;最后介绍了模糊测试在各个领域的应用,并对其发展方向进行了展望。  相似文献   

2.
模糊测试作为一种自动化检测应用程序漏洞的方法, 常常被用来检测各种软件以及计算机系统的漏洞挖掘中. 而种子文件质量的高低对于模糊测试的效果而言至关重要. 所以本文提出了一种基于机器学习的模糊测试种子输入的生成方法, 利用样本输入和基于机器学习的技术来学习样本输入的规则和语法. 并利用学到的规则和语法来生成全新的种子输入. 我们还提出了一个采样方法. 使得这些新的种子输入的覆盖率较之前有了明显提升.  相似文献   

3.
网络协议软件部署和应用非常广泛, 在网络空间提供了诸如通信、传输、控制、管理等多样化的功能. 近年来, 其安全性逐渐受到学术界和工业界的重视, 及时发现和修补网络协议软件漏洞, 成为一项重要的课题. 网络协议软件由于部署形态多样、协议交互过程复杂、相同协议规范的多个协议实现存在功能差异等特点, 使得其漏洞挖掘技术面临诸多挑战. 首先对网络协议软件漏洞挖掘技术进行分类, 对已有关键技术的内涵进行界定. 其次, 进一步综述网络协议软件漏洞挖掘4个方面的技术进展, 包括网络协议描述方法、挖掘对象适配技术、模糊测试技术和基于程序分析的漏洞挖掘方法, 通过对比分析归纳不同方法的技术优势及评价维度. 最后, 总结网络协议软件漏洞挖掘的技术现状和挑战, 并提炼5个潜在研究方向.  相似文献   

4.
为解决Web模糊测试挖掘漏洞速度较慢、发现漏洞数较少的问题,提出一种改进的Web模糊测试向量生成方法。在通用的Web应用模糊测试结构(Web Fuzzing)基础上,分析现有测试向量生成方法,引入遗传算法来改进Web模糊测试向量生成方法。基于该方法实现XSS模糊测试工具,使用该工具对2个Web应用系统进行测试,将结果与现有模糊测试工具测试结果对比,验证了使用该方法挖掘Web漏洞速度快,发现漏洞数更多,提高了漏洞挖掘效率。  相似文献   

5.
ActiveX控件以其跨平台、简单易用的特点被广泛应用于其他应用程序,例如大型统计软件、网上银行安全控件等。因此,其安全问题也越来越值得关注。目前针对ActiveX控件的漏洞挖掘的主要方法是模糊测试,但模糊测试的局限性会造成漏报。文章基于动态污点分析的ActiveX漏洞挖掘工具CMPTracer,分析可控数据在ActiveX控件内部的处理流程,反馈出程序内部进行正确性检测的指令,进而指导测试数据的修改,得以测试程序深层的处理逻辑。经过试验比对发现,CMPTracer可以降低漏洞挖掘过程中的漏报率,能够发现普通模糊测试工具遗漏的安全漏洞。  相似文献   

6.
黄河  陈君  邓浩江 《计算机工程》2019,45(7):164-169
Modbus/TCP安全漏洞挖掘的相关协议包常采用随机方式生成,易产生过多无效包,降低漏洞挖掘效率。为此,基于循环神经网络(RNN)提出结构性模糊算法Fuzzy-RNN。从Modbus/TCP训练集中学习协议包各部分的概率分布,并考虑极端参数条件,实现针对性的模糊生成。实验结果表明,与通用模糊测试器GPF相比,Fuzzy-RNN算法在Modbus Slave、xMasterSlave等多种仿真软件上能以更高概率实现合法协议包的模糊生成,测试时间缩减50%以上,测试效率明显提高。  相似文献   

7.
模糊测试是一种有效的漏洞挖掘技术.为改善模糊测试因盲目变异而导致的效率低下的问题,需要围绕输入特征、变异策略、种子样本筛选、异常样本发现与分析等方面不断定制模糊测试器,从而花费了大量的定制成本.针对通用型模糊测试器(即支持多类输入格式及目标软件的模糊测试器)的低成本定制和高可扩展性需求,本文首次提出了一种可编程模糊测试框架,基于该框架漏洞挖掘人员仅需编写模糊测试制导程序即可完成定制化模糊测试,在不降低模糊测试效果的基础上可大幅提高模糊测试器开发效率.该框架包含一组涉及变异、监控、反馈等环节的模糊测试原语,作为制导程序的基本语句;还包含一套编程规范(FDS)及FDS解析器,支持制导程序的编写、解析和模糊测试器的生成.基于实现的可编程模糊测试框架原型Puzzer,在26个模糊测试原语的支持下,漏洞挖掘人员平均编写54行代码即可实现当前主流的5款万级代码模糊测试器的核心功能,并可覆盖总计87.8%的基本操作.基于Puzzer实现的AFL等价模糊测试器,仅用51行代码即可达到与AFL相当的模糊测试效果,具有良好的有效性.  相似文献   

8.
软件脆弱性已成为互联网安全的主要威胁来源,软件脆弱性分析技术的重要性日益突出。模糊测试是脆弱性分析的热点技术之一,通过持续生成测试用例、动态监控目标代码执行和反馈调节变异策略的方法尝试触发程序异常,具有部署便捷、适用性广和效果直观的优点。随着测试目标的复杂性增加,从业人员对模糊测试的效率提出了更高的要求。并行模糊测试通过并行执行、任务分解和共享信息等方法提高脆弱性分析的效率。首先,分析了基于覆盖反馈的模糊测试面临的主要挑战;之后,探讨了并行模糊测试的解决思路和方案,从系统结构、任务划分、语料库共享和崩溃去重等方面对并行模糊测试进行了综述;最后,总结了现有并行模糊测试的优缺点,并对未来发展方向进行了展望。  相似文献   

9.
模糊测试是一种有效的自动化漏洞挖掘技术,主流模糊测试技术采用遗传算法生成测试用例,存在早熟现象,导致路径覆盖率不足。针对该问题,提出一种基于动态适应度函数的模糊测试方法。综合考虑了种子新度和路径深度因素,设计了根据测试阶段不同而动态变化的适应度函数,实现了基于动态适应度函数的模糊测试工具DynFuzzer。在BegBunch和CGC提供的测试集上进行实验,结果表明与现有模糊测试工具相比,DynFuzzer路径覆盖率提高了40%,多发现了10%的bug。基于动态适应度函数的模糊测试方法能有效克服早熟问题,提高路径覆盖率,发现更多的bug。  相似文献   

10.
针对常规模糊测试挖掘Android系统服务漏洞效率低的问题,提出并实现基于遗传算法的Anddroid系统服务漏洞挖掘框架ASFuzzer。该框架利用Binder驱动与系统服务的交互向目标发送测试用例。测试过程中根据结果的反馈,引导遗传算法对测试参数不断变异,并提出一种高效的基于概率排序与组合的遗传选择算子模型,从而提高样本覆盖率和模糊测试效率。通过框架在不同系统版本手机上的测试,挖掘到多个系统服务漏洞。与传统模糊测试方法相比,实验结果表明本文方案在漏洞挖掘效率方面更具有优势。  相似文献   

11.
模糊测试在挖掘协议软件安全漏洞、提高安全性方面发挥着巨大的作用. 近年来将状态引入服务端程序模糊测试受到广泛关注. 本文针对现有方法未充分利用协议模糊测试过程信息、无法持续关注重点状态, 导致模糊测试效率较低的问题, 提出了基于双重覆盖信息协同的协议模糊测试方法. 首先, 本文提出的状态选择算法, 通过建立状态空间到程序空间的映射, 利用启发式的计算方法为每个状态设置权重, 以引导模糊测试持续关注更可能存在缺陷的状态. 其次, 快速探测种子不影响状态但改变程序覆盖的位置, 并限制变异位置以充分测试重点状态对应的代码区域. 本文在基线工具AFLNet和SnapFuzz上验证了改进算法的有效性, 并最终集成实现了协议模糊测试工具C2SFuzz. 对LightFTP、Live555等协议服务端程序最新版进行了实验后, 发现5个未知的漏洞.  相似文献   

12.
一种基于fuzzing技术的漏洞发掘新思路*   总被引:5,自引:3,他引:2  
目前检测软件缓冲区溢出漏洞仅局限于手工分析、二进制补丁比较及fuzzing技术等,这些技术要么对人工分析依赖程度高,要么盲目性太大,致使漏洞发掘效率极为低下。结合fuzzing技术、数据流动态分析技术以及异常自动分析技术等,提出一种新的缓冲区溢出漏洞发掘思路。新思路克服了已有缓冲区溢出漏洞发掘技术的缺点,能有效发掘网络服务器软件中潜在的未知安全漏洞(0day),提高了缓冲区溢出漏洞发掘效率和自动化程度。  相似文献   

13.
基于黑盒测试思想的Fuzzing是漏洞分析的主要方法,但效率较低且不能分析未知格式.基于污点分析,提出一种针对文件型软件的漏洞发现新方法.利用污点分析寻找输入中能导致执行流到达脆弱点的字节,再改变这些字节产生新输入;同时根据污点信息产生特征码.利用插桩工具实现了原型系统,对三个真实漏洞进行了测试.实验结果表明该方法能有效发现漏洞,生成的测试用例远小于Fuzzing,且不依赖输入格式;特征码的误报率漏报率均较低.  相似文献   

14.
With the rapid development of software techniques, domain-driven software raises new challenges in software security and robustness. Symbolic execution and fuzzing have been rapidly developed in recent decades, demonstrating their ability in detecting software bugs. Enormous detected and fixed bugs prove the feasibility of the two methods. However, it is still a challenging task to combine the two methods due to their respective weaknesses. State-of-the-art techniques focus on incorporating the two methods such as using symbolic execution to solve paths when fuzzing gets stuck in complex paths. Unfortunately, such methods are inefficient because they have to switch to fuzzing (resp. symbolic execution) when performing symbolic execution (resp. fuzzing). This paper presents a novel deep learning-based hybrid testing method using symbolic execution and fuzzing. The method tries to predict paths that are suitable for fuzzing (resp. symbolic execution) and use the fuzzing (resp. symbolic execution) to reach the paths. To further enhance effectiveness, this paper also proposes a hybrid mechanism to make them interact with each other. The proposed approach is evaluated on the programs in LAVA-M, and the results are compared with those in the case of using symbolic execution or fuzzing independently. It achieves more than 20\% increase in branch coverage and 1 to 13 times increase in the path number and uncovers 929 more bugs.  相似文献   

15.
随着软件技术的快速发展,面向领域的软件系统在广泛使用的同时带来了研究与应用上的新挑战.由于领域应用对安全性、可靠性有着很高的要求,而符号执行和模糊测试等技术在保障软件系统的安全性、可靠性方面已经发展了数十年.许多研究和被发现的缺陷表明了它们的有效性.但是由于两者的优劣不同,将这两者的结合仍是近期热门研究话题.目前的结合方法在于两者相互协助,例如模糊测试不可达的区域交给符号执行求解.但是这些方法只能在模糊测试(或符号执行)运行时判定是否应该借助符号执行(或模糊测试),无法同时利用这两者的优势,从而导致性能不足.基于此,我们提出基于深度学习,将基于符号执行的测试与模糊测试相结合的混合测试方法.该方法旨在测试开始之前就判断适合模糊测试(或符号执行)的路径集,从而制导模糊测试(或符号执行)到达适合它们的区域.同时,我们还提出混合机制实现两者之间的交互,从而进一步提升整体的覆盖率.基于LAVA-M中程序的实验表明,我们的方法相对于单独符号执行或模糊测试,能够提升20%多的分支覆盖率,增加约1~13倍的路径数目,多检测到929个缺陷.  相似文献   

16.
侯莹  洪征  潘增  吴礼发 《计算机科学》2013,40(3):206-209
针对基于知识的Fuzzing测试技术存在脚本编写工作量大的问题,提出一种基于模型的Fuzzing测试脚本自 动生成方法。方法首先以高阶属性文法形式化地描述数据模型,获取统一的、与测试环境无关的数据格式描述;然后 依据文法模型,将样本解析为带格式知识的文法分析树;最后建立文法分析树与测试逻辑的关联关系,实现自动化的 测试脚本生成。实验结果表明,所提出的方法能够自动生成有效的测试脚本,并发现软件中潜在的安全漏洞。  相似文献   

17.
针对传统fuzzing测试中的低效率问题,提出一种基于污点跟踪的黑盒fuzzing测试方法.通过将合法输入标记为污染源,并记录污点在应用程序中的传播过程,提取关键的污点信息,用以指导新的测试用例的生成.这样生成的测试用例,具有更好的针对性,以及能够达到较深的代码深度,有良好的代码覆盖率,能更好的挖掘出潜在的漏洞和安全脆弱点.采用这种方法对几款图形处理软件和图形库进行了测试,发现了一个漏洞,并提交SecurityFocus通过.  相似文献   

18.
Fuzzing is known to be one of the most effective techniques to uncover security vulnerabilities of large-scale software systems.During fuzzing,it is crucial to distribute the fuzzing resource appropriately so as to achieve the best fuzzing performance under a limited budget.Existing distribution strategies of American Fuzzy Lop (AFL) based greybox fuzzing focus on increasing coverage blindly without considering the metrics of code regions,thus lacking the insight regarding which region is more likely to be vulnerable and deserves more fuzzing resources.We tackle the above drawback by proposing a vulnerable region-aware greybox fuzzing approach.Specifically,we distribute more fuzzing resources towards regions that are more likely to be vulnerable based on four kinds of code metrics.We implemented the approach as an extension to AFL named RegionFuzz.Large-scale experimental evaluations validate the effectiveness and efficiency of RegionFuzz-11 new bugs including three new CVEs are successfully uncovered by RegionFuzz.  相似文献   

19.
编译器模糊测试,是测试编译器功能性与安全性的常用技术之一.模糊测试器通过产生语法正确的测试用例,对编译器的深层代码展开测试.近来,基于循环神经网络的深度学习模型被引入编译器模糊测试用例生成过程.针对现有方法生成测试用例的语法正确率不足、生成效率低的问题,提出一种基于前馈神经网络的编译器模糊测试用例生成方法,并设计实现了原型工具FAIR.与现有的基于token序列学习的方法不同,FAIR从抽象语法树中提取代码片段,利用基于自注意力的前馈神经网络捕获代码片段之间的语法关联,通过学习程序设计语言的生成式模型,自动生成多样化的测试用例.实验结果表明,FAIR生成测试用例的解析通过率以及生成效率均优于同类型先进方法.该方法显著提升了检测编译器软件缺陷的能力,已成功检测出GCC和LLVM的20处软件缺陷.此外,该方法具有良好的可移植性,简单移植后的FAIR-JS已在JavaScript引擎中检测到两处软件缺陷.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司    京ICP备09084417号-23

京公网安备 11010802026262号