CN110297764A - 漏洞测试模型训练方法和装置 - Google Patents

漏洞测试模型训练方法和装置 Download PDF

Info

Publication number
CN110297764A
CN110297764A CN201910464058.4A CN201910464058A CN110297764A CN 110297764 A CN110297764 A CN 110297764A CN 201910464058 A CN201910464058 A CN 201910464058A CN 110297764 A CN110297764 A CN 110297764A
Authority
CN
China
Prior art keywords
training data
loophole
test model
tested
training
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
CN201910464058.4A
Other languages
English (en)
Other versions
CN110297764B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910464058.4A priority Critical patent/CN110297764B/zh
Publication of CN110297764A publication Critical patent/CN110297764A/zh
Application granted granted Critical
Publication of CN110297764B publication Critical patent/CN110297764B/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
    • G06F11/3672Test management
    • 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
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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
    • 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

Abstract

本发明提供一种漏洞测试模型训练方法和装置。该方法包括:获取多个训练数据和多个训练数据中每个训练数据对应的标签信息,标签信息用于表示训练数据是否能够发现漏洞。分别对每个训练数据进行分段处理,得到每个训练数据对应的特征点。根据每个训练数据对应的特征点以及每个训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。从而降低了人工检测的成本,提高了漏洞测试模型的漏洞命中率,保证了漏洞测试模型的可靠性。

Description

