CN114969754A - 一种基于多任务学习解决afl预测模型数据不平衡的方法及系统 - Google Patents

一种基于多任务学习解决afl预测模型数据不平衡的方法及系统 Download PDF

Info

Publication number
CN114969754A
CN114969754A CN202210577311.9A CN202210577311A CN114969754A CN 114969754 A CN114969754 A CN 114969754A CN 202210577311 A CN202210577311 A CN 202210577311A CN 114969754 A CN114969754 A CN 114969754A
Authority
CN
China
Prior art keywords
test
afl
data
test case
model
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
CN202210577311.9A
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.)
Anhui University of Technology AHUT
Original Assignee
Anhui University of Technology AHUT
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 Anhui University of Technology AHUT filed Critical Anhui University of Technology AHUT
Priority to CN202210577311.9A priority Critical patent/CN114969754A/zh
Publication of CN114969754A publication Critical patent/CN114969754A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供的基于多任务学习解决AFL预测模型数据不平衡的方法及系统,其方法包括:构建由AFL、Angora、运行分支距离的模糊器生成的测试用例中的至少两种数据组成的测试集;对测试集中的所有数据预处理;对预处理后的测试集提取部分数据构建训练集;根据训练集训练多任务学习模型,获得其特征共享层构建分类模型;根据分类模型,对AFL模糊器生成的测试用例进行预测,获取可用测试用例;将可用测试用例输入至目标程序运行计算分类模型的误判率,并当误报率不小于预设误判率时,更新分类模型。本发明采用多任务学习模型构建分类模型对AFL模糊器中新生成的测试用例进行可用性预测,提高模糊测试的效率,解决目前AFL预测模型存在数据不平衡的问题。

Description

