CN113704098B - 一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法 - Google Patents

一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法 Download PDF

Info

Publication number
CN113704098B
CN113704098B CN202110946922.1A CN202110946922A CN113704098B CN 113704098 B CN113704098 B CN 113704098B CN 202110946922 A CN202110946922 A CN 202110946922A CN 113704098 B CN113704098 B CN 113704098B
Authority
CN
China
Prior art keywords
node
sample
alpha
deep learning
leaf
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.)
Active
Application number
CN202110946922.1A
Other languages
English (en)
Other versions
CN113704098A (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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202110946922.1A priority Critical patent/CN113704098B/zh
Publication of CN113704098A publication Critical patent/CN113704098A/zh
Application granted granted Critical
Publication of CN113704098B publication Critical patent/CN113704098B/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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明提供了一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法,采用公认的MNIST和CIFAR‑10图像数据集,设计新的模糊器种子调度策略与深度学习测试变异方法,用基于蒙特卡洛搜索树的调度策略替换传统Power‑Scheduling,使生成的测试用例在被测***的覆盖率显著提高,提高了被测***的鲁棒性。

Description

一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法
技术领域
本发明涉及人工智能安全技术领域,尤其涉及一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法。
背景技术
模糊测试已经成为软件和硬件上最流行的漏洞发掘方案之一,在安全界得到了广泛的应用和研究。像AFL这样的覆盖率引导模糊测试取得了巨大的成功。最先进的覆盖率引导模糊器,包括libFuzzer、honggfuzz、AFL等,为发现成千上万的漏洞做出了贡献。一般来说,模糊测试的目的是通过生成,并向目标程序发送大量的测试用例来检测非预期的行为并发现漏洞。模糊测试基于测试用例的生成方式可以分为两类:基于变异的和基于生成的模糊测试。基于生成的模糊测试旨在根据程序输入的语法生成高度结构化的测试用例。然而,由于特定语法的构建主要是手工完成,所以基于生成的模糊测试效率并不高。
与之相反,基于变异的模糊器通过突变现有的测试用例(初始种子)来生成新的测试用例。因此,基于变异的测试用例质量是影响模糊器的有效性和效率的最重要的因素之一。由于基于变异的模糊测试几乎是通过随机变异现有的测试用例来生成,其变异效率高度依赖引导策略。在现有的基于变异的模糊测试中,针对深度神经网络***的测试方法引起了研究者们的广泛关注。与传统软件不同的是,深度学习模型是数据驱动的***。因此深度学习测试不能直接应用传统的软件测试度量元。深度学习***的代码较容易被覆盖,但是深度学习的错误行为并不来源于代码本身。为了克服这一难题,Pei等人在DeepXplore中首次将神经元覆盖率作为度量元引入深度学习测试,并将该度量元应用于DeepTest的现实生活应用场景。在他们的工作之后,Ma等人开发了多种深度学习***的度量元,包括k分区神经元覆盖率来区分更小粒度的测试用例,使将来的工作可以在一个统一的标准上进行实验。
基于所提出的测试度量元,Xie等人提出了一个新型的深度学习***的覆盖率引导的模糊测试框架Deephunter,并在一系列指标上取得了显著的效果。Zhang等人证明了基于模糊测试的***也可以为DNN模型构建黑盒攻击。对抗训练是利用测试样本来增强深度学习***鲁棒性的最常见的方式。然而,当前的深度学习测试模糊器在种子调度上仅使用简单的Power-Scheduling(功耗调度)策略,使得整体测试效率欠佳。
发明内容
本发明提出一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法,基于蒙特卡洛搜索树的种子调度策略可以同时兼顾搜索时的广度与深度。从而高效的大量生成测试用例,提高了测试效率,并使用测试用例进行对抗训练从而增强深度神经网络自身的鲁棒性。
为了解决上述技术问题,本发明提供了一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法,包括:
S1:将测试用例以批形式存入蒙特卡洛搜索树的初始节点α;
S2:采用置信区间上界算法UCB选择蒙特卡洛搜索树中每一层的最优节点αbest,直到选择至树形结构的叶子节点αleaf,其中,每一层的最优节点为该层中UCB值最大的节点,UCB值根据节点的评估值和访问次数获得,用以平衡搜索的广度与深度;
S3:通过变异函数对叶子节点αleaf存储的样本进行变异,得到变异后的样本,存入新节点αleaf+1中,αleaf+1为αleaf的子节点;
S4:对新节点αleaf+1中的样本进行随机模拟,随机模拟过程中生成新的样本Im,m=1,2,…n;每一次随机模拟前检查Im中样本语义限制违反情况,若Im中部分样本违反预设语义限制则仅变异未违反预设语义限制的样本,每一轮变异都将本轮Im存储进queue,n轮模拟后,直到Im中所有的样本违反预设语义限制则停止模拟,最终得到终局前数据序列queue(I1,I2,I3,...,In);
S5:将测试生成的新节点中终局前的数据序列输入待测深度学习模型,观察能否促进待测深度学习模型神经元覆盖率的提升;
S6:如果新生成的节点中终局前的数据序列的平均模拟结果能够引导深度学习模型获得更高的神经元覆盖率,则将新生成的节点的结果中的bonus加1,bonus表示每次采样覆盖率增加次数,并延树形结构进行反向传播;
S7:循环执行步骤S2至步骤S6,通过不断扩大蒙特卡洛搜索树得到能够增加神经网络覆盖率的测试用例,并利用得到的测试用例进行模糊测试。
在一种实施方式中,步骤S1包括:
S1.1:从预设数据集中获取测试用例作为初始种子;
S1.2:将初始种子以state属性存储于初始节点对象中,其中batch大小为64,节点中的属性包括state,child,parent,bonus和visits,其中,state为以批形式存储的种子,child为子节点的对象,parent为父节点的对象,bonus为节点每次采样覆盖率增加次数,表示节点的价值,visits为节点被采样次数。
在一种实施方式中,步骤S2包括:
S2.1:从初始节点开始逐层使用UCB算法进行选择,选择出该层中UCB值最大的节点,UCB值为reward:
上式中,vi为节点的评估值,c为常数,N与ni分别为父节点与本节点的访问次数;
S2.2:当选择出一个节点后继续选择该节点的子节点,并对该节点的子节点采用UCB算法进行选择,直到到达蒙特卡洛搜索树的叶子节点。
在一种实施方式中,变异后的样本为图像样本,步骤S3包括:
S3.1:随机在图像样本坐标上取点作为变异点,并获得预设大小的正方形区域;
S3.2:对正方形区域中的像素随机施加变异操作;
S3.3:将变异后的样本存入新节点中。
在一种实施方式中,步骤S4包括:
S4.1:对新节点αleaf+1中的样本进行变异操作,生成新样本,将生成的新样本进行保存得到输入I;
S4.2:检查输入I是否违反样本预设语义限制,公式如下:
其中,f(i,i')表示预设语义限制函数,i表示原始样本,i'表示变异后样本,size为样本总像素数,α,β为常数,L(i,i')表示样本i与i'的L距离,即样本i'相对于i单像素修改最大值绝对值,L0(i,i')表示样本i与i'的L0距离,即样本i'相对于i的像素修改个数;预设语义限制函数表示当样本被修改的像素数小于α×size(s)时,L(i,i')小于像素最大值255,不要求变异的幅度;否则,L(i,i')小于β×255,违反限制的样本将不在下一轮变异;
S4.3:若生成的新样本没有违反限制,则将样本存储进queue(I1,I2,I3,...,In);
S4.4:重复步骤S4.1与S4.3直至I中所有样本违反限制。
在一种实施方式中,步骤S5包括:
步骤5.1,将得到的最终样本输入进神经网络,测算神经元覆盖程度,获得神经元覆盖率;
步骤5.2,若获得的神经元覆盖率大于新节点αleaf+1内样本的神经元覆盖率,则将新节点αleaf+1的bonus加1,bonus为节点每次采样覆盖率增加次数,表示节点的价值。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明提供的一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法,基于蒙特卡洛搜索树的种子调度策略可以同时兼顾搜索时的广度与深度,从而高效的大量生成测试用例,提高了测试的效率,用基于蒙特卡洛搜索树的调度策略替换传统Power-Scheduling,使生成的测试用例在被测***的覆盖率显著提高,提高了被测***的鲁棒性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明具体实施例中测试用例示例图;
图2为本发明具体实施例中模糊器工作流程图。
具体实施方式
本发明主要是解决现有针对深度学习***的模糊测试种子调度策略使得测试效率低下问题,提供了一种基于蒙特卡洛搜索树种子调度策略的模糊测试方法。该方法及装置在预先构建的CNN模型上进行实验,设计种子调度策略来优先变异有价值的测试用例(种子)。针对参数和结构未知的深度学习模型,利用生成的对抗样本作为输入数据进行对抗训练,同时提高被测模型的鲁棒性。。
本发明的技术方案包括:采用公认的MNIST和CIFAR-10图像数据集,设计新的模糊器种子调度策略与深度学习测试变异方法,用基于蒙特卡洛搜索树的调度策略替换传统Power-Scheduling,使生成的测试用例在被测***的覆盖率显著提高,提高了被测***的鲁棒性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法,包括:
S1:将测试用例以批形式存入蒙特卡洛搜索树的初始节点α;
S2:采用置信区间上界算法UCB选择蒙特卡洛搜索树中每一层的最优节点αbest,直到选择至树形结构的叶子节点αleaf,其中,每一层的最优节点为该层中UCB值最大的节点,UCB值根据节点的评估值和访问次数获得,用以平衡搜索的广度与深度;
S3:通过变异函数对叶子节点αleaf存储的样本进行变异,得到变异后的样本,存入新节点αleaf+1中,αleaf+1为αleaf的子节点;
S4:对新节点αleaf+1中的样本进行随机模拟,随机模拟过程中生成新的样本Im,m=1,2,…n;每一次随机模拟前检查Im中样本语义限制违反情况,若Im中部分样本违反预设语义限制则仅变异未违反预设语义限制的样本,每一轮变异都将本轮Im存储进queue,n轮模拟后,直到Im中所有的样本违反预设语义限制则停止模拟,最终得到终局前数据序列queue(I1,I2,I3,...,In);
S5:将测试生成的新节点中终局前的数据序列输入待测深度学习模型,观察能否促进待测深度学习模型神经元覆盖率的提升;
S6:如果新生成的节点中终局前的数据序列的平均模拟结果能够引导深度学习模型获得更高的神经元覆盖率,则将新生成的节点的结果中的bonus加1,bonus表示每次采样覆盖率增加次数,并延树形结构进行反向传播;
S7:循环执行步骤S2至步骤S6,通过不断扩大蒙特卡洛搜索树得到能够增加神经网络覆盖率的测试用例,并利用得到的测试用例进行模糊测试。
具体来说,蒙特卡洛搜索树作为人工智能领域广泛使用的搜索技术备受关注。通过不断采样来逼近问题的最优求解。一般来说,构造蒙特卡洛搜索树分为四个过程:1,选择(Selection):选择树中的最优叶子节点,如果没有节点则构建根节点;2,扩展(Expansion):对选择的叶子节点进行扩展,从而得到新节点;3,模拟(Simulation):对新节点进行模拟从而得到2中叶子节点的评估值;4,回溯(Back-propagation):通过反向传播将评估值传播至整个选择路径。蒙特卡洛搜索树算法通过一次次迭代不断扩大搜索树的规模来得到最优解。
其中,步骤S2~S4分别对应选择、扩展和模拟过程,S6对应回溯过程。S1中的初始节点即为蒙特卡洛搜索树的根节点,S2的选择过程中,每一次选择都是以层为单位,选择每一层节点中UCB评估值最优的节点,直到选择到整个树形结构的叶子节点,然后从叶子节点向下延展一位,用于扩展搜索树的结构,再通过对新生成的节点模拟,得到新的reward,最后将这个新的结果反向传播至整个树。
在一种实施方式中,步骤S1包括:
S1.1:从预设数据集中获取测试用例作为初始种子;
S1.2:将初始种子以state属性存储于初始节点对象中,其中batch大小为64,节点中的属性包括state,child,parent,bonus和visits,其中,state为以批形式存储的种子,child为子节点的对象,parent为父节点的对象,bonus为节点每次采样覆盖率增加次数,表示节点的价值,visits为节点被采样次数。
具体实施过程中,预设数据集包括MNIST、CIFAR-10等数据集。
在一种实施方式中,步骤S2包括:
S2.1:从初始节点开始逐层使用UCB算法进行选择,选择出该层中UCB值最大的节点,UCB值为reward:
上式中,vi为节点的评估值,c为常数,N与ni分别为父节点与本节点的访问次数;
S2.2:当选择出一个节点后继续选择该节点的子节点,并对该节点的子节点采用UCB算法进行选择,直到到达蒙特卡洛搜索树的叶子节点。
其中,reward(UCB值)用以搜索过程中平衡搜索广度与深度,常数c经验设置为
在一种实施方式中,变异后的样本为图像样本,步骤S3包括:
S3.1:随机在图像样本坐标上取点作为变异点,并获得预设大小的正方形区域;
S3.2:对正方形区域中的像素随机施加变异操作;
S3.3:将变异后的样本存入新节点中。
具体实施过程中,预设大小为kernel,可以取kernel=3。变异操作具体如下表:
变异操作 描述
侵蚀 缩减图形边界
扩张 扩张图形边界
开运算 消除图形外部噪声
闭运算 消除图形内部噪声
模糊 平滑像素连续性
噪声 添加高斯噪声
变异操作可以通过公开图形库opencv中获取。
在一种实施方式中,步骤S4包括:
S4.1:对新节点αleaf+1中的样本进行变异操作,生成新样本,将生成的新样本进行保存得到输入I;
S4.2:检查输入I是否违反样本预设语义限制,公式如下:
其中,f(i,i')表示预设语义限制函数,i表示原始样本,i'表示变异后样本,size为样本总像素数,α,β为常数,L(i,i')表示样本i与i'的L距离,即样本i'相对于i单像素修改最大值绝对值,L0(i,i')表示样本i与i'的L0距离,即样本i'相对于i的像素修改个数;预设语义限制函数表示当样本被修改的像素数小于α×size(s)时,L(i,i')小于像素最大值255,不要求变异的幅度;否则,L(i,i')小于β×255,违反限制的样本将不在下一轮变异;
S4.3:若生成的新样本没有违反限制,则将样本存储进queue(I1,I2,I3,...,In);
S4.4:重复步骤S4.1与S4.3直至I中所有样本违反限制。
具体来说,预设语义限制函数表示:如果对单一的图像进行变异,变异的像素点比例小于α×size(s)时,不要求变异的幅度,L无限距离L(i,i')小于像素最大值255即可;在变异像素点过多,超过比例后,单一变异像素点的最大值L(i,i')不可以超过β×255。Size表示图像的像素总数,例如样本为32×32×3,则size为3072,变异操作分别在三个通道对像素点变异。α,β为自定义常数,在本实施方式中设置为0.3与0.1。
步骤S3的扩展和步骤S4中的模拟的区别和关联包括:步骤S3是用于生成新节点,因此新节点中的数据(样本)是以node的形式存储的(即生成一个node的对象),具体地,在生成新节点时会同时给出节点的state属性以及该节点的上下节点关系等。而步骤S4中的simulation模拟过程,只需要获得这一次采样的评估结果,因而不生成新节点。扩展和模拟的本质都是进行了变异操作,区别在于expansion中变异操作只进行一次,simulation在所有样本达到限制前会不断变异(即多次变异),这样可以得到一次随机模拟至终局(到达限制)的采样结果。
在具体的模拟过程中,是一个迭代的过程,每一轮都会在上一轮的基础上进行变异,例如第一轮变异得到样本I1,第二轮变异在第一轮变异的基础上进行,得到样本I2,依此类推,第n轮变异后的结果为In,并将变异得到的所有样本存入输入序列I中。每一次变异后都会对输入I进行检查是否违反限制,当输入序列中所有的样本都违反限制则停止,否则继续。其中,在检查是否违反限制时,会将没有违反限制的样本存入queue中。
在一种实施方式中,步骤S5包括:
步骤5.1,将得到的最终样本输入进神经网络,测算神经元覆盖程度,获得神经元覆盖率;
步骤5.2,若获得的神经元覆盖率大于新节点αleaf+1内样本的神经元覆盖率,则将新节点αleaf+1的bonus加1,bonus为节点每次采样覆盖率增加次数,表示节点的价值。
具体来说,步骤S5的前提条件如下:
神经元覆盖指预先训练一个CNN替代模型,将一个图像数据作为输入,神经元接到上层输入后经过激活函数会得到一个输出o,设置一个常数t为神经元激活的阈值,CNN最终输出分类结果为c,样本原始标签为l。
①当c≠l时,且不违反语义限制时,该输入被判别为对抗样本(adversarialsamples);当c=l时,被判别为正常样本;
②当单个神经元输出o>t时,视为神经元被覆盖;
③阈值t的经验值为0.25、0.5、0.75,这里我们选取0.75作为阈值;
然后执行步骤S5.1~步骤S5.2,将得到的最终样本输入进神经网络,测算神经元覆盖程度,获得神经元覆盖率;若获得的神经元覆盖率大于αleaf+1内样本的神经元覆盖率,则视为αleaf+1的bonus加1.
在一种实施方式中,步骤S6中的回溯传播方法:
S6.1,αleaf+1获得bonus后更新其评估值vi,其中vi计算公式如下:
其中,vi为UCB公式中的节点评估值,bonus为模拟结果中使覆盖率增加的次数,visits为节点的被访问次数。
S6.2,从αleaf+1向αleaf更新评估值,直到更新至根节点α,首先αleaf+1的bonus依据模拟结果决定是否加1,其visits+1,然后选择αleaf+1节点中的属性parent即选择节点αleaf,如果αleaf+1的结果使αleaf+1加1,则此时αleaf中的bonus也加1,visits加1,继续选择αleaf的父节点parent并重复迁移过程直至根节点α;
下面通过一个具体示例对本发明的方法进行介绍。
本发明的方法是为了解决现有的以Power-Scheduling为代表的深度学习测试种子调度机制效率低下问题,为了方便阐述,现以图1中的图像样本为例说明CIFAR-10数据集下样本的生成情况:
将图1中左边的样本为CIFAR-10数据集中的正常样本,右边的样本为经过变异后的样本。作为输入数据导入训练好的CNN模型中,左边的样本获得正确的分类“鸟”,右边的变异样本获得分类“飞机”,并获得更高神经元覆盖率。具体实施时,本发明的方法可以通过计算机流程来实现,实现该方法的程序构成模糊器,用以实现本发明的基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法,其中,图2是本发明中的模糊器工作流程图,其详细说明过程如下:
步骤1,以图1中的图像样本以批的形式输入进模糊器,并记录下其label(标签);
步骤2,以初始输入样本(初始种子)作为根节点进行搜索。进行首轮迭代,选择至搜索树的叶子节点;对该叶子节点的数据(样本)进行一次变异操作,得到变异后的样本,并以此生成该叶子节点的子节点。对该节点进行一次随机模拟,将模拟得到的变异样本输入深度学习***获得神经元覆盖率反馈,以获得其节点评估值;验证模拟中生成的变异样本,并将潜在的解存储;将该评估值反向回溯至树形结构中所有的父节点。
步骤3,将模拟中生成的潜在解输入深度学习模块进行验证对比label。得到验证解。
从以上描述可知,本发明的有益效果是:本发明采用公认的MNIST和CIFAR-10图像数据集,设计新的模糊器种子调度策略与深度学习测试变异方法,用基于蒙特卡洛搜索树的调度策略替换Power-Scheduling,使生成的测试用例在被测***的覆盖率显著提高,提高了被测***的鲁棒性。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (6)

1.一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法,其特征在于,包括:
S1:将测试用例以批形式存入蒙特卡洛搜索树的初始节点α;
S2:采用置信区间上界算法UCB选择蒙特卡洛搜索树中每一层的最优节点αbest,直到选择至树形结构的叶子节点αleaf,其中,每一层的最优节点为该层中UCB值最大的节点,UCB值根据节点的评估值和访问次数获得,用以平衡搜索的广度与深度;
S3:通过变异函数对叶子节点αleaf存储的样本进行变异,得到变异后的样本,存入新节点α1eaf+1中,αleaf+1为α1eaf的子节点;
S4:对新节点α1eaf+1中的样本进行随机模拟,随机模拟过程中生成新的样本Im,m=1,2,...n;每一次随机模拟前检查Im中样本语义限制违反情况,若Im中部分样本违反预设语义限制则仅变异未违反预设语义限制的样本,每一轮变异都将本轮Im存储进queue,n轮模拟后,直到Im中所有的样本违反预设语义限制则停止模拟,最终得到终局前数据序列queue(I1,I2,I3,...,In);
S5:将测试生成的新节点中终局前的数据序列queue(I1,I2,I3,...,In)输入待测深度学习模型,观察能否促进待测深度学习模型神经元覆盖率的提升;
S6:如果新生成的节点中终局前的数据序列的平均模拟结果能够引导深度学习模型获得更高的神经元覆盖率,则将新生成的节点的结果中的bonus加1,bonus表示每次采样覆盖率增加次数,并延树形结构进行反向传播;
S7:循环执行步骤S2至步骤S6,通过不断扩大蒙特卡洛搜索树得到能够增加神经网络覆盖率的测试用例,并利用得到的测试用例进行模糊测试。
2.如权利要求1所述的深度学习模糊测试方法,其特征在于,步骤S1包括:
S1.1:从预设数据集中获取测试用例作为初始种子;
S1.2:将初始种子以state属性存储于初始节点对象中,其中batch大小为64,节点中的属性包括state,child,parent,bonus和visits,其中,state为以批形式存储的种子,child为子节点的对象,parent为父节点的对象,bonus为节点每次采样覆盖率增加次数,表示节点的价值,visits为节点被采样次数。
3.如权利要求1所述的深度学习模糊测试方法,其特征在于,步骤S2包括:
S2.1:从初始节点开始逐层使用UCB算法进行选择,选择出该层中UCB值最大的节点,UCB值为reward:
上式中,vi为节点的评估值,c为常数,N与ni分别为父节点与本节点的访问次数;
S2.2:当选择出一个节点后继续选择该节点的子节点,并对该节点的子节点采用UCB算法进行选择,直到到达蒙特卡洛搜索树的叶子节点。
4.如权利要求1所述的深度学习模糊测试方法,其特征在于,变异后的样本为图像样本,步骤S3包括:
S3.1:随机在图像样本坐标上取点作为变异点,并获得预设大小的正方形区域;
S3.2:对正方形区域中的像素随机施加变异操作;
S3.3:将变异后的样本存入新节点中。
5.如权利要求1所述的深度学习模糊测试方法,其特征在于,步骤S4包括:
S4.1:对新节点αleaf+1中的样本进行变异操作,生成新样本,将生成的新样本进行保存得到输入I;
S4.2:检查输入I是否违反样本预设语义限制,公式如下:
其中,f(i,i')表示预设语义限制函数,i表示原始样本,i'表示变异后样本,size为样本总像素数,α,β为常数,L(i,i')表示样本i与i'的L距离,即样本i'相对于i单像素修改最大值绝对值,L0(i,i')表示样本i与i'的L0距离,即样本i'相对于i的像素修改个数;预设语义限制函数表示当样本被修改的像素数小于α×size(s)时,L(i,i')小于像素最大值255,不要求变异的幅度;否则,L(i,i')小于β×255,违反限制的样本将不在下一轮变异;
S4.3:若生成的新样本没有违反限制,则将样本存储进queue(I1,I2,I3,...,In);
S4.4:重复步骤S4.1与S4.3直至I中所有样本违反限制。
6.如权利要求1所述的深度学习模糊测试方法,其特征在于,步骤S5包括:
步骤5.1,将得到的最终样本输入进神经网络,测算神经元覆盖程度,获得神经元覆盖率;
步骤5.2,若获得的神经元覆盖率大于新节点αleaf+1内样本的神经元覆盖率,则将新节点αleaf+1的bonus加1,bonus为节点每次采样覆盖率增加次数,表示节点的价值。
CN202110946922.1A 2021-08-18 2021-08-18 一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法 Active CN113704098B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110946922.1A CN113704098B (zh) 2021-08-18 2021-08-18 一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110946922.1A CN113704098B (zh) 2021-08-18 2021-08-18 一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法

Publications (2)

Publication Number Publication Date
CN113704098A CN113704098A (zh) 2021-11-26
CN113704098B true CN113704098B (zh) 2023-09-22

Family

ID=78653407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110946922.1A Active CN113704098B (zh) 2021-08-18 2021-08-18 一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法

Country Status (1)

Country Link
CN (1) CN113704098B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115712561B (zh) * 2022-10-31 2023-12-22 上海宜软检测技术有限公司 一种基于功能基线的业务路径测试方法及***
CN116303097B (zh) * 2023-05-16 2023-08-22 中国工商银行股份有限公司 智能合约的模糊测试方法、装置、设备、介质和程序产品
CN117477758B (zh) * 2023-09-14 2024-05-28 国网安徽省电力有限公司 基于深度优先搜索的电网防误操作方法及防误操作***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423217A (zh) * 2017-07-10 2017-12-01 东北大学秦皇岛分校 基于变异树的黑盒模糊测试方法及***
CN110297490A (zh) * 2019-06-17 2019-10-01 西北工业大学 基于强化学习算法的异构模块化机器人自重构规划方法
CN110659420A (zh) * 2019-09-25 2020-01-07 广州西思数字科技有限公司 一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法
CN111428818A (zh) * 2020-04-22 2020-07-17 浙江工业大学 基于神经通路激活状态的深度学习模型测试方法与装置
CN111897729A (zh) * 2020-08-03 2020-11-06 北京理工大学 基于TensorFuzz的深度神经网络模糊测试框架和测试方法
CN112069061A (zh) * 2020-08-19 2020-12-11 北京科技大学 深度学习梯度指导变异的软件安全漏洞检测方法及***
CN113128121A (zh) * 2021-04-22 2021-07-16 中国电子科技集团公司第二十九研究所 基于强化学习与蒙特卡洛搜索树的mimo雷达布站方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108429259B (zh) * 2018-03-29 2019-10-18 山东大学 一种机组恢复在线动态决策方法及***
US11734161B2 (en) * 2020-01-31 2023-08-22 Raytheon Company System and method for fuzzing test orchestration using reinforcement learning

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423217A (zh) * 2017-07-10 2017-12-01 东北大学秦皇岛分校 基于变异树的黑盒模糊测试方法及***
CN110297490A (zh) * 2019-06-17 2019-10-01 西北工业大学 基于强化学习算法的异构模块化机器人自重构规划方法
CN110659420A (zh) * 2019-09-25 2020-01-07 广州西思数字科技有限公司 一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法
CN111428818A (zh) * 2020-04-22 2020-07-17 浙江工业大学 基于神经通路激活状态的深度学习模型测试方法与装置
CN111897729A (zh) * 2020-08-03 2020-11-06 北京理工大学 基于TensorFuzz的深度神经网络模糊测试框架和测试方法
CN112069061A (zh) * 2020-08-19 2020-12-11 北京科技大学 深度学习梯度指导变异的软件安全漏洞检测方法及***
CN113128121A (zh) * 2021-04-22 2021-07-16 中国电子科技集团公司第二十九研究所 基于强化学习与蒙特卡洛搜索树的mimo雷达布站方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于蒙特卡洛树搜索的符号回归算法;鲁强;张洋;;计算机工程与设计(第08期);全文 *

Also Published As

Publication number Publication date
CN113704098A (zh) 2021-11-26

Similar Documents

Publication Publication Date Title
CN113704098B (zh) 一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法
US10635978B2 (en) Ensembling of neural network models
Lospinoso et al. Assessing and accounting for time heterogeneity in stochastic actor oriented models
Kroese et al. Monte carlo methods
Thiesson et al. Learning mixtures of DAG models
CN110334742B (zh) 一种用于文档分类的基于强化学习的通过添加虚假节点的图对抗样本生成方法
Gol et al. A formal methods approach to pattern synthesis in reaction diffusion systems
Zennaro et al. Modelling penetration testing with reinforcement learning using capture‐the‐flag challenges: Trade‐offs between model‐free learning and a priori knowledge
Kalisch et al. Causal structure learning and inference: a selective review
CN106997474A (zh) 一种基于深度学习的图节点多标签分类方法
Fu et al. Learning reduced systems via deep neural networks with memory
Tran et al. ${\sf DeepNC} $ DeepNC: Deep Generative Network Completion
Ma et al. Hdtest: Differential fuzz testing of brain-inspired hyperdimensional computing
JP7115207B2 (ja) 学習プログラム、学習方法および学習装置
Venkatesh et al. BILP-Q: quantum coalition structure generation
Cowie et al. Particle swarm optimisation for learning bayesian networks
Song et al. Toward robustness in multi-label classification: A data augmentation strategy against imbalance and noise
Christensen et al. Factor or network model? Predictions from neural networks
Wang et al. Meta reasoning over knowledge graphs
Arzamasov et al. Reds: Rule extraction for discovering scenarios
Zhang et al. A comparative study on robust graph neural networks to structural noises
Oliver et al. Approximate network motif mining via graph learning
Sikdar et al. The infinity mirror test for graph models
Ruijl et al. HEPGAME and the Simplification of Expressions
Ye et al. Ex2: Monte Carlo Tree Search‐based test inputs prioritization for fuzzing 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