CN112104525B - 基于序列生成对抗网络的dnp3协议模糊测试方法 - Google Patents

基于序列生成对抗网络的dnp3协议模糊测试方法 Download PDF

Info

Publication number
CN112104525B
CN112104525B CN202010982882.1A CN202010982882A CN112104525B CN 112104525 B CN112104525 B CN 112104525B CN 202010982882 A CN202010982882 A CN 202010982882A CN 112104525 B CN112104525 B CN 112104525B
Authority
CN
China
Prior art keywords
test case
dnp3
dnp3 protocol
test
abnormal
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
CN202010982882.1A
Other languages
English (en)
Other versions
CN112104525A (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.)
Xian University of Science and Technology
Original Assignee
Xian University of Science and Technology
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 Xian University of Science and Technology filed Critical Xian University of Science and Technology
Priority to CN202010982882.1A priority Critical patent/CN112104525B/zh
Publication of CN112104525A publication Critical patent/CN112104525A/zh
Application granted granted Critical
Publication of CN112104525B publication Critical patent/CN112104525B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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
    • 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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

本发明公开了一种基于序列生成对抗网络的DNP3协议模糊测试方法,包括步骤:一、构建DNP3协议样本数据库;二、DNP3协议样本数据预处理;三、预处理后的DNP3协议样本数据变异;四、生成初级测试用例;五、测试用例相似度对比去冗余;六、种子测试用例变异;七、DNP3协议模糊测试;八、漏洞验证;九、异常测试用例调试及监控。本发明利用序列生成对抗网络生成高通过率的测试用例;通过以用例相似度为指标的筛选算法,减少测试用例冗余;引入随机变异策略进行测试用例变异,提高测试用例多样性和漏洞发现概率;通过分析漏洞出现时程序的栈帧信息,找到并记录造成漏洞的原因,从而降低工控系统被攻击的概率、提高工控系统安全性。

Description