漏洞测试模型训练方法和装置
技术领域
本发明涉及技术领域,尤其涉及一种漏洞测试模型训练方法。
背景技术
任何系统的漏洞(bug)基本上是无法穷举的。为了尽可能多发现bug,通常会选择bug高命中率的测试用例(case)对软件代码进行测试。
目前会采用人工测试的方式,随机筛选多个case,并对多个case的优先级进行排序,再基于该排序依次采用对应的case对软件代码进行测试。
然而,测试资源是有限的,case的数量是庞大的(可达到万级),采用人工检测的方式不仅会消耗大量的时间,且有些bug高命中率的case将无法筛选到,使得case的漏洞命中率较低。
发明内容
本发明提供一种漏洞测试模型训练方法和装置,以解决现有的人工检测过程耗时长且漏洞命中率低的问题。
第一方面,本发明提供一种漏洞测试模型训练方法,包括:
获取多个训练数据和多个训练数据中每个训练数据对应的标签信息,所述标签信息用于表示所述训练数据是否能够发现漏洞;
分别对每个所述训练数据进行分段处理,得到每个所述训练数据对应的特征点;
根据每个所述训练数据对应的特征点以及每个所述训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。
可选地,所述根据每个所述训练数据对应的特征点以及每个所述训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型,包括:
将每个所述训练数据对应的特征点进行切词处理;
将切词处理后的特征点输入文本卷积网络,得到第一词向量;
根据所述第一词向量以及每个所述训练数据对应的标签信息对所述原始测试模型进行训练,得到所述漏洞测试模型。
可选地,所述特征点包括步骤信息;并且,所述根据所述第一词向量以及每个所述训练数据对应的标签信息对所述原始测试模型进行训练,得到所述漏洞测试模型,包括:
确定每个所述训练数据中的步骤信息,并获取所述步骤信息对应的第一词向量;
将所述步骤信息对应的第一词向量输入循环神经网络RNN,得到第二词向量;
根据除所述步骤信息之外的其他特征点对应的第一词向量、所述第二词向量以及每个所述训练数据对应的标签信息,对所述原始测试模型进行训练,得到所述漏洞测试模型。
可选地,所述原始测试模型包括N个隐层和全连接层,N为正整数。
可选地,所述特征点包括如下信息中的至少一个:名称、预期结果、所述训练数据所属的模块、优先级、严重性和所述训练数据的描述信息。
可选地,所述方法还包括:
获取M个待测试用例,M为正整数;
分别将M个待测试用例输入所述漏洞测试模型中,得到每个待测试用例能够发现漏洞的概率;
根据所述每个待测试用例能够发现漏洞的概率,从所述M个待测试用例中确定P个目标待测试用例,所述目标待测试用例用于对代码进行测试,P≤M,P为正整数。
可选地,所述根据所述每个待测试用例能够发现漏洞的概率,从所述M个待测试用例中确定P个目标待测试用例,包括:
按照所述每个待测试用例能够发现漏洞的概率从大到小的顺序,将前P个待测试用例确定为所述目标待测试用例。
第二方面,本发明提供一种漏洞测试模型训练装置,包括:
获取模块,用于获取多个训练数据和多个训练数据中每个训练数据对应的标签信息,所述标签信息用于表示所述训练数据是否能够发现漏洞;
处理模块,用于分别对每个所述训练数据进行分段处理,得到每个所述训练数据对应的特征点;
训练模块,用于根据每个所述训练数据对应的特征点以及每个所述训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。
可选地,所述训练模块,具体用于将每个所述训练数据对应的特征点进行切词处理;将切词处理后的特征点输入文本卷积网络,得到第一词向量;根据所述第一词向量以及每个所述训练数据对应的标签信息,对所述原始测试模型进行训练,得到所述漏洞测试模型。
可选地,所述训练模块,具体用于在所述特征点包括步骤信息时,确定每个所述训练数据中的步骤信息,并获取所述步骤信息对应的第一词向量;将所述步骤信息对应的第一词向量输入循环神经网络RNN,得到第二词向量;根据除所述步骤信息之外的其他特征点对应的第一词向量、所述第二词向量以及每个所述训练数据对应的标签信息,对所述原始测试模型进行训练,得到所述漏洞测试模型。
可选地,所述原始测试模型包括N个隐层和全连接层,N为正整数。
可选地,所述特征点包括如下信息中的至少一个:名称、预期结果、所述训练数据所属的模块、优先级、严重性和所述训练数据的描述信息。
可选地,所述漏洞测试模型训练装置还包括:
所述获取模块,还用于获取M个待测试用例,M为正整数;
输入模块,用于分别将M个待测试用例输入所述训练模块13得到的漏洞测试模型中,得到每个待测试用例能够发现漏洞的概率;
确定模块,用于根据所述每个待测试用例能够发现漏洞的概率,从所述M个待测试用例中确定P个目标待测试用例,所述目标待测试用例用于对代码进行测试,P≤M,P为正整数。
可选地,所述确定模块,具体用于按照所述每个待测试用例能够发现漏洞的概率从大到小的顺序,将前P个待测试用例确定为所述目标待测试用例。
上述第二方面以及上述第二方面的各可能的设计中所提供的漏洞测试模型训练装置,其有益效果可以参见上述第一方面和第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面和第一方面的各可能的实施方式所述的漏洞测试模型训练方法。
第四方面,本发明提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面和第一方面的各可能的实施方式所述的漏洞测试模型训练方法。
本发明提供的漏洞测试模型训练方法和装置,通过获取多个训练数据和多个训练数据中每个训练数据对应的标签信息,其中,标签信息用于表示训练数据是否能够发现漏洞。再分别对每个训练数据进行分段处理,得到每个训练数据对应的特征点。接着,根据每个训练数据对应的特征点以及每个训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。本发明中,由于每个训练数据对应一个测试用例,且每个训练数据包括有对应的测试用例的属性特征,即特征点和标签信息,因此,基于多个训练数据的特征点和标签信息,无需建设额外的映射关系,也不会增加额外的成本,便可得到准确识别待测试用例是否能够检测漏洞的漏洞测试模型,解决了现有的人工检测过程耗时长且漏洞命中率低的问题,从而降低了人工检测的成本,提高了漏洞测试模型的漏洞命中率,保证了漏洞测试模型的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的漏洞测试模型训练方法的流程图;
图2为本发明提供的漏洞测试模型训练方法的流程图;
图3为本发明提供的漏洞测试模型训练方法的流程图;
图4为本发明提供的漏洞测试模型训练装置的结构示意图;
图5为本发明提供的漏洞测试模型训练装置的结构示意图;
图6为本发明提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供一种漏洞测试模型训练方法、装置、设备及存储介质,可以适用于各种操作系统中,如,本实施例提供的漏洞测试模型训练方法可以由服务器执行,也可以由终端设备执行,本实施例对此不做限定。
其中,终端设备(terminal device)包括但不限于移动台(MS,Mobile Station)、移动终端(Mobile Terminal)、移动电话(Mobile Telephone)、手机(handset)及便携设备(portable equipment)等,该终端设备可以经无线接入网(RAN,Radio Access Network)与一个或多个核心网进行通信,例如,终端设备可以是移动电话(或称为“蜂窝”电话)、具有无线通信功能的计算机等,终端设备还可以是带无线收发功能的电脑、虚拟现实(VirtualReality,VR)终端设备、AR终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等,且终端设备上安装的操作系统包括但不限于:IOS、Android、windows、linux、Mac OS等操作系统。在不同的网络中终端可以叫做不同的名称,例如:用户设备,移动台,用户单元,站台,蜂窝电话,个人数字助理,无线调制解调器,无线通信设备,手持设备,膝上型电脑,无绳电话,无线本地环路台、电视等。为描述方便,本实施例中简称为终端设备。
下面,以服务器作为执行主体,通过具体实施例,对漏洞测试模型训练方法的具体实现过程进行详细说明。
图1为本发明提供的漏洞测试模型训练方法的流程图,如图1所示,本实施例的漏洞测试模型训练方法可以包括:
S101、获取多个训练数据和多个训练数据中每个训练数据对应的标签信息,标签信息用于表示训练数据是否能够发现漏洞。
本实施例中,每个训练数据对应一个测试用例,该训练数据为与之对应的测试用例所相关的全部数据,如测试用例的描述信息、测试用例的软件代码、漏洞信息、需求描述等。为了提高原始测试模型的bug命中率,因此,服务器可以获取多个测试用例各自对应的训练数据,以作为训练原始测试模型的数据支撑。
进一步地,由于每个测试用例的漏洞命中率事先是可以获知的,因此,服务器可以根据多个训练数据,获取每个训练数据是否能够发现漏洞,即标签信息。
可选地,服务器可以根据测试用例的漏洞命中率与预设值的大小,以确定该测试用例对应的训练数据是否能够发现漏洞。当测试用例的漏洞命中率小于预设值时,服务器可以确定标签信息表示该测试用例对应的训练数据不能发现漏洞;当测试用例的漏洞命中率大于等于预设值时,服务器可以确定标签信息表示该测试用例对应的训练数据能够发现漏洞。
其中,漏洞命中率可以为能够发现所有类型漏洞的概率大小,也可以为能够发现一种或者多种类型漏洞的概率大小,本实施例对此不做限定。另外,预设值可以根据经验值进行设定,如50%。
S102、分别对每个训练数据进行分段处理,得到每个训练数据对应的特征点。
本实施例中,由于训练数据包含有对应测试用例的全部数据,因此,针对任意一个训练数据,服务器可以对该训练数据进行分段处理,得到该训练数据对应的特征点,及该特征点可以表示该训练数据对应的测试用例的属性特征。
其中,本实施例涉及的特征点可以包括但不限于如下信息中的至少一个:名称(即测试用例的名称)、预期结果(即期望测试用例的漏洞命中率)、训练数据所属的模块(即测试用例所属的软件代码的类型,如聊天软件或者购物软件等)、优先级、严重性和训练数据的描述信息。另外,特征点还可以包括负责的研发人员(RD)和负责的质量保证人员(QA)等。
S103、根据每个训练数据对应的特征点以及每个训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。
本实施例中,由于每个训练数据对应的特征点可以表明对应测试用例的属性特征,每个训练数据对应的标签信息是获知的,因此,每个训练数据对应的特征点与标签数据是关联的,即能够发现漏洞的测试数据对应的特征点是已知的,不能发现漏洞的测试数据对应的特征点也是已知的。
进一步地,服务器可以根据每个训练数据对应的特征点,以及每个训练数据对应的标签信息,对原始测试模型进行训练,以优化原始测试模型,从而得到可以识别是否测试用例是否能够发现漏洞的漏洞测试模型。
本实施例提供的漏洞测试模型训练方法,通过获取多个训练数据和多个训练数据中每个训练数据对应的标签信息,其中,标签信息用于表示训练数据是否能够发现漏洞。再分别对每个训练数据进行分段处理,得到每个训练数据对应的特征点。接着,根据每个训练数据对应的特征点以及每个训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。本实施例中,由于每个训练数据对应一个测试用例,且每个训练数据包括有对应的测试用例的属性特征,即特征点和标签信息,因此,基于多个训练数据的特征点和标签信息,无需建设额外的映射关系,也不会增加额外的成本,便可得到准确识别待测试用例是否能够检测漏洞的漏洞测试模型,解决了现有的人工检测过程耗时长且漏洞命中率低的问题,从而降低了人工检测的成本,提高了漏洞测试模型的漏洞命中率,保证了漏洞测试模型的可靠性。
在上述实施例的基础上,S103中的一种可行的实现方式中,服务器可以基于预设的分词库,将每个训练数据对应的特征点进行切词处理,得到切词处理后的特征点。其中,预设的分词库可以事先存储在服务器中,也可以为服务器从其他设置中获取到的,本实施例对此不做限定。
进一步地,服务器可以将切词处理后的特征点输入文本卷积网络中,得到第一词向量。其中,本实施例可以根据特征点的个数设置第一词向量的个数。通常,第一词向量的个数与特征点的个数相同,例如,服务器将名称和预期结果输入到文本卷积网络中,可以输出第一词向量分别为词向量一和词向量二。
进一步地,服务器可以根据第一词向量以及每个训练数据对应的标签信息对原始测试模型进行训练,得到漏洞测试模型。
需要说明的是,由于测试用例中的某些步骤是存在时序的,即训练数据中包含有存在时序的步骤信息,因此,服务器可以基于文本卷积网络和循环神经网络RNN,共同确定训练数据对应的向量,以便原始测试模型可以全面且准确获取各个训练数据对应的测试用例的属性特性,从而提高漏洞测试模型的识别能力。
基于上述内容,服务器可以获取训练数据对应的各个特征点对应的第一词向量,具体可以包括除步骤信息之外的其他特征点对应的第一词向量,以及步骤信息对应的第一词向量。
其中,除步骤信息之外的其他特征点对应的第一词向量的获取过程可参照上述描述内容,此处不做赘述。步骤信息对应的第一词向量是服务器先从每个训练数据中确定表示存在时序的步骤信息,并将该步骤信息输入文本卷积网络中得到的。
进一步地,服务器可以将步骤信息对应的第一词向量输入RNN中,得到第二词向量。其中,本实施例可以根据步骤信息中的步骤个数设置第二词向量的个数。通常,第二词向量的个数与步骤信息中的步骤个数相同,例如,服务器将步骤信息中的步骤1和步骤2输入到RNN中,可以输出第二词向量分别为词向量一和词向量二。
进一步地,服务器可以根据除步骤信息之外的其他特征点对应的第一词向量、第二词向量以及每个训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。
具体地,原始测试模型中包括N个隐层和全连接层,N为正整数。服务器可以将除步骤信息之外的其他特征点对应的第一词向量、第二词向量以及每个训练数据对应的标签信息输入原始测试模型,原始测试模型通过池化、卷积及全连接等操作,得到漏洞测试模型。
在上述实施例的基础上,在服务器对软件代码进行漏洞测试时,由于待测试用例数量庞大,因此,服务器便可利用漏洞测试模型,得到有效进行漏洞测试的待测试用例,从而减少软件代码的漏洞测试时间,提高漏洞测试的效率。
在一个具体的实施例中,图2示出了服务器得到漏传测试模型的具体过程。针对任意一个训练数据而言,服务器对该训练数据进行分段处理后,的得到该训练数据对应的N个特征点,N个特征点具体包括:标题、模块、责任认定RD、步骤信息(该步骤信息包括:步骤1、步骤2、…、步骤n,n为正整数)、…、优先级以及预期结果。
进一步地,服务器利用文本卷积网络,根据特征点与第一词向量之间的映射关系,得到N个特征点各自对应的第一词向量,第一词向量包括:标题对应的词向量1、模块对应的词向量2、责任认定RD对应的词向量3、步骤信息中步骤1对应的词向量4、步骤信息中步骤2对应的词向量5、…、步骤信息中步骤n对应的词向量n、…、优先级对应的词向量N-1以及预期结果对应的词向量N。
进一步地,服务器利用RNN,根据步骤第一词向量与第二词向量之间的映射关系,得到各个步骤对应第一词向量所对应的第二词向量,第二词向量包括:词向量4对应的词向量4',词向量5对应的词向量5'、…、词向量n对应的词向量n'。
进一步地,服务器将词向量1、词向量2、词向量3、词向量4'、词向量5'、…、词向量n'、词向量N-1、词向量N以及标签信息输入到原始测试模型中的1-N个隐层中,得到的输出结果再输入到原始测试模型中的全连接层中,得到漏洞测试模型,该漏洞测试模型的测试结果包括能够发现漏洞或者不能发现漏洞。
下面,采用具体的实施例,对服务器利用漏洞测试模型,得到待测试用例的具体过程进行详细说明。
图3为本发明提供的漏洞测试模型训练方法的流程图,如图3所示,本实施例的漏洞测试模型训练方法可以包括:
S201、获取M个待测试用例,M为正整数。
S202、分别将M个待测试用例输入漏洞测试模型中,得到每个待测试用例能够发现漏洞的概率。
S203、根据每个待测试用例能够发现漏洞的概率,从M个待测试用例中确定P个目标待测试用例,目标待测试用例用于对代码进行测试,P≤M,P为正整数。
本实施例中,当服务器需要对软件代码进行漏洞测试时,服务器可以从多个待测试用例。由于待测试用例可能会由于新增功能(如发现其他类型的漏洞)而与自身原本功能发生冲突,或者,待测试用例可能由于其他因素而无法正常测试,且待测试用例的数量庞大,因此,服务器可以分别将M个待测试用例输入漏洞测试模型中,得到每个待测试用例能够发现漏洞的概率。
进一步地,服务器可以根据每个待测试用例能够发现漏洞的概率,从M个待测试用例中确定P个目标待测试用例。可选地,服务器可以根据每个待测试用例能够发现漏洞的概率的高低顺序,对M个待测试用例进行排序,以得到P个目标待测试用例。
一种可行的实现方式中,服务器可以按照每个待测试用例能够发现漏洞的概率从大到小的顺序,将前P个待测试用例确定为目标待测试用例。
在一种可行的实现方式中,服务器按照每个待测试用例能够发现漏洞的概率从小到大的顺序,将后P个待测试用例确定为目标待测试用例。
需要说明的是,若服务器当前不存在漏洞测试模型,则服务器可以基于图1中的S101、S102和S103得到漏洞测试模型,再执行S201-S203。
图4为本发明提供的漏洞测试模型训练装置的结构示意图,如图4所示,本实施例的漏洞测试模型训练装置可以包括:
获取模块11,用于获取多个训练数据和多个训练数据中每个训练数据对应的标签信息,标签信息用于表示训练数据是否能够发现漏洞;
处理模块12,用于分别对每个训练数据进行分段处理,得到每个训练数据对应的特征点;
训练模块13,用于根据每个训练数据对应的特征点以及每个训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。
可选地,训练模块13,具体用于将每个训练数据对应的特征点进行切词处理;将切词处理后的特征点输入文本卷积网络,得到第一词向量;根据第一词向量以及每个训练数据对应的标签信息对原始测试模型进行训练,得到漏洞测试模型。
可选地,训练模块13,具体用于在特征点包括步骤信息时,确定每个训练数据中的步骤信息,并获取步骤信息对应的第一词向量;将步骤信息对应的第一词向量输入循环神经网络RNN,得到第二词向量;根据除步骤信息之外的其他特征点对应的第一词向量、第二词向量以及每个训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。
可选地,原始测试模型包括N个隐层和全连接层,N为正整数。
可选地,特征点包括如下信息中的至少一个:名称、预期结果、训练数据所属的模块、优先级、严重性和训练数据的描述信息。
本发明实施例提供的漏洞测试模型训练装置,可执行上述图1-2所示的漏洞测试模型训练方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图5为本发明提供的漏洞测试模型训练装置的结构示意图,如图5所示,本实施例的漏洞测试模型训练装置10在图4所示装置结构的基础上,还包括:
获取模块11,还用于获取M个待测试用例,M为正整数;
输入模块14,用于分别将M个待测试用例输入训练模块13得到的漏洞测试模型中,得到每个待测试用例能够发现漏洞的概率;
确定模块15,用于根据每个待测试用例能够发现漏洞的概率,从M个待测试用例中确定P个目标待测试用例,目标待测试用例用于对代码进行测试,P≤M,P为正整数。
可选地,确定模块15,具体用于按照每个待测试用例能够发现漏洞的概率从大到小的顺序,将前P个待测试用例确定为目标待测试用例。
本发明实施例提供的漏洞测试模型训练装置,可执行上述图1-3所示的漏洞测试模型训练方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
本发明中可以根据上述方法示例对漏洞测试模型训练装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明各实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图6为本发明提供的电子设备的硬件结构示意图。如图6所示,该电子设备20,用于实现上述任一方法实施例中对应于服务器的操作,本实施例的电子设备20可以包括:存储器21和处理器22;
存储器21,用于存储计算机程序;
处理器22,用于执行存储器存储的计算机程序,以实现上述实施例中的漏洞测试模型训练方法。具体可以参见前述方法实施例中的相关描述。
可选地,存储器21既可以是独立的,也可以跟处理器22集成在一起。
当存储器21是独立于处理器22之外的器件时,电子设备20还可以包括:
总线23,用于连接存储器21和处理器22。
可选地,本实施例还包括:通信接口24,该通信接口24可以通过总线23与处理器22连接。处理器22可以控制通信接口23来实现电子设备20的上述的接收和发送的功能。
本实施例提供的电子设备可用于执行上述的漏洞测试模型训练方法,其实现方式和技术效果类似,本实施例此处不再赘述。
本发明还提供一种计算机可读存储介质,计算机可读存储介质包括计算机程序,计算机程序用于实现如上实施例中的漏洞测试模型训练方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种漏洞测试模型训练方法,其特征在于,包括:
获取多个训练数据和多个训练数据中每个训练数据对应的标签信息,所述标签信息用于表示所述训练数据是否能够发现漏洞;
分别对每个所述训练数据进行分段处理,得到每个所述训练数据对应的特征点;
根据每个所述训练数据对应的特征点以及每个所述训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。
2.根据权利要求1所述的方法,其特征在于,所述根据每个所述训练数据对应的特征点以及每个所述训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型,包括:
将每个所述训练数据对应的特征点进行切词处理;
将切词处理后的特征点输入文本卷积网络,得到第一词向量;
根据所述第一词向量以及每个所述训练数据对应的标签信息对所述原始测试模型进行训练,得到所述漏洞测试模型。
3.根据权利要求2所述的方法,其特征在于,所述特征点包括步骤信息;并且,
所述根据所述第一词向量以及每个所述训练数据对应的标签信息对所述原始测试模型进行训练,得到所述漏洞测试模型,包括:
确定每个所述训练数据中的步骤信息,并获取所述步骤信息对应的第一词向量;
将所述步骤信息对应的第一词向量输入循环神经网络RNN,得到第二词向量;
根据除所述步骤信息之外的其他特征点对应的第一词向量、所述第二词向量以及每个所述训练数据对应的标签信息,对所述原始测试模型进行训练,得到所述漏洞测试模型。
4.根据权利要求3所述的方法,其特征在于,所述原始测试模型包括N个隐层和全连接层,N为正整数。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述特征点还包括如下信息中的至少一个:名称、预期结果、所述训练数据所属的模块、优先级、严重性和所述训练数据的描述信息。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
获取M个待测试用例,M为正整数;
分别将M个待测试用例输入所述漏洞测试模型中,得到每个待测试用例能够发现漏洞的概率;
根据所述每个待测试用例能够发现漏洞的概率,从所述M个待测试用例中确定P个目标待测试用例,所述目标待测试用例用于对代码进行测试,P≤M,P为正整数。
7.根据权利要求6所述的方法,其特征在于,所述根据所述每个待测试用例能够发现漏洞的概率,从所述M个待测试用例中确定P个目标待测试用例,包括:
按照所述每个待测试用例能够发现漏洞的概率从大到小的顺序,将前P个待测试用例确定为所述目标待测试用例。
8.一种漏洞测试模型训练装置,其特征在于,包括:
获取模块,用于获取多个训练数据和多个训练数据中每个训练数据对应的标签信息,所述标签信息用于表示所述训练数据是否能够发现漏洞;
处理模块,用于分别对每个所述训练数据进行分段处理,得到每个所述训练数据对应的特征点;
训练模块,用于根据每个所述训练数据对应的特征点以及每个所述训练数据对应的标签信息,对原始测试模型进行训练,得到漏洞测试模型。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的漏洞测试模型训练方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的漏洞测试模型训练方法。
CN201910464058.4A 2019-05-30 2019-05-30 漏洞测试模型训练方法和装置 Active CN110297764B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910464058.4A CN110297764B (zh) 2019-05-30 2019-05-30 漏洞测试模型训练方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910464058.4A CN110297764B (zh) 2019-05-30 2019-05-30 漏洞测试模型训练方法和装置

