CN109522221A - 一种提高模糊测试效率的方法和*** - Google Patents

一种提高模糊测试效率的方法和*** Download PDF

Info

Publication number
CN109522221A
CN109522221A CN201811257109.8A CN201811257109A CN109522221A CN 109522221 A CN109522221 A CN 109522221A CN 201811257109 A CN201811257109 A CN 201811257109A CN 109522221 A CN109522221 A CN 109522221A
Authority
CN
China
Prior art keywords
input
data
training
feature
unreachable
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.)
Granted
Application number
CN201811257109.8A
Other languages
English (en)
Other versions
CN109522221B (zh
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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201811257109.8A priority Critical patent/CN109522221B/zh
Publication of CN109522221A publication Critical patent/CN109522221A/zh
Application granted granted Critical
Publication of CN109522221B publication Critical patent/CN109522221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种提高模糊测试效率的方法和***。该方法包括:1)收集模糊测试器变异生成的输入和所述输入的目标代码可达性信息,作为训练数据;2)利用训练数据训练输入与目标代码可达性的深度学习模型;3)利用训练完成的深度学习模型判断新的输入在目标程序中的目标代码可达性,若可达则将新的输入交付给目标程序执行,若不可达则丢弃新的输入。进一步地,步骤3)中若不可达则通过比较不可达输入的特征与新的输入的特征是否相似来检查预判值是否可信,若可信则丢弃此输入,否则将新的输入交付给目标程序执行。本发明侧重于过滤模糊测试中无法到达目标代码的无用输入,可以与其他模糊测试方法互补或同时使用,从而有效提高模糊测试效率。

Description