基于序列生成对抗网络的DNP3协议模糊测试方法
技术领域
本发明属于DNP3协议测试及漏洞挖掘技术领域,具体涉及一种基于序列生成对抗网络的DNP3协议模糊测试方法。
背景技术
工控系统是由计算机设备与工业过程控制部件组成的自动控制系统,广泛应用于电力、水处理、石油与天然气、化工、交通运输、制造业等安全关键领域。通信协议作为工控系统中重要的组成部分,极易受到攻击。因此,如何高效挖掘协议潜在的漏洞,对于提升工控系统安全性至关重要。
工控系统的协议种类很多,其中DNP3协议主要用于电力、水利等国家基础设施的工控系统中,它包含了应用层、传输层和数据链路层。尽管DNP3协议中加入了错误检测、远程密钥更新、安全统计等功能,可以解决因输入非预期数据、授权失败、响应超时等引发的漏洞,但仍然会存在部分潜在的漏洞,而且随着协议功能的扩展更新会带来更多的漏洞。为了降低工控系统被攻击的概率、确保系统安全稳定的运行,可以利用模糊测试等漏洞挖掘方法挖掘出DNP3协议中潜在的漏洞。现有的通用漏洞挖掘方法普遍存在用例通过率及覆盖率不高,测试用例冗余等问题。因此,需要根据DNP3通信协议的特点发明出对应的漏洞挖掘方法,从而高效挖掘出DNP3协议中潜在的漏洞,这对保障工控系统安全具有重要的意义。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于序列生成对抗网络的DNP3协议模糊测试方法,用于DNP3协议漏洞挖掘。利用序列生成对抗网络生成高通过率的测试用例;通过以用例相似度为指标的筛选算法,减少测试用例冗余;引入随机变异策略进行测试用例变异,提高测试用例多样性和漏洞发现概率;通过分析漏洞出现时程序的栈帧信息找到并记录造成漏洞的原因,从而降低工控系统被攻击的概率、提高工控系统安全性。
为解决上述技术问题,本发明采用的技术方案是:基于序列生成对抗网络的DNP3协议模糊测试方法,其特征在于,该方法包括以下步骤:
步骤一、构建DNP3协议样本数据库:利用公开的DNP3协议样本数据集和人工采集的DNP3工控系统中的多个随机DNP3协议样本数据构建DNP3协议样本数据库;
步骤二、DNP3协议样本数据预处理:根据DNP3协议格式对DNP3协议样本数据库中DNP3协议样本数据提取并按字段分离DNP3协议样本数据,再通过进制转换的构造方法对DNP3协议样本数据进行预处理;
步骤三、预处理后的DNP3协议样本数据变异:使用字符填充、数值位翻转或数值取反的方法对预处理后的DNP3协议样本数据的变异;
步骤四、生成初级测试用例,过程如下:
步骤401、将预处理且变异后的DNP3协议样本数据作为训练数据,输入至序列生成对抗网络SeqGAN中的LSTM生成器,学习到训练数据的一维序列特征;
步骤402、LSTM生成器生成的数据输入至嵌入层,得到数据的二维阵列,再将数据的二维阵列输入到CNN判别器,获取数据的真伪值;其中,所述LSTM生成器为步骤401训练的LSTM生成器;
步骤403、选取交叉熵作为CNN判别器的损失函数,将数据的真伪值带入至损失函数,计算数据损失目标函数,将数据损失目标函数计算的值送入Adam优化器,对步骤401中的序列生成对抗网络SeqGAN中的LSTM生成器的权重参数集合和步骤402中的CNN判别器的权重参数集合交替进行更新,进而得到优化后的LSTM生成器和CNN判别器;
步骤404、调取新的训练数据,循环步骤401至步骤403,直至数据损失目标函数计算的值小于数据损失目标函数计算的值的阈值,此时,得到LSTM生成器各个权重参数训练结果,并确定最终训练完成的LSTM生成器;
步骤405、利用训练完成的LSTM生成器自动生成多个初级测试用例;
步骤五、测试用例相似度对比去冗余:
根据公式
Figure GDA0003104931810000031
计算第i个初级测试用例stri和第j个初级测试用例strj之间的相似度si,j,其中,edit()为编辑函数,edit(stri,strj)为将第i个初级测试用例stri变换为第j个初级测试用例strj所用的步数,len()为字段长度函数,max()为最大值函数,i和j均为初级测试用例编号且i≠j;
当si,j≥Δ时,说明第i个初级测试用例stri和第j个初级测试用例strj相似,随机去除第i个初级测试用例stri和第j个初级测试用例strj中的任意一个初级测试用例,将保留的初级测试用例视为种子测试用例,并存储在种子测试用例集中,其中,Δ为相似度阈值;
当si,j<Δ时,说明第i个初级测试用例stri和第j个初级测试用例strj不相似,将第i个初级测试用例stri和第j个初级测试用例strj均视为种子测试用例,并存储在种子测试用例集中;
步骤六、种子测试用例变异:对种子测试用例集内的种子测试用例进行变异,选取种子测试用例中随机数量长度的字段作为变异字段,使用边界值变异、字符填充、数值位翻转或数值取反方式对变异字段进行变异,完成种子测试用例的随机变异,将种子测试用例集内的种子测试用例和变异后的种子测试用例集中存储,得到测试用例集;
步骤七、DNP3协议模糊测试:将测试用例集中的测试用例输入至DNP3工控系统中进行DNP3协议模糊测试,若测试用例未引起DNP3协议异常,则该测试用例为正常测试用例,进而该测试用例未测试出DNP3协议漏洞;
若测试用例引起DNP3协议异常,则该测试用例为预异常测试用例,进而该测试用例测试出DNP3协议存在漏洞风险,执行步骤八;
步骤八、漏洞验证:将步骤七中的预异常测试用例再次输入至DNP3工控系统中进行DNP3协议模糊测试,若该预异常测试用例未引起DNP3协议异常,将该预异常测试用例更改为正常测试用例;
若该预异常测试用例再次引起DNP3协议异常,该预异常测试用例确定为异常测试用例,并记录该异常测试用例及其引起的漏洞;
步骤九、异常测试用例的调试及监控:利用调试工具检测异常测试用例,并追踪异常测试用例在DNP3工控系统中的运行信息和栈帧信息,分析并记录漏洞触发原因;
异常测试用例调试过程中同时通过监控包方式、进程监控方式和日志记录方式对异常测试用例和DNP3工控系统进行监控。
上述的基于序列生成对抗网络的DNP3协议模糊测试方法,其特征在于:步骤一中,所述随机DNP3协议样本数据通过抓包工具随机抓取,所述抓包工具为Wireshark抓包工具。
上述的基于序列生成对抗网络的DNP3协议模糊测试方法,其特征在于:步骤三中,预处理后的DNP3协议样本数据通过边界值变异算法、字符填充、数值位翻转、数值取反或随机取值算法进行变异。上述的基于序列生成对抗网络的DNP3协议模糊测试方法,其特征在于:步骤九中,所述调试工具为Gdb调试工具、Ping调试工具或WinDbg调试工具。
上述的基于序列生成对抗网络的DNP3协议模糊测试方法,其特征在于:步骤402中,所述嵌入层为Embedding嵌入层。
本发明与现有技术相比具有以下优点:
1、本发明通过进制转换对DNP3协议样本数据进行预处理,获取满足一定长度要求的DNP3协议样本数据,供序列生成对抗网络使用,再对预处理后的DNP3协议样本数据进行一次字符填充、数值位翻转或数值取反的变异,获取多样化DNP3协议样本数据,扩展DNP3协议样本数据库。
2、本发明通过对抗学习的方式学习DNP3协议样本数据对应的特征序列,提高测试用例质量,便于推广使用。
3、本发明通过以用例相似度为指标的筛选算法,减少测试用例冗余;引入随机变异策略进行测试用例变异,提高测试用例多样性和漏洞发现概率;
4、本发明方法步骤简单,通过漏洞验证避免DNP3工控系统不稳定造成种子测试用例误判,将未通过DNP3协议的种子测试用例视为预异常测试用例;针对预异常测试用例进行二次DNP3协议模糊测试,判断预异常测试用例的真伪,准确可靠;通过调试工具检测异常测试用例,并追踪异常测试用例在DNP3工控系统中的运行信息和记录的栈帧信息,通过分析漏洞出现时程序的栈帧信息,找到并记录造成漏洞的原因,从而降低工控系统被攻击的概率、提高工控系统安全性,便于推广使用。
综上所述,本发明利用序列生成对抗网络生成高通过率的测试用例;通过以用例相似度为指标的筛选算法,减少测试用例冗余;引入随机变异策略进行测试用例变异,提高测试用例多样性和漏洞发现概率;通过分析漏洞出现时程序的栈帧信息,找到并记录造成漏洞的原因,从而降低工控系统被攻击的概率、提高工控系统安全性,便于推广使用。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明方法的流程框图。
具体实施方式
如图1所示,本发明的基于序列生成对抗网络的DNP3协议模糊测试方法,包括以下步骤:
步骤一、构建DNP3协议样本数据库:利用公开的DNP3协议样本数据集和人工采集的DNP3工控系统中的多个随机DNP3协议样本数据构建DNP3协议样本数据库;
本实施例中,步骤一中,所述随机DNP3协议样本数据通过抓包工具随机抓取,所述抓包工具为Wireshark抓包工具。
步骤二、DNP3协议样本数据预处理:根据DNP3协议格式对DNP3协议样本数据库中DNP3协议样本数据提取并按字段分离DNP3协议样本数据,再通过进制转换的构造方法对DNP3协议样本数据进行预处理;
步骤三、预处理后的DNP3协议样本数据变异:使用字符填充、数值位翻转或数值取反的方法对预处理后的DNP3协议样本数据的变异;
本实施例中,步骤三中,预处理后的DNP3协议样本数据通过边界值变异算法、字符填充、数值位翻转、数值取反或随机取值算法进行变异。
需要说明的是,通过进制转换对DNP3协议样本数据进行预处理,获取满足一定长度要求的DNP3协议样本数据,供序列生成对抗网络使用,再对预处理后的DNP3协议样本数据进行一次边界值变异、字符填充、数值位翻转或数值取反的变异,获取多样化DNP3协议样本数据,扩展DNP3协议样本数据库。
实际实施时,由于DNP3协议样本数据库来自抓包数据,首先需要对文件进行解析,并对提取到的DNP3协议样本数据进行预处理,期间需要将整串的协议数据分割成数个子串,然后通过进制转换、变异等操作。同时由于序列生成对抗网络的输入有定长要求,需要对长度不足的数据进行补数,而子串的分割最大长度为2位16进制数,所以填充的数字选择为256,最终生成器的LSTM设置Embedding层和Hidden层维度为32、序列长度设置到26、起始字符从0开始、分割后的子串大小设置为257,通用参数的选取根据设置的参数对应提取。
步骤四、生成测试用例,过程如下:
步骤401、将预处理且变异后的DNP3协议样本数据作为训练数据,输入至序列生成对抗网络SeqGAN中的LSTM生成器,学习到训练数据的一维序列特征;
步骤402、LSTM生成器生成的数据输入至嵌入层,得到数据的二维阵列,再将数据的二维阵列输入到CNN判别器,获取数据的真伪值;其中,所述LSTM生成器为步骤401训练的LSTM生成器;
步骤403、选取交叉熵作为CNN判别器的损失函数,将数据的真伪值带入至损失函数,计算数据损失目标函数,将数据损失目标函数计算的值送入Adam优化器,对步骤401中的序列生成对抗网络SeqGAN中的LSTM生成器的权重参数集合和步骤402中的CNN判别器的权重参数集合交替进行更新,进而得到优化后的LSTM生成器和CNN判别器;
步骤404、调取新的训练数据,循环步骤401至步骤403,直至数据损失目标函数计算的值小于数据损失目标函数计算的值的阈值,此时,得到LSTM生成器各个权重参数训练结果,并确定最终训练完成的LSTM生成器;
步骤405、利用训练完成的LSTM生成器自动生成多个初级测试用例;
实际实施时,由于判别器使用的CNN提取特征,需要对生成器生成的一维序列数据经过Embedding层映射到二维,最后通过12层卷积、池化以及全连接层输出分类结果,设置Dropout层减少过拟合,训练完成后,可以使用生成器输出长度为26的DNP3协议数据。
步骤五、测试用例相似度对比去冗余:
根据公式
Figure GDA0003104931810000071
计算第i个初级测试用例stri和第j个初级测试用例strj之间的相似度si,j,其中,edit()为编辑函数,edit(stri,strj)为将第i个初级测试用例stri变换为第j个初级测试用例strj所用的步数,len()为字段长度函数,max()为最大值函数,i和j均为初级测试用例编号且i≠j;
当si,j≥Δ时,说明第i个初级测试用例stri和第j个初级测试用例strj相似,随机去除第i个初级测试用例stri和第j个初级测试用例strj中的任意一个初级测试用例,将保留的初级测试用例视为种子测试用例,并存储在种子测试用例集中,其中,Δ为相似度阈值;
当si,j<Δ时,说明第i个初级测试用例stri和第j个初级测试用例strj不相似,将第i个初级测试用例stri和第j个初级测试用例strj均视为种子测试用例,并存储在种子测试用例集中;
需要说明的是,通过对抗学习的方式学习DNP3协议样本数据对应的特征序列,提高测试用例质量;通过以用例相似度为指标的筛选算法,减少测试用例冗余;引入随机变异策略进行测试用例变异,提高测试用例多样性和漏洞发现概率;通过分析漏洞出现时程序的栈帧信息,找到并记录造成漏洞的原因,从而降低工控系统被攻击的概率、提高工控系统安全性。
实际实施时,由于协议数据分层解析的方式和序列特征,为增强测试用例的执行覆盖率,在筛选时要考虑到不同长度对执行深度的影响,通过编辑距离可以筛选出不同长度的数据,首先,删除生成的DNP3数据中值为256的字段,然后计算第i个测试用例stri和第j个测试用例strj之间的相似度;接着建立一个用例队列,用于存储满足相似度阈值的用例,为保证队列操作时的原子性,加入锁机制完成对队列的同步操作,避免脏数据的出现。
步骤六、种子测试用例变异:对种子测试用例集内的种子测试用例进行变异,选取种子测试用例中随机数量长度的字段作为变异字段,使用边界值变异、字符填充、数值位翻转或数值取反方式对变异字段进行变异,完成种子测试用例的随机变异,将种子测试用例集内的种子测试用例和变异后的种子测试用例集中存储,得到测试用例集;
实际实施时,首先根据设置的变异率,计算出变异字段个数的变化范围及变异方法的使用次数,在此范围内选取随机个数的字段作为变异点;然后使用随机的变异方法完成变异点的变异;同时为保证生成的数据可以经过头部校验,提升数据的到达率,可变异字段会跳过DNP3数据链路层的头部校验。
步骤七、DNP3协议模糊测试:将测试用例集中的测试用例输入至DNP3工控系统中进行DNP3协议模糊测试,若测试用例未引起DNP3协议异常,则该测试用例为正常测试用例,进而该测试用例未测试出DNP3协议漏洞;
若测试用例引起DNP3协议异常,则该测试用例为预异常测试用例,进而该测试用例测试出DNP3协议存在漏洞风险,执行步骤八;
步骤八、漏洞验证:将步骤七中的预异常测试用例再次输入至DNP3工控系统中进行DNP3协议模糊测试,若该预异常测试用例未引起DNP3协议异常,将该预异常测试用例更改为正常测试用例;
若该预异常测试用例再次引起DNP3协议异常,该预异常测试用例确定为异常测试用例,并记录该异常测试用例及其引起的漏洞;
步骤九、异常测试用例的调试及监控:利用调试工具检测异常测试用例,并追踪异常测试用例在DNP3工控系统中的运行信息和栈帧信息,分析并记录漏洞触发原因;
异常测试用例调试过程中同时通过监控包方式、进程监控方式和日志记录方式对异常测试用例和DNP3工控系统进行监控。
本实施例中,步骤九中,所述调试工具为Gdb调试工具、Ping调试工具或WinDbg调试工具。
本发明使用时,方法步骤简单,通过漏洞验证避免DNP3工控系统不稳定造成种子测试用例误判,将未通过DNP3协议的种子测试用例视为预异常测试用例;针对预异常测试用例进行二次DNP3协议模糊测试,判断预异常测试用例的真伪,准确可靠;通过调试工具检测异常测试用例,并追踪异常测试用例在DNP3工控系统中的运行信息和记录的栈帧信息,通过分析漏洞出现时程序的栈帧信息,找到并记录造成漏洞的原因,从而降低工控系统被攻击的概率、提高工控系统安全性。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。

