首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到17条相似文献,搜索用时 140 毫秒
1.
本文针对盲目变异的模糊测试策略带来的效率低下的问题,综合程序控制流图、输入种子样本特征、异常样本发现、模糊测试器路径反馈等信息,提出一种更为有效的种子输入变异策略.本文通过不断监控种子文件在目标程序中的执行路径,并引入污点分析的方法,以建立起新增执行路径的起始语句与种子文件中关键字节的一对多映射关系.最终本文将根据这种映射关系对种子文件中的能够增加路径覆盖的字节进行变异,以期得到更有效率的模糊测试结果.我们的实验表明,增加定向变异之后的模糊测试器在代码覆盖率,以及模糊测试的效率上都有较为显著的提升.  相似文献   

2.
针对驱动程序在运行过程中难以监控和输入复杂的问题,提出并实现基于适应度和输入约束模型的驱动程序模糊测试工具DrgenFuzzer。该工具利用内核跟踪技术结合二进制程序的静态分析实现驱动运行的信息监控;分析驱动接口参数,设计了样本约束的方案;提出了新型适应度计算方案和交叉变异方案。实验证明,与常用的内核模糊测试工具对比,该工具经过输入约束模型之后生成的样本测试成功率达到了其他工具的10倍以上,生成的样本质量更高。该工具对驱动程序进行模糊测试,挖掘到 i2c驱动中的空指针引用漏洞。DrgenFuzzer能有效引导和规范样本生成,提高了样本测试成功率和运行效率,增强了漏洞挖掘能力。  相似文献   

3.
模糊测试是当前检测程序错误的最主流、最有效的手段之一.模糊测试工具首先对种子文件进行变异,生成大量新输入文件,然后挑选新输入来执行目标程序,以触发程序中潜在的漏洞.当前对模糊测试的研究多着眼于改进变异算法,提高生成的新文件对目标程序代码的覆盖,忽略了备用种子文件的筛选策略对提高模糊测试覆盖率与测试效率的的贡献.针对该问题,我们提出了基于覆盖频率的种子文件筛选策略,在每次执行目标程序时,我们记录程序执行中覆盖过的路径边;根据边被执行次数的多少,我们将这些边分为低频边和高频边;对于包含了更多低频边且执行效率高的种子文件,我们给予更高的优先级.我们在模糊测试工具American Fuzzy Lop (AFL)实现了对应的算法,实验表明我们的算法有效提高了模糊测试的效率和代码覆盖率.  相似文献   

4.
定向模糊测试旨在快速生产测试用例,达到给定的程序目标位置区域并发现程序错误。但目前的定向模糊测试工具普遍存在测试效率较低的问题,为此提出了一种基于神经网络的定向灰盒模糊测试方法,通过学习过去的模糊探索输入文件中不同位置的变异模式以生成模型来预测当前种子能够产生输入增益的位置,从而指导模糊器进行优化突变。同时为了解决定向灰盒模糊器中探索与开发的权衡问题,引入了一种动态策略在模糊测试过程中自适应协调两个阶段。基于现有的模糊测试框架AFL实现了一个原型系统,命名为DYNFuzz,并在3个基准上对其进行了测试和评估,实验结果表明,DYNFuzz具有比其他模糊器更高的定向性能和测试效率,并且不会陷入由探索开发不平衡导致的局部困境。  相似文献   

5.
现有神经网络模糊测试技术在测试样本生成阶段通常对初始样本进行随机变异,导致生成样本质量不高,从而测试覆盖率不高;针对以上问题,提出一种基于强化学习算法的神经网络模糊测试技术,将模糊测试过程建模为马尔可夫决策过程,在该模型中,测试样本被看作环境状态,不同的变异方法被看作可供选择的动作空间,神经元覆盖率被看作奖励反馈,使用强化学习算法来学习最优的变异策略,指导生成最优测试样本,使其能够获得最高的神经元覆盖率;通过与现有的主流神经网络模糊测试方法的对比实验表明,基于强化学习算法的神经网络模糊测试技术,可以提升在不同粒度下的神经元覆盖。  相似文献   

