CN105812371A - 基于神经网络的dnp通信访问控制方法 - Google Patents
基于神经网络的dnp通信访问控制方法 Download PDFInfo
- Publication number
- CN105812371A CN105812371A CN201610153033.9A CN201610153033A CN105812371A CN 105812371 A CN105812371 A CN 105812371A CN 201610153033 A CN201610153033 A CN 201610153033A CN 105812371 A CN105812371 A CN 105812371A
- Authority
- CN
- China
- Prior art keywords
- packet
- sequence
- source side
- function code
- pass
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于神经网络的DNP通信访问控制方法,通过提取DNP3.0协议中的目的地址、源地址、方向位、源方站标志位以及应用层功能码构建特征序列,利用神经网络学习上述特征序列,从而得到访问控制的检测模型;再将捕获的数据包通过预处理得到待检测序列,待检测序列通过检测模型的检测后,判断出该数据包是否允许通过,从而完成DNP3.0通信访问控制。
Description
技术领域
本发明属于工业控制信息安全技术领域,更为具体地讲,涉及一种基于神经网络的DNP3.0通信访问控制方法。
背景技术
DNP3.0(DistributedNetworkProtocolVersion3.0)是一种适用于配电自动化系统的现场智能终端与控制主站之间的通信规约,广泛应用在电力系统中。DNP3.0协议的安全性对电力系统非常重要。
然而,DNP3.0是一种开放协议,它的报文结构和数据格式都是公开的,并且在没有足够的安全措施下,存在安全隐患,攻击者能够利用符合DNP3.0协议规则的数据报文实施欺骗性攻击,例如,攻击者能够在DNP3.0协议报文的传输过程中,利用符合DNP3.0协议规则的数据包,截取或者篡改DNP3.0数据报文,引起系统错误或造成重要信息的泄露甚至破坏,严重威胁了电力系统的安全性。若要防范此类欺骗性攻击,需要对DNP3.0数据内容本身的过滤,即对应用层进行深度包过滤。由于欺骗性攻击的数据包是符合DNP3.0协议规则的,而传统防火墙不能识别,因此无法防范此类攻击。
因此,为了阻止传统防火墙无法防范的欺骗性攻击,本发明提出了一种基于神经网络算法进行DNP3.0通信访问控制的方法,此访问控制方法部署在主站与子站之间的安全防护模块,捕获通过安全防护模块的DNP3.0数据报文,实现双向通信访问控制,从而保障电力系统的安全。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于神经网络的DNP3.0通信访问控制方法,通过对应用层数据进行访问控制来实现双向通信访问控制,提高了DNP3.0通信过程的安全性与可靠性。
为实现上述发明目的,本发明基于神经网络的DNP通信访问控制方法,其特征在于,包括以下步骤:
(1)、捕获数据包
在主站与子站之间利用Linux的Netfilter框架,在DNP3.0协议端口捕获单位时间T内所有的DNP3.0数据包;
(2)、对DNP3.0数据包进行预处理,提取出特征序列
(2.1)、分别提取出每个DNP3.0数据包的目的地址、源地址、方向位、源方站标志位以及应用层功能码;
(2.2)、将每个DNP3.0数据包的目的地址、源地址、方向位、源方站标志位以及应用层功能码进行组合,构成序列S;
(2.3)、根据序列S中的方向位和源方站标志位判断每个DNP3.0数据包能否在主站与子站之间通过,如果该DNP3.0数据包能够过,则在序列S的末端且对应该DNP3.0数据包所在行处增加标志为“1”,如果该DNP3.0数据包不能够通过,则在序列S的末端且对应该DNP3.0数据包所在行处增加标志为“0”;当所有的DNP3.0数据包判断完成后,则生成特征序列;
(3)、基于神经网络的访问控制
(3.1)、构建神经网络模型;
(3.2)、将特征序列输入到神经网络模型进行训练,当预设精度或最大学习次数时停止训练,得到检测模型;
(3.3)、将待检测的DNP3.0数据包按照步骤(2)进行预处理,得到待检测序列,将该序列输入到检测模型,得到检测结果Y,再将检测结果Y与预设阈值A进行比较,当Y>A时,数据包正常,允许该数据包通过;当Y≤A时,数据包异常,拒绝该数据包。
其中,所述的步骤(2.2)中,序列S的结构为:
S=(s1,s2,s3,s4,s5)
其中,s1=(Ip1,Ip2,…,Ipn),表示n个DNP3.0数据包的目的地址,同理,s2表示n个DNP3.0数据包的源地址,s3表示n个DNP3.0数据包的方向位,s4表示n个DNP3.0数据包的源方站标志位,s5表示n个DNP3.0数据包的应用层功能码。
本发明的发明目的是这样实现的:
本发明基于神经网络的DNP3.0通信访问控制方法,通过提取DNP3.0协议中的目的地址、源地址、方向位、源方站标志位以及应用层功能码构建特征序列,利用神经网络学习上述特征序列,从而得到访问控制的检测模型;再将捕获的数据包通过预处理得到待检测序列,待检测序列通过检测模型的检测后,判断出该数据包是否允许通过,从而完成DNP3.0通信访问控制。
同时,本发明基于神经网络的DNP通信访问控制方法还具有以下有益效果:
(1)、本发明直接应用于DNP3.0主站与子站之间,且无需改变控制系统网络拓扑结构,实现对主站与子站的双向通信访问控制。
(2)、根据学习DNP3.0协议的目的地址、源地址、通信方向以及应用层功能码之间的特定组合,对于主站与不同的子站之间的通信,能够分别进行双向访问控制,提高DNP3.0通信过程的安全性与可靠性,保障电力系统的安全。
(3)、利用神经网络方法构建了DNP3.0通信访问控制模型,可以防范欺骗性攻击。
附图说明
图1是DNP3.0通信拓扑结构图;
图2是基于神经网络的访问控制功能示意图;
图3是基于神经网络的DNP3.0访问控制的执行流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图1是DNP3.0通信拓扑结构图。
在本实施例中,如图1所示,DNP3.0通信拓扑结构包括一个主站和多个子站,在主站和子站之间添加通信访问控制,无需改变控制系统网络拓扑结构,就能够有效地阻止攻击,其原理如图2所示,这样提高DNP3.0通信过程的安全性与可靠性,保障电力系统的安全。
下面结合图3对本发明所述的基于神经网络的DNP通信访问控制方法进行详细说明,具体包括以下步骤:
S1、捕获数据包
在主站与子站之间利用Linux的Netfilter框架,在DNP3.0协议端口捕获单位时间T内所有的DNP3.0数据包,这样可以剔除掉不是DNP3.0协议的数据包。
S2、数据包预处理
S2.1、分别提取出每个DNP3.0数据包的目的地址、源地址、方向位、源方站标志位以及应用层功能码;
其中,目的地址为DNP3.0数据包的目标设备地址;源地址为DNP3.0数据包的来源设备地址;方向位为DNP3.0数据包传输方向,用“0”和“1”表示,其“0”表示由子站发往主站,“1”表示由主站发往子站;源方站标志位用于标识DNP3.0源方站(请求方)与副方站(响应方),用“0”和“1”表示,“0”表示副方站,“1”表示源方站;应用层功能码为DNP3.0数据包的访问操作类型;
S2.2、将每个DNP3.0数据包的目的地址、源地址、方向位、源方站标志位以及应用层功能码进行组合,构成序列S;
其中,序列S的结构为:
S=(s1,s2,s3,s4,s5)
在本实施例中,如表1所示,s1=(0x1200,0x1200,…,0x5365,…),表示n个DNP3.0数据包的目的地址,同理,s2表示n个DNP3.0数据包的源地址,s3表示n个DNP3.0数据包的方向位,s4表示n个DNP3.0数据包的源方站标志位,s5表示n个DNP3.0数据包的应用层功能码。
表1是部分序列S示意表;
表1
S2.3、根据序列S中的方向位和源方站标志位判断每个DNP3.0数据包能否在主站与子站之间通过,如果该DNP3.0数据包能够过,则在序列S的末端且对应该DNP3.0数据包所在行处增加标志位为“1”,如果该DNP3.0数据包不能够通过,则在序列S的末端且对应该DNP3.0数据包所在行处增加标志位为“0”;只有当标志位为“1”时,该DNP3.0数据包才能通过;当所有的DNP3.0数据包判断完成后,则生成特征序列;
在本实施例中,如表1所示,当功能码为“0”时,则标记该DNP3.0数据包的标志位为“1”,该DNP3.0数据包能通过;
当方向位为“0”,源方站标志位为“0”时,若功能码为“129”,则标记该DNP3.0数据包的标志位为“1”;否则标记为“0”;
当方向位为“0”,源方站标志位为“1”时,若功能码为“130”,则标记该DNP3.0数据包的标志位为“1”;否则标记为“0”;
当方向位为“1”,源方站标志位为“1”时,若功能码为“1-19”或“22”或“23”,则标记该DNP3.0数据包的标志位为“1”;否则标记为“0”;
当方向位为“1”,源方站标志位为“0”时,若功能码为“20”或“21”,则标记该DNP3.0数据包的标志位为“1”,否则标记为“0”。
当所有的DNP3.0数据包判断完成后,在序列S的基础上可以生成如表2所示的特征序列S',S'=(s1,s2,s3,s4,s5,s6),其中s6表示标志位。
表2是部分特征序列示意表;
表2
S3、基于神经网络的访问控制
S3.1、构建神经网络模型;
S3.1.1、设神经网络模型的输入结点个数m、隐含层结点个数h和输出层结点个数n;
在本实施例中,神经网络模型输入层结点数为5,输出层结点数为1,则隐含层结点数目为:
其中,a为1-10的常数;
S3.1.2、神经网络初始化
给各个权值分别赋一个在区间(-1,1)之间的随机值,设神经网络模型的预定精度ε=0.001,最大学习次数M=1000;
S3.1.3)、构造隐含层和输入层各神经元的输入输出关系:
其中,hi表示隐含层输入,ho表示隐含层输出,yi表示输出层输入,yo表示输出层输出;
S3.2、将特征序列输入到神经网络模型进行训练,当预设精度或最大学习次数时停止训练,得到检测模型;
S3.2.1、将特征序列输入到神经网络模型进行训练,并计算误差函数;其中部分特征序列如表2所示;
S3.2.2、计算误差函数对输出层神经元和隐含层神经元的偏导数;
S3.2.3、修正输入层与隐含层以及隐含层与输出层的连接权值,计算全局误差E;
其中,do为期望输出,yo为输出层输出,m为输入结点个数,q表示输出结点个数;
在本实施例中,输入层与隐含层的连接权值如表3所示,隐含层与输出层的连接权值如表4所示;
表3是部分输入层与隐含层的连接权值;表4是部分隐含层与输出层的连接权值;
ω00 | ω01 | ω02 | ω03 | ω04 | ω05 | ω06 | ω07 | ω08 | ω09 |
-0.95 | -13.86 | -3.54 | 0.47 | -0.82 | 8.19 | -0.56 | 1.30 | -0.05 | 1.13 |
ω10 | ω11 | ω12 | ω13 | ω14 | ω15 | ω16 | ω17 | ω18 | ω19 |
0.27 | 0.35 | 1.06 | -0.58 | -0.54 | -0.76 | -1.38 | -1.03 | -1.32 | -1.23 |
表3
ω00 | ω10 | ω20 | ω30 | ω40 | ω50 | ω60 | ω70 | ω80 | ω90 |
5.04 | -17.15 | 15.85 | -2.40 | -0.12 | 9.07 | 1.84 | -9.34 | 4.91 | -5.82 |
表4
S3.2.4、判断全局误差E是否满足E≤ε或学习次数达到最大学习次数1000时停止训练,得到检测模型;
S3.3将待检测的DNP3.0数据包按照步骤S2进行预处理,得到待检测序列,将该序列输入到检测模型,得到检测结果Y,再将检测结果Y与预设阈值A进行比较,当Y>A时,DNP3.0数据包正常,允许该DNP3.0数据包通过;当Y≤A时,DNP3.0数据包异常,拒绝该DNP3.0数据包,在本实施例中,阈值A=0.5,针对不同的网络环境可以适当调整阈值A的范围。
在本实施例中,将100条待检测的DNP3.0数据报文输入训练得到的检测模型,验证该方法的正确性,其部分结果如表5所示,且最终判断结果正确率为96%。
表5
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (3)
1.一种基于神经网络的DNP通信访问控制方法,其特征在于,包括以下步骤:
(1)、捕获数据包
在主站与子站之间利用Linux的Netfilter框架,在DNP3.0协议端口捕获单位时间T内所有的DNP3.0数据包;
(2)、对DNP3.0数据包进行预处理,提取出特征序列
(2.1)、分别提取出每个DNP3.0数据包的目的地址、源地址、方向位、源方站标志位以及应用层层功能码;
(2.2)、将每个DNP3.0数据包的目的地址、源地址、方向位、源方站标志位以及应用层功能码进行组合,构成序列S;
(2.3)、根据序列S中的方向位和源方站标志位判断每个DNP3.0数据包能否在主站与子站之间通过,如果该DNP3.0数据包能够过,则在序列S的末端且对应该DNP3.0数据包所在行处增加标志位为“1”,如果该DNP3.0数据包不能够通过,则在序列S的末端且对应该DNP3.0数据包所在行处增加标志位为“0”;当所有的DNP3.0数据包判断完成后,则生成特征序列;
(3)、基于神经网络的访问控制
(3.1)、构建神经网络模型;
(3.2)、将特征序列输入到神经网络型进行训练,当预设精度或最大学习次数时停止训练,得到检测模型;
(3.3)、将待检测的DNP3.0数据包按照步骤(2)进行预处理,得到待检测序列,将该序列输入到检测模型,得到检测结果Y,再将检测结果Y与预设阈值A进行比较,当Y>A时,数据包正常,允许该数据包通过;当Y≤A时,数据包异常,拒绝该数据包。
2.根据权利要求1所述的基于神经网络的DNP通信访问控制方法,其特征在于,所述的步骤(2.2)中,序列S的结构为:
S=(s1,s2,s3,s4,s5)
其中,s1=(Ip1,Ip2,…,Ipn),表示n个DNP3.0数据包的目的地址,同理,s2表示n个DNP3.0数据包的源地址,s3表示n个DNP3.0数据包的方向位,s4表示n个DNP3.0数据包的源方站标志位,s5表示n个DNP3.0数据包的应用层功能码。
3.根据权利要求1所述的基于神经网络的DNP通信访问控制方法,其特征在于,所述步骤(2.2)中,判断DNP3.0数据包能否在主站与子站之间通过的方法为:
当功能码为“0”时,则标记该DNP3.0数据包的标志位为“1”,即该DNP3.0数据包能通过;
当方向位为“0”,源方站标志位为“0”时,若功能码为“129”,则标记该DNP3.0数据包的标志位为“1”,即该DNP3.0数据包能通过;
当方向位为“0”,源方站标志位为“1”时,若功能码为“130”,则标记该DNP3.0数据包的标志位为“1”,即该DNP3.0数据包能通过;
当方向位为“1”,源方站标志位为“1”时,若功能码为“1-19”或“22”或“23”,则标记该DNP3.0数据包的标志位为“1”,即该DNP3.0数据包能通过;
当方向位为“1”,源方站标志位为“0”时,若功能码为“20”或“21”,则标记该DNP3.0数据包的标志位为“1”,即该DNP3.0数据包能通过。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610153033.9A CN105812371B (zh) | 2016-03-17 | 2016-03-17 | 基于神经网络的dnp通信访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610153033.9A CN105812371B (zh) | 2016-03-17 | 2016-03-17 | 基于神经网络的dnp通信访问控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105812371A true CN105812371A (zh) | 2016-07-27 |
CN105812371B CN105812371B (zh) | 2019-01-25 |
Family
ID=56454223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610153033.9A Expired - Fee Related CN105812371B (zh) | 2016-03-17 | 2016-03-17 | 基于神经网络的dnp通信访问控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105812371B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106982219A (zh) * | 2017-04-20 | 2017-07-25 | 电子科技大学 | 一种iec104通信访问控制方法 |
CN108847983A (zh) * | 2018-06-27 | 2018-11-20 | 电子科技大学 | 基于mqtt协议的入侵检测方法 |
US20220038474A1 (en) * | 2020-07-31 | 2022-02-03 | Dev Ayan Nag | Method and system that enhances computer-system security by identifying and blocking harmful communications through component interfaces |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052730A (zh) * | 2013-03-13 | 2014-09-17 | 通用电气公司 | 用于工业控制系统的智能计算机物理入侵检测与防御系统和方法 |
CN104702584A (zh) * | 2013-12-10 | 2015-06-10 | 中国科学院沈阳自动化研究所 | 一种基于自学习规则的Modbus通信访问控制方法 |
CN104702598A (zh) * | 2015-02-16 | 2015-06-10 | 南京邮电大学 | 一种智能电网分布式网络协议安全性检测方法 |
-
2016
- 2016-03-17 CN CN201610153033.9A patent/CN105812371B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052730A (zh) * | 2013-03-13 | 2014-09-17 | 通用电气公司 | 用于工业控制系统的智能计算机物理入侵检测与防御系统和方法 |
CN104702584A (zh) * | 2013-12-10 | 2015-06-10 | 中国科学院沈阳自动化研究所 | 一种基于自学习规则的Modbus通信访问控制方法 |
CN104702598A (zh) * | 2015-02-16 | 2015-06-10 | 南京邮电大学 | 一种智能电网分布式网络协议安全性检测方法 |
Non-Patent Citations (3)
Title |
---|
O.LINDA,ET AL.: "Neural Network Based Intrusion Detection System for Critical Infrastructures", 《PROCEEDINGS OF INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS》 * |
WEI GAO,ET AL.: "On SCADA Control System Command and Response Injection and Intrusion Detection", 《ELRIME RESEARCHERS SUMMIT》 * |
程中浩: "DNP3.0规约主站方组件实现", 《河北工业科技》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106982219A (zh) * | 2017-04-20 | 2017-07-25 | 电子科技大学 | 一种iec104通信访问控制方法 |
CN108847983A (zh) * | 2018-06-27 | 2018-11-20 | 电子科技大学 | 基于mqtt协议的入侵检测方法 |
CN108847983B (zh) * | 2018-06-27 | 2020-03-10 | 电子科技大学 | 基于mqtt协议的入侵检测方法 |
US20220038474A1 (en) * | 2020-07-31 | 2022-02-03 | Dev Ayan Nag | Method and system that enhances computer-system security by identifying and blocking harmful communications through component interfaces |
Also Published As
Publication number | Publication date |
---|---|
CN105812371B (zh) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109600363A (zh) | 一种物联网终端网络画像及异常网络访问行为检测方法 | |
CN105871882A (zh) | 基于网络节点脆弱性和攻击信息的网络安全风险分析方法 | |
CN103384213B (zh) | 一种检测规则优化配置方法及设备 | |
CN107682323A (zh) | 一种工业控制系统网络访问安全性预警系统及方法 | |
CN102170431A (zh) | 一种主机风险评估方法和装置 | |
CN105812371A (zh) | 基于神经网络的dnp通信访问控制方法 | |
CN103905440A (zh) | 一种基于日志和snmp信息融合的网络安全态势感知分析方法 | |
CN108063768B (zh) | 基于网络基因技术的网络恶意行为识别方法及装置 | |
CN107104988B (zh) | 一种基于概率神经网络的IPv6入侵检测方法 | |
CN108847983A (zh) | 基于mqtt协议的入侵检测方法 | |
CN107317756A (zh) | 一种基于q学习的最佳攻击路径规划方法 | |
CN106254316A (zh) | 一种基于数据依赖的工控行为异常检测系统 | |
CN114629718A (zh) | 一种基于多模型融合的隐匿恶意行为检测方法 | |
CN103747003A (zh) | 对等僵尸网络核心节点检测方法及检测装置 | |
CN105871861B (zh) | 一种自学习协议规则的入侵检测方法 | |
CN107347069A (zh) | 一种基于Kohonen神经网络的最佳攻击路径规划方法 | |
CN105592087A (zh) | 一种基于向量机学习的dnp异常检测方法 | |
CN105743735B (zh) | 基于神经网络的ModbusTcp通讯深度包检测方法 | |
CN106982219A (zh) | 一种iec104通信访问控制方法 | |
Yue et al. | A detection method for I-CIFA attack in NDN network | |
CN104270373B (zh) | 一种基于时间特征的Web服务器匿名访问流量检测方法 | |
Yang et al. | Research on fnn-based security defence architecture model of scada network | |
CN112836214A (zh) | 一种通讯协议隐蔽通道检测方法 | |
Kim et al. | Network anomaly detection for m-connected SCADA networks | |
Zheng et al. | Design of Network Big Data Anti Attack System for Carbon Emission Measurement Based on Deep Learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190125 |