一种提高模糊测试效率的方法和***
技术领域
本发明属于计算机软件技术、模糊测试技术领域,主要涉及一种加速模糊测试发现软件漏洞的方法和***,更确切地是通过提前过滤无法到达目标的测试用例来节省测试程序执行时间的加速模糊测试的方法和***。
背景技术
模糊测试技术是暴露计算机程序异常的最流行的软件测试技术之一。通常,模糊测试工具生成许多程序输入并将它们提供给程序,随即通过监视程序执行过程中崩溃等异常情况,模糊测试工具可以捕获隐藏的错误或漏洞。模糊测试技术旨在找出理想的程序输入,使其可以绕过一系列检查(例如,格式检查),命中有缺陷的代码并触发错误。而在实际情况中,由于大量程序输入中只有很小的比例能到达有缺陷的代码,生成这样的程序输入非常困难。因此,一些模糊测试工具以提高目标程序的代码覆盖率为目标,希望通过触发更多程序分支来触发错误。另一方面,一些模糊测试工具旨在生成输入到达错误代码以触发指定的错误,这极大地帮助模糊测试工具快速暴露目标程序的异常,这种通过尽可能命中目标代码的模糊测试被称为有目标的模糊测试。有目标的模糊测试通常包括两个主要步骤。首先,它产生各种输入并逐渐改变它们;其次,它执行目标程序并监控异常的发生。目前大多数模糊测试技术都集中在第一步。它们依赖于目标程序的执行来判断输入是否可以触发错误异常。
实际上,如果不执行目标程序,很难判断一个新的输入是否可以到达错误代码。一个理论上可行的解决办法是符号执行,它可以提取从程序起点到错误代码的所有条件语句,然后使用条件语句中的约束和输入上的相关操作来构建模型。然而,对于真实的程序,由于路径***问题和符号执行效率的瓶颈,符号执行难以在中大型软件程序中应用。
由于深度学习模型良好的数据拟合能力,一些研究试图利用深度学习技术来提高模糊测试技术的效率。Rajpal等人提出了一种通过学习输入变异位置与覆盖率关系的方法来变异出覆盖新路径的输入,同样地,Godefroid等人通过对输入文件的语法进行建模来生成新的变异输入用于触发新的程序路径。这类工作寄希望于新的程序路径能够触发漏洞,而现实是有缺陷的代码需要满足的条件往往不止一条,难以被新生成的输入首次到达就触发。而Angora使用轻量级污点分析技术来跟踪输入字节对控制流的影响,并通过深度学习中的梯度下降搜索算法来生成变异输入来触发目标代码块。这类工作受到了污点分析和符号求解等程序分析技术的限制,只能在一些简单软件中进行脆弱性检查。此外,上述方法都无法避免生成无效的程序输入(例如,无法触发新路径或无法到达目标代码的输入),而本发明中的方法旨在过滤无效的程序输入,为模糊测试器节省程序运行时间。
发明内容
针对上述问题,本发明通过构建一个模型来判断输入到错误代码的可达性,该模型可以过滤无法到达错误代码的输入,因此不需要使用无效输入执行目标程序。如果使用该模型的判断时间比实际执行的时间短得多,则在模糊测试过程中可以节省大量时间。
本发明的目标是让目标模糊器在真正执行程序前识别并丢弃无法到达目标代码的输入以节省模糊测试器的时间。为了避免重量级程序分析(例如符号执行),仅使用先前输入的可达性来构建模型。不同于那些主要关注如何生成合适输入以达到错误代码的方法,本方法是与其他模糊测试方法互补兼容的方法,而不是替代方案。
为了让模型识别无法到达错误代码的输入,本发明受模式识别中深度学习的成功使用的启发,通过深度学习技术针对输入的可达性进行分类识别。具体来说,本发明设计出适合于程序输入与目标代码可达性的深度学习模型。该模型使用大量可达性已知的输入样本进行学习,并根据学习到的特征对新生成的输入进行目标代码可达性的预估。如果预估结果是否定的,则意味着此类输入不能触发目标代码。因此,此类输入将被丢弃而不会被目标程序真正执行,这在模糊测试过程中可以节省大量时间。其次,由于深度学习的黑箱性,需要可解释性信息对模型预估结果进行保障。为了保证模型判断的准确性,本方法采用一种特征比对的方法对模型学习的结果进行自动化验证,对模型的预估结果进行二次过滤。最后,当模型的预估结果与实际运行结果不符时,模型需要进行自我校正,以降低整体的误报率。因此,需要收集预估可达性与实际可达性不一致的输入进行再次学习,实时对模型进行更新,确保模型的可靠性。
具体的,本发明采用的技术方案如下:
一种提高模糊测试效率的方法,包括以下步骤:
1)收集模糊测试器变异生成的输入和所述输入的目标代码可达性信息,作为训练数据;
2)利用所述训练数据,训练输入与目标代码可达性的深度学习模型;
3)利用训练完成的深度学习模型,判断新的输入在目标程序中的目标代码可达性,若可达则将所述新的输入交付给目标程序执行,若不可达则丢弃所述新的输入。
进一步地,步骤3)利用所述深度学习模型对所述新的输入进行预判,若预判值为可达,则将所述新的输入交付给目标程序执行;若预判值为不可达,则通过比较不可达输入的特征与所述新的输入的特征是否相似来检查预判值是否可信;若可信则丢弃此输入,若不可信则将所述新的输入交付给目标程序执行。
进一步地,步骤2)所述深度学习模型的学习目标是判断输入在目标程序中的目标代码可达性,通过将输入和可达性进行映射,利用神经网络对数据的拟合能力计算出合适的权重信息。
进一步地,步骤2)首先对训练数据进行向量化处理,然后通过增量训练的方式训练得到一个初始深度学习模型,并根据模型测试结果不断地利用误判数据在初始深度学习模型的基础上实时地更新修正模型。
进一步地,所述向量化处理包括:
a)对数据长度进行归一化,以n为程序输入文件的最长字节数,不足n字节的输入数据用0进行补全,超过n字节的输入数据则只取前n字节;
b)将程序输入的二进制表示转换为十进制表示,每个字节b用0-255中的一个数字来表示,输入数据则为一个长度为n的向量;程序输入的目标代码可达性只有两个值,即可达或不可达,用数字0表示不可达,用数字1表示可达,输入数据对应的可达性标签数据e是一个取值为0或1的量值。
进一步地,所述增量训练的方式包括:
a)对数据集进行随机化,使数据分布尽量均匀,以保证后续学习过程不会发生震荡性变化;
b)对数据集进行批次划分,按照批次连续训练模型,在每个批次训练结束之后进行测试操作;
c)通过梯度下降算法寻找使得所有数据偏差最小的网络权重值,作为模型学习到的代表目标代码可达性的输入特征。
进一步地,通过提取深度神经网络中的特征映射来捕获所述新的输入中每个位置对最终预判结果贡献程度的权重,从而得到所述新的输入的特征;通过对训练数据中的不可达输入进行特征提取,并将不重复的特征录入列表中作为不可达输入的特征,用作后续的特征比较。
进一步地,在进行特征比较后,若不可信则将所述新的输入交付给目标程序执行并进行验证,若为误判,则反馈给数据收集步骤以待后续学习训练中对模型进行修正,否则将输入特征录入已知的不可达输入特征列表中。
一种提高模糊测试效率的***,其包括:
数据收集模块,负责收集模糊测试器变异生成的输入和所述输入的目标代码可达性信息,作为训练数据;
模型构建模块,负责利用所述训练数据,训练输入与目标代码可达性的深度学习模型;
输入过滤模块,负责利用训练完成的深度学习模型,判断新的输入在目标程序中的目标代码可达性,若可达则将所述新的输入交付给目标程序执行,若不可达则丢弃所述新的输入。
进一步地,所述输入过滤模块利用所述深度学习模型对所述新的输入进行预判,若预判值为可达,则将所述新的输入交付给目标程序执行;若预判值为不可达,则通过比较不可达输入的特征与所述新的输入的特征是否相似来检查预判值是否可信;若可信则丢弃此输入,若不可信则将所述新的输入交付给目标程序执行。
本发明与已有的使用深度学习进行模糊测试的研究不同,本发明的方法侧重于过滤模糊测试中无法到达目标代码的无用输入,这意味着它可以与其他模糊测试方法互补,并且可以与他们同时使用,从而有效提高模糊测试效率。
附图说明
图1为本发明方法的基本框架图;
图2为实施例中输入数据向量化示例图;
图3为实施例中深度学习模型网络结构图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。
目前大多数模糊测试技术依赖于目标程序的执行来判断输入是否可以触发错误异常。与这些方法不同,本发明从另一个角度考虑这个问题:如果模糊测试器可以在不执行目标程序的情况下判断输入是否可以到达错误代码,则可以过滤这些无法到达目标的输入,从而进一步节省模糊测试的时间开销。
考虑到模糊测试过程中的输入数量通常非常大(例如,数百万输入),本发明通过使用这些输入和程序执行结果之间的对应关系来对程序逻辑进行建模,学习并过滤无法到达目标代码的输入。通过这种方法,本发明降低了对目标程序分析的复杂度,避免受到程序分析局限性的影响,有效地通过数据来学习程序逻辑特征,帮助模糊测试器节省目标程序测试时间。
本发明方法的具体实现流程如下:
1)数据收集:
由于构建深度学习模型需要一定量的学习数据集,因此在模糊测试初始阶段收集模糊测试器变异生成的输入和这些输入的目标代码可达性信息。利用这个初始数据集作为模型最初的训练数据。此外,还需要收集预估与实际不符的误报数据和其可达性信息,为调整模型准确性提供学习样本。
2)模型构建:
模型的学习目标是判断输入在目标程序中的目标代码可达性,可抽象为一个分类问题。通过将输入和可达性进行映射,利用神经网络对数据的拟合能力,计算出合适的权重信息。同时,由于需要根据误报样本实时校正模型的学习权重,则需要采用增量学习的方法,按批次训练数据,更新模型权重值。
3)输入过滤:
当一个新的输入被生成,需要先经过步骤2)中构建的模型进行预判,若预判值为可达,则将此输入交付给目标程序执行;若预判值为不可达,则通过比较不可达输入的特征与此输入的特征是否相似来检查预判值是否可信。若可信,则丢弃此输入,若不可信,则将此输入交付给目标程序执行。
下面提供一个例子,说明辅助模糊测试过滤无效输入的过程。
举例:以图像处理程序imageMagick 7.0.3-8为目标程序,以AFL 2.5.2为模糊测试器,通过AFL生成图像输入文件交付给目标程序进行执行,并通过目标程序中的插桩代码对输入文件的目标代码的可达性进行捕获,同时AFL还监控目标程序的执行异常。以目标程序中attribute.c中第675行为目标代码,若要使得输入触发目标代码中的漏洞,需同时满足如下条件语句中的控制约束:
1.if((image->type==BilevelType)||(image->type==GrayscaleType)||(image->type==GrayscaleAlphaType))
2.if(IssRGBCompatibleColorspace(image->colorspace)==MagickFalse)
3.for(y=0;y<(ssize_t)image->rows;y++)
4.for(x=0;x<(ssize_t)image->columns;x++)
5.if(image->colorspace==CMYKColorspace)
从以上多个条件约束中可以看出,程序输入若要触发目标代码(attribute,c:675),则需对image->type字段,image->colorspace字段,image->rows字段和image->columns字段同时进行取值的限定。由于上述条件涉及了四个变量,对应程序输入文件中的多个字节,在没有准确的指导信息的变异的过程中难以保证每次变异都在目标范围内。因此,在AFL的变异过程中会产生大量无法到达目标代码的输入文件。对此采用本发明方法进行处理的步骤如下:
1)数据收集。需要收集两类数据,一类是AFL中的输入生成器变异生成的文件输入数据,由于目标程序接收的输入是文件形式,通过AFL变异生成的输入会以文件形式存在磁盘上,可以通过读取文件路径来获取输入文件的内容;另一类是文件输入在目标程序中执行过程中目标代码的可达性数据,通过对目标代码位置进行插桩,一旦输入触发了目标代码,则在内存中更新触发目标代码的输入文件路径,这样可以获取每个输入文件的目标代码可达性信息。在图1中模型构建完成之前,收集AFL在模糊测试初始阶段生成的变异文件输入和这些文件在目标程序中的可达性数据,在模型构建完成之后,只收集模型预判结果与目标程序中可达性结果不一致的输入数据和对应的可达性数据。
2)模型构建。为了构建一个能够识别输入可达性的分类模型,首先对数据进行向量化处理。然后通过增量训练的方式训练得到一个初始深度学习模型,并根据模型的测试结果不断地利用误判数据在初始模型的基础上实时地更新修正模型。
A)数据向量化
深度学习模型所接收的输入数据为定长的向量形式,为了将程序输入数据进行向量化处理,首先对数据长度进行归一化,以n为程序输入文件的最长字节数,不足n字节的输入数据用0进行补全,超过n字节的输入数据则只取前n字节。如图2所示,在向量化的过程中,将程序输入的二进制表示转换为十进制表示,每个字节b用0-255中的一个数字来表示,输入数据则为一个长度为n的向量。而程序输入的目标代码可达性只有两个值,即可达或不可达,用数字0表示不可达,用数字1表示可达,那么输入数据对应的可达性标签数据e就是一个取值为0或1的量值。向量化后的输入数据与可达性标签数据表示如下:
{b|b∈0,...,255}n→{e|e∈0,1}
B)增量训练分类模型
本发明的目标是训练一个能够识别程序输入目标代码可达性的分类模型。由于卷积神经网络(CNN)在分类任务中表现出色且高效,选用CNN作为分类模型的内部网络。如图3所示,采用嵌入层作为接收输入数据的输入层,连接一个多层的卷积-池化结构网络,最后用一层全连接层将网络中的权重进行归一化,对预判结果进行输出。分类模型的学习目标是得到一个函数fc使其满足程序输入与输入可达性之间的关系,即fc(x)→e。具体来说,通过深度学习算法通过计算每层网络的权重值w和一个偏移值bias,来尽可能地拟合出符合训练数据集中输入数据x与可达性数据e之间关系的非线性函数。
同时,为了保障模型的实时更新,采用增量训练的方法对分类模型中的权重值进行实时的更新。具体过程如下:
首先,对数据集进行随机化,使数据分布尽量均匀,以保证后续学习过程不会发生震荡性变化。
接着,对数据集进行批次划分,以每批次32或64条数据的方式连续训练模型,在每个批次训练结束之后可以进行测试操作。
最后,通过梯度下降算法寻找使得所有数据偏差最小的网络权重值作为模型学习到的代表目标代码可达性的输入特征。
通过上述操作,可以得到一个实时更新的判断程序输入可达性的分类模型。
3)输入过滤。利用上述训练得到的分类模型,可以在不执行目标程序的情况下,对新生成的程序输入进行可达性的预判。为了对模型学习效果进行检查,同时解释模型预判的有效性,引入输入特征相似性比较的方法来对模型的输出结果进行二次过滤。
表1.无效输入过滤规则
使用表1中的规则进行无效输入的过滤,具体来说:
如果模型预判输入为可达,则将输入交付给目标程序运行,根据运行结果对模型预判进行验证;如果模型预判输入为不可达,则将输入交给图1中的特征比较器进行特征比较,若输入特征与已知的不可达输入特征不相似,则意味着输入可能是未见过的可达输入,存在潜在的误判可能,于是将它交付给目标程序执行,并进行验证,若为误判,则反馈给图1中的数据收集器以待后续学习训练中对模型进行修正,否则将输入特征录入已知的不可达输入特征列表中;若输入特征与已知的不可达输入特征相似,则意味着此输入数据极可能为无法到达目标代码的输入,不需要被程序执行,则丢弃它。
图1中的特征比较器又分为两部分,具体如下:
A)输入特征提取
假设输入特征是输入数据中最具代表性的数据分布,则可以将输入向量中对可达性预判结果影响大的比特位置作为此输入的模式特征。通过CNN可视化的方法提取深度神经网络中的特征映射(feature map)来捕获当前输入中每个位置对最终预判结果贡献了多大程度的权重。因此,通过提取网络的feature map,就可以得到输入的特征分布。将feature map中的特征值进行差异化处理,使得相近的值变为相同的值。例如,将范围为(0.0,0.5)之间的值全归为0,将范围[0.5,1.0)之间的值全都置为1。这样可以消除特征之间微小的差异性,避免由网络中的复杂计算和精度导致的特征差异影响后续的特征比较。
B)输入特征相似性比较
由于特征比较的目的是确认当前输入是否真的为不可达输入,那么需要确认当前输入的特征与不可达输入的特征是否相似。在比较之前,将训练集中的不可达输入进行特征提取,并将不重复的特征录入列表中用作后续比较。比较时,采用明氏距离算法将两个特征进行比较,当距离小于某个阈值时,认为这两个特征是相似的,否则为不相似的。
其中x和y分别是两个特征向量中的取值,p取1。
综上所述,本发明提出了一种专注于过滤无效输入的模糊测试加速方法。该方法在不需要执行目标程序的情况下,通过对程序输入和目标代码可达性进行学习建模,从而识别和过滤无法命中目标代码的输入以节省模糊测试过程中目标程序的运行时间。该方法通过收集模糊测试过程中变异生成的程序输入和输入的可达性信息,构建一个学习模型对新生成的输入进行预判,同时,利用学习到的特征进行相似性分析来确保预判的准确性,最后,根据误判的结果实时地对模型进行自我矫正。
本发明在步骤2)的模型构建中,可采取其他替代神经网络模型来达到类似效果,如深度神经网络(DNN)、循环神经网络(RNN)、生成对抗神经网络(GAN)等。在步骤3)输入过滤的“B)输入特征相似性比较”方案中,可采取其他替代距离比较算法来替代明氏距离对特征的相似性进行衡量,如欧式距离、余弦距离、汉明距离等。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (10)

