一种IEC104通信访问控制方法与流程

文档序号:11693754阅读:439来源:国知局
一种IEC104通信访问控制方法与流程
本发明属于工业控制信息安全
技术领域
,更为具体地讲,涉及一种iec60870-5-104通信访问控制方法。
背景技术
:iec60870-5-104网络传输规约是国际标准规约,主要应用于电力系统变电站计算机监控系统或子站rtu(远程终端控制系统)与主站scada系统之间的数据通信。iec60870-5-104协议的安全性对电力系统非常重要。然而,iec60870-5-104是一种开放协议,它的报文结构和数据格式都是公开的,并且在没有足够的安全措施下,存在安全隐患,攻击者能够利用符合iec60870-5-104协议规则的数据报文实施欺骗性攻击,例如,攻击者能够在iec60870-5-104协议报文的传输过程中,利用符合iec60870-5-104协议规则的数据包,篡改或者伪造iec60870-5-104数据报文,引起系统错误甚至破坏,严重威胁了电力系统的安全性。若要防范此类欺骗性攻击,需要对iec60870-5-104数据内容进行过滤,即对应用层进行深度包过滤。由于欺骗性攻击的数据包是符合iec60870-5-104协议规则的,而传统防火墙不能识别,因此无法防范此类攻击。因此,为了阻止传统防火墙无法防范的欺骗性攻击,本发明提出了一种基于神经网络算法进行iec60870-5-104通信访问控制的方法。此访问控制方法部署在主站与子站之间的安全防护模块,捕获通过安全防护模块的iec60870-5-104数据报文,并且通过深度包过滤技术,对应用层数据进行过滤来实现通信访问控制,提高iec60870-5-104通信过程的安全性与可靠性,保障电力系统的安全。技术实现要素:本发明的目的在于克服现有技术的不足,提供一种iec60870-5-104通信访问控制方法,通过iec60870-5-104深度包过滤技术,实现主站与子站之间的通信访问控制,提高了iec60870-5-104通信过程中的安全性与稳定性,防范欺骗性攻击。为实现上述发明目的,本发明一种iec60870-5-104通信访问控制方法,其特征在于,包括以下步骤:(1)、捕获数据包在主站与子站之间利用以太网数据包捕捉工具,根据iec60870-5-104协议端口捕获iec60870-5-104数据包,并且剔除不含iec60870-5-104协议的数据包;(2)、数据预处理(2.1)、提取每条iec60870-5-104数据包的控制域第一个八位位组的第1位、第2位的比特的值,分别记为cf1-1、cf1-2,控制域第三个八位位组的第1位的比特的值,记为cf3-1,类型标识位的一个字节的值,记为ti,以及传送原因位的两个字节的值,记为tr;(2.2)、将每条iec60870-5-104数据包中提取到的cf1-1、cf1-2、cf3-1、ti、tr组合成一组数据,数据格式为:(cf1-1,cf1-2,cf3-1,ti,tr);(3)、判断每组数据(cf1-1,cf1-2,cf3-1,ti,tr)是否为合法数据若cf1-1=1,cf1-2=0,cf3-1=0,或者cf1-1=1,cf1-2=1,cf3-1=0,则该组数据为合法数据,否非为非法数据;若cf1-1=0,cf3-1=0,则按如下规则判断:1)、ti为9或11或13或38-40时,则该条数据为合法数据,否非为非法数据;2)、ti为1或3或30-32时,若tr为3,则该条数据为合法数据,否非为非法数据;3)、ti为15时,若tr为37,则该条数据为合法数据,否非为非法数据;4)、ti为46或47或100或101时,若tr为6或7或10,则该条数据为合法数据,否非为非法数据;5)、ti为104时,若tr为6或7,则该条数据为合法数据包,否非为非法数据;(4)、构建基于神经网络的访问控制将数据(cf1-1,cf1-2,cf3-1,ti,tr)作为神经网络模型的输入,其合法数据(cf1-1,cf1-2,cf3-1,ti,tr)对应的输出设置为1,非法数据(cf1-1,cf1-2,cf3-1,ti,tr)对应的输出设置为0,完成对神经网络模型进行训练;(5)、通信访问控制模块对通信数据包进行异常流量检测在实际的工业环境中进行检测,通信访问控制模块在获取数据包之后,将数据包按照步骤(1)~(2)所述方法调整成标准输入数据(cf1-1,cf1-2,cf3-1,ti,tr),并输入到神经网络模型中进行检测,若神经网络模型输出为1,则判断该数据正常,若神经网络模型输出为0,则判断该数据异常。本发明一种iec60870-5-104通信访问控制方法,通过提取iec60870-5-104协议中控制域第一个八位位组的第1位、控制域第一个八位位组的第2位、控制域第三个八位位组的第1位、类型标识和传送原因作为特征,利用神经网络学习上述特征的特定组合,从而得到访问控制的标准匹配规则;再将捕获的数据包通过预处理得到待检测序列,将得到的序列与标准匹配规则进行匹配,判断数据包是否允许通过,从而完成iec60870-5-104通信访问控制。本发明一种iec60870-5-104通信访问控制方法还具有以下有益效果:(1)、本发明直接应用于iec60870-5-104主站与子站之间,且无需改变控制系统网络拓扑结构,实现对主站与子站间的通信访问控制。(2)、根据学习iec60870-5-104协议的数据帧类型、类型标识和传输原因之间的特定组合,对于主站与子站之间的i格式、u格式和s格式数据帧,能够分别进行访问控制。(3)、利用神经网络方法构建了iec60870-5-104通信访问控制模型,可以防范欺骗性攻击。附图说明图1是iec60870-5-104通信拓扑结构图;图2是基于神经网络的访问控制功能示意图;图3是本发明一种iec60870-5-104通信访问控制方法流程图。具体实施方式下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。实施例图1是iec60870-5-104通信拓扑结构图。在本实施例中,如图1所示,iec60870-5-104通信拓扑结构包括一个主站和多个子站,在主站和子站之间添加通信访问控制,能够有效地阻止攻击。下面结合图1对本发明一种iec60870-5-104通信访问控制方法进行详细说明,如图3所示,包括以下步骤:s1、捕获数据包如图2所示,在主站与子站之间利用以太网数据包捕捉工具,根据iec60870-5-104协议端口捕获iec60870-5-104数据包,这样通过设置的访问控制剔除掉了不含iec60870-5-104协议的数据包;在本实施例中,通过iec60870-5-104协议端口2404捕获iec60870-5-104数据包。s2、数据预处理s2.1、提取每条iec60870-5-104数据包的控制域第一个八位位组的第1位、第2位的比特的值,分别记为cf1-1、cf1-2,控制域第三个八位位组的第1位的比特的值,记为cf3-1,类型标识位的一个字节的值,记为ti,以及传送原因位的两个字节的值,记为tr;其中,提取的具体步骤为:s2.1.1、提取iec60870-5-104数据包的控制域第一个八位位组的第1位比特的值cf1-1、控制域第一个八位位组的第2位比特的值cf1-2、控制域第三个八位位组的第1位比特的值cf3-1;s2.1.2、根据cf1-1、cf1-2、cf3-1的值来判断该数据包的数据帧类型:若cf1-1=0,cf3-1=0,则该数据包为i帧;若cf1-1=1,cf1-2=0,cf3-1=0,则该数据包为s帧;若cf1-1=1,cf1-2=1,cf3-1=0,则该数据包为u帧;s2.1.3、根据该数据包的数据帧类型来提取类型标识位的一个字节的值ti和传送原因位的两个字节的值tr:若该数据包为s帧或u帧,则将ti和tr均置为0,即ti=0、tr=0;若该数据包为i帧,则ti和tr按数据帧中的实际值提取;s2.2、将每条iec60870-5-104数据包中提取到的cf1-1、cf1-2、cf3-1、ti、tr组合成一组数据,数据格式为:(cf1-1,cf1-2,cf3-1,ti,tr),从而剔除了iec60870-5-104数据报文中大量的冗余信息,减少了存储信息所需要的空间资源。s3、判断每组数据(cf1-1,cf1-2,cf3-1,ti,tr)是否为合法数据若cf1-1=1,cf1-2=0,cf3-1=0,或者cf1-1=1,cf1-2=1,cf3-1=0,则该组数据为合法数据,否非为非法数据;若cf1-1=0,cf3-1=0,则按如下规则判断:1)、ti为9或11或13或38-40时,则该条数据为合法数据,否非为非法数据;2)、ti为1或3或30-32时,若tr为3,则该条数据为合法数据,否非为非法数据;3)、ti为15时,若tr为37,则该条数据为合法数据,否非为非法数据;4)、ti为46或47或100或101时,若tr为6或7或10,则该条数据为合法数据,否非为非法数据;5)、ti为104时,若tr为6或7,则该条数据为合法数据包,否非为非法数据;s4、构建基于神经网络的访问控制s4.1、构建神经网络模型,设定预定精度和最大学习次数;s4.2、设计神经网络模型,确定输入结点个数m、隐含层结点个数h和输出层结点个数n;本发明采用的神经网络模型输入层结点数为5(分别对应于5个特征),输出层结点数为1,隐含层结点数目采用公式:其中,a为1-10的常数。s4.3、神经网络初始化;给各个权值分别赋一个在区间(-1,1)之间的随机值,设定预定精度ε=0.001,最大学习次数m=1000;s4.4、构造隐含层和输入层各神经元的输入输出关系:其中,hi表示隐含层输入,ho表示隐含层输出,yi表示输出层输入,yo表示输出层输出;s4.4、将步骤s3得到的数据(cf1-1,cf1-2,cf3-1,ti,tr)输入到神经网络模型进行训练;在本实施例中,将经过数据处理后的1000条数据输入神经网络模型进行训练,并计算误差函数,部分数据如表1所示,其中(x1,x2,x3,x4,,x5)分别对应(cf1-1,cf1-2,cf3-1,ti,tr),;表1部分iec60870-5-104样本序列x1x2x3x4x5yo1100010001006100047500100010001047110000101012000003310109201000101610101550010313100046610101041000103861010101101000100300101331计算误差函数对输出层神经元和隐含层神经元的偏导数;通过修正权值,计算全局误差e;其中,do为期望输出,yo为输出层输出;在本实施例中,合法数据(cf1-1,cf1-2,cf3-1,ti,tr)对应的输出设置为1,非法数据(cf1-1,cf1-2,cf3-1,ti,tr)对应的输出设置为0;当达到预定精度(e≤ε)或者学习次数达到1000时停止训练,从而完成对神经网络模型进行训练。其中,部分输入层与隐含层的连接权值如表2所示,隐含层与输出层的连接权值如表3所示:表2部分输入层与隐含层的连接权值ω00ω01ω02ω03ω04ω05ω06ω07ω08ω091.532.100.740.77-1.83-0.820.311.28-2.480.52ω10ω11ω12ω13ω14ω15ω16ω17ω18ω190.20-1.47-1.631.82-1.042.470.290.58-2.40-2.06表3隐含层与输出层的连接权值ω00ω10ω20ω30ω40ω50ω60ω70ω80ω903.871.190.73-0.45-0.22-0.10-0.471.552.990.61(5)、通信访问控制模块对通信数据包进行异常流量检测在实际的工业环境中进行检测,通信访问控制模块在获取数据包之后,将数据包按照步骤(1)~(2)所述方法调整成标准输入数据(cf1-1,cf1-2,cf3-1,ti,tr),并输入到神经网络模型中进行检测,若神经网络模型输出为1,则判断该数据正常,若神经网络模型输出为0,则判断该数据异常。尽管上面对本发明说明性的具体实施方式进行了描述,以便于本
技术领域
的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本
技术领域
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1