CN114943083A - 一种智能终端漏洞代码样本挖掘方法、装置及电子设备 - Google Patents
一种智能终端漏洞代码样本挖掘方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114943083A CN114943083A CN202210707928.8A CN202210707928A CN114943083A CN 114943083 A CN114943083 A CN 114943083A CN 202210707928 A CN202210707928 A CN 202210707928A CN 114943083 A CN114943083 A CN 114943083A
- Authority
- CN
- China
- Prior art keywords
- code
- code sample
- sample
- case
- seed
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种智能终端漏洞代码样本挖掘方法、装置及电子设备,该方法包括:获取生成对抗网络的生成器为当前智能终端生成的代码样本;根据代码样本对应的损失值,判断代码样本是否为可疑代码;当确定代码样本为可疑代码时,对该代码样本进行模糊测试,得到对应的模糊测试结果;当模糊测试结果表征该代码样本为漏洞代码时,将该代码样本作为新的漏洞代码样本。上述方案提供的方法,通过在生成对抗网络构建过程中,对生成器生成的可疑代码进行模糊测试,以准确判断可疑代码是否为漏洞代码,有效增加了漏洞代码样本的数量,为提高漏洞代码检测模型的准确性奠定了基础。
Description
技术领域
本申请涉及网络安全技术领域,尤其涉及一种智能终端漏洞代码样本挖掘方法、装置及电子设备。
背景技术
随着网络技术的发展,当前最常见的攻击手段就是攻击者基于漏洞代码攻击智能终端的网络系统,进而对其网络文件造成破坏,因此,如何准确而有效的识别漏洞代码十分必要。
在现有技术中,由于漏洞代码与正常代码在结构、功能和行为特征上存在差异,所以常常基于神经网络构建漏洞代码检测模型,通过识别代码的差异性,检测哪些代码是漏洞代码。
但是,漏洞代码存在隐形化、多态化和多歧化的特点,而目前神经网络模型构建人员能够得到的用于模型训练的漏洞代码样本的数量有限,因此,亟需一种挖掘大量漏洞代码样本的方法,对提高漏洞代码检测模型的准确性有重要意义。
发明内容
本申请提供一种智能终端漏洞代码样本挖掘方法、装置及电子设备,以解决现有技术能够得到的用于模型训练的漏洞代码样本的数量有限等缺陷。
本申请第一个方面提供一种智能终端漏洞代码样本挖掘方法,包括:
获取生成对抗网络的生成器为当前智能终端生成的代码样本;
根据所述代码样本对应的损失值,判断所述代码样本是否为可疑代码;
当确定所述代码样本为可疑代码时,对该代码样本进行模糊测试,得到对应的模糊测试结果;
当所述模糊测试结果表征该代码样本为漏洞代码时,将该代码样本作为新的漏洞代码样本。
可选的,所述根据所述代码样本对应的损失值,判断所述代码样本是否为可疑代码,包括:
将预设代码样本输入到所述生成对抗网络的判断器,得到所述判断器对所述预设代码样本的判断结果及对应的损失值;其中,所述判断结果分为正常代码和漏洞代码;
根据正常代码对应的损失值平均值和漏洞代码对应的损失值平均值,确定可疑代码判断范围;
当所述代码样本对应的损失值属于所述可疑代码判断范围时,确定所述代码样本为可疑代码。
可选的,在根据所述代码样本对应的损失值,判断所述代码样本是否为可疑代码之前,所述方法还包括:
将所述代码样本输入到所述生成对抗网络的判断器,得到所述判断器对所述代码样本的判断结果及对应的损失值。
可选的,所述对该代码样本进行模糊测试,得到对应的模糊测试结果,包括:
为所述代码样本生成多个模糊测试用例;
依次将各所述模糊测试用例输入到所述代码样本,得到各所述模糊测试用例对所述代码样本的路径覆盖范围及对应的模糊测试子结果;
根据各所述模糊测试用例对所述代码样本的路径覆盖范围,在所述多个模糊测试用例中筛选种子用例,并构建种子用例池;
在所述种子用例池中提取目标种子用例;
对所述目标种子用例进行变异,得到变异后的目标种子用例;
将所述变异后的目标种子用例输入到所述代码样本,得到所述变异后的目标种子用例对所述代码样本的路径覆盖范围及对应的模糊测试子结果;
若所述变异后的目标种子用例对所述代码样本的路径覆盖范围包括新路径,则将该变异后的目标种子用例作为新的种子用例添加到所述种子用例池,并返回到所述在所述种子用例池中提取目标种子用例的步骤;
当接收到模糊测试终止信号时,汇总所述模糊测试子结果,得到该代码样本的模糊测试结果。
可选的,所述方法还包括:
若所述变异后的目标种子用例对所述代码样本的路径覆盖范围不包括新路径,则丢弃该变异后的目标种子用例。
可选的,所述在所述种子用例池中提取目标种子用例,包括:
按照各所述种子用例的优先级,对所述种子用例池中的种子用例进行排序;
根据所述种子用例的排序结果,在所述种子用例池中提取目标种子用例。
可选的,所述对所述目标种子用例进行变异,得到变异后的目标种子用例,包括:
按照预设步长,对所述目标种子用例的若干个比特位进行翻转,得到变异后的目标种子用例。
本申请第二个方面提供一种智能终端漏洞代码样本挖掘装置,包括:
获取模块,用于获取生成对抗网络的生成器为当前智能终端生成的代码样本;
判断模块,用于根据所述代码样本对应的损失值,判断所述代码样本是否为可疑代码;
模糊测试模块,用于当确定所述代码样本为可疑代码时,对该代码样本进行模糊测试,得到对应的模糊测试结果;
挖掘模块,用于当所述模糊测试结果表征该代码样本为漏洞代码时,将该代码样本作为新的漏洞代码样本。
可选的,所述判断模块,具体用于:
将预设代码样本输入到所述生成对抗网络的判断器,得到所述判断器对所述预设代码样本的判断结果及对应的损失值;其中,所述判断结果分为正常代码和漏洞代码;
根据正常代码对应的损失值平均值和漏洞代码对应的损失值平均值,确定可疑代码判断范围;
当所述代码样本对应的损失值属于所述可疑代码判断范围时,确定所述代码样本为可疑代码。
可选的,所述判断模块,还用于:
将所述代码样本输入到所述生成对抗网络的判断器,得到所述判断器对所述代码样本的判断结果及对应的损失值。
可选的,所述模糊测试模块,具体用于:
为所述代码样本生成多个模糊测试用例;
依次将各所述模糊测试用例输入到所述代码样本,得到各所述模糊测试用例对所述代码样本的路径覆盖范围及对应的模糊测试子结果;
根据各所述模糊测试用例对所述代码样本的路径覆盖范围,在所述多个模糊测试用例中筛选种子用例,并构建种子用例池;
在所述种子用例池中提取目标种子用例;
对所述目标种子用例进行变异,得到变异后的目标种子用例;
将所述变异后的目标种子用例输入到所述代码样本,得到所述变异后的目标种子用例对所述代码样本的路径覆盖范围及对应的模糊测试子结果;
若所述变异后的目标种子用例对所述代码样本的路径覆盖范围包括新路径,则将该变异后的目标种子用例作为新的种子用例添加到所述种子用例池,并返回到所述在所述种子用例池中提取目标种子用例的步骤;
当接收到模糊测试终止信号时,汇总所述模糊测试子结果,得到该代码样本的模糊测试结果。
可选的,所述模糊测试模块,还用于:
若所述变异后的目标种子用例对所述代码样本的路径覆盖范围不包括新路径,则丢弃该变异后的目标种子用例。
可选的,所述模糊测试模块,具体用于:
按照各所述种子用例的优先级,对所述种子用例池中的种子用例进行排序;
根据所述种子用例的排序结果,在所述种子用例池中提取目标种子用例。
可选的,所述模糊测试模块,具体用于:
按照预设步长,对所述目标种子用例的若干个比特位进行翻转,得到变异后的目标种子用例。
本申请第三个方面提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法。
本申请第四个方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法。
本申请技术方案,具有如下优点:
本申请提供一种智能终端漏洞代码样本挖掘方法、装置及电子设备,该方法包括:获取生成对抗网络的生成器为当前智能终端生成的代码样本;根据代码样本对应的损失值,判断代码样本是否为可疑代码;当确定代码样本为可疑代码时,对该代码样本进行模糊测试,得到对应的模糊测试结果;当模糊测试结果表征该代码样本为漏洞代码时,将该代码样本作为新的漏洞代码样本。上述方案提供的方法,通过在生成对抗网络构建过程中,对生成器生成的可疑代码进行模糊测试,以准确判断可疑代码是否为漏洞代码,有效增加了漏洞代码样本的数量,为提高漏洞代码检测模型的准确性奠定了基础。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例基于的智能终端漏洞代码样本挖掘系统的结构示意图;
图2为本申请实施例提供的智能终端漏洞代码样本挖掘方法的流程示意图;
图3为本申请实施例提供的生成对抗网络的判断器结构图;
图4为本申请实施例提供的判断器末端的全连接神经网络结构图;
图5为本申请实施例提供的生成对抗网络的训练流程示意图;
图6为本申请实施例提供的模糊测试流程示意图;
图7为本申请实施例提供的智能终端漏洞代码样本挖掘装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
随着计算机技术的快速发展与进步,智能终端应用领域更广种类更多,给人们带来更多的便利,但同时智能终端的应用也带来了众多安全风险。由于目前智能终端设备离线漏洞挖掘技术能力不足,只针对传统的信息系统进行漏洞挖掘工作,导致无法在智能终端投运前就提前发现智能终端的安全漏洞隐患。
现有面向二进制代码漏洞数据集挖掘覆盖不全,人工二进制程序漏洞挖掘难度高、效率低的情况下,生成对抗网络可以解决漏洞代码数据集过少的问题,但目前的生成对抗网络中生成器随机生成的代码样本存在大量的可疑代码,判断器无法准确地在这些可疑代码中筛选漏洞代码。
针对上述问题,本申请实施例提供的智能终端漏洞代码样本挖掘方法、装置及电子设备,通过获取生成对抗网络的生成器为当前智能终端生成的代码样本;根据代码样本对应的损失值,判断代码样本是否为可疑代码;当确定代码样本为可疑代码时,对该代码样本进行模糊测试,得到对应的模糊测试结果;当模糊测试结果表征该代码样本为漏洞代码时,将该代码样本作为新的漏洞代码样本。上述方案提供的方法,通过在生成对抗网络构建过程中,对生成器生成的可疑代码进行模糊测试,以准确判断可疑代码是否为漏洞代码,有效增加了漏洞代码样本的数量,为提高漏洞代码检测模型的准确性奠定了基础。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明实施例进行描述。
首先,对本申请所基于的智能终端漏洞代码样本挖掘系统的结构进行说明:
本申请实施例提供的智能终端漏洞代码样本挖掘方法、装置及电子设备,适用于对智能终端的漏洞代码样本进行扩充。如图1所示,为本申请实施例基于的智能终端漏洞代码样本挖掘系统的结构示意图,主要包括数据采集装置和智能终端漏洞代码样本挖掘装置,具体地,数据采集装置用于采集预设的生成对抗网络中的生成器生成的代码样本,然后将采集到的代码样本发送到智能终端漏洞代码样本挖掘装置,以基于该装置决定是否将该代码样本作为新的漏洞代码样本。
本申请实施例提供了一种智能终端漏洞代码样本挖掘方法,用于对智能终端的漏洞代码样本进行扩充。本申请实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于扩充漏洞代码样本的电子设备。
如图2所示,为本申请实施例提供的智能终端漏洞代码样本挖掘方法的流程示意图,该方法包括:
步骤201,获取生成对抗网络的生成器为当前智能终端生成的代码样本。
其中,本申请实施例生成的代码样本可以是二进制代码样本。
具体地,可以预先训练适用于当前智能终端的生成对抗网络,在完成该生成对抗网络的训练后,基于该生成对抗网络中的生成器为当前智能终端生成代码样本,生成器具体可以基于随机噪声的信息生成代码样本。
步骤202,根据代码样本对应的损失值,判断代码样本是否为可疑代码。
需要说明的是,可疑代码即为生成对抗网络的判断器无法准确判断其类型的代码。
具体地,在一实施例中,可以将代码样本输入到生成对抗网络的判断器,得到判断器对代码样本的判断结果及对应的损失值。
具体地,可以基于如下损失函数,计算判断器对代码样本的判断结果的损失值:
其中,E(·)表示分布函数的期望值,Pdata(x)表示预设代码样本的分布,Pz(z)表示定义在低维的噪声分布,G(z)表示生成器生成的代码样本,D(x)表示判断器对代码样本的判断结果,V(D,G)表示预设代码样本和生成器生成的代码样本的差异程度,的意思是固定生成器G,尽可能地让判断器最大化地判别出当前输入的代码样本来自于预设代码样本还是生成器生成的代码样本。将后面部分看成一个整体,令针对这里是在固定判断器D的条件下得到生成器G,这个G要求能够最小化预设代码样本和生成器生成的代码样本的差异,通过上述min和max的博弈过程,理想情况下会收敛于真实分布。
步骤203,当确定代码样本为可疑代码时,对该代码样本进行模糊测试,得到对应的模糊测试结果。
需要说明的是,在对该代码样本进行模糊测试之前,需要将代码样本转换为可执行文件。
具体地,可以预先部署用于对代码样本进行模糊测试的模糊测试模型,当确定某代码样本为可疑代码时,可以将该代码样本输入到模糊测试模型,以基于该模糊测试模型对代码样本进行相应的模糊测试,并输出对应的模糊测试结果。
步骤204,当模糊测试结果表征该代码样本为漏洞代码时,将该代码样本作为新的漏洞代码样本。
需要说明的是,模糊测试的原理是向代码样本输入非预期的输入,根据代码样本反馈的输出结果,确定该代码样本是否为漏洞代码。
具体地,当模糊测试结果表征该代码样本为漏洞代码时,可以将该代码样本确定为漏洞代码样本,并将其作为新的漏洞代码样本添加到漏洞代码样本集,以扩充漏洞代码样本集。
针对本申请实施例提供的生成对抗网络,如图3所示,为本申请实施例提供的生成对抗网络的判断器结构图,如图4所示,为本申请实施例提供的判断器末端的全连接神经网络结构图,该判断器包括CNN模块和全连接层模块,具体包括5个卷积层和4个全连接层;其中,1、2、4卷积层结构相同,且卷积核大小为5,卷积步长为1,特征图填充宽度为1,3、5卷积层结构相同,且卷积核大小为4,卷积步长为2,特征图填充宽度为1。判断器的输出层除输出样本真假判别外,还输出样本标签的后验估计,在本申请实施例中为二进制代码样本是否为漏洞代码的分类。对判断器输出的结果对应的新的代码样本重新送入生成器,继续进行训练,以优化生成对抗网络模型。
其中,生成器的目的是尽可能生成真实的代码样本,判断器的目的是为了判别生成器输出的是否为新的代码样本,直到判断器对生成器生成的代码样本预测概率接近0.5,即判断器无法分辨真假时停止训练。
其中,如图5所示,为本申请实施例提供的生成对抗网络的训练流程示意图,其中预设代码样本包括漏洞代码数据集和正常代码数据集,生成对抗网络是单独交替迭代训练的,所以目标函数也是分别对判断器和生成器进行优化的,首先对判断器进行优化,表达形式如下:
在完成对判断器的优化之后,便是对生成器进行优化,具体可以让判别的结果D(G(z))接近于1,即让总数值最小。
对判断器进行优化,表达式如下:
在上述实施例的基础上,为了能够准确筛选可疑代码,作为一种可实施的方式,在一实施例中,根据代码样本对应的损失值,判断代码样本是否为可疑代码,包括:
步骤2021,将预设代码样本输入到生成对抗网络的判断器,得到判断器对预设代码样本的判断结果及对应的损失值。
其中,判断结果分为正常代码和漏洞代码。
步骤2022,根据正常代码对应的损失值平均值和漏洞代码对应的损失值平均值,确定可疑代码判断范围。
步骤2023,当代码样本对应的损失值属于可疑代码判断范围时,确定代码样本为可疑代码。
具体地,可以将一定数量的已知类型的预设代码样本输入到生成对抗网络的判断器,以基于该判断器对这些预设代码样本进行类型判断,得到当前判断器对各预设代码样本的判断结果及对应的损失值。然后通过计算判断结果为正常代码的预设代码样本的损失值平均值a,以及判断结果为漏洞代码的预设代码样本的损失值平均值b,确定可疑代码判断范围(a,b)。进一步地,若该判断器对当前代码样本的识别结果对应的损失值落在可疑代码判断范围(a,b),则将该代码样本确定为可疑代码。
在上述实施例的基础上,作为一种可实施的方式,在一实施例中,对该代码样本进行模糊测试,得到对应的模糊测试结果,包括:
步骤2031,为代码样本生成多个模糊测试用例;
步骤2032,依次将各模糊测试用例输入到代码样本,得到各模糊测试用例对代码样本的路径覆盖范围及对应的模糊测试子结果;
步骤2033,根据各模糊测试用例对代码样本的路径覆盖范围,在多个模糊测试用例中筛选种子用例,并构建种子用例池;
步骤2034,在种子用例池中提取目标种子用例;
步骤2035,对目标种子用例进行变异,得到变异后的目标种子用例;
步骤2036,将变异后的目标种子用例输入到代码样本,得到变异后的目标种子用例对代码样本的路径覆盖范围及对应的模糊测试子结果;
步骤2037,若变异后的目标种子用例对代码样本的路径覆盖范围包括新路径,则将该变异后的目标种子用例作为新的种子用例添加到种子用例池,并返回到在种子用例池中提取目标种子用例的步骤;
步骤2038,当接收到模糊测试终止信号时,汇总模糊测试子结果,得到该代码样本的模糊测试结果。
相应地,在一实施例中,若变异后的目标种子用例对代码样本的路径覆盖范围不包括新路径,则丢弃该变异后的目标种子用例,其中,如图6所示,为本申请实施例提供的模糊测试流程示意图。
需要说明的是,模糊测试工作过程包括两个部分,一个是代码样本的执行与跟踪,这个部分中需要在测试用例输入后对代码样本进行轻量级的分析以获取代码样本运行中路径覆盖情况。另一部分是测试样例的生成过程,这部分包括每次测试中从种子用例池中选择目标种子用例,再根据不同的变异策略产生畸形输入供代码样本执行。
具体地,每轮模糊测试结束后,如果当前采用的变异后的目标种子用例覆盖到新路径,则将该变异后的目标种子用例保存到种子用例池中去,否则丢弃。最后结束一轮模糊测试,准备下一轮测试。持续循环这样的流程,若在某次模糊测试导致样本代码发生异常崩溃或发生错误,将当前触发崩溃的测试用例记录到对应的模糊测试子结果,然后继续循环,直至接收到模糊测试终止信号,此时将汇总之前得到的所有模糊测试子结果,以得到该代码样本的模糊测试结果。
具体地,在一实施例中,针对是否覆盖新路径的判断,可以将当前测试用例对应的路径覆盖范围的路径信息保存在一个哈希表中,这样不仅保存了路径的经过信息,还可以记录该路径的经过次数,哈希表中的key表示一条路径,value记录该路径的覆盖次数。当目标程序执行结束后,AFL便开始对这张哈希表进行分析,从而判断样本代码的执行情况。在分析是否有新的路径时,也可得到对应位置,存储该路径的覆盖次数。当再得到代码样本执行的路径覆盖结果时,只需要将路径记录做比较,如果某块路径对应的哈希节点的覆盖次数增加了,即不再为零,则说明此次执行覆盖新的路径,此时修改AFL自身保留的路径记录,并保存此次执行的输入作为新的种子用例添加到种子用例池。
具体地,在一实施例中,为了确保能够提取到高质量的目标种子用例,以提高模糊测试效率,可以按照各种子用例的优先级,对种子用例池中的种子用例进行排序;根据种子用例的排序结果,在种子用例池中提取目标种子用例。
具体地,可以根据各种子用例对应的路径覆盖范围的大小,设定各种子用例的优先级,首次提取的目标种子用例可以是路径覆盖范围最大的种子用例。
具体地,在一实施例中,可以按照预设步长,对目标种子用例的若干个比特位进行翻转,得到变异后的目标种子用例。
需要说明的是,为了能对探测到的路径尽可能全面的测试,当选择到一个目标种子用例时可以不只进行一次变异,而会为该目标种子用例进行多次变异执行,尽可能对该目标种子用例进行全面的测试。
具体地,可以使用随机变异方法对目标种子用例的每个比特/字节进行数值的变异,例如采用比特翻转的方式,按照预设步长,连续翻转几个比特位,或者是在随机或特定的某个位置,对固定宽度的比特位进行翻转。
类似地,也可以使用预设的值将目标种子用例中的一些部分字节进行覆盖,或者将其插入到目标种子用例的一些指定字节位,预设的值可以是随机生成的,也可以是用户指定的。也可以对差异较大的两个或多个目标种子用例进行拼接,得到变异后的目标种子用例。
本申请实施例提供的智能终端漏洞代码样本挖掘方法,通过获取生成对抗网络的生成器为当前智能终端生成的代码样本;根据代码样本对应的损失值,判断代码样本是否为可疑代码;当确定代码样本为可疑代码时,对该代码样本进行模糊测试,得到对应的模糊测试结果;当模糊测试结果表征该代码样本为漏洞代码时,将该代码样本作为新的漏洞代码样本。上述方案提供的方法,通过在生成对抗网络构建过程中,对生成器生成的可疑代码进行模糊测试,以准确判断可疑代码是否为漏洞代码,有效增加了漏洞代码样本的数量,为提高漏洞代码检测模型的准确性奠定了基础。
本申请实施例提供了一种智能终端漏洞代码样本挖掘装置,用于执行上述实施例提供的智能终端漏洞代码样本挖掘方法。
如图7所示,为本申请实施例提供的智能终端漏洞代码样本挖掘装置的结构示意图。该智能终端漏洞代码样本挖掘装置70包括:获取模块701、判断模块702、模糊测试模块703和挖掘模块704。
其中,获取模块,用于获取生成对抗网络的生成器为当前智能终端生成的代码样本;判断模块,用于根据代码样本对应的损失值,判断代码样本是否为可疑代码;模糊测试模块,用于当确定代码样本为可疑代码时,对该代码样本进行模糊测试,得到对应的模糊测试结果;挖掘模块,用于当模糊测试结果表征该代码样本为漏洞代码时,将该代码样本作为新的漏洞代码样本。
具体地,在一实施例中,判断模块,具体用于:
将预设代码样本输入到生成对抗网络的判断器,得到判断器对预设代码样本的判断结果及对应的损失值;其中,判断结果分为正常代码和漏洞代码;
根据正常代码对应的损失值平均值和漏洞代码对应的损失值平均值,确定可疑代码判断范围;
当代码样本对应的损失值属于可疑代码判断范围时,确定代码样本为可疑代码。
具体地,在一实施例中,判断模块,还用于:
将代码样本输入到生成对抗网络的判断器,得到判断器对代码样本的判断结果及对应的损失值。
具体地,在一实施例中,模糊测试模块,具体用于:
为代码样本生成多个模糊测试用例;
依次将各模糊测试用例输入到代码样本,得到各模糊测试用例对代码样本的路径覆盖范围及对应的模糊测试子结果;
根据各模糊测试用例对代码样本的路径覆盖范围,在多个模糊测试用例中筛选种子用例,并构建种子用例池;
在种子用例池中提取目标种子用例;
对目标种子用例进行变异,得到变异后的目标种子用例;
将变异后的目标种子用例输入到代码样本,得到变异后的目标种子用例对代码样本的路径覆盖范围及对应的模糊测试子结果;
若变异后的目标种子用例对代码样本的路径覆盖范围包括新路径,则将该变异后的目标种子用例作为新的种子用例添加到种子用例池,并返回到在种子用例池中提取目标种子用例的步骤;
当接收到模糊测试终止信号时,汇总模糊测试子结果,得到该代码样本的模糊测试结果。
具体地,在一实施例中,模糊测试模块,还用于:
若变异后的目标种子用例对代码样本的路径覆盖范围不包括新路径,则丢弃该变异后的目标种子用例。
具体地,在一实施例中,模糊测试模块,具体用于:
按照各种子用例的优先级,对种子用例池中的种子用例进行排序;
根据种子用例的排序结果,在种子用例池中提取目标种子用例。
具体地,在一实施例中,模糊测试模块,具体用于:
按照预设步长,对目标种子用例的若干个比特位进行翻转,得到变异后的目标种子用例。
关于本实施例中的智能终端漏洞代码样本挖掘装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供的智能终端漏洞代码样本挖掘装置,用于执行上述实施例提供的智能终端漏洞代码样本挖掘方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种电子设备,用于执行上述实施例提供的智能终端漏洞代码样本挖掘方法。
如图8所示,为本申请实施例提供的电子设备的结构示意图。该电子设备80包括:至少一个处理器81和存储器82。
所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上实施例提供的智能终端漏洞代码样本挖掘方法。
本申请实施例提供的一种电子设备,用于执行上述实施例提供的智能终端漏洞代码样本挖掘方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上任一实施例提供的智能终端漏洞代码样本挖掘方法。
本申请实施例的包含计算机可执行指令的存储介质,可用于存储前述实施例中提供的智能终端漏洞代码样本挖掘方法的计算机执行指令,其实现方式与原理相同,不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种智能终端漏洞代码样本挖掘方法,其特征在于,包括:
获取生成对抗网络的生成器为当前智能终端生成的代码样本;
根据所述代码样本对应的损失值,判断所述代码样本是否为可疑代码;
当确定所述代码样本为可疑代码时,对该代码样本进行模糊测试,得到对应的模糊测试结果;
当所述模糊测试结果表征该代码样本为漏洞代码时,将该代码样本作为新的漏洞代码样本。
2.根据权利要求1所述的方法,其特征在于,所述根据所述代码样本对应的损失值,判断所述代码样本是否为可疑代码,包括:
将预设代码样本输入到所述生成对抗网络的判断器,得到所述判断器对所述预设代码样本的判断结果及对应的损失值;其中,所述判断结果分为正常代码和漏洞代码;
根据正常代码对应的损失值平均值和漏洞代码对应的损失值平均值,确定可疑代码判断范围;
当所述代码样本对应的损失值属于所述可疑代码判断范围时,确定所述代码样本为可疑代码。
3.根据权利要求1所述的方法,其特征在于,在根据所述代码样本对应的损失值,判断所述代码样本是否为可疑代码之前,所述方法还包括:
将所述代码样本输入到所述生成对抗网络的判断器,得到所述判断器对所述代码样本的判断结果及对应的损失值。
4.根据权利要求1所述的方法,其特征在于,所述对该代码样本进行模糊测试,得到对应的模糊测试结果,包括:
为所述代码样本生成多个模糊测试用例;
依次将各所述模糊测试用例输入到所述代码样本,得到各所述模糊测试用例对所述代码样本的路径覆盖范围及对应的模糊测试子结果;
根据各所述模糊测试用例对所述代码样本的路径覆盖范围,在所述多个模糊测试用例中筛选种子用例,并构建种子用例池;
在所述种子用例池中提取目标种子用例;
对所述目标种子用例进行变异,得到变异后的目标种子用例;
将所述变异后的目标种子用例输入到所述代码样本,得到所述变异后的目标种子用例对所述代码样本的路径覆盖范围及对应的模糊测试子结果;
若所述变异后的目标种子用例对所述代码样本的路径覆盖范围包括新路径,则将该变异后的目标种子用例作为新的种子用例添加到所述种子用例池,并返回到所述在所述种子用例池中提取目标种子用例的步骤;
当接收到模糊测试终止信号时,汇总所述模糊测试子结果,得到该代码样本的模糊测试结果。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述变异后的目标种子用例对所述代码样本的路径覆盖范围不包括新路径,则丢弃该变异后的目标种子用例。
6.根据权利要求4所述的方法,其特征在于,所述在所述种子用例池中提取目标种子用例,包括:
按照各所述种子用例的优先级,对所述种子用例池中的种子用例进行排序;
根据所述种子用例的排序结果,在所述种子用例池中提取目标种子用例。
7.根据权利要求4所述的方法,其特征在于,所述对所述目标种子用例进行变异,得到变异后的目标种子用例,包括:
按照预设步长,对所述目标种子用例的若干个比特位进行翻转,得到变异后的目标种子用例。
8.一种智能终端漏洞代码样本挖掘装置,其特征在于,包括:
获取模块,用于获取生成对抗网络的生成器为当前智能终端生成的代码样本;
判断模块,用于根据所述代码样本对应的损失值,判断所述代码样本是否为可疑代码;
模糊测试模块,用于当确定所述代码样本为可疑代码时,对该代码样本进行模糊测试,得到对应的模糊测试结果;
挖掘模块,用于当所述模糊测试结果表征该代码样本为漏洞代码时,将该代码样本作为新的漏洞代码样本。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210707928.8A CN114943083A (zh) | 2022-06-21 | 2022-06-21 | 一种智能终端漏洞代码样本挖掘方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210707928.8A CN114943083A (zh) | 2022-06-21 | 2022-06-21 | 一种智能终端漏洞代码样本挖掘方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114943083A true CN114943083A (zh) | 2022-08-26 |
Family
ID=82911570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210707928.8A Pending CN114943083A (zh) | 2022-06-21 | 2022-06-21 | 一种智能终端漏洞代码样本挖掘方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114943083A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117574393A (zh) * | 2024-01-16 | 2024-02-20 | 国网浙江省电力有限公司 | 一种信息终端漏洞挖掘方法、装置、设备及存储介质 |
-
2022
- 2022-06-21 CN CN202210707928.8A patent/CN114943083A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117574393A (zh) * | 2024-01-16 | 2024-02-20 | 国网浙江省电力有限公司 | 一种信息终端漏洞挖掘方法、装置、设备及存储介质 |
CN117574393B (zh) * | 2024-01-16 | 2024-03-29 | 国网浙江省电力有限公司 | 一种信息终端漏洞挖掘方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112003870B (zh) | 一种基于深度学习的网络加密流量识别方法及装置 | |
EP3651043B1 (en) | Url attack detection method and apparatus, and electronic device | |
CN110505241B (zh) | 一种网络攻击面检测方法及系统 | |
CN109889538B (zh) | 用户异常行为检测方法及系统 | |
CN112953924A (zh) | 网络异常流量检测方法、系统、存储介质、终端及应用 | |
CN112491796A (zh) | 一种基于卷积神经网络的入侵检测及语义决策树量化解释方法 | |
CN111931179B (zh) | 基于深度学习的云端恶意程序检测系统及方法 | |
CN111915437A (zh) | 基于rnn的反洗钱模型的训练方法、装置、设备及介质 | |
CN111581092B (zh) | 仿真测试数据的生成方法、计算机设备及存储介质 | |
CN109783805B (zh) | 一种网络社区用户识别方法、装置和可读存储介质 | |
CN113052577B (zh) | 一种区块链数字货币虚拟地址的类别推测方法及系统 | |
CN113468524B (zh) | 基于rasp的机器学习模型安全检测方法 | |
CN106650446A (zh) | 基于系统调用的恶意程序行为识别方法和系统 | |
CN111400695B (zh) | 一种设备指纹生成方法、装置、设备和介质 | |
CN113641906A (zh) | 基于资金交易关系数据实现相似目标人员识别处理的系统、方法、装置、处理器及其介质 | |
CN114943083A (zh) | 一种智能终端漏洞代码样本挖掘方法、装置及电子设备 | |
CN113592693B (zh) | 基于Y-Net的数字水印方法、装置及系统 | |
Yin et al. | A feature selection method for improved clonal algorithm towards intrusion detection | |
CN115204322B (zh) | 行为链路异常识别方法和装置 | |
CN113361455B (zh) | 人脸鉴伪模型的训练方法、相关装置及计算机程序产品 | |
CN115643044A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN111209567B (zh) | 提高检测模型鲁棒性的可知性判断方法及装置 | |
CN113742775A (zh) | 一种图像数据安全检测方法、系统和存储介质 | |
CN111694588A (zh) | 引擎升级检测方法、装置、计算机设备和可读存储介质 | |
Zheng et al. | Using complex network communities to evaluate the correctness of object detection |
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 |