1.一种提高模糊测试效率的方法,其特征在于,包括以下步骤:
1)收集模糊测试器变异生成的输入和所述输入的目标代码可达性信息,作为训练数据;
2)利用所述训练数据,训练输入与目标代码可达性的深度学习模型;
3)利用训练完成的深度学习模型,判断新的输入在目标程序中的目标代码可达性,若可达则将所述新的输入交付给目标程序执行,若不可达则丢弃所述新的输入。
2.根据权利要求1所述的方法,其特征在于,步骤3)利用所述深度学习模型对所述新的输入进行预判,若预判值为可达,则将所述新的输入交付给目标程序执行;若预判值为不可达,则通过比较不可达输入的特征与所述新的输入的特征是否相似来检查预判值是否可信;若可信则丢弃此输入,若不可信则将所述新的输入交付给目标程序执行。
3.根据权利要求1或2所述的方法,其特征在于,步骤2)所述深度学习模型的学习目标是判断输入在目标程序中的目标代码可达性,通过将输入和可达性进行映射,利用神经网络对数据的拟合能力计算出合适的权重信息。
4.根据权利要求3所述的方法,其特征在于,步骤2)首先对训练数据进行向量化处理,然后通过增量训练的方式训练得到一个初始深度学习模型,并根据模型测试结果不断地利用误判数据在初始深度学习模型的基础上实时地更新修正模型。
5.根据权利要求4所述的方法,其特征在于,所述向量化处理包括:
a)对数据长度进行归一化,以n为程序输入文件的最长字节数,不足n字节的输入数据用0进行补全,超过n字节的输入数据则只取前n字节;
b)将程序输入的二进制表示转换为十进制表示,每个字节b用0-255中的一个数字来表示,输入数据则为一个长度为n的向量;程序输入的目标代码可达性只有两个值,即可达或不可达,用数字0表示不可达,用数字1表示可达,输入数据对应的可达性标签数据e是一个取值为0或1的量值。
6.根据权利要求4所述的方法,其特征在于,所述增量训练的方式包括:
a)对数据集进行随机化,使数据分布尽量均匀,以保证后续学习过程不会发生震荡性变化;
b)对数据集进行批次划分,按照批次连续训练模型,在每个批次训练结束之后进行测试操作;
c)通过梯度下降算法寻找使得所有数据偏差最小的网络权重值,作为模型学习到的代表目标代码可达性的输入特征。
7.根据权利要求2所述的方法,其特征在于,通过提取深度神经网络中的特征映射来捕获所述新的输入中每个位置对最终预判结果贡献程度的权重,从而得到所述新的输入的特征;通过对训练数据中的不可达输入进行特征提取,并将不重复的特征录入列表中作为不可达输入的特征,用作后续的特征比较。
8.根据权利要求2或7所述的方法,其特征在于,在进行特征比较后,若不可信则将所述新的输入交付给目标程序执行并进行验证,若为误判,则反馈给数据收集步骤以待后续学习训练中对模型进行修正,否则将输入特征录入已知的不可达输入特征列表中。
9.一种提高模糊测试效率的***,其特征在于,包括:
数据收集模块,负责收集模糊测试器变异生成的输入和所述输入的目标代码可达性信息,作为训练数据;
模型构建模块,负责利用所述训练数据,训练输入与目标代码可达性的深度学习模型;
输入过滤模块,负责利用训练完成的深度学习模型,判断新的输入在目标程序中的目标代码可达性,若可达则将所述新的输入交付给目标程序执行,若不可达则丢弃所述新的输入。
10.根据权利要求9所述的***,其特征在于,所述输入过滤模块利用所述深度学习模型对所述新的输入进行预判,若预判值为可达,则将所述新的输入交付给目标程序执行;若预判值为不可达,则通过比较不可达输入的特征与所述新的输入的特征是否相似来检查预判值是否可信;若可信则丢弃此输入,若不可信则将所述新的输入交付给目标程序执行。
CN201811257109.8A 2018-10-26 2018-10-26 一种提高模糊测试效率的方法和*** Active CN109522221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811257109.8A CN109522221B (zh) 2018-10-26 2018-10-26 一种提高模糊测试效率的方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811257109.8A CN109522221B (zh) 2018-10-26 2018-10-26 一种提高模糊测试效率的方法和***