Claims (5)

1.基于序列生成对抗网络的DNP3协议模糊测试方法,其特征在于,该方法包括以下步骤:
步骤一、构建DNP3协议样本数据库:利用公开的DNP3协议样本数据集和人工采集的DNP3工控系统中的多个随机DNP3协议样本数据构建DNP3协议样本数据库;
步骤二、DNP3协议样本数据预处理:根据DNP3协议格式对DNP3协议样本数据库中DNP3协议样本数据进行提取,并按字段分离DNP3协议样本数据,再通过进制转换的构造方法对DNP3协议样本数据进行预处理;
步骤三、预处理后的DNP3协议样本数据变异:使用字符填充、数值位翻转或数值取反的方法对预处理后的DNP3协议样本数据进行变异;
步骤四、生成初级测试用例,过程如下:
步骤401、将预处理且变异后的DNP3协议样本数据作为训练数据,输入至序列生成对抗网络SeqGAN中的LSTM生成器,学习训练数据的一维序列特征;
步骤402、LSTM生成器生成的数据输入至嵌入层,得到数据的二维阵列,再将数据的二维阵列输入到CNN判别器,获取数据的真伪值;其中,所述LSTM生成器为步骤401训练的LSTM生成器;
步骤403、选取交叉熵作为CNN判别器的损失函数,将数据的真伪值带入至损失函数,计算数据损失目标函数,将数据损失目标函数计算的值送入Adam优化器,对步骤401中的序列生成对抗网络SeqGAN中的LSTM生成器的权重参数集合和步骤402中的CNN判别器的权重参数集合交替进行更新,进而得到优化后的LSTM生成器和CNN判别器;
步骤404、调取新的训练数据,循环步骤401至步骤403,直至数据损失目标函数计算的值小于数据损失目标函数计算的值的阈值,此时,得到LSTM生成器各个权重参数训练结果,并确定最终训练完成的LSTM生成器;
步骤405、利用训练完成的LSTM生成器自动生成多个初级测试用例;
步骤五、测试用例相似度对比去冗余:
根据公式
Figure FDA0003104931800000021
计算第i个初级测试用例stri和第j个初级测试用例strj之间的相似度si,j,其中,edit()为编辑函数,edit(stri,strj)为将第i个初级测试用例stri变换为第j个初级测试用例strj所用的步数,len()为字段长度函数,max()为最大值函数,i和j均为初级测试用例编号且i≠j;
当si,j≥Δ时,说明第i个初级测试用例stri和第j个初级测试用例strj相似,随机去除第i个初级测试用例stri和第j个初级测试用例strj中的任意一个初级测试用例,将保留的初级测试用例视为种子测试用例,并存储在种子测试用例集中,其中,Δ为相似度阈值;
当si,j<Δ时,说明第i个初级测试用例stri和第j个初级测试用例strj不相似,将第i个初级测试用例stri和第j个初级测试用例strj均视为种子测试用例,并存储在种子测试用例集中;
步骤六、种子测试用例变异:对种子测试用例集内的种子测试用例进行变异,选取种子测试用例中随机数量长度的字段作为变异字段,使用边界值变异、字符填充、数值位翻转或数值取反方式对变异字段进行变异,完成种子测试用例的随机变异,将种子测试用例集内的种子测试用例和变异后的种子测试用例集中存储,得到测试用例集;
步骤七、DNP3协议模糊测试:将测试用例集中的测试用例输入至DNP3工控系统中进行DNP3协议模糊测试,若测试用例未引起DNP3协议异常,则该测试用例为正常测试用例,进而该测试用例未测试出DNP3协议漏洞;
若测试用例引起DNP3协议异常,则该测试用例为预异常测试用例,进而该测试用例测试出DNP3协议存在漏洞风险,执行步骤八;
步骤八、漏洞验证:将步骤七中的预异常测试用例再次输入至DNP3工控系统中进行DNP3协议模糊测试,若该预异常测试用例未引起DNP3协议异常,将该预异常测试用例更改为正常测试用例;
若该预异常测试用例再次引起DNP3协议异常,该预异常测试用例确定为异常测试用例,并记录该异常测试用例及其引起的漏洞;
步骤九、异常测试用例的调试及监控:利用调试工具检测异常测试用例,并追踪异常测试用例在DNP3工控系统中的运行信息和栈帧信息,分析并记录漏洞触发原因;
异常测试用例调试过程中同时通过监控包方式、进程监控方式和日志记录方式对异常测试用例和DNP3工控系统进行监控。
2.按照权利要求1所述的基于序列生成对抗网络的DNP3协议模糊测试方法,其特征在于:步骤一中,所述随机DNP3协议样本数据通过抓包工具在DNP3工控系统中随机抓取,所述抓包工具为Wireshark抓包工具。
3.按照权利要求1所述的基于序列生成对抗网络的DNP3协议模糊测试方法,其特征在于:步骤三中,预处理后的DNP3协议样本数据还通过边界值变异算法或随机取值算法进行变异。
4.按照权利要求1所述的基于序列生成对抗网络的DNP3协议模糊测试方法,其特征在于:步骤九中,所述调试工具为Gdb调试工具、Ping调试工具或WinDbg调试工具。
5.按照权利要求1所述的基于序列生成对抗网络的DNP3协议模糊测试方法,其特征在于:步骤402中,所述嵌入层为Embedding嵌入层。
CN202010982882.1A 2020-09-18 2020-09-18 基于序列生成对抗网络的dnp3协议模糊测试方法 Active CN112104525B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010982882.1A CN112104525B (zh) 2020-09-18 2020-09-18 基于序列生成对抗网络的dnp3协议模糊测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010982882.1A CN112104525B (zh) 2020-09-18 2020-09-18 基于序列生成对抗网络的dnp3协议模糊测试方法