一种基于多任务学习解决AFL预测模型数据不平衡的方法及 系统
技术领域
本发明涉及漏洞挖掘技术领域,具体涉及一种基于多任务学习解决AFL预测模型数据不平衡的方法及系统。
背景技术
随着互联网的飞速发展,软件安全已经逐渐成为人们比较关心的问题,而模糊测试是对软件安全进行检测的最重要的工具之一。模糊测试有可以分为白盒模糊测试、灰盒模糊测试和黑盒模糊测试。白盒模糊测试是通过使用符号执行技术,在程序运行过程中收集条件语句对输入的约束,通过用约束求解器进行求解产生新的输入,对目标程序内部情况有足够的了解以获得较高的覆盖率和深层漏洞检测效果。黑盒模糊测试则是无法获取目标程序的源代码,对目标程序内部的代码逻辑一无所知的情况下采取简单的随即变异方法进行模糊测试。灰盒模糊测试会同时考虑代码程序的逻辑结构以及观察目标程序执行时的输出来获取一些有价值的模糊测试信息,利用这些信息来更好地指导模糊测试的效果提升。
目前最流行的灰盒模糊测试工具AFL,其工作原理是维护一个有趣的程序输入队列,覆盖程序的不同部分,并用一组随机突变函数迭代地进行突变(例如翻转位,删除位,插入随机位等等)生成新的输入。如果新输入的生成路径是以前未观察到的,则将其添加到输入队列中,否则被丢弃。但不幸的是,丢弃投入物是有代价的,而且丢弃的数量占据相当大的一部分。在典型的模糊测试中,大约有数十亿的新输入生成,但其中只有很少的一部分新输入覆盖到了新的代码空间。但是,对于生成的每一个测试用例都要放到程序中执行,每次执行都需要时间,从几纳秒到一秒以上不等,具体取决于程序本身,复杂的程序需要的时间会更长,这整个过程中将会浪费几百分钟的运行时间,影响模糊测试器的效率。
发明内容
本发明目的在于提供一种基于多任务学习解决AFL预测模型数据不平衡的方法及系统,基于多任务学习模型自动学习多个任务的数据特征,构建分类模型,通过分类模型在先预测AFL模糊器新生成的测试用例的可用性来解决基于机器学习的AFL预测模型工作时数据量不平衡的问题,提高模糊测试的效率,同时还能给模糊测试提供更多样化的数据。
为达成上述目的,本发明提出如下技术方案:一种基于多任务学习解决AFL预测模型数据不平衡的方法,包括:
构建测试集,所述测试集包括由AFL模糊器生成的测试用例、由Angora模糊器生成的测试用例、由运行分支距离的模糊器生成的测试用例中的至少两种数据组成;
对所述测试集中的所有数据预处理,包括对任一测试用例根据测试用例的有用或无用对数据标注标签,并存储为八位二进制数据;
对预处理后的所述测试集提取部分标注标签后的数据,构建训练集;
根据所述训练集训练多任务学习模型,获得特征共享层,并根据所述特征共享层构建分类模型;
根据所述分类模型,对所述AFL模糊器生成的测试用例进行预测,获取可用测试用例;
将所述可用测试用例输入至目标程序运行,根据运行结果计算所述分类模型的误判率,并且当所述分类模型的误报率不小于预设误判率时,更新所述分类模型。
进一步的,在获取可用测试用例后,还包括:
根据筛选条件对所述可用测试用例进行筛选,获得筛选的测试用例;
对所述筛选的测试用例提升优先级,以变异生成更多的测试用例。
进一步的,所述对所述测试集中的所有数据预处理,还包括:
根据预设的第一文件阈值,对所述测试集中所有测试用例进行筛选,删除文件大小超过所述文件阈值的测试用例。
进一步的,所述多任务学习模型为卷积神经网络CNN模型,根据所述卷积神经网络CNN模型构建分类模型的过程为:
所述卷积神经网络CNN模型反向传播,获得共享特征层;
对所述共享特征层添加分类层,获得所述分类模型。
进一步的,所述获取可用测试用例的具体过程为:
判断所述AFL模糊器生成的测试用例的文件大小是否超过预设的第二文件阈值;
若超过,添加该测试用例至目标程序运行的队列中,以执行目标程序;
若不超过,根据所述分类模型预测该测试用例是否可用,并给出预测值;
其中,当所述测试用例的预测值为0,表明该测试用例为无用测试用例,跳过所述目标程序执行直接丢弃;当所述测试用例的预测值为1,表明该测试用例为可用测试用例,并将该测试用例添加至所述目标程序运行的队列中,以执行所述目标程序后判断该测试用例是否增加新的代码覆盖范围。
进一步的,所述误判率的计算公式为:
Figure BDA0003660848960000031
其中,Θ为误判率,M为分类模型获取的所有可用测试用例的数量,m为分类模型获取的经目标程序运行后未增加代码覆盖范围的可用测试用例的数量。
本发明另一技术方案在于公开一种基于多任务学习解决AFL预测模型数据不平衡的系统,该系统包括:
第一构建模块,用于构建测试集,所述测试集包括由AFL模糊器生成的测试用例、由Angora模糊器生成的测试用例、由运行分支距离的模糊器生成的测试用例中的至少两种数据组成;
预处理模块,用于对所述测试集中的所有数据预处理,包括对任一测试用例根据测试用例的有用或无用对数据标注标签,并存储为八位二进制数据;
第二构建模块,用于对预处理后的所述测试集提取部分标注标签后的数据,构建训练集;
第三构建模块,用于根据所述训练集训练多任务学习模型,获得特征共享层,并根据所述特征共享层构建分类模型;
预测模块,用于根据所述分类模型,对所述AFL模糊器生成的测试用例进行预测,获取可用测试用例;
计算更新模块,用于将所述可用测试用例输入至目标程序运行,根据运行结果计算所述分类模型的误判率,并且当所述分类模型的误报率不小于预设误判率时,更新所述分类模型。
进一步的,所述系统还包括:
筛选模块,用于根据筛选条件对所述获取的可用测试用例进行筛选,获得筛选的测试用例;
优先级模块,用于对所述筛选的测试用例提升优先级,以变异生成更多的测试用例。
进一步的,所述第三构建模块构建分类模型的具体执行单元,包括:
反向传播单元,用于所述多任务学习模型反向传播,获得共享特征层;其中,所述多任务学习模型为卷积神经网络CNN模型;
添加单元,用于对所述共享特征层添加分类层,获得所述分类模型。
本发明还公开一种基于多任务学习解决AFL预测模型数据不平衡的装置,该装置包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述的基于多任务学习解决AFL预测模型数据不平衡的方法。
由以上技术方案可知,本发明的技术方案获得了如下有益效果:
本发明公开的基于多任务学习解决AFL预测模型数据不平衡的方法及系统,相较于现有技术,具有如下优点:
本发明与现有技术相比具有以下优点:
1、本发明基于多任务学习,自动学习多个任务的数据的特征,而不需要专家人工去选择,大大地减少了时间成本。
2、本发明基于目前AFL预测模型存在数据不平衡的问题,采用多任务学习模型,并通过构建分类模型,来对AFL中新生成的测试用例进行预测,判断其是否增加代码覆盖范围,通过过滤掉无用的输入,减少AFL的运行时间;即本发明通过预测新生成的测试用例的可用性的方法来提高模糊测试的效率,不仅增大代码覆盖范围,还充分解决AFL预测模型存在的数据不平衡的问题。
3、本发明基于多任务学习模型,分析不同任务中的不同测试用例所存在的不同特征,创造性的将其特征融合在一起,增加了数据的多样性,将其应用在对测试集进行分类的方法上时,显著提升分类模型数据的多样性,进一步解决现有AFL预测模型数据单一的问题。
应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。
结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。
附图说明
附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:
图1为本发明的AFL模糊器工作流程图;
图2为本发明的多任务学习模型图;
图3为本发明基于多任务学习解决AFL预测模型数据不平衡的方法工作流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。
本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,除非上下文清楚地指明其它情况,否则单数形式的“一个”“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的特征、整体、步骤、操作、元素和/或组件,并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
如图1所示的AFL模糊器的工作流程,首先,初始输入一般为用户提供,即用户提供一组输入,AFL模糊器记录其代码覆盖范围,并通过变异算法对其迭代的进行变异,存进队列中,AFL模糊器继续执行这些测试用例,并记录它们是否增加了代码覆盖范围;对于可以增加代码覆盖范围的测试用例保存进队列中,进行下一步的操作,接着再次利用变异方法对其进行变异操作并送进程序中执行,而无法增加新的代码覆盖范围的输入直接丢弃。而在这个过程中,AFL模糊器可参照图1能生成上百万的新输入,而能够增加代码覆盖范围的新输入只能占其中很小的一部分,即机器学习AFL预测模型中训练数据显著不平衡。
已知,对于任一测试用例,运行一次目标程序可能会花费一纳秒到一秒的时间,而对于很复杂的程序来说,会占用更长的时间,因此,数据量占主流的无用测试用例会耗费大量的时间在无用的输入上面,造成模糊测试效率低。基于上述问题,本发明提出一种基于多任务学习解决AFL预测模型数据不平衡的方法及系统,该方法或系统通过多任务学习模型构建分类模型,实现在先预测AFL模糊器新生成的测试用例的可用性后删除部分无用测试用例,再输入至目标程序进行有用测试用例的判定,解决上述现有AFL预测模型工作时数据量不平衡的问题,提高模糊测试的效率,同时还能给模糊测试提供更多样化的数据。
下面结合附图所示的实施例,对本发明公开的基于多任务学习解决AFL预测模型数据不平衡的方法及系统作进一步具体介绍。
结合图2和图3所示,本发明实施例公开的基于多任务学习解决AFL预测模型数据不平衡的方法,具体包括如下步骤:
步骤S102,构建测试集,所述测试集包括由AFL模糊器生成的测试用例、由Angora模糊器生成的测试用例、由运行分支距离的模糊器生成的测试用例中的至少两种数据组成;
其中,由AFL模糊器生成测试用例、Angora模糊器生成测试用例、运行分支距离的模糊器生成测试用例的三个过程可分别作为多任务学习模型的三个任务,其中,AFL模糊器生成的测试用例包括生成的能够增加代码覆盖率的测试用例和未增加代码覆盖率的测试用例都保存下来,Angora模糊器生成的测试用例其细粒度的区分为对模糊测试有帮助的测试用例和没有帮助的测试用例,其中,对模糊测试有帮助的测试用例包括能够增加代码覆盖率以及未增加代码覆盖率但是能触发漏洞的测试用例;运行分支距离的模糊器生成的测试用例其细粒度的区分为能够增加代码覆盖率的测试用例、通过变异产生的能够增加代码覆盖率的测试用例以及完全没有帮助的测试用例。
步骤S104,对所述测试集中的所有数据预处理,包括对任一测试用例根据测试用例的有用或无用对数据标注标签,并存储为八位二进制数据;
具体的,先将不同模拟器收集的测试用例进行标注标签的操作,由于收集的每个模拟器的测试用例都存在有用和无用测试用例,实施例中,将有用测试用例的标注标签记为1,无用测试用例的标注标签记为0;随后,分别以二进制的方式读取测试集中任一测试用例的内容,并将任一测试用例的每个字节内容以八位二进制方式存储,即以二进制序列文件存储。作为一可选的实施例,预处理还包括根据预设的第一文件阈值,对所述测试集中所有测试用例进行筛选,删除文件大小超过所述第一文件阈值的测试用例,例如在具体实施时,由于收集的测试用例的文件大小普遍不超过1KB,只有极少数的文件大小超过1KB,为了减少后续模型训练时间,直接预设的第一文件阈值为1KB,保留测试集中测试用例文件大小不超过1KB的测试用例。
步骤S106,对预处理后的所述测试集提取部分标注标签后的数据,构建训练集;
步骤S108,根据所述训练集训练多任务学习模型,获得特征共享层,并根据所述特征共享层构建分类模型;
现有的多任务学习模型为与多个网络一致的一个输入的单一网络,该网络有多个输出,每个输出对应的一个任务;本发明的多任务学习模型采用卷积神经网络CNN模型,其具有多个输入和多个输出,多个输出连接一个隐层共享的所有神经元,在共享一个隐层后形成独立的子网络,训练不与其他任务共享的参数;并且,多任务学习模型反向传播并行地作用于多个输出,充分利用隐含在多个相关任务训练信号中的特定领域信息,学习至少两个任务的特征,这样的特征在单任务学习网络中往往不容易学到,因此能获得共享特征层。实施时,分类模型为在上述获得的共享特征层后采用sigmod函数获得的二分类模型。
实施例的卷积神经网络CNN模型选择三层网络结构,每层包含一个一维卷积层,每个卷积层后都有一个池化层和一个ReLU作为激活函数,同时添加Dropout层和BN算法层,以避免神经网络的过度拟合;卷积神经网络CNN模型的末尾添加一个全连接层,用于对测试用例进行评分;另外,可以使用Adam优化器帮助学习功能快速,稳定地收敛到最优解;当模型损失值逐渐变得稳定时,停止训练。
步骤S110,根据所述分类模型,对所述AFL模糊器生成的测试用例进行预测,获取可用测试用例;
该步骤的具体过程为:判断所述AFL模糊器生成的测试用例的文件大小是否超过所述预设的第二文件阈值;若超过,添加该测试用例至目标程序运行的队列中,以执行目标程序;若不超过,根据所述分类模型预测该测试用例是否可用,并给出预测值;其中,当所述测试用例的预测值为0,表明该测试用例为无用测试用例,跳过所述目标程序执行直接丢弃;当所述测试用例的预测值为1,表明该测试用例为可用测试用例,并将该测试用例添加至所述目标程序运行的队列中,以执行所述目标程序后判断该测试用例是否增加新的代码覆盖范围。其中,预设的第二文件阈值也可以设定为1KB。
步骤S112,将所述可用测试用例输入至目标程序运行,根据运行结果计算所述分类模型的误判率,并且当所述分类模型的误报率不小于预设误判率时,更新所述分类模型。
具体的,误判率的计算公式为:
Figure BDA0003660848960000091
其中,Θ为误判率,M为分类模型获取的所有可用测试用例的数量,m为分类模型获取的经目标程序运行后未增加代码覆盖范围的可用测试用例的数量;实施例中,分类模型的预设误判率可设为1%。另外,对于分类模型的更新为构建新的训练集,采用新的训练集训练多任务学习模型,再构建分类模型。
作为一可选的实施例,在步骤S110获取可用测试用例后,还包括:根据筛选条件对所述可用测试用例进行筛选,获得筛选的测试用例;对所述筛选的测试用例提升优先级,以变异生成更多的测试用例。
已知AFL模糊器中会将测试用例中文件小且执行速度快的测试用例设置为save_if_interesting,测试用例变异时,为这些用例分配更多的能量,以增加该测试用例变异的次数,但现有的AFL预测模型容易出现有用的测试用例不被执行的情况。因此,本实施例在AFL模糊器的基础上使用分类模型,在获得可用测试用例后,针对保留下来的测试用例,根据筛选条件,如同时满足文件小且执行速度快的测试用例,设置为save_if_interesting,分配更多的能量,进而在图1所示的过程中变异更多的测试用例。
本发明基于多任务学习解决AFL预测模型数据不平衡的方法中构建的分类模型利用了多个任务的测试用例的不同特征,能够提高AFL模糊器发现漏洞的效率,提高预测有用和无用测试用例分类的准确率,一方面充分解决了机器学习AFL预测模型中训练数据不平衡的问题,另一方面还解决该模型缺乏数据多样性的问题,提高了模糊测试的效率。
本发明另一实施例,提供一种电子设备,该电子设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述实施例公开的基于多任务学习解决AFL预测模型数据不平衡的方法。
上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(trans itory med ia),如调制的数据信号和载波。
这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。在本实施例中,就提供这样一种电子设备,该设备可以称为一种基于多任务学习解决AFL预测模型数据不平衡的装置或一种基于多任务学习解决AFL预测模型数据不平衡的系统,所述系统包括:第一构建模块,用于构建测试集,所述测试集包括由AFL模糊器生成的测试用例、由Angora模糊器生成的测试用例、由运行分支距离的模糊器生成的测试用例中的至少两种数据组成;预处理模块,用于对所述测试集中的所有数据预处理,包括对任一测试用例根据测试用例的有用或无用对数据标注标签,并存储为八位二进制数据;第二构建模块,用于对预处理后的所述测试集提取部分标注标签后的数据,构建训练集;第三构建模块,用于根据所述训练集训练多任务学习模型,获得特征共享层,并根据所述特征共享层构建分类模型;预测模块,用于根据所述分类模型,对所述AFL模糊器生成的测试用例进行预测,获取可用测试用例;计算更新模块,用于将所述可用测试用例输入至目标程序运行,根据运行结果计算所述分类模型的误判率,并且当所述分类模型的误报率不小于预设误判率时,更新所述分类模型。
本系统用于实现上述实施例中的方法步骤,已经进行说明的,在此不再赘述。
例如,该系统执行时还包括为获取的部分可用测试用例提升优先级,即还包括:筛选模块,用于根据筛选条件对所述获取的可用测试用例进行筛选,获得筛选的测试用例;优先级模块,用于对所述筛选的测试用例提升优先级,以变异生成更多的测试用例。
又例如,所述第三构建模块用于构建分类模型的具体执行单元,包括:反向传播单元,用于所述多任务学习模型反向传播,获得共享特征层;其中,所述多任务学习模型为卷积神经网络CNN模型;添加单元,用于对所述共享特征层添加分类层,获得所述分类模型。
本发明公开的方法及系统基于多任务学习模型,自动学习多个任务的测试用例的特征构建分类模型,来对AFL模拟器中新生成的测试用例进行预测,判断其是否增加代码覆盖范围,通过过滤掉无用的输入,减少AFL模拟器的运行时间,提高模糊测试的效率,同时增大代码覆盖范围,解决目前AFL预测模型在AFL模糊器中应用时存在的数据不平衡的问题;同时,由于采用多任务学习模型分析不同任务中的测试用例的特征,并创造性融合,相较于现有AFL预测模型也大大增加了数据的多样性。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

