-
公开(公告)号:CN114201383A
公开(公告)日:2022-03-18
申请号:CN202110875380.3
申请日:2021-07-30
Applicant: 北京理工大学 , 绿盟科技集团股份有限公司
IPC: G06F11/36
Abstract: 本发明提供一种面向二进制程序的模糊测试系统,该系统主要包含三个模块,分别是程序追踪模块、测试用例选择模块和测试用例变异模块;程序追踪模块利用硬件程序追踪技术获得程序执行特征和指令特征,用于测试用例的选择和变异;测试用例选择模块根据测试用例特征维护一个优先队列,在测试用例选择时根据其是否在优先队列中进行概率性选择;该测试用例特征包括测试用例自身特征、模糊测试执行特征和硬件程序追踪得到的指令特征;测试用例变异模块根据测试用例特征确定其随机变异时的变异能量。本发明解决了目前大多数模糊测试存在的不支持对二进制程序测试或测试效果不佳、对测试过程中产生的有效信息利用不足的问题。
-
公开(公告)号:CN109117367B
公开(公告)日:2022-02-22
申请号:CN201810820854.2
申请日:2018-07-24
Applicant: 北京理工大学
IPC: G06F11/36
Abstract: 本发明公开了一种模糊测试变异数量确定方法,适用于AFL破坏性变异过程中的变异数量确定,该方法针对每个测试用例i,计算该测试用例所执行路径P的路径频次freq(P)以及有效字节比例eff(i);根据路径频次freq(P)和有效字节比例eff(i)调整分配给测试用例i的能量,根据所述能量确定变异数量;其中,路径频次freq(P)越大,则分配给测试用例i的能量越小;有效字节比例eff(i)越大,则分配给测试用例i的能量越大。本发明通过对AFL能量分配的改进,进而对模糊测试变异数量的确定进行改进,以便能够提高模糊测试的效率。
-
公开(公告)号:CN111767546B
公开(公告)日:2022-09-16
申请号:CN202010554794.1
申请日:2020-06-17
Applicant: 北京理工大学
Abstract: 本发明公开了一种基于深度学习的输入结构推断方法和装置,采用深度学习模型自动学习输入用例与程序执行状态之间的关系;利用显著性映射技术获得输入用例中每个字节对程序执行状态的影响,即深度学习模型的输出对输入字节的梯度;基于所述梯度,利用梯度相似相邻划分策略和/或中心‑前后向搜索策略获得输入结构单元集合;对所述输入结构单元集合进行结构推断优化,包括模糊边界处理和/或关键结构单元处理,得到准确的输入结构。本发明基于显著性映射技术推断输入结构单元集合,并进行模糊边界处理、关键结构单元处理,能够在保证模糊测试效率的基础上,提升输入结构推断准确率。
-
公开(公告)号:CN111897734B
公开(公告)日:2022-08-19
申请号:CN202010791542.0
申请日:2020-08-07
Applicant: 北京理工大学
Abstract: 本发明公开了一种基于在线式增量学习的模糊测试用例选择方法和装置。该方法以测试用例特征作为输入,测试用例质量评分作为输出组成训练样本;该测试用例特征包括测试用例自身特征、模糊测试执行特征、模糊测试执行效果特征和硬件程序追踪得到的指令特征;利用模糊测试变异且执行过的初始测试用例构建训练样本集,对在线式增量学习模型进行训练;获取候选测试用例的所述测试用例特征输入在线式增量学习模型,获得预测的测试用例质量评分,选取质量最优测试用例进行模糊测试;将所述候选测试用例的测试用例特征及为其预测的测试用例质量评分组成新训练样本,加入到在线式增量学习模型的训练样本集中以优化模型。使用本发明能够提高模糊测试效率。
-
公开(公告)号:CN111897733A
公开(公告)日:2020-11-06
申请号:CN202010790762.1
申请日:2020-08-07
Applicant: 北京理工大学
Abstract: 本发明公开了一种基于最小集合覆盖的模糊测试方法和装置,该方法利用深度神经网络为目标二进制程序产生测试用例集,并加入测试用例队列;利用最小集合覆盖理论,从所述测试用例队列中筛选出具有最大化路径覆盖率且测试用例数量最少的最小用例集合,以减少执行效果相同的重复测试用例的数量;以设定的一个或一个以上的测试用例选择标准,对所述最小用例集合中的测试用例进行排序,选择最优测试用例进行后续变异,继而实现模糊测试;将模糊测试过程中产生的有效测试用例加入深度神经网络测试用例训练集,离线地指导深度神经网络进行优化训练。使用本发明能够获得更小测试用例集以及更有效的测试用例,可以针对目标二进制程序进行有效地漏洞检测。
-
公开(公告)号:CN109032942A
公开(公告)日:2018-12-18
申请号:CN201810820851.9
申请日:2018-07-24
Applicant: 北京理工大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于AFL的模糊测试框架,包括测试用例预处理模块和AFL处理模块;在AFL处理模块中,测试用例选择子模块从测试用例队列中依次选择下一个待变异的测试用例;选择前,根据测试用例的历史变异情况,将那些有更大概率发现新路径的测试用例标识为特权测试用例,并优先被选为待变异的测试用例;测试用例变异数量确定子模块根据测试用例的历史变异情况,调整分配给各测试用例的能量,继而调整待变异测试用例的变异数量;测试用例变异子模块根据测试用例中的有效字节,来确定变异字节;然后根据变异数量和变异字节实施变异。本发明解决了目前AFL工具在测试用例生成策略方面的盲目性问题,以及无法针对高度结构化数据格式生成有效测试用例的不足。
-
公开(公告)号:CN111897734A
公开(公告)日:2020-11-06
申请号:CN202010791542.0
申请日:2020-08-07
Applicant: 北京理工大学
Abstract: 本发明公开了一种基于在线式增量学习的模糊测试用例选择方法和装置。该方法以测试用例特征作为输入,测试用例质量评分作为输出组成训练样本;该测试用例特征包括测试用例自身特征、模糊测试执行特征、模糊测试执行效果特征和硬件程序追踪得到的指令特征;利用模糊测试变异且执行过的初始测试用例构建训练样本集,对在线式增量学习模型进行训练;获取候选测试用例的所述测试用例特征输入在线式增量学习模型,获得预测的测试用例质量评分,选取质量最优测试用例进行模糊测试;将所述候选测试用例的测试用例特征及为其预测的测试用例质量评分组成新训练样本,加入到在线式增量学习模型的训练样本集中以优化模型。使用本发明能够提高模糊测试效率。
-
公开(公告)号:CN111767546A
公开(公告)日:2020-10-13
申请号:CN202010554794.1
申请日:2020-06-17
Applicant: 北京理工大学
Abstract: 本发明公开了一种基于深度学习的输入结构推断方法和装置,采用深度学习模型自动学习输入用例与程序执行状态之间的关系;利用显著性映射技术获得输入用例中每个字节对程序执行状态的影响,即深度学习模型的输出对输入字节的梯度;基于所述梯度,利用梯度相似相邻划分策略和/或中心-前后向搜索策略获得输入结构单元集合;对所述输入结构单元集合进行结构推断优化,包括模糊边界处理和/或关键结构单元处理,得到准确的输入结构。本发明基于显著性映射技术推断输入结构单元集合,并进行模糊边界处理、关键结构单元处理,能够在保证模糊测试效率的基础上,提升输入结构推断准确率。
-
公开(公告)号:CN109032942B
公开(公告)日:2020-10-02
申请号:CN201810820851.9
申请日:2018-07-24
Applicant: 北京理工大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于AFL的模糊测试框架,包括测试用例预处理模块和AFL处理模块;在AFL处理模块中,测试用例选择子模块从测试用例队列中依次选择下一个待变异的测试用例;选择前,根据测试用例的历史变异情况,将那些有更大概率发现新路径的测试用例标识为特权测试用例,并优先被选为待变异的测试用例;测试用例变异数量确定子模块根据测试用例的历史变异情况,调整分配给各测试用例的能量,继而调整待变异测试用例的变异数量;测试用例变异子模块根据测试用例中的有效字节,来确定变异字节;然后根据变异数量和变异字节实施变异。本发明解决了目前AFL工具在测试用例生成策略方面的盲目性问题,以及无法针对高度结构化数据格式生成有效测试用例的不足。
-
公开(公告)号:CN109739755A
公开(公告)日:2019-05-10
申请号:CN201811612236.5
申请日:2018-12-27
Applicant: 北京理工大学
IPC: G06F11/36
Abstract: 本发明提供一种基于程序追踪和混合执行的模糊测试系统,该系统主要包括三个模块,分别是模糊测试模块、数据流追踪模块和混合执行模块;模糊测试模块的输入为目标二进制程序、种子测试用例和由数据流追踪模块提取的种子测试用例中字节序列对应变量的类型信息,输出为触发新路径的测试用例;数据流追踪模块的输入为目标二进制程序和模糊测试模块加载的种子测试用例,输出为种子测试用例中字节序列对应变量的类型信息和目标二进制程序中数据的依赖关系;混合执行模块的输入为数据流追踪模块实时提供的目标二进制程序中数据的依赖关系,输出为由该模块新生成的可能触发新路径的候选测试用例。该系统相比于现有技术,能够提升测试用例生成的有效性。
-
-
-
-
-
-
-
-
-