Publications (2)

Publication Number Publication Date
CN112104525A CN112104525A (zh) 2020-12-18
CN112104525B true CN112104525B (zh) 2021-07-30

Family

ID=73759929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010982882.1A Active CN112104525B (zh) 2020-09-18 2020-09-18 基于序列生成对抗网络的dnp3协议模糊测试方法

Country Status (1)

Country Link
CN (1) CN112104525B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632557B (zh) * 2020-12-22 2024-10-11 厦门大学 基于模糊测试的内核漏洞挖掘方法、介质、设备及装置
CN113157565B (zh) * 2021-03-23 2023-02-07 西北大学 一种基于种子用例突变的反馈式js引擎模糊测试方法及装置
CN112948277B (zh) * 2021-04-30 2024-06-14 上海大学 一种基于耦合自编码器的模糊测试用例生成系统和方法
CN113392402B (zh) * 2021-05-24 2022-08-05 国网湖北省电力有限公司电力科学研究院 一种基于模糊测试的电力物联网协议漏洞检测系统及方法
CN115543763A (zh) * 2021-06-29 2022-12-30 中国电子技术标准化研究院 基于生成对抗网络的测试用例生成方法及装置
CN114064471A (zh) * 2021-11-11 2022-02-18 中国民用航空总局第二研究所 一种基于生成对抗网络的Ethernet/IP协议模糊测试方法
CN114117450B (zh) * 2021-12-01 2024-06-18 湖南大学 一种用于可信计算环境模糊测试的种子生成方法
CN116094972B (zh) * 2023-01-18 2024-05-07 重庆邮电大学 基于QRNN神经网络的Modbus TCP协议模糊测试方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726669A (zh) * 2018-12-26 2019-05-07 浙江捷尚视觉科技股份有限公司 基于对抗网络的不同光照条件下行人再识别数据生成方法
CN109862045A (zh) * 2019-04-01 2019-06-07 中科天御(苏州)科技有限公司 一种基于sdn的工业控制系统动态防御方法及装置
CN110516539A (zh) * 2019-07-17 2019-11-29 苏州中科天启遥感科技有限公司 基于对抗网络的遥感影像建筑物提取方法、系统、存储介质及设备
CN210072648U (zh) * 2019-08-17 2020-02-14 徐江 一种基于对抗网络的指纹特征提取装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11314854B2 (en) * 2011-12-30 2022-04-26 Bedrock Automation Platforms Inc. Image capture devices for a secure industrial control system
KR101689795B1 (ko) * 2015-10-28 2016-12-26 아주대학교산학협력단 통신 프로토콜 소프트웨어의 취약성 검출 방법 및 시스템
US11165802B2 (en) * 2017-12-05 2021-11-02 Schweitzer Engineering Laboratories, Inc. Network security assessment using a network traffic parameter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726669A (zh) * 2018-12-26 2019-05-07 浙江捷尚视觉科技股份有限公司 基于对抗网络的不同光照条件下行人再识别数据生成方法
CN109862045A (zh) * 2019-04-01 2019-06-07 中科天御(苏州)科技有限公司 一种基于sdn的工业控制系统动态防御方法及装置
CN110516539A (zh) * 2019-07-17 2019-11-29 苏州中科天启遥感科技有限公司 基于对抗网络的遥感影像建筑物提取方法、系统、存储介质及设备
CN210072648U (zh) * 2019-08-17 2020-02-14 徐江 一种基于对抗网络的指纹特征提取装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
工业控制系统脆弱性分析及漏洞挖掘技术研究综述;赖英旭等;《北京工业大学学报》;20200630;第46卷(第6期);第571-582页 *