Publications (2)

Publication Number Publication Date
CN110297764A true CN110297764A (zh) 2019-10-01
CN110297764B CN110297764B (zh) 2023-04-07

Family

ID=68027331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910464058.4A Active CN110297764B (zh) 2019-05-30 2019-05-30 漏洞测试模型训练方法和装置

Country Status (1)

Country Link
CN (1) CN110297764B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966604A (zh) * 2020-09-07 2020-11-20 江苏君英天达人工智能研究院有限公司 一种fuzzing工控协议漏洞挖掘系统
CN112363928A (zh) * 2020-11-10 2021-02-12 网易(杭州)网络有限公司 测试用例的处理方法、装置、处理器及电子装置
WO2021115186A1 (zh) * 2019-12-09 2021-06-17 遵义职业技术学院 基于ann的程序检测方法和检测系统及应用

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908020A (zh) * 2010-08-27 2010-12-08 南京大学 一种基于分类挖掘和版本变更的测试用例优先化方法
CN104794396A (zh) * 2014-01-16 2015-07-22 腾讯科技(深圳)有限公司 跨站式脚本漏洞检测方法及装置
US20170329700A1 (en) * 2016-05-16 2017-11-16 Hulu, LLC Executing Multi-Version Tests Against a Multi-Version Application
CN108170468A (zh) * 2017-12-28 2018-06-15 中山大学 一种自动检测注释和代码一致性的方法及其系统
CN108197028A (zh) * 2018-01-05 2018-06-22 中国矿业大学 一种面向黑盒测试背景下的回归测试用例分类方法
CN108197109A (zh) * 2017-12-29 2018-06-22 北京百分点信息科技有限公司 一种基于自然语言处理的多语言分析方法和装置
CN108256334A (zh) * 2018-01-26 2018-07-06 平安科技(深圳)有限公司 漏洞测试方法、装置、计算机设备和存储介质
CN108334455A (zh) * 2018-03-05 2018-07-27 清华大学 基于搜索的代价敏感超图学习的软件缺陷预测方法及系统
CN108416219A (zh) * 2018-03-18 2018-08-17 西安电子科技大学 一种Android二进制文件漏洞检测方法及系统
US20190065576A1 (en) * 2017-08-23 2019-02-28 Rsvp Technologies Inc. Single-entity-single-relation question answering systems, and methods
US20190087311A1 (en) * 2017-09-20 2019-03-21 Salesforce.Com, Inc. Machine learning based ranking of test cases for software development
CN109657230A (zh) * 2018-11-06 2019-04-19 众安信息技术服务有限公司 融合词向量和词性向量的命名实体识别方法及装置
US20190163742A1 (en) * 2017-11-28 2019-05-30 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for generating information

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908020A (zh) * 2010-08-27 2010-12-08 南京大学 一种基于分类挖掘和版本变更的测试用例优先化方法
CN104794396A (zh) * 2014-01-16 2015-07-22 腾讯科技(深圳)有限公司 跨站式脚本漏洞检测方法及装置
US20170329700A1 (en) * 2016-05-16 2017-11-16 Hulu, LLC Executing Multi-Version Tests Against a Multi-Version Application
US20190065576A1 (en) * 2017-08-23 2019-02-28 Rsvp Technologies Inc. Single-entity-single-relation question answering systems, and methods
US20190087311A1 (en) * 2017-09-20 2019-03-21 Salesforce.Com, Inc. Machine learning based ranking of test cases for software development
US20190163742A1 (en) * 2017-11-28 2019-05-30 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for generating information
CN108170468A (zh) * 2017-12-28 2018-06-15 中山大学 一种自动检测注释和代码一致性的方法及其系统
CN108197109A (zh) * 2017-12-29 2018-06-22 北京百分点信息科技有限公司 一种基于自然语言处理的多语言分析方法和装置
CN108197028A (zh) * 2018-01-05 2018-06-22 中国矿业大学 一种面向黑盒测试背景下的回归测试用例分类方法
CN108256334A (zh) * 2018-01-26 2018-07-06 平安科技(深圳)有限公司 漏洞测试方法、装置、计算机设备和存储介质
CN108334455A (zh) * 2018-03-05 2018-07-27 清华大学 基于搜索的代价敏感超图学习的软件缺陷预测方法及系统
CN108416219A (zh) * 2018-03-18 2018-08-17 西安电子科技大学 一种Android二进制文件漏洞检测方法及系统
CN109657230A (zh) * 2018-11-06 2019-04-19 众安信息技术服务有限公司 融合词向量和词性向量的命名实体识别方法及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
D. NIRMALA 等: ""Automated testcase generation for software quality assurance"", 《2016 10TH INTERNATIONAL CONFERENCE ON INTELLIGENT SYSTEMS AND CONTROL》 *
占徐政: ""一种针对高维输入域的适应性随机测试改进性算法"" *
张婉莹 等: ""基于污点分析的白盒模糊测试方案"", 《计算机工程与应用》 *
费清春等: "基于BP神经网络软件测试缺陷预测技术研究及应用", 《测控技术》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021115186A1 (zh) * 2019-12-09 2021-06-17 遵义职业技术学院 基于ann的程序检测方法和检测系统及应用
CN111966604A (zh) * 2020-09-07 2020-11-20 江苏君英天达人工智能研究院有限公司 一种fuzzing工控协议漏洞挖掘系统
CN112363928A (zh) * 2020-11-10 2021-02-12 网易(杭州)网络有限公司 测试用例的处理方法、装置、处理器及电子装置
CN112363928B (zh) * 2020-11-10 2023-08-22 网易(杭州)网络有限公司 测试用例的处理方法、装置、处理器及电子装置