6.
为了解决传统文件模糊测试效率不高与功能遗漏的缺点,提出一种新的文件模糊测试算法.基于文件的规范,抽象地描述了文件推导规则,定义了文件模糊测试模板,设计了文件模糊变异模型.在规范描述下生成不同类型文件,然后对每类文件进行变异模糊测试,有效地减少了大量无效测试.实际测试中,已经验证3个已公开漏洞并发现两个未公开漏洞,表明了该算法的有效性.  相似文献   

7.
针对现有应用层工控协议在模糊测试过程中用例冗余度高、测试效率低和随机性强等问题,提出一种基于改进变异树的测试用例生成方法。该方法将协议样本数据序列进行树结构化,同时提取协议规约中字段优先级信息,并利用其有效地控制树中各节点属性值的变异程度,从而达到降低测试成本、提高测试效率以及增大发掘漏洞几率的目的。实验结果表明,该测试用例生成方法对提高协议模糊测试性能具有显著的优化效果和漏洞检测能力。  相似文献   

8.
模糊测试在挖掘软件安全漏洞、提高软件安全性方面发挥着巨大的作用, 本文针对模糊测试变异策略效率较低以及种子评分策略不合理的问题进行了讨论, 提出了基于聚类的变异优化策略和基于新覆盖信息的能量分配策略. 第1个改进策略通过产生新覆盖的非确定性变异提取有效的组合变异位置, 然后利用聚类算法进一步确定有效变异的位置, 在变异阶段对有效变异的位置进行细粒度确定性变异. 本文第2个改进策略针对种子评分策略, 种子产生的新覆盖信息与静态分析的分支转移信息作为种子评分的重要指标. 我们将改进后的模糊测试工具-AgileFuzz与现有的模糊测试改进工具AFL 2.52b、AFLFast以及EcoFuzz进行比较, 对binutils、libxmll2等开源程序进行了多次实验. 实验结果表明, AgileFuzz在相同时间内发现了更多的程序分支覆盖, 并且在测试过程中发现了fontforge、harfbuzz等开源软件中5个未知的漏洞.  相似文献   

9.
为了全面测试演化软件,回归测试通常需要生成新的测试用例。concolic测试是一种沿着具体执行路径进行符号执行的软件验证技术,通过生成测试数据来执行程序的所有可行路径。回归测试中,由于concolic测试关注于程序本身,没有利用已有测试用例和软件演化信息,导致生成大量无效测试数据,浪费资源和时间。为解决此问题,提出一种基于路径引导的回归测试用例集扩增方法。该方法将目标路径作为引导,根据软件演化信息选择有利于覆盖目标路径的测试用例,利用已有测试用例跳过重叠初始子路径,对后续目标子路径进行concolic测试并生成覆盖目标路径的测试数据。案例分析表明,本文方法相比传统concolic测试,本方法在覆盖程序可行路径的同时,可有效减少concolic测试路径,提高测试数据生成效率。  相似文献   

10.
张兴  冯超  雷菁  唐朝京 《软件学报》2018,29(5):1288-1302
针对当前Windows下GUI软件模糊测试过程中由于进入空转状态时刻判断不准确导致的测试效率降低的问题,本文利用自然语言处理方法的在函数执行迹的基础上来解决空转状态识别问题.论文首先分析了传统程序分析方法在空转状态判断上遇到的困难,提出了基于Bi-Gram模型以及统计分析的空转状态识别方法.通过Bi-Gram算法将程序函数执行迹转换为概率特征序列;利用空转状态在特征序列中的方差特征将空转状态特征序列从程序特征序列中分离,在此基础上进一步提取空转状态特征并实现空转状态实时检测算法.通过对典型源码与二进制软件程序的实验测试表明,本方法在效率和准确性上较传统方法上更优,能支撑对GUI程序模糊测试的需求.  相似文献   

11.
模糊测试被广泛应用于各种软件和系统的漏洞挖掘中.而模糊测试的效果与其采用的变异策略以及初始种子文件的代码覆盖率有直接的关系.本文提出了一种基于深度学习的种子文件生成方法,分析并学习初始种子文件和其在目标程序中的执行路径之间的关系,最终输出可能覆盖新执行路径的种子文件,从而提高初始种子文件集合的代码覆盖率.我们以PDF阅读器作为目标程序进行了实验,实验结果表明该方法所生成的种子文件保证了良好的通过率,而且明显提高了代码覆盖率.同时实验证明该方法在针对多种PDF阅读器进行模糊测试时都获得了更高的代码覆盖率.  相似文献   

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