Also Published As

Publication number Publication date
CN112104525A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
CN112104525B (zh) 基于序列生成对抗网络的dnp3协议模糊测试方法
US11777957B2 (en) Method for detecting malicious attacks based on deep learning in traffic cyber physical system
CN110719275B (zh) 一种基于报文特征的电力终端漏洞攻击检测方法
CN111901340B (zh) 一种面向能源互联网的入侵检测系统及其方法
Andresini et al. Exploiting the auto-encoder residual error for intrusion detection
CN111600919B (zh) 智能网络应用防护系统模型的构建方法和装置
Jongsuebsuk et al. Network intrusion detection with fuzzy genetic algorithm for unknown attacks
CN105471882A (zh) 一种基于行为特征的网络攻击检测方法及装置
CN108924102B (zh) 高效的工控协议模糊测试方法
CN111598179B (zh) 电力监控系统用户异常行为分析方法、存储介质和设备
CN112055003B (zh) 一种基于字节长度分类的私有协议模糊测试用例生成方法
CN115643035A (zh) 基于多源日志的网络安全态势评估方法
CN114064471A (zh) 一种基于生成对抗网络的Ethernet/IP协议模糊测试方法
CN112738014A (zh) 一种基于卷积时序网络的工控流量异常检测方法及系统
CN118264488B (zh) 一种基于物联网的数据安全管理系统
CN113886225A (zh) 一种面向未知工控协议的模糊测试系统和方法
CN110955651A (zh) 基于深度卷积生成式对抗网络的电机故障数据的增强方法
CN113946832A (zh) 一种基于改进的生成对抗网络框架的漏洞挖掘方法
CN113067798A (zh) Ics入侵检测方法、装置、电子设备和存储介质
CN117220920A (zh) 基于人工智能的防火墙策略管理方法
CN118233135A (zh) 一种基于隔离森林算法的网络流量异常检测方法
Laptiev et al. Algorithm for Recognition of Network Traffic Anomalies Based on Artificial Intelligence
CN117061236A (zh) 一种网络协议的模糊测试方法
CN109766229B (zh) 一种面向综合电子系统的异常检测方法
CN112328465A (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