Claims (10)

1.一种基于多任务学习解决AFL预测模型数据不平衡的方法,其特征在于,包括:
构建测试集,所述测试集包括由AFL模糊器生成的测试用例、由Angora模糊器生成的测试用例、由运行分支距离的模糊器生成的测试用例中的至少两种数据组成;
对所述测试集中的所有数据预处理,包括对任一测试用例根据测试用例的有用或无用对数据标注标签,并存储为八位二进制数据;
对预处理后的所述测试集提取部分标注标签后的数据,构建训练集;
根据所述训练集训练多任务学习模型,获得特征共享层,并根据所述特征共享层构建分类模型;
根据所述分类模型,对所述AFL模糊器生成的测试用例进行预测,获取可用测试用例;
将所述可用测试用例输入至目标程序运行,根据运行结果计算所述分类模型的误判率,并且当所述分类模型的误报率不小于预设误判率时,更新所述分类模型。
2.根据权利要求1所述的基于多任务学习解决AFL预测模型数据不平衡的方法,其特征在于,在获取可用测试用例后,还包括:
根据筛选条件对所述可用测试用例进行筛选,获得筛选的测试用例;
对所述筛选的测试用例提升优先级,以变异生成更多的测试用例。
3.根据权利要求1所述的基于多任务学习解决AFL预测模型数据不平衡的方法,其特征在于,所述对所述测试集中的所有数据预处理,还包括:
根据预设的第一文件阈值,对所述测试集中所有测试用例进行筛选,删除文件大小超过所述文件阈值的测试用例。
4.根据权利要求1所述的基于多任务学习解决AFL预测模型数据不平衡的方法,其特征在于,所述多任务学习模型为卷积神经网络CNN模型,根据所述卷积神经网络CNN模型构建分类模型的过程为:
所述卷积神经网络CNN模型反向传播,获得共享特征层;
对所述共享特征层添加分类层,获得所述分类模型。
5.根据权利要求1所述的基于多任务学习解决AFL预测模型数据不平衡的方法,其特征在于,所述获取可用测试用例的具体过程为:
判断所述AFL模糊器生成的测试用例的文件大小是否超过预设的第二文件阈值;
若超过,添加该测试用例至目标程序运行的队列中,以执行目标程序;
若不超过,根据所述分类模型预测该测试用例是否可用,并给出预测值;
其中,当所述测试用例的预测值为0,表明该测试用例为无用测试用例,跳过所述目标程序执行直接丢弃;当所述测试用例的预测值为1,表明该测试用例为可用测试用例,并将该测试用例添加至所述目标程序运行的队列中,以执行所述目标程序后判断该测试用例是否增加新的代码覆盖范围。
6.根据权利要求1所述的基于多任务学习解决AFL预测模型数据不平衡的方法,其特征在于,所述误判率的计算公式为:
Figure FDA0003660848950000021
其中,Θ为误判率,M为分类模型获取的所有可用测试用例的数量,m为分类模型获取的经目标程序运行后未增加代码覆盖范围的可用测试用例的数量。
7.一种基于多任务学习解决AFL预测模型数据不平衡的系统,其特征在于,包括:
第一构建模块,用于构建测试集,所述测试集包括由AFL模糊器生成的测试用例、由Angora模糊器生成的测试用例、由运行分支距离的模糊器生成的测试用例中的至少两种数据组成;
预处理模块,用于对所述测试集中的所有数据预处理,包括对任一测试用例根据测试用例的有用或无用对数据标注标签,并存储为八位二进制数据;
第二构建模块,用于对预处理后的所述测试集提取部分标注标签后的数据,构建训练集;
第三构建模块,用于根据所述训练集训练多任务学习模型,获得特征共享层,并根据所述特征共享层构建分类模型;
预测模块,用于根据所述分类模型,对所述AFL模糊器生成的测试用例进行预测,获取可用测试用例;
计算更新模块,用于将所述可用测试用例输入至目标程序运行,根据运行结果计算所述分类模型的误判率,并且当所述分类模型的误报率不小于预设误判率时,更新所述分类模型。
8.根据权利要求7所述的基于多任务学习解决AFL预测模型数据不平衡的系统,其特征在于,还包括:
筛选模块,用于根据筛选条件对所述可用测试用例进行筛选,获得筛选的测试用例;
优先级模块,用于对所述筛选的测试用例提升优先级,以变异生成更多的测试用例。
9.根据权利要求7所述的基于多任务学习解决AFL预测模型数据不平衡的系统,其特征在于,所述第三构建模块构建分类模型的具体执行单元,包括:
反向传播单元,用于所述多任务学习模型反向传播,获得共享特征层;其中,所述多任务学习模型为卷积神经网络CNN模型;
添加单元,用于对所述共享特征层添加分类层,获得所述分类模型。
10.一种基于多任务学习解决AFL预测模型数据不平衡的装置,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至6任一所述的基于多任务学习解决AFL预测模型数据不平衡的方法。
CN202210577311.9A 2022-05-25 2022-05-25 一种基于多任务学习解决afl预测模型数据不平衡的方法及系统 Pending CN114969754A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210577311.9A CN114969754A (zh) 2022-05-25 2022-05-25 一种基于多任务学习解决afl预测模型数据不平衡的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210577311.9A CN114969754A (zh) 2022-05-25 2022-05-25 一种基于多任务学习解决afl预测模型数据不平衡的方法及系统

