CN116450524A - 对抗网络模型训练方法、装置、生成方法和设备 - Google Patents
对抗网络模型训练方法、装置、生成方法和设备 Download PDFInfo
- Publication number
- CN116450524A CN116450524A CN202310442379.0A CN202310442379A CN116450524A CN 116450524 A CN116450524 A CN 116450524A CN 202310442379 A CN202310442379 A CN 202310442379A CN 116450524 A CN116450524 A CN 116450524A
- Authority
- CN
- China
- Prior art keywords
- training
- data
- network model
- countermeasure network
- test
- 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
- 238000012549 training Methods 0.000 title claims abstract description 219
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000012360 testing method Methods 0.000 claims abstract description 148
- 239000013598 vector Substances 0.000 claims abstract description 42
- 238000004590 computer program Methods 0.000 claims description 21
- 230000006854 communication Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 10
- 230000003042 antagnostic effect Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000009193 crawling Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/3676—Test management for coverage analysis
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0475—Generative networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/094—Adversarial learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种对抗网络模型训练方法、装置、生成方法和设备。所述方法包括:获取网络协议数据;将所述网络协议数据转换为二维向量,得到训练数据;采用初始的对抗网络模型生成测试数据;基于所述训练数据和所述测试数据,对初始的所述对抗网络模型进行训练,直至满足预设的收敛条件,得到训练后的所述对抗网络模型。本申请考虑到网络协议的空间和时序特征,将网络协议数据转换为二维向量,基于上述二维向量训练得到的对抗网络模型,可生成与真实的网络协议数据格式相匹配、且多样化的测试样本,有效提高了模糊测试的代码覆盖率。
Description
技术领域
本申请涉及网络技术领域,特别是涉及一种对抗网络模型训练方法、装置、生成方法和设备。
背景技术
网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。对网络协议进行分析,发掘网络协议及其具体实现程序中存在的安全漏洞,并及时实施安全防护,有助于减少网络安全问题的发生。
模糊测试也叫Fuzz测试,是一种常用的软件健壮性测试、漏洞挖掘、黑盒测试测试方法,通过随机的非法输入,观测被测试软件是否异常从而发现软件漏洞和BUG。传统的方式有用手工生成输入样本,这种方式效率较低;也有采用传统的模糊测试工具,但生成的测试样本缺乏多样性导致模糊测试的代码覆盖率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种对抗网络模型训练方法、装置、生成方法和设备,用于解决现有技术中测试样本缺乏多样性导致模糊测试的代码覆盖率较低的问题。
第一方面,本申请提供了一种对抗网络模型训练方法。所述方法包括:
获取网络协议数据;
将所述网络协议数据转换为二维向量,得到训练数据;
采用初始的对抗网络模型生成测试数据;
基于所述训练数据和所述测试数据,对初始的所述对抗网络模型进行训练,直至满足预设的收敛条件,得到训练后的所述对抗网络模型。
在其中一个实施例中,所述获取网络协议数据,包括:
采用抓包工具抓取网络通信过程中的网络协议数据;其中,所述网络协议数据包括会话数据流、协议数据包、字节的关联关系中的至少一个。
在其中一个实施例中,所述将所述网络协议数据转换为二维向量,得到训练数据,包括:
对所述网络协议数据进行向量化编码,得到所述网络协议数据的二维向量,将所述网络协议数据的二维向量作为训练数据。
在其中一个实施例中,所述对抗网络模型包括生成器和判别器;
所述采用初始对抗网络模型生成测试数据,包括:
将随机噪声数据输入所述生成器中,通过所述生成器输出测试数据;其中所述测试数据为二维向量。
在其中一个实施例中,所述基于所述训练数据和所述测试数据,对初始的所述对抗网络模型进行训练,包括:
将所述训练数据输入所述判别器中,得到真实结果;
将所述测试数据输入所述判别器中,得到预测结果;
基于所述真实结果和所述预测结果的差异性,调整所述生成器的参数;
采用调整后的所述生成器生成新的测试数据。
在其中一个实施例中,满足预设的收敛条件判断方式,包括:
若训练次数达到预设阈值,则认为满足预设的收敛条件。
在其中一个实施例中,所述方法还包括:对所述训练数据进行分类,得到多个类别的所述训练数据;
基于每个类别的所述训练数据和所述测试数据,对初始的所述对抗网络模型的生成器和所述判别器进行训练,直至训练次数达到预设阈值,得到每个类别训练后的所述对抗网络模型。
在其中一个实施例中,所述方法还包括:
训练过程中,间隔预设周期保存当前的对抗网络模型,得到多个可用对抗网络模型;
将多个所述可用对抗网络模型,以及满足预设的收敛条件时的对抗网络模型,作为训练后的所述对抗网络模型。
第二方面,本申请还提供了一种对抗网络模型训练装置。所述装置包括:
数据获取模块,用于获取网络协议数据;
训练数据获取模块,用于将所述网络协议数据转换为二维向量,得到训练数据;
模型训练模块,用于采用初始的对抗网络模型生成测试数据;还用于基于所述训练数据和所述测试数据,对初始的所述对抗网络模型进行训练,直至满足预设的收敛条件,得到训练后的所述对抗网络模型。
第三方面,本申请还提供了一种模糊测试用例的生成方法。所述方法包括:
采用第一方面中任一项所述的对抗网络模型训练方法,得到训练后的所述对抗网络模型;
采用训练后的所述对抗网络模型生成模糊测试用例。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面和第三方面中任一项所述的方法步骤。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面和第三方面中任一项所述的方法步骤。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面和第三方面中任一项所述的方法步骤。
上述对抗网络模型训练方法、装置、生成方法和设备,至少具有以下优点:
本申请将获取的网络协议数据转换为二维向量,得到训练数据;采用初始对抗网络模型生成测试数据;基于训练数据和测试数据,对初始的对抗网络模型进行训练,直至满足预设的收敛条件,得到训练后的对抗网络模型。本申请考虑到网络协议的空间和时序特征,将网络协议数据转换为二维向量,基于上述二维向量训练得到的对抗网络模型,可生成与真实的网络协议数据格式相匹配、且多样化的测试样本,有效提高了模糊测试的代码覆盖率。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中对抗网络模型训练方法的应用环境图;
图2为一个实施例中对抗网络模型训练方法的流程示意图;
图3为一个实施例中训练对抗网络模型步骤的流程示意图;
图4为一个实施例中对抗网络模型训练装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
为了阐释的目的而描述了本发明的一些示例性实施例,需要理解的是,本发明可通过附图中没有具体示出的其他方式来实现。
本申请实施例提供的对抗网络模型训练方法和模糊测试用例的生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储***可以存储服务器104需要处理的数据。数据存储***可以集成在服务器104上,也可以放在云上或其他网络服务器上。
其中,终端102可以发送抓取策略至服务器104,以使得服务器104按照抓取策略获取并处理网络协议数据,例如服务器104将网络协议数据转换为二维向量,得到训练数据。服务器104还采用初始对抗网络模型生成测试数据,并基于训练数据和测试数据,对初始的对抗网络模型的生成器和判别器进行训练,直至训练次数达到预设阈值,得到训练后的对抗网络模型。进一步的,服务器104还采用训练后的对抗网络模型生成模糊测试用例。这样服务器104将训练后的对抗网络模型以及模糊测试用例反馈至终端102。
上述对抗网络模型训练方法和模糊测试用例的生成方法,将获取的网络协议数据转换为二维向量,得到训练数据;采用初始对抗网络模型生成测试数据;基于训练数据和测试数据,对初始的对抗网络模型进行训练,直至训练次数达到预设阈值,得到训练后的对抗网络模型。本申请考虑到网络协议的空间和时序特征,将网络协议数据转换为二维向量,基于上述二维向量训练得到的对抗网络模型,可生成多样化的模糊测试用例,从而有效提高了模糊测试的代码覆盖率。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个可行的实施例中,本申请实施例提供了一种对抗网络模型训练方法,以下以该方法应用于图1中的服务器为例进行说明。
请参阅图2,图2为本实施例的一种对抗网络模型训练方法的流程示意图,具体包括以下步骤:
步骤S202,获取网络协议数据。
步骤S204,将网络协议数据转换为二维向量,得到训练数据。
步骤S206,采用初始对抗网络模型生成测试数据。
步骤S208,基于训练数据和测试数据,对初始的对抗网络模型进行训练,直至满足预设的收敛条件,得到训练后的对抗网络模型。
具体地说,以TCP/IP网络模型为例,其包括自上而下的四个层次:应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link),每个层次均具有相应的协议,例如应用层常见的协议包括HTTP协议、FTP协议,传输层常见协议包括TCP协议、UDP协议。数据发送至目标主机前,按照从上向下的顺序依次传输,每层协议都将在上层数据的基础上加上自己的头部信息,实现对数据的封装。目标主机接收到封装的数据后,按照从下向上的依次传递,各层协议按照本层的头部信息,对接收的数据进行分用,获取所需的信息。本实施例中获取的网络协议数据即为网络通信过程中,传输数据过程中监控任意一个网络节点获取的数据。
可选地,在获取网络协议数据之后,还对该网络协议数据进行过滤处理,以筛选出符合模型训练要求的数据。例如可按照不同的协议、协议字段内容、IP端口、会话、请求方式等,从网络协议数据中挑选出需要的数据。
进一步的,网络协议至少包括语法、语义和时序三个要素,相应地,本实施例中获取的网络协议数据具有空间特征和时序特征,为了使待训练的对抗网络模型学习到上述空间特征和时序特征,本实施例中将网络协议数据转换为二维向量,形成训练数据,再基于训练数据训练对抗网络模型。应理解,上述训练数据为模型训练中的真实数据。
通常来说,对抗网络模型包括生成器和判别器,生成器用于生成测试信息,判别器用于判断该测试信息是否为真实的,其中,测试信息可以为多个类别,例如可以是测试数据,也可以是测试图片。模型训练的方法是随机梯度下降,通过优化真实的训练数据的概念分布与生成的测试信息概念分布的差距,最终得到符合要求的对抗网络模型。
上述对抗网络模型训练方法,将获取的网络协议数据转换为二维向量,得到训练数据;采用初始对抗网络模型生成测试数据;基于训练数据和测试数据,对初始的对抗网络模型进行训练,直至训练次数达到预设阈值,得到训练后的对抗网络模型。本申请考虑到网络协议的空间和时序特征,将网络协议数据转换为二维向量,基于上述二维向量训练得到的对抗网络模型,可生成多样化的模糊测试用例,从而有效提高了模糊测试的代码覆盖率。
可选地,获取网络协议数据,包括:采用抓包工具抓取网络通信过程中的网络协议数据;其中,网络协议数据包括会话数据流、协议数据包、字节的关联关系中的至少一个。应理解,抓包工具是预先设置于服务器中的应用程序,用于响应于抓包指令拦截查看网络数据包内容,并保存至Pcap(Packet Capture)数据包中。示例性地,抓包工具可以采用例如Wireshark、Tcpdump或WinDump中的任意一个。
上述实施例中,抓包工具可根据抓包指令,自动从网络中抓取训练需要的网络协议数据,为后续的对抗网络模型训练提供大量的真实的训练数据。
可选地,将网络协议数据转换为二维向量,得到训练数据,包括:对网络协议数据进行向量化编码,得到网络协议数据的二维向量,将网络协议数据的二维向量作为训练数据。示例性地,转换方式可以采用例如one-hot、word2vec、ngram等,将会话数据流、协议数据包、字节的关联关系表示成保留空间特征和时间特征的二维向量,为后续的训练模型作数据准备。
上述实施例中,将网络协议数据转换为二维向量,可使待训练的对抗网络模型学习到上述空间特征和时序特征。
可选地,对抗网络模型包括生成器和判别器。示例性地,本申请实施例中采用善长时空特征处理的ConvLSTM模型作为对抗网络模型的生成器,用以学习网络协议数据的时空特征,根据观察得到的历史网络协议数据去预测将来一段时间内的网络协议数据。采用CNN作为判别器,用以提取输入数据的特征,利用提取的特征来识别和分类数据,判别生成数据与原始协议数据的差别,从而判断生成器的预测效果。生成器与判别器两者组成博弈关系的深度学习模型,有效提高模糊测试的代码覆盖率、测试样本的有效率。
可选地,采用初始对抗网络模型生成测试数据,包括:将随机噪声数据输入生成器中,通过生成器输出测试数据;其中测试数据为二维向量。
具体地说,本实施例的生成器的模型设计包括输入层、反卷积层、ConvLSTM层和输出层。由程序代码自动生成的每一个随机噪声数据作为生成器的输入,经一维至二维的转化,传递到ConvLSTM层作时空特征的学习,最后输出的是二维特征向量。
本实施例的判别器的模型设计包括嵌入层、卷积层、池化层、Softmax层等。测试数据经卷积层提取特征,经池化层进行降采样,再经Softmax层进行分类,得到当前测试数据属于不同种类的概率分布情况。
请参阅图3,可选地,基于训练数据和测试数据,对初始的对抗网络模型进行训练,包括:
步骤S302,将训练数据输入判别器中,得到真实结果;
步骤S304,将测试数据输入判别器中,得到预测结果;
步骤S306,基于真实结果和预测结果的差异性,调整生成器的参数;
步骤S308,采用调整后的生成器生成新的测试数据。
具体地说,本实施例中的判别器是根据训练数据和测试数据预先训练完成的,而生成器是基于训练完成的判别器训练的,其中,预训练判别器的步骤包括:
步骤一、初始化判别器和生成器的参数;
步骤二、从训练数据中选取多个第一训练样本,作为正样本;采用初始化后的生成器,生成多个第一测试样本,作为负样本;
步骤三、将第一训练样本输入初始化后的判别器中,得到真实的概率值;将第一测试样本输入初始化后的判别器中,得到预测的概率值,采用损失函数计算真实的概率值和预测的概率值的损失值,根据损失值调整判别器的参数;
步骤四、重复上述步骤三,经过多次迭代更新后,当判别器的概率值大于第一预设判别阈值,则认为判别器训练完成。
进一步地,采用训练完成的判别器,继续对初始化后的生成器进行训练,以使生成器能生成与训练数据的数据结构相对应的测试数据,可作为模糊测试的测试样本。具体地说,训练生成器的步骤包括:
步骤一、从训练数据中选取多个第二训练样本,采用初始化后的生成器生成多个第二测试样本。其中,该第二训练样本可以与上述第一训练样本相同,也可以不同;
步骤二、将第二训练样本输入训练完成的判别器中,得到真实结果;将第二测试样本输入训练完成的判别器中,得到预测结果。应理解,该真实结果即为真实的概率值,该预测结果即为预测的概率值。通过损失函数计算真实结果和预测结果的损失值,即可获知两者之间的差异性,再根据差异性调整生成器的参数;
步骤三、采用调整后的生成器生成新的测试数据,重复步骤二,经过多次迭代更新后,当满足预设的收敛条件时,则认为生成器训练完成。
可选地,满足预设的收敛条件的判断方式,包括:若训练次数达到预设阈值,则认为满足预设的收敛条件。应理解,上述收敛条件的判断方式仅为一种示例,实际应用中,还可选择其它适合的判断方式,例如设定一个第二预设判别阈值,若判别器的概率值大于第二预设判别阈值,则认为满足收敛条件。其中,第二预设判别阈值和第一预设判别阈值的数值可根据需要设定,两者可以相同,也可以不同。在一个可行的示例中,还可将预设阈值分为多个数值,例如设定第一预设阈值为N,第一轮训练时,训练次数达到N次则停止训练;在第二轮训练时,设定第二预设阈值为N+1000,当训练次数达到N+1000次则停止训练,通过多层次的训练,可使生成器生成的测试数据有效性更高、增加样本多样性。
上述实施例中,将训练数据和测试数据输入判别器中,得到判别结果,根据判别结果将梯度分别信息反馈给生成器进行参数更新,经过多次反复迭代,生成器能够学习到如何生成测试样本,即从网络协议数据的时空特征中学习生成与之相似、格式相匹配的测试样本。训练完成的判别器和训练完成的生成器即构成训练后的对抗网络模型。应理解,上述训练步骤仅为一种示例,实际应用中,还可在生成器训练完成后,进一步对判别器进行二次训练,或对生成器和判别器进行交替训练,以提高判别器的识别精度和生成器的预测精度。
在一个可行的实施例中,本申请实施例的对抗网络模型训练方法还包括:对训练数据进行分类,得到多个类别的训练数据。例如网络协议数据包括会话数据流、协议数据包、字节的关联关系,将获取的网络协议数据按照上述类别进行分类,得到三个类别的训练数据。基于不同类别的训练数据训练得到的对抗网络模型,可大幅增加测试样本的多样性。
可选地,本实施例中采用k-means聚类算法,对获取的网络协议数据进行分类,其中KMeans聚类算法的主要步骤包括:
步骤一、从获取的网络协议数据中,随机选择k个数据作为初始聚类的中心,来代表各个类;
步骤二、遍历所有网络协议数据,计算每个网络协议数据到k个数据的欧氏距离,根据欧式距离最小原则,将每个网络协议数据划分进距离最近的一类中;
步骤三、根据均值算法,重新计算每个类的中心;
步骤四、迭代步骤二和步骤三,直到中心保持不变,完成网络协议数据的分类。
上述实施例中,采用聚类算法将获取的网络协议数据分为多个类别,再基于不同类别的网络协议数据训练对抗网络模型,从而得到适用于多个类别的对抗网络模型,进而大幅增加了测试样本的多样性。
在一个可行的实施例中,本申请实施例的对抗网络模型训练方法还包括:训练过程中,间隔预设周期保存当前的对抗网络模型,得到多个可用对抗网络模型;将多个可用对抗网络模型,以及满足预设的收敛条件时的对抗网络模型,作为训练后的对抗网络模型。
具体地说,构建此对抗网络模型进行训练的目的,是使用判别器使其最大限度地区分真实的训练数据与生成的测试数据的差别;对于生成器来说,其最关键的是能够生成欺骗判别器的测试数据,两者通过对抗反馈展开循环博弈式的训练,多个训练周期后,得到的测试样本非常接近真实的协议数据,以此进行模糊测试挖掘待测***的软件漏洞。基于此,除了上述实施例中将获取的网络协议数据分类成多个类别的训练数据,以适应不同程序的生成器模型训练之外,还可在训练过程中每隔若预设周期则保存一次对抗网络模型,得到多个可用对抗网络模型,保留的不同可用对抗网络模型由于训练程序的差异,能够为模糊测试产生多样化的测试样本,有利于进一步提高模糊测试的输入数据的多样性,提高测试的覆盖面。
其中,为了使得本领域技术人员充分理解本申请,以下对本申请的对抗网络模型训练方法的步骤进行详细说明:
采用抓包工具,抓取网络通信过程中的网络协议数据,并对抓取的网络协议数据进行过滤处理,以筛选出符合模型训练要求的数据。
将网络协议数据转换为二维向量,得到训练数据。将程序代码自动生成的随机噪声数据输入生成器中,得到测试数据,该测试数据也应为二维向量。
采用训练数据和测试数据,预先对对抗网络模型的判别器进行训练,以使判别器能够区分出真实的训练数据与生成的测试数据之间的差别;再基于训练好的判别器,对对抗网络模型的生成器进行训练,以使生成器能够生成欺骗判别器的测试数据。将训练得到的判别器和生成器作为训练后的对抗网络模型。
进一步的,在获取网络协议数据后,采用KMeans聚类算法进行分类,得到多个类别的训练数据,基于不同类别的训练数据训练得到的对抗网络模型,可大幅增加测试样本的多样性。
进一步的,训练过程中,间隔预设周期保存当前的对抗网络模型,得到多个可用对抗网络模型;将多个可用对抗网络模型,以及满足预设的收敛条件时的对抗网络模型,作为训练后的对抗网络模型。保留的不同可用对抗网络模型由于训练程序的差异,能够为模糊测试产生多样化的测试样本,有利于提高模糊测试的输入数据的多样性,提高测试的覆盖面。
上述对抗网络模型训练方法,将获取的网络协议数据转换为二维向量的训练数据,采用初始对抗网络模型生成测试数据;基于训练数据和测试数据,对初始的对抗网络模型进行训练,直至满足预设的收敛条件,得到训练后的对抗网络模型。本申请训练得到的对抗网络模型,能够学习原始网络协议数据的时空特征,生成与之格式相匹配、且多样化的测试样本;同时本申请还采用不同类别的训练数据训练得到对应类别的对抗网络模型,大幅增加了测试样本的多样性。进一步的,本申请保留不同周期的多个可用对抗网络模型,利用训练程序的差异,进一步提高了测试样本的多样性,提高了测试的覆盖面。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的对抗网络模型训练方法的对抗网络模型训练装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个对抗网络模型训练装置实施例中的具体限定可以参见上文中对于对抗网络模型训练方法的限定,在此不再赘述。
请参阅图4,在一个可行的实施例中,本申请实施例提供了一种对抗网络模型训练装置,包括:数据获取模块、训练数据获取模块和模型训练模块,其中:
数据获取模块,用于获取网络协议数据。
具体地说,数据获取模块发送抓包指令至抓包工具,以使其响应于抓包指令拦截查看网络数据包内容,并保存至Pcap(Packet Capture)数据包中。
可选地,数据获取模块还包括预处理单元,用于对获取的网络协议数据进行过滤处理,以筛选出符合模型训练要求的数据。
训练数据获取模块,用于将网络协议数据转换为二维向量,得到训练数据。
具体地说,训练数据获取模块对网络协议数据进行向量化编码,得到网络协议数据的二维向量,将网络协议数据的二维向量作为训练数据。
可选地,训练数据获取模块还包括分类单元,用于对训练数据进行分类,得到多个类别的训练数据。
模型训练模块,用于采用初始的对抗网络模型生成测试数据;还用于基于训练数据和测试数据,对初始的对抗网络模型进行训练,直至满足预设的收敛条件,得到训练后的对抗网络模型。
具体地说,对抗网络模型包括生成器和判别器。模型训练模块采用初始的对抗网络模型生成测试数据,包括:将随机噪声数据输入生成器中,通过生成器输出测试数据;其中测试数据为二维向量。
进一步的,模型训练模块根据训练数据和测试数据预先训练判别器,再基于训练完成的判别器训练生成器,其中,预训练判别器的步骤包括:
步骤一、初始化判别器和生成器的参数;
步骤二、从训练数据中选取多个第一训练样本,作为正样本;采用初始化后的生成器,生成多个第一测试样本,作为负样本;
步骤三、将第一训练样本输入初始化后的判别器中,得到真实的概率值;将第一测试样本输入初始化后的判别器中,得到预测的概率值,采用损失函数计算真实的概率值和预测的概率值的损失值,根据损失值调整判别器的参数;
步骤四、重复上述步骤三,经过多次迭代更新后,当判别器的概率值大于第一预设判别阈值,则认为判别器训练完成。
训练生成器的步骤包括:
步骤一、从训练数据中选取多个第二训练样本,采用初始化后的生成器生成多个第二测试样本。其中,该第二训练样本可以与上述第一训练样本相同,也可以不同;
步骤二、将第二训练样本输入训练完成的判别器中,得到真实结果;将第二测试样本输入训练完成的判别器中,得到预测结果。应理解,该真实结果即为真实的概率值,该预测结果即为预测的概率值。通过计算真实结果和预测结果的差异性,并根据差异性调整生成器的参数;
步骤三、采用调整后的生成器生成新的测试数据,重复步骤二,经过多次迭代更新后,当满足预设的收敛条件时,则认为生成器训练完成。
可选地,模型训练模块采用不同类别的网络协议数据训练对抗网络模型,从而得到适用于多个类别的对抗网络模型,进而大幅增加了测试样本的多样性。
可选地,模型训练模块在训练过程中每隔若预设周期则保存一次对抗网络模型,得到多个可用对抗网络模型,保留的不同可用对抗网络模型由于训练程序的差异,能够为模糊测试产生多样化的测试样本,有利于进一步提高模糊测试的输入数据的多样性,提高测试的覆盖面。
上述对抗网络模型训练装置,将获取的网络协议数据转换为二维向量的训练数据,采用初始对抗网络模型生成测试数据;基于训练数据和测试数据,对初始的对抗网络模型进行训练,直至满足预设的收敛条件,得到训练后的对抗网络模型。本申请训练得到的对抗网络模型,能够学习原始网络协议数据的时空特征,生成与之格式相匹配、且多样化的测试样本;同时本申请还采用不同类别的训练数据训练得到对应类别的对抗网络模型,大幅增加了测试样本的多样性。进一步的,本申请保留不同周期的多个可用对抗网络模型,利用训练程序的差异,进一步提高了测试样本的多样性,提高了测试的覆盖面。
上述对抗网络模型训练置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个可行的实施例中,本申请的实施例还提供了一种模糊测试用例的生成方法,包括:
采用上述实施例中公开的对抗网络模型训练方法,得到训练后的对抗网络模型;采用训练后的对抗网络模型生成模糊测试用例。
上述模糊测试用例的生成方法,由于训练得到的对抗网络模型能够学习原始网络协议数据的时空特征,生成与之格式相匹配、且多样化的测试样本,因此可有效提高模糊测试的代码覆盖率、测试样本的有效率。
在一个可行的实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种对抗网络模型训练方法和模糊测试用例的生成方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个可行的实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现一种对抗网络模型训练方法和模糊测试用例的生成方法中的方法步骤。
在一个可行的实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种对抗网络模型训练方法和模糊测试用例的生成方法中的方法步骤。
在一个可行的实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现一种对抗网络模型训练方法和模糊测试用例的生成方法中的方法步骤。
需要说明的是,本申请所涉及的网络协议信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (13)
1.一种对抗网络模型训练方法,其特征在于,所述方法包括:
获取网络协议数据;
将所述网络协议数据转换为二维向量,得到训练数据;
采用初始的对抗网络模型生成测试数据;
基于所述训练数据和所述测试数据,对初始的所述对抗网络模型进行训练,直至满足预设的收敛条件,得到训练后的所述对抗网络模型。
2.根据权利要求1所述的方法,其特征在于,所述获取网络协议数据,包括:
采用抓包工具抓取网络通信过程中的网络协议数据;其中,所述网络协议数据包括会话数据流、协议数据包、字节的关联关系中的至少一个。
3.根据权利要求2所述的方法,其特征在于,所述将所述网络协议数据转换为二维向量,得到训练数据,包括:
对所述网络协议数据进行向量化编码,得到所述网络协议数据的二维向量,将所述网络协议数据的二维向量作为训练数据。
4.根据权利要求1所述的方法,其特征在于,所述对抗网络模型包括生成器和判别器;
所述采用初始对抗网络模型生成测试数据,包括:
将随机噪声数据输入所述生成器中,通过所述生成器输出测试数据;其中所述测试数据为二维向量。
5.根据权利要求4所述的方法,其特征在于,所述基于所述训练数据和所述测试数据,对初始的所述对抗网络模型进行训练,包括:
将所述训练数据输入所述判别器中,得到真实结果;
将所述测试数据输入所述判别器中,得到预测结果;
基于所述真实结果和所述预测结果的差异性,调整所述生成器的参数;
采用调整后的所述生成器生成新的测试数据。
6.根据权利要求1-5中任一项所述的方法,其特征在于,满足预设的收敛条件判断方式,包括:
若训练次数达到预设阈值,则认为满足预设的收敛条件。
7.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:对所述训练数据进行分类,得到多个类别的所述训练数据;
基于每个类别的所述训练数据和所述测试数据,对初始的所述对抗网络模型的生成器和所述判别器进行训练,直至训练次数达到预设阈值,得到每个类别训练后的所述对抗网络模型。
8.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
训练过程中,间隔预设周期保存当前的对抗网络模型,得到多个可用对抗网络模型;
将多个所述可用对抗网络模型,以及满足预设的收敛条件时的对抗网络模型,作为训练后的所述对抗网络模型。
9.一种对抗网络模型训练装置,其特征在于,所述装置包括:
数据获取模块,用于获取网络协议数据;
训练数据获取模块,用于将所述网络协议数据转换为二维向量,得到训练数据;
模型训练模块,用于采用初始的对抗网络模型生成测试数据;还用于基于所述训练数据和所述测试数据,对初始的所述对抗网络模型进行训练,直至满足预设的收敛条件,得到训练后的所述对抗网络模型。
10.一种模糊测试用例的生成方法,其特征在于,所述方法包括:
采用权利要求1-8中任一项所述的对抗网络模型训练方法,得到训练后的所述对抗网络模型;
采用训练后的所述对抗网络模型生成模糊测试用例。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法步骤、以及权力要求10中所述的方法步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法步骤、以及权力要求10中所述的方法步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至至8中任一项所述的方法步骤、以及权力要求10中所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310442379.0A CN116450524A (zh) | 2023-04-23 | 2023-04-23 | 对抗网络模型训练方法、装置、生成方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310442379.0A CN116450524A (zh) | 2023-04-23 | 2023-04-23 | 对抗网络模型训练方法、装置、生成方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116450524A true CN116450524A (zh) | 2023-07-18 |
Family
ID=87133484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310442379.0A Pending CN116450524A (zh) | 2023-04-23 | 2023-04-23 | 对抗网络模型训练方法、装置、生成方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116450524A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117792800A (zh) * | 2024-02-28 | 2024-03-29 | 四川合佳科技有限公司 | 一种基于物联网安全评估***的信息验证方法及*** |
-
2023
- 2023-04-23 CN CN202310442379.0A patent/CN116450524A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117792800A (zh) * | 2024-02-28 | 2024-03-29 | 四川合佳科技有限公司 | 一种基于物联网安全评估***的信息验证方法及*** |
CN117792800B (zh) * | 2024-02-28 | 2024-05-03 | 四川合佳科技有限公司 | 一种基于物联网安全评估***的信息验证方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yao et al. | Capsule network assisted IoT traffic classification mechanism for smart cities | |
Zheng et al. | Learning to classify: A flow-based relation network for encrypted traffic classification | |
CN111683108B (zh) | 一种网络流异常检测模型的生成方法和计算机设备 | |
Wang et al. | Real network traffic collection and deep learning for mobile app identification | |
Wang et al. | App-net: A hybrid neural network for encrypted mobile traffic classification | |
CN116647411B (zh) | 游戏平台网络安全的监测预警方法 | |
CN113468071B (zh) | 模糊测试用例生成方法、***、计算机设备及存储介质 | |
CN112804123B (zh) | 一种用于调度数据网的网络协议识别方法及*** | |
CN112333706B (zh) | 物联网设备异常检测方法、装置、计算设备及存储介质 | |
Wang et al. | Automatic mobile app identification from encrypted traffic with hybrid neural networks | |
CN113992349B (zh) | 恶意流量识别方法、装置、设备和存储介质 | |
CN110222795B (zh) | 基于卷积神经网络的p2p流量的识别方法及相关装置 | |
CN116450524A (zh) | 对抗网络模型训练方法、装置、生成方法和设备 | |
CN111953665B (zh) | 服务器攻击访问识别方法及***、计算机设备、存储介质 | |
CN114301850B (zh) | 一种基于生成对抗网络与模型压缩的军用通信加密流量识别方法 | |
Brockschmidt et al. | On the generality of facial forgery detection | |
CN112910890B (zh) | 基于时间卷积网络的匿名网络流量指纹识别方法及设备 | |
Yin et al. | Identifying iot devices based on spatial and temporal features from network traffic | |
CN115834257B (zh) | 一种云端电力数据安全防护方法及防护*** | |
Liu et al. | Spatial‐Temporal Feature with Dual‐Attention Mechanism for Encrypted Malicious Traffic Detection | |
CN116055092A (zh) | 一种隐蔽隧道攻击行为检测方法和装置 | |
CN113783795B (zh) | 加密流量分类方法及相关设备 | |
CN114422207A (zh) | 基于多模态的c&c通信流量检测方法及装置 | |
Bezerra et al. | A precise flow representation for autonomous IoT-devices reconnaissance | |
CN115987689B (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 |