法律状态公告日
法律状态信息
法律状态
2023-03-03
未缴年费专利权终止 IPC(主分类):H04L29/06 专利号:ZL2016101530339 申请日:20160317 授权公告日:20190125
专利权的终止
2019-01-25
授权
授权
2016-08-24
实质审查的生效 IPC(主分类):H04L29/06 申请日:20160317
实质审查的生效
2016-07-27
公开
公开
技术领域
本发明属于工业控制信息安全技术领域,更为具体地讲,涉及一种基于神 经网络的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是部分隐含层与输出层的连 接权值;
表3
表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
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的 技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本 技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的 本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明 创造均在保护之列。
机译: 在无线通信系统中执行手动更新允许列表的基于M2M通信能力的基于区域的访问控制方法
机译: 基于神经网络的无线通信系统中传输功率的控制方法和装置
机译: 无线通信系统中基于神经网络的输电功率控制方法和装置