Publications (1)

Publication Number Publication Date
CN114969754A true CN114969754A (zh) 2022-08-30

Family

ID=82956760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210577311.9A Pending CN114969754A (zh) 2022-05-25 2022-05-25 一种基于多任务学习解决afl预测模型数据不平衡的方法及系统

Country Status (1)

Country Link
CN (1) CN114969754A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062795A (zh) * 2018-07-24 2018-12-21 北京理工大学 一种模糊测试用例选择方法和装置
CN109522221A (zh) * 2018-10-26 2019-03-26 中国科学院信息工程研究所 一种提高模糊测试效率的方法和系统
US20190266074A1 (en) * 2018-02-27 2019-08-29 International Business Machine Corporation Co-verification of hardware and software
US20190361789A1 (en) * 2018-05-24 2019-11-28 Fujitsu Limited Concurrency vulnerability detection
CN112445709A (zh) * 2020-11-30 2021-03-05 安徽工业大学 一种通过gan解决afl测试模型数据不平衡的方法及装置
WO2021151296A1 (zh) * 2020-07-22 2021-08-05 平安科技(深圳)有限公司 多任务分类方法、装置、计算机设备及存储介质
CN114328213A (zh) * 2021-12-27 2022-04-12 杭州电子科技大学 基于目标点任务划分的并行化模糊测试方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190266074A1 (en) * 2018-02-27 2019-08-29 International Business Machine Corporation Co-verification of hardware and software
US20190361789A1 (en) * 2018-05-24 2019-11-28 Fujitsu Limited Concurrency vulnerability detection
CN109062795A (zh) * 2018-07-24 2018-12-21 北京理工大学 一种模糊测试用例选择方法和装置
CN109522221A (zh) * 2018-10-26 2019-03-26 中国科学院信息工程研究所 一种提高模糊测试效率的方法和系统
WO2021151296A1 (zh) * 2020-07-22 2021-08-05 平安科技(深圳)有限公司 多任务分类方法、装置、计算机设备及存储介质
CN112445709A (zh) * 2020-11-30 2021-03-05 安徽工业大学 一种通过gan解决afl测试模型数据不平衡的方法及装置
CN114328213A (zh) * 2021-12-27 2022-04-12 杭州电子科技大学 基于目标点任务划分的并行化模糊测试方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张羿辰;赵磊;金银山;: "模糊测试中基于神经网络的敏感区域预测算法研究", 信息安全学报, no. 01, 15 January 2020 (2020-01-15) *
邹燕燕;邹维;尹嘉伟;霍玮;杨梅芳;孙丹丹;史记;: "变异策略感知的并行模糊测试研究", 信息安全学报, no. 05, 15 September 2020 (2020-09-15) *