Also Published As

Publication number Publication date
CN110297764B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN107872772B (zh) 诈骗短信的检测方法及装置
CN110297764A (zh) 漏洞测试模型训练方法和装置
CN110992169A (zh) 一种风险评估方法、装置、服务器及存储介质
CN106201890B (zh) 一种应用的性能优化方法及服务器
CN110363810A (zh) 建立图像检测模型的方法、装置、设备和计算机存储介质
CN113010896B (zh) 确定异常对象的方法、装置、设备、介质和程序产品
CN112114892A (zh) 深度学习模型的获取方法、加载方法及选取方法
CN110263824A (zh) 模型的训练方法、装置、计算设备及计算机可读存储介质
CN110020191A (zh) 电子装置、招商引资的目标对象确定方法及存储介质
CN111815169A (zh) 业务审批参数配置方法及装置
CN106686545A (zh) 一种无线保真国家码的应用方法及装置
CN112948224B (zh) 一种数据处理方法、装置、终端及存储介质
CN107402905A (zh) 基于神经网络的计算方法及装置
CN109597987A (zh) 一种文本还原方法、装置及电子设备
CN109408304A (zh) 区块链引入测试方法、装置、设备及可读存储介质
CN108196975A (zh) 基于多校验和的数据验证方法、装置及存储介质
CN110532448B (zh) 基于神经网络的文档分类方法、装置、设备及存储介质
CN105989103A (zh) 一种应用程序推荐方法及终端
CN107741891A (zh) 对象的析构方法、介质、装置和计算设备
CN106535102A (zh) 一种移动终端定位方法及移动终端
CN106202374A (zh) 一种数据处理方法及装置
CN109829083A (zh) Spd数据自动验证方法、装置、计算机设备及存储介质
CN110111188A (zh) 业务办理方法及设备
CN109324973A (zh) 一种软件测试方法、装置、设备及计算机可读存储介质
CN109815118A (zh) 数据库管理方法及装置、电子设备和计算机可读存储介质

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