首页> 中国专利> 基于神经网络的DNP通信访问控制方法

基于神经网络的DNP通信访问控制方法

摘要

本发明公开了一种基于神经网络的DNP通信访问控制方法,通过提取DNP3.0协议中的目的地址、源地址、方向位、源方站标志位以及应用层功能码构建特征序列,利用神经网络学习上述特征序列,从而得到访问控制的检测模型;再将捕获的数据包通过预处理得到待检测序列,待检测序列通过检测模型的检测后,判断出该数据包是否允许通过,从而完成DNP3.0通信访问控制。

著录项

  • 公开/公告号CN105812371A

    专利类型发明专利

  • 公开/公告日2016-07-27

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201610153033.9

  • 申请日2016-03-17

  • 分类号

  • 代理机构成都行之专利代理事务所(普通合伙);

  • 代理人温利平

  • 地址 611731 四川省成都市高新区(西区)西源大道2006号

  • 入库时间 2023-06-19 00:13:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 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,则隐 含层结点数目为:

h=m+n+a

其中,a为1-10的常数;

S3.1.2、神经网络初始化

给各个权值分别赋一个在区间(-1,1)之间的随机值,设神经网络模型的预定 精度ε=0.001,最大学习次数M=1000;

S3.1.3)、构造隐含层和输入层各神经元的输入输出关系:

h0(x)=11+e-hi(x)

y0(x)=11+e-yi(x)

其中,hi表示隐含层输入,ho表示隐含层输出,yi表示输出层输入,yo表示 输出层输出;

S3.2、将特征序列输入到神经网络模型进行训练,当预设精度或最大学习次 数时停止训练,得到检测模型;

S3.2.1、将特征序列输入到神经网络模型进行训练,并计算误差函数;其 中部分特征序列如表2所示;

S3.2.2、计算误差函数对输出层神经元和隐含层神经元的偏导数;

S3.2.3、修正输入层与隐含层以及隐含层与输出层的连接权值,计算全局 误差E;

E=12mΣk=0mΣo=0q(do(k)-yo(k))2

其中,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ω190.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ω905.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

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的 技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本 技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的 本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明 创造均在保护之列。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号