13.
Fuzzing 测试技术能够自动识别出二进制文件中的安全问题,这是一个新兴值得研究的领域。Fuzzing 技术从早期的手工方式逐渐发展为现在的自动化甚至智能化方式。文章对现有的 Fuzzing 测试方法进行了比较和研究,总结目前 Fuzzing 测试框架的特点,并预测了其未来发展方向。  相似文献   

14.
杨克  贺也平  马恒太  蔡春芳  谢异  董柯 《软件学报》2022,33(11):3967-3982
定向灰盒模糊测试技术在度量种子对目标执行状态的搜索能力时,除了考虑种子逼近目标代码的程度之外,还需要分析种子对多样化执行状态的发现能力,从而避免陷入局部最优.现有的定向灰盒模糊测试主要根据全程序的覆盖统计来度量种子搜索多样化执行路径的能力.然而,目标执行状态仅依赖于部分程序代码.如果带来新覆盖的种子并未探索到目标状态计算所依赖的新执行状态,其不仅不能扩大种子队列对目标执行状态的搜索能力,而且会诱导测试目标无关的代码和功能,阻碍定向测试向目标代码的收敛.为了缓解该问题,从待发现目标执行状态依赖代码的覆盖统计着手,提出了一种有效覆盖引导的定向灰盒模糊测试方法.利用程序切片技术提取影响目标执行状态计算的代码.通过能量调度(即控制种子后代生成数量),提升引发该部分代码控制流新覆盖变化的种子能量,降低其他冗余种子的能量,使定向灰盒模糊测试专注于搜索目标相关的执行状态.在测试集上的实验结果显示,该方法显著提升了目标状态发现效率.  相似文献   

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

16.
近几年物联网设备数量飞速增长, 随着物联网的普及, 物联网设备所面临的安全问题越来越多。与物联网设备相关的安全攻击事件中, 危害最大的是利用设备漏洞获得设备最高权限, 进而窃取用户敏感数据、传播恶意代码等。对物联网设备进行漏洞挖掘, 及时发现物联网设备中存在的安全漏洞, 是解决上述安全问题的重要方法之一。通过模糊测试可有效发现物联网设备中的安全漏洞, 该方法通过向被测试目标发送大量非预期的输入, 并监控其状态来发现潜在的漏洞。然而由于物联网设备动态执行信息难获取以及模糊测试固有的测试深度问题, 使得当前流行的反馈式模糊测试技术在应用到物联网设备中面临困难。本文提出了一种基于物联网设备局部仿真的反馈式模糊测试技术。为了获取程序动态执行信息又保持一定的普适性, 本文仅对于不直接与设备硬件交互的网络服务程序进行局部仿真和测试。该方法首先在物联网设备的固件代码中自动识别普遍存在并易存在漏洞的网络数据解析函数, 针对以该类函数为入口的网络服务组件, 生成高质量的组件级种子样本集合。然后对网络服务组件进行局部仿真, 获取目标程序代码覆盖信息, 实现反馈式模糊测试。针对 6 个厂商的 9 款物联网设备的实验表明, 本文方法相比 FirmAFL 多支持 4 款物联网设备的测试, 平均可以达到 83.4%的函数识别精确率和 90.1%的召回率, 针对识别得到的 364个目标函数对应的网络服务组件共触发 294 个程序异常并发现 8 个零日漏洞。实验结果证明了我们方法的有效性和实用性。  相似文献   

17.
导向式灰盒模糊测试是一种能够快速对程序指定位置进行测试的技术。通过对当前导向式灰盒模糊测试技术导向不够精确的问题进行分析,提出一种新的导向式灰盒模糊测试方法,并引入基本块权重与函数路径长度的概念。通过对被测程序的静态分析,构建被测程序的函数调用图和控制流程图,计算更准确的基本块距离并插桩到被测程序中。在模糊测试时通过插桩追踪并计算每个测试用例到指定目标的距离,模糊测试器依据该距离计算种子能量以实现对目标区域的导向,并基于该方法实现原型系统Afl-guide。实验结果表明,与现有的导向式模糊测试方法相比,该方法对目标区域导向更精确、路径覆盖更广,能够更快地生成覆盖程序指定位置的测试用例。  相似文献   

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

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