Publications (2)

Publication Number Publication Date
CN109522221A true CN109522221A (zh) 2019-03-26
CN109522221B CN109522221B (zh) 2021-08-31

Family

ID=65774076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811257109.8A Active CN109522221B (zh) 2018-10-26 2018-10-26 一种提高模糊测试效率的方法和***

Country Status (1)

Country Link
CN (1) CN109522221B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240991A (zh) * 2020-01-20 2020-06-05 重庆富民银行股份有限公司 一种抗隐式污点传播的动态污点检测方法及***
CN111767546A (zh) * 2020-06-17 2020-10-13 北京理工大学 一种基于深度学习的输入结构推断方法和装置
CN112445709A (zh) * 2020-11-30 2021-03-05 安徽工业大学 一种通过gan解决afl测试模型数据不平衡的方法及装置
CN112861134A (zh) * 2021-03-03 2021-05-28 国家计算机网络与信息安全管理中心 基于优化变异策略的漏洞检测方法、装置、设备及介质
CN113421654A (zh) * 2021-07-12 2021-09-21 军事科学院***工程研究院卫勤保障技术研究所 创伤后失血性休克动态早期预警深度学习***
CN114969754A (zh) * 2022-05-25 2022-08-30 安徽工业大学 一种基于多任务学***衡的方法及***
CN115237797A (zh) * 2022-08-03 2022-10-25 中国电子科技集团公司信息科学研究院 一种基于覆盖率制导的模糊测试方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385551A (zh) * 2010-08-31 2012-03-21 西门子公司 一种筛选测试用例的方法、装置及***
US8745592B1 (en) * 2010-01-08 2014-06-03 Google Inc. Input selection for automatic test suite generation
CN108089974A (zh) * 2016-11-23 2018-05-29 谷歌有限责任公司 利用定义的输入格式来测试应用

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745592B1 (en) * 2010-01-08 2014-06-03 Google Inc. Input selection for automatic test suite generation
CN102385551A (zh) * 2010-08-31 2012-03-21 西门子公司 一种筛选测试用例的方法、装置及***
CN108089974A (zh) * 2016-11-23 2018-05-29 谷歌有限责任公司 利用定义的输入格式来测试应用

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张献,贲可荣: ""深度学习方法在软件分析中的应用"", 《计算机工程与科学》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240991A (zh) * 2020-01-20 2020-06-05 重庆富民银行股份有限公司 一种抗隐式污点传播的动态污点检测方法及***
CN111240991B (zh) * 2020-01-20 2023-03-14 重庆富民银行股份有限公司 一种抗隐式污点传播的动态污点检测方法及***
CN111767546A (zh) * 2020-06-17 2020-10-13 北京理工大学 一种基于深度学习的输入结构推断方法和装置
CN111767546B (zh) * 2020-06-17 2022-09-16 北京理工大学 一种基于深度学习的输入结构推断方法和装置
CN112445709A (zh) * 2020-11-30 2021-03-05 安徽工业大学 一种通过gan解决afl测试模型数据不平衡的方法及装置
CN112861134A (zh) * 2021-03-03 2021-05-28 国家计算机网络与信息安全管理中心 基于优化变异策略的漏洞检测方法、装置、设备及介质
CN113421654A (zh) * 2021-07-12 2021-09-21 军事科学院***工程研究院卫勤保障技术研究所 创伤后失血性休克动态早期预警深度学习***
CN114969754A (zh) * 2022-05-25 2022-08-30 安徽工业大学 一种基于多任务学***衡的方法及***
CN115237797A (zh) * 2022-08-03 2022-10-25 中国电子科技集团公司信息科学研究院 一种基于覆盖率制导的模糊测试方法和装置
CN115237797B (zh) * 2022-08-03 2023-09-08 中国电子科技集团公司信息科学研究院 一种基于覆盖率制导的模糊测试方法和装置

