CN113468071B - 模糊测试用例生成方法、系统、计算机设备及存储介质 - Google Patents
模糊测试用例生成方法、系统、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113468071B CN113468071B CN202110838678.7A CN202110838678A CN113468071B CN 113468071 B CN113468071 B CN 113468071B CN 202110838678 A CN202110838678 A CN 202110838678A CN 113468071 B CN113468071 B CN 113468071B
- Authority
- CN
- China
- Prior art keywords
- data
- industrial control
- network
- test case
- fuzzy 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.)
- Active
Links
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/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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/02—Computing arrangements based on specific mathematical models using fuzzy logic
- G06N7/04—Physical realisation
- G06N7/046—Implementation by means of a neural network
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Fuzzy Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Automation & Control Theory (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Communication Control (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明涉及工控协议的模糊测试技术领域,公开了一种模糊测试用例生成方法、系统、计算机设备及存储介质,包括获取工业控制通讯协议数据集;根据工业控制通讯协议数据集中的数据,利用生成对抗网络获取对抗网络训练模型;根据对抗网络训练模型,获取模糊测试用例样本。利用生成对抗网络的机器学习建模方法来生成工业控制协议模糊测试的测试用例。将工业控制通讯协议数据集作为先验样本进行网络学习,利用完成学习后的生成对抗网络对于工业控制协议数据的结构进行学习建模,根据对抗网络训练模型获取模糊测试用例样本。通过对抗网络训练模型获取的测试数据既能有效地针对工控协议,又能避免变异策略过于单一,从而提高模糊测试的效率和可靠性。
Description
技术领域
本发明涉及工控协议的模糊测试技术领域,特别是涉及一种模糊测试用例生成方法、系统、计算机设备及存储介质。
背景技术
在当前工业信息化快速发展的大环境下,工控系统由最早专用的计算机实时监控系统发展到日前广泛应用互联网信息技术的综合业务系统,在提高系统集成水平的同时也引入了新的安全问题。当工业控制通信协议实现过程中的安全漏洞受到攻击者的影响时,整个系统的正常工作就会受到影响。而传统的模糊测试作为安全漏洞的主要的分析测试方法之一,却存在着测试用例针对性不够强大、应对变异策略过于单一等问题。
发明内容
基于此,有必要针对在工控协议的模糊测试中存在的测试用例生成有效性的问题,提供一种模糊测试用例生成方法、系统、计算机设备及存储介质。
一种模糊测试用例生成方法,包括获取工业控制通讯协议数据集;根据所述工业控制通讯协议数据集中的数据,利用生成对抗网络获取对抗网络训练模型;根据所述对抗网络训练模型,获取模糊测试用例样本。
上述模糊测试用例生成方法,获取工业控制通讯协议数据集,利用生成对抗网络的机器学习建模方法来生成工业控制协议模糊测试的测试用例。将工业控制通讯协议数据集作为先验样本进行网络学习,利用完成学习后的生成对抗网络对于工业控制协议数据的结构进行学习建模,根据对抗网络训练模型获取模糊测试用例样本。通过对抗网络训练模型获取的测试数据既能有效地针对工控协议,又能够避免变异策略过于单一,从而能够提高模糊测试的效率和可靠性。
在其中一个实施例中,所述获取工业控制通讯协议数据集包括获取工控系统的运行数据;根据所述工控系统的运行数据,获得若干类所述工业控制通讯协议数据集。
在其中一个实施例中,所述根据所述工控系统的运行数据,获得若干类所述工业控制通讯协议数据集包括对所述运行数据中已知工控协议的数据进行分类,以获取不同类型的所述工业控制通讯协议数据集;对所述运行数据中未知工控协议的数据进行聚类,并对聚类后获取的集合中数据数量小于预设阈值的集合进行数据扩增,以获取不同类型的所述工业控制通讯协议数据集。
在其中一个实施例中,在获取工业控制通讯协议数据集后,所述方法还包括随机对所述工业控制通讯协议数据集进行划分,获取训练数据集和验证数据集。
在其中一个实施例中,所述根据所述工业控制通讯协议数据集中的数据,利用生成对抗网络获取对抗网络训练模型包括通过矩阵变化将所述工业控制通讯协议数据集中的数据转化为二维矩阵;将所述二维矩阵作为网络学习的输入,令所述生成对抗网络进行网络学习;使用网络学习后的所述生成对抗网络建立所述对抗网络训练模型。
在其中一个实施例中,所述生成对抗网络包括生成网络和判别网络,所述使用网络学习后的所述生成对抗网络建立所述对抗网络训练模型包括将一组符合高斯正态分布的随机噪声矩阵作为所述生成网络的输入,获取构造数据;使用所述判别网络对所述构造数据与所述工业控制通讯协议数据集中的数据进行比较,获取判别结果;根据所述判别结果,使用所述对抗损失函数对所述生成对抗网络的优化训练过程进行约束直至所述生成对抗网络收敛,获取所述对抗网络训练模型。
在其中一个实施例中,所述根据所述对抗网络训练模型,获取模糊测试用例样本包括将所述对抗网络训练模型的参数加载到所述生成对抗网络中;将一组符合高斯正态分布的随机噪声矩阵作为所述生成对抗网络的输入,通过所述生成对抗网络获取模糊测试用例;通过矩阵逆变换将所述模糊测试用例转换为数据的形式进行保存,获取所述模糊测试用例样本。
一种模糊测试用例生成系统,包括数据获取模块,用于获取工业控制通讯协议数据集;模型生成模块,用于根据所述工业控制通讯协议数据集中的数据,利用生成对抗网络获取对抗网络训练模型;样本生成模块,用于根据所述对抗网络训练模型,获取模糊测试用例样本。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意一项实施例所述的模糊测试用例生成方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项实施例所述的模糊测试用例生成方法的步骤。
附图说明
为了更清楚地说明本说明书实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明其中一实施例的模糊测试用例生成方法的方法流程示意图;
图2为本发明其中一实施例的获取工业控制通讯协议数据集的方法流程示意图;
图3为本发明其中一实施例的对运行数据进行分类获取对抗网络训练模型的方法流程示意图;
图4为本发明其中一实施例的获取对抗网络训练模型的方法流程示意图;
图5为本发明其中一实施例的建立对抗网络训练模型的方法流程示意图;
图6为本发明其中一实施例的获取模糊测试用例样本的方法流程示意图;
图7为本发明其中一实施例的模糊测试用例生成系统的结构框图;
图8为本发明其中一实施例的一种模糊测试用例生成装置或系统S00的框图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的优选实施方式。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反的,提供这些实施方式的目的是为了对本发明的公开内容理解得更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。通常情况下,在实现工业控制通信协议模糊测试时,需要对工业控制通讯协议类型有完整了解,包括需要获知协议报文的定义格式。然而,协议覆盖率低,且获取工业控制通讯协议及其协议构造和会话过程较为困难,因此在面对未知或者未开源的工业控制通讯协议时无法构建出对应协议的解析器。另外,还存在盲目发送测试用例容易造成测试用例数量爆炸等问题。
为了克服在工控协议的模糊测试中存在的测试用例生成有效性的难题,公开了一种模糊测试用例生成方法。图1为本发明其中一实施例的模糊测试用例生成方法的方法流程示意图,在其中一个实施例中,模糊测试用例生成方法包括如下步骤S100至步骤S300。
步骤S100:获取工业控制通讯协议数据集。
获取工控系统在运行时的运行数据,工控系统的运行数据包括工控协议数据。将包含工控系统的运行数据的数据集定义为工业控制通讯协议数据集。
步骤S200:根据工业控制通讯协议数据集中的数据,利用生成对抗网络获取对抗网络训练模型。
令生成对抗网络根据工业控制通讯协议数据集中的数据进行网络学习,学习工控协议数据中的语法规则及其内在的关联,从而生成对抗网络训练模型。
步骤S300:根据对抗网络训练模型,获取模糊测试用例样本。
根据工控系统在实际运行时的运行数据对其语法规则及其内在关联进行学习后获得的对抗网络训练模型,无需了解工业控制通讯协议类型,也可以获取模糊测试用例样本,能够满足模糊测试对于未知或者未开源的工业控制通讯协议时,在格式上具有一致性、在内容上具有差异性的要求。利用本公开提供的模糊测试用例生成方法能够有效地生成用于进行模糊测试的样本,同时还可以保证生成的样本都为满足模糊测试要求的有效数据,从而避免了大量无效数据造成的测试用例造成数据爆炸的问题。
本本公开提供的模糊测试用例生成方法利用生成对抗网络学习工业控制通讯协议数据集中的语法规则及其内在的关联模型,有效地提高了工控协议模糊测试的协议覆盖率,同时保证了生成的模糊测试用例都符合协议标准。
图2为本发明其中一实施例的获取工业控制通讯协议数据集的方法流程示意图,在其中一个实施例中,获取工业控制通讯协议数据集包括如下步骤S110至步骤S120。
步骤S110:获取工控系统的运行数据。
在本公开的一些实施例中,在实际运行的工控系统中,可以使用Wireshark(网络抓包工具)进行数据抓包,以捕获工控环境中的通讯数据。Wireshark是一款开源网络协议分析器,可以实时检测网络通讯数据,也可以检测其抓取的网络通讯数据快照文件。Wireshark可以查看网络通讯数据包中每一层的详细内容。在一些其他的实施例中,也可以通过查看历史数据等其他的数据获取方式来获取工控系统的实际运行数据。
在其中一个实施例中,当使用Wireshark(网络抓包工具)进行数据抓包获得的数据为以十六进制格式表示的数据时,可以对数据进行数据格式转换。将十六进制格式的数据转化为十进制格式的纯数字格式的数据。
步骤S120:根据工控系统的运行数据,获得若干类工业控制通讯协议数据集。
根据获取的工控系统的实际运行数据,运行数据中包括通讯数据等不同类型的数据。可以通过对运行数据进行特征提取等数据处理方式来获得不同类型的工业控制通讯协议数据集。
图3为本发明其中一实施例的对运行数据进行分类获取对抗网络训练模型的方法流程示意图,在其中一个实施例中,根据工控系统的运行数据,获得若干类工业控制通讯协议数据集包括如下步骤S121至步骤S123:
步骤S121:对运行数据中已知工控协议的数据进行分类,以获取不同类型的工业控制通讯协议数据集。
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)协议是TCP/IP协议的核心,TCP和UDP协议属于传输层协议。基于TCP/UDP端口的识别技术可以对步骤S110中获取的运行数据进行识别,将运行数据中已知工控协议的数据分离出来。在对已知工控协议的数据进行分类时,可以根据数据的工控协议等数据特征进行分类。
步骤S123:对运行数据中未知工控协议的数据进行聚类,并对聚类后获取的集合中数据数量小于预设阈值的集合进行数据扩增,以获取不同类型的工业控制通讯协议数据集。
将运行数据中已知工控协议的数据分离出来后,剩余的数据都为未知工控协议的数据。对于未知工控协议的数据,可以使用K-Means方法进行聚类。k均值聚类算法(K-MeansClustering Algorithm)是一种迭代求解的聚类分析算法。将位置工控协议的数据分为K组,随机选取K个对象作为初始的聚类中心。计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心,聚类中心以及分配给它们的对象就代表一个聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件,从而将物理或抽象对象的集合分成由类似的对象组成的多个类。
在使用K-Means方法对未知工控协议的数据进行聚类后,将获得多个由类似的对象组成的数据集合。在本公开的一些实施例中,通过判断任意一数据集合中的数据数量是否小于预设阈值,来判断集合的样本数量是否过少。当某一数据集合中的数据数量小于预设阈值时,使用SMOTE(Synthetic Minority Oversampling Technique)方法对该样本数量过少的集合进行数据扩增,从而保证每一个数据集合中的数据量都均衡,防止影响生成对抗网络对于语法规则以及内在关联的学习效果。
SMOTE方法是指合成少数类过采样技术,是一种基于随机过采样算法的改进方案。SMOTE算法的基本思想是对样本数量过少的集合中的样本进行分析,并根据少数类样本人工合成新的样本添加到原有数据集中来达到数据扩增的目的。
通过对已知工控协议的数据进行分类,对未知工控协议的数据进行聚类后,可以根据工控系统的运行数据获取若干个工业控制通讯协议数据集。不同的工业控制通讯协议数据集具有不同的数据特征。
在其中一个实施例中,在获取工业控制通讯协议数据集后,所述方法还包括随机对所述工业控制通讯协议数据集进行划分,获取训练数据集和验证数据集。生成对抗网络在根据工业控制通讯协议数据集进行网络学习时,通过将训练数据集作为生成对抗网络的输入,输出处理结果。将处理结果与验证数据集进行对照,通过损失函数来评判来判断生成对抗网络的处理结果是否符合标准。当处理结果不符合标准时,就需要对生成对抗网络中的参数进行修正,修正的过程就是改进学习的过程。通过针对工控系统的真实的运行数据进行机器学习,结合对抗学习的训练方式使得生成的测试数据能够有效地针对工控协议,符合工控协议的测试标准。
图4为本发明其中一实施例的获取对抗网络训练模型的方法流程示意图,在其中一个实施例中,根据工业控制通讯协议数据集中的数据,利用生成对抗网络获取对抗网络训练模型包括如下步骤S210至步骤S230。
步骤S210:通过矩阵变化将工业控制通讯协议数据集中的数据转化为二维矩阵。
在将工业控制通讯协议数据集中的数据转换成十进制表达的格式后,通过矩阵变化将工业控制通讯协议数据集中的数据转化为二维矩阵,对各个工业控制通讯协议数据集进行矩阵化形式表达。矩阵变换是线性代数中矩阵的一种运算形式。矩阵里面的每个元素都不是单一的数,而是一个个有序实数对,在几何上分别对应有二维平面上的点,由这样的元素构成的矩阵就是二维矩阵。
步骤S220:将二维矩阵作为网络学习的输入,令生成对抗网络进行网络学习。
将转化获得的二维矩阵作为生成对抗网络的网络学习的输入,令生成对抗网络进行网络学习。生成对抗网络在根据二维矩阵进行网络学习时,生成对抗网络对训练数据集的二维矩阵进行处理,输出处理结果。将处理结果与验证数据集的二维矩阵进行对照,通过损失函数来评判来判断生成对抗网络的处理结果是否符合标准。当处理结果不符合标准时,就需要对生成对抗网络中的参数进行修正,修正的过程就是改进学习的过程。通过针对工控系统的真实的运行数据进行机器学习,结合对抗学习的训练方式使得生成的测试数据能够有效地针对工控协议,符合工控协议的测试标准。
步骤S230:使用网络学习后的生成对抗网络建立对抗网络训练模型。
利用经过机器学习后的生成对抗网络进行建模,获取对抗网络训练模型。利用对抗网络训练模型来生成工业控制协议模糊测试的测试用例。在经过大量先验样本的学习过程后,再对于工业控制协议数据帧的结构进行学习建模,从而使得对抗网络训练模型生成的模糊测试用例样本既能有效地针对工控协议,又能够避免变异策略过于单一。
图5为本发明其中一实施例的建立对抗网络训练模型的方法流程示意图,在其中一个实施例中,生成对抗网络包括生成网络和判别网络,使用网络学习后的生成对抗网络建立对抗网络训练模型包括如下步骤S231至步骤S235。
步骤S231:将一组符合高斯正态分布的随机噪声矩阵作为生成网络的输入,获取构造数据。
生成对抗网络(GAN,Generative Adversarial Networks)是一种深度学习模型。生成对抗网络的网络结构包括生成网络和判别网络两个部分。生成网络和判别网络的互相博弈学习将产生较优的输出。生成网络是一个用于构造数据的网络。生成网络在接收一个随机的噪声后,将根据这个噪声将生成相应的构造数据。在本公开的一些实施例中,使用一种符合高斯分布的随机噪声矩阵作为生成网络的输入,生成网络将输出相应的构造数据。
步骤S233:使用判别网络对构造数据与工业控制通讯协议数据集中的数据进行比较,获取判别结果。
判别网络用于判别输入的数据是不是“真实的”。将构造数据与工业控制通讯协议数据集中的数据通过判别网络进行真伪识别,并输出相应的判别结果。
在其中一个实施例中,生成网络可以采用Resnet 18的网络结构设计,判别网络可以采用生成网络的逆网络结构,通过全连接层和Sigmoid激活函数输出网络判别结果。
步骤S235:根据判别结果,使用对抗损失函数对生成对抗网络的优化训练过程进行约束直至生成对抗网络收敛,获取对抗网络训练模型。
在优化训练的训练过程中,生成网络的目标就是尽量生成真实的构造数据去欺骗判别网络。而判别网络的目标则是尽量把生成网络生成的构造数据与真实的数据集中的数据区分开来。这样,生成网络和判别网络构成了一个动态的“博弈过程”。在最理想的状态下,生成网络可以生成足以“以假乱真”的构造数据,令判别网络难以判定生成网络生成的构造数据究竟是不是真实的。
两个网络部分采用对抗损失函数,通过对抗学习机制进行优化训练。同时,采用对抗损失函数对生成对抗网络的训练过程进行约束。判断生成对抗网络是否收敛,当生成对抗网络收敛时,即可获取对抗网络训练模型并对其进行保存;当生成对抗网络不收敛时,利用神经网络中参数的梯度下降训练方法根据对抗损失优化网络参数,直至生成对抗网络收敛。
设定S(1:n)=(e1,e2,e3,...,ex,...,en)为一个工控协议数据帧,ex∈E表示数据帧中某一段特定含义,S(1:n)∈S*表示当前某类未知工控协议的工控协议数据帧集合。根据生成对抗网络的定义,令G表示生成网络,D表示判别网络。
设定S~Pdata(S*)表示从真实数据集中采样而得的数据帧,Z~PG表示由生成网络G生成而得的数据帧,判别网络D的训练目标就是最大化S~Pdata(S*)与Z~PG的表示,因而生成对抗网络训练的优化目标就可以表示为一种最小-最大问题求解任务,上述任务可以表示为:
其中,对抗损失函数表示为:
图6为本发明其中一实施例的获取模糊测试用例样本的方法流程示意图,在其中一个实施例中,根据对抗网络训练模型,获取模糊测试用例样本包括如下步骤S310至步骤S330。
步骤S310:将对抗网络训练模型的参数加载到生成对抗网络中。
将步骤235训练获得的对抗网络训练模型中的参数加载至生成对抗网络中,将优化训练后得到的参数作为生成对抗网络的网络参数,从而获得优化后的生成对抗网络。优化后的生成对抗网络可以生成较为真实的构造数据,保证生成的构造数据都为满足模糊测试要求的有效数据,从而避免了大量无效数据造成的测试用例造成数据爆炸的问题。
步骤S320:将一组符合高斯正态分布的随机噪声矩阵作为生成对抗网络的输入,通过生成对抗网络获取模糊测试用例。
输入符合高斯正态分布的随机噪声矩阵作为生成对抗网络的输入,生成对抗网络将输出模糊测试用例。
步骤S330:通过矩阵逆变换将模糊测试用例转换为数据的形式进行保存,获取模糊测试用例样本。
对模糊测试用例进行矩阵逆变换处理,已将模糊测试用例转换为数据帧的形式进行保存,从而获得模糊测试用例样本。
本公开提供的模糊测试用例生成方法根据工控系统在实际运行时的运行数据对其语法规则及其内在关联进行学习后获得的对抗网络训练模型,无需了解工业控制通讯协议类型,也可以获取模糊测试用例样本,能够满足模糊测试对于未知或者未开源的工业控制通讯协议时,在格式上具有一致性、在内容上具有差异性的要求。利用本公开提供的模糊测试用例生成方法能够有效地生成用于进行模糊测试的样本,同时还可以保证生成的样本都为满足模糊测试要求的有效数据,从而避免了大量无效数据造成的测试用例造成数据爆炸的问题。
应该理解的是,虽然图1-图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于上述所述的模糊测试用例生成方法的描述,本公开还提供了一种模糊测试用例生成系统。所述系统可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件等并结合必要的实施硬件的装置。基于同一创新构思,本公开实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
基于前述方法实施例的描述,本公开还提供了一种模糊测试用例生成系统。图7为本发明其中一实施例的模糊测试用例生成系统的结构框图,在其中一个实施例中,模糊测试用例生成系统可以包括数据获取模块100、模型生成模块200和样本生成模块300。
数据获取模块100,用于获取工业控制通讯协议数据集。模型生成模块200,用于根据所述工业控制通讯协议数据集中的数据,利用生成对抗网络获取对抗网络训练模型。样本生成模块300,用于根据所述对抗网络训练模型,获取模糊测试用例样本。
关于上述实施例中的系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
可以理解的是,本说明书中上述方法、装置等的各个实施例均采用递进的方式描述,各个实施例之间相同/相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。相关之处参见其他方法实施例的描述说明即可。
图8是根据一示例性实施例示出的一种模糊测试用例生成装置或系统S00的框图。参照图8,模糊测试用例生成装置或系统S00包括处理组件S20,其进一步包括一个或多个处理器,以及由存储器S22所代表的存储器资源,用于存储可由处理组件S20的执行的指令,例如应用程序。存储器S22中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件S20被配置为执行指令,以执行上述方法。
模糊测试用例生成装置或系统S00还可以包括:电源组件S24被配置为执行模糊测试用例生成装置或系统S00的电源管理,有线或无线网络接口S26被配置为将模糊测试用例生成装置或系统S00连接到网络,和输入输出(I/O)接口S28。模糊测试用例生成装置或系统S00可以操作基于存储在存储器S22的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器S22,上述指令可由模糊测试用例生成装置或系统S00的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由模糊测试用例生成装置或系统S00的处理器执行以完成上述方法。
在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以作出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种模糊测试用例生成方法,其特征在于,包括:
获取工控系统的运行数据;
对所述运行数据中已知工控协议的数据进行分类,以获取不同类型的工业控制通讯协议数据集;
对所述运行数据中未知工控协议的数据进行聚类,并对聚类后获取的集合中数据数量小于预设阈值的集合进行数据扩增,以获取不同类型的所述工业控制通讯协议数据集;通过矩阵变化将工业控制通讯协议数据集中的数据转化为二维矩阵,令生成对抗网络根据所述二维矩阵进行网络学习,利用网络学习后的生成对抗网络获取对抗网络训练模型;
根据所述对抗网络训练模型,获取模糊测试用例样本。
2.根据权利要求1所述的模糊测试用例生成方法,其特征在于,在获取工业控制通讯协议数据集后,所述方法还包括:
随机对所述工业控制通讯协议数据集进行划分,获取训练数据集和验证数据集。
3.根据权利要求1所述的模糊测试用例生成方法,其特征在于,所述根据所述工业控制通讯协议数据集中的数据,利用生成对抗网络获取对抗网络训练模型包括:
通过矩阵变化将所述工业控制通讯协议数据集中的数据转化为二维矩阵;
将所述二维矩阵作为网络学习的输入,令所述生成对抗网络进行网络学习;
使用网络学习后的所述生成对抗网络建立所述对抗网络训练模型。
4.根据权利要求3所述的模糊测试用例生成方法,其特征在于,所述生成对抗网络包括生成网络和判别网络,所述使用网络学习后的所述生成对抗网络建立所述对抗网络训练模型包括:
将一组符合高斯正态分布的随机噪声矩阵作为所述生成网络的输入,获取构造数据;
使用所述判别网络对所述构造数据与所述工业控制通讯协议数据集中的数据进行比较,获取判别结果;
根据所述判别结果,使用所述对抗损失函数对所述生成对抗网络的优化训练过程进行约束直至所述生成对抗网络收敛,获取所述对抗网络训练模型。
5.根据权利要求1所述的模糊测试用例生成方法,其特征在于,所述根据所述对抗网络训练模型,获取模糊测试用例样本包括:
将所述对抗网络训练模型的参数加载到所述生成对抗网络中;
将一组符合高斯正态分布的随机噪声矩阵作为所述生成对抗网络的输入,通过所述生成对抗网络获取模糊测试用例;
通过矩阵逆变换将所述模糊测试用例转换为数据的形式进行保存,获取所述模糊测试用例样本。
6.一种模糊测试用例生成系统,其特征在于,包括:
数据获取模块,用于获取工控系统的运行数据;
对所述运行数据中已知工控协议的数据进行分类,以获取不同类型的工业控制通讯协议数据集;
对所述运行数据中未知工控协议的数据进行聚类,并对聚类后获取的集合中数据数量小于预设阈值的集合进行数据扩增,以获取不同类型的所述工业控制通讯协议数据集;
模型生成模块,用于通过矩阵变化将工业控制通讯协议数据集中的数据转化为二维矩阵,令生成对抗网络根据所述二维矩阵进行网络学习,利用网络学习后的生成对抗网络获取对抗网络训练模型;
样本生成模块,用于根据所述对抗网络训练模型,获取模糊测试用例样本。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任意一项所述的模糊测试用例生成方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任意一项所述的模糊测试用例生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110838678.7A CN113468071B (zh) | 2021-07-23 | 2021-07-23 | 模糊测试用例生成方法、系统、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110838678.7A CN113468071B (zh) | 2021-07-23 | 2021-07-23 | 模糊测试用例生成方法、系统、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113468071A CN113468071A (zh) | 2021-10-01 |
CN113468071B true CN113468071B (zh) | 2023-10-03 |
Family
ID=77882255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110838678.7A Active CN113468071B (zh) | 2021-07-23 | 2021-07-23 | 模糊测试用例生成方法、系统、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468071B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064499B (zh) * | 2021-11-23 | 2023-04-07 | 电子科技大学 | 一种黑盒模糊测试方法、系统、电子设备及存储介质 |
CN114490316B (zh) * | 2021-12-16 | 2023-04-18 | 四川大学 | 一种基于损失函数的单元测试用例自动生成方法 |
CN115292155B (zh) * | 2022-06-22 | 2024-01-16 | 广州汽车集团股份有限公司 | 测试用例生成方法、装置以及车辆 |
CN114936168B (zh) * | 2022-07-21 | 2023-04-18 | 南京争锋信息科技有限公司 | 一种真实用户智能感知系统中的测试用例自动生成方法 |
CN115455423B (zh) * | 2022-08-22 | 2023-07-07 | 国网浙江省电力有限公司电力科学研究院 | 模糊测试用例生成方法及装置 |
CN116016297A (zh) * | 2022-12-27 | 2023-04-25 | 中国联合网络通信集团有限公司 | 一种基于人工智能的通讯监测系统和方法 |
CN117435506B (zh) * | 2023-12-15 | 2024-04-16 | 中兴通讯股份有限公司 | 模糊测试方法、电子设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110417755A (zh) * | 2019-07-11 | 2019-11-05 | 华东师范大学 | 基于生成对抗网络的工控协议漏洞挖掘方法 |
CN110506278A (zh) * | 2017-04-19 | 2019-11-26 | 西门子医疗有限公司 | 隐空间中的目标检测 |
CN112073242A (zh) * | 2020-09-08 | 2020-12-11 | 中国人民解放军陆军工程大学 | 一种网络协议模糊测试用例的生成及应用方法 |
-
2021
- 2021-07-23 CN CN202110838678.7A patent/CN113468071B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110506278A (zh) * | 2017-04-19 | 2019-11-26 | 西门子医疗有限公司 | 隐空间中的目标检测 |
CN110417755A (zh) * | 2019-07-11 | 2019-11-05 | 华东师范大学 | 基于生成对抗网络的工控协议漏洞挖掘方法 |
CN112073242A (zh) * | 2020-09-08 | 2020-12-11 | 中国人民解放军陆军工程大学 | 一种网络协议模糊测试用例的生成及应用方法 |
Non-Patent Citations (1)
Title |
---|
吴波等.工业监控组态软件模糊测试方法研究.《软件可靠性与评测技术》.2016,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN113468071A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113468071B (zh) | 模糊测试用例生成方法、系统、计算机设备及存储介质 | |
CN112003870B (zh) | 一种基于深度学习的网络加密流量识别方法及装置 | |
CN110896381B (zh) | 一种基于深度神经网络的流量分类方法、系统及电子设备 | |
CN109889538B (zh) | 用户异常行为检测方法及系统 | |
CN113206860B (zh) | 一种基于机器学习和特征选择的DRDoS攻击检测方法 | |
CN109818961B (zh) | 一种网络入侵检测方法、装置和设备 | |
Fadlil et al. | Review of detection DDOS attack detection using naive bayes classifier for network forensics | |
CN111709022B (zh) | 基于ap聚类与因果关系的混合报警关联方法 | |
CN111953665B (zh) | 服务器攻击访问识别方法及系统、计算机设备、存储介质 | |
CN111935185B (zh) | 基于云计算构建大规模诱捕场景的方法及系统 | |
CN117113262B (zh) | 网络流量识别方法及其系统 | |
CN113705604A (zh) | 僵尸网络流量分类检测方法、装置、电子设备及存储介质 | |
Muhati et al. | Asynchronous advantage actor-critic (a3c) learning for cognitive network security | |
CN112822223A (zh) | 一种dns隐蔽隧道事件自动化检测方法、装置和电子设备 | |
CN114205816B (zh) | 一种电力移动物联网信息安全架构及其使用方法 | |
CN115098864A (zh) | 一种图像识别模型的评测方法、装置、介质及电子设备 | |
Klots et al. | Research of the Neural Network Module for Detecting Anomalies in Network Traffic. | |
Erokhin et al. | The Dataset Features Selection for Detecting and Classifying Network Attacks | |
CN116170237B (zh) | 一种融合gnn和acgan的入侵检测方法 | |
Lai et al. | Detecting network intrusions using signal processing with query-based sampling filter | |
Lin et al. | Behaviour classification of cyber attacks using convolutional neural networks | |
Lu et al. | Generative adversarial networks based industrial protocol construction in the fog computing | |
de Souza et al. | Multiclass decomposition and Artificial Neural Networks for intrusion detection and identification in Internet of Things environments | |
CN118101330A (zh) | 一种can车载网络入侵检测方法、装置、系统及存储介质 | |
CN117938497A (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 |