Similar Documents

Publication Publication Date Title
US20210136098A1 (en) Root cause analysis in multivariate unsupervised anomaly detection
Zhang et al. Predicting defective software components from code complexity measures
CN108985060A (zh) 一种大规模安卓恶意软件自动化检测系统及方法
US11816080B2 (en) Severity computation of anomalies in information technology operations
CN112989363B (zh) 漏洞定位方法、装置、电子设备和存储介质
US20170270424A1 (en) Method of Estimating Program Speed-Up in Highly Parallel Architectures Using Static Analysis
CN111522736A (zh) 一种软件缺陷预测方法、装置、电子设备及计算机存储介质
CN112445709B (zh) 一种通过gan解决afl测试模型数据不平衡的方法及装置
Blanco et al. Applying cost-sensitive classifiers with reinforcement learning to ids
CN110162472A (zh) 一种基于fuzzing测试的测试用例生成方法
CN117113350A (zh) 基于路径自适应的恶意软件检测方法、系统及设备
Ostrowski et al. Knowledge-based software testing agent using evolutionary learning with cultural algorithms
CN114969754A (zh) 一种基于多任务学习解决afl预测模型数据不平衡的方法及系统
CN111461344B (zh) 高阶特征的自动生成方法、系统、设备和介质
CN114996111A (zh) 一种配置项对软件系统性能影响的分析方法及系统
Bütepage et al. Gaussian process encoders: Vaes with reliable latent-space uncertainty
Gaykar et al. A Hybrid Supervised Learning Approach for Detection and Mitigation of Job Failure with Virtual Machines in Distributed Environments.
Zhou et al. Using small-scale history data to predict large-scale performance of hpc application
Branco et al. Resampling with neighbourhood bias on imbalanced domains
Zhao et al. Software Defect Prediction Method Based on Cost-Sensitive Random Forest
CN113743431B (zh) 一种数据选择方法及装置
CN109436980A (zh) 电梯部件的状态检测方法和系统
CN114339859B (zh) 识别全屋无线网络WiFi潜在用户的方法、装置及电子设备
Prabu et al. An effective tool for optimizing the number of test paths in data flow testing for anomaly detection
Menshawy et al. Comparing the Effectiveness of Machine Learning and Deep Learning Techniques for Feature Envy Detection in Software Systems

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