Also Published As

Publication number Publication date
CN109522221B (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
CN109522221A (zh) 一种提高模糊测试效率的方法和***
CN112910859B (zh) 基于c5.0决策树和时序分析的物联网设备监测预警方法
CN110020592A (zh) 物体检测模型训练方法、装置、计算机设备及存储介质
CN107392016A (zh) 一种基于代理的Web数据库攻击行为检测***
CN111126820A (zh) 反窃电方法及***
CN112231034A (zh) 结合rpa和ai的软件界面元素的识别方法与装置
CN111047173A (zh) 基于改进d-s证据理论的社团可信度评估方法
CN110610208A (zh) 一种主动安全增量数据训练方法
CN114928493B (zh) 基于威胁攻击大数据的威胁情报生成方法及ai安全***
CN117056834A (zh) 基于决策树的大数据分析方法
CN114036531A (zh) 一种基于多尺度代码度量的软件安全漏洞检测方法
CN112202718A (zh) 一种基于XGBoost算法的操作***识别方法、存储介质及设备
CN106874762A (zh) 基于api依赖关系图的安卓恶意代码检测方法
CN106529470A (zh) 一种基于多级深度卷积神经网络的手势识别方法
CN110705693A (zh) 一种无人机异常行为识别模块及其识别方法
Gajjar et al. Intersection over Union based analysis of Image detection/segmentation using CNN model
CN111967501B (zh) 一种遥测原始数据驱动的载荷状态判别方法及判别***
CN111563532B (zh) 一种基于属性权重融合的未知目标识别方法
CN110554952B (zh) 一种基于搜索的分层回归测试数据生成方法
CN114519187A (zh) 基于多维度混合特征的Android恶意应用检测方法及***
CN114897193A (zh) 一种基于人在回路的飞机结构维修决策方法及决策***
CN113269268A (zh) 基于大数据的数据匹配方法、***及云平台
Armstrong et al. Machine learning for identification and classification of crops and weeds
KR20220007395A (ko) 제어시스템 보안이벤트의 공격전략 분류 장치 및 방법
Han et al. FuzzGAN: A generation-based fuzzing framework for testing deep neural networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant