CN111897284B - 一种plc设备的安全防护方法和系统 - Google Patents

一种plc设备的安全防护方法和系统 Download PDF

Info

Publication number
CN111897284B
CN111897284B CN202010847599.8A CN202010847599A CN111897284B CN 111897284 B CN111897284 B CN 111897284B CN 202010847599 A CN202010847599 A CN 202010847599A CN 111897284 B CN111897284 B CN 111897284B
Authority
CN
China
Prior art keywords
industrial control
data packet
communication data
control communication
plc device
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
CN202010847599.8A
Other languages
English (en)
Other versions
CN111897284A (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.)
Hunan Kuangan Network Technology Co ltd
Central South University
Original Assignee
Hunan Kuangan Network Technology Co ltd
Central South University
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 Hunan Kuangan Network Technology Co ltd, Central South University filed Critical Hunan Kuangan Network Technology Co ltd
Priority to CN202010847599.8A priority Critical patent/CN111897284B/zh
Publication of CN111897284A publication Critical patent/CN111897284A/zh
Application granted granted Critical
Publication of CN111897284B publication Critical patent/CN111897284B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/14Plc safety
    • G05B2219/14006Safety, monitoring in general

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种PLC设备的安全防护方法,包括:从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获得该工控通信数据包对应的工控协议信息,判断得到的工控通信数据包中上位机的MAC地址SMAC、以及工控通信数据包中PLC设备的MAC地址DMAC是否存在于预先建立的工控白名单wlist中,如果是,则判断得到的工控通信数据包中上位机的IP地址SIP、以及PLC设备的IP地址DIP是否存在于预先建立的工控白名单wlist中,如果是,则判断得到的工控通信数据包中PLC设备的端口号Dport是否存在于预先建立的工控白名单wlist中。本发明能解决现有基于外接工业防火墙等设备实现入侵检测的方法存在网络安全风险、容易造成资源浪费的技术问题。

Description

一种PLC设备的安全防护方法和系统
技术领域
本发明属于工业控制入侵防御技术领域,更具体地,涉及一种PLC设备的安全防护方法和系统。
背景技术
工业控制系统(以下简称“工控系统”)广泛应用于电力系统、石油化工、铁路系统等国家支柱领域,是国家关键基础设施中的重要组成部分,在国计民生方面发挥着极为重要的作用。与传统的网络系统相比,工控系统的封闭性更高,它使用专用的嵌入式系统和设备,并且通过特定的工控协议与外界通信。
如今,可编程逻辑控制器(Programmable Logic Controller,简称PLC)设备已经被广泛应用于工控系统中,PLC设备是一种专门为在工业环境下应用而设计的数字运算操作电子系统,它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。
然而,现有工控系统中的PLC设备本身并不具备入侵检测功能(即对网络中的通信数据进行检测和分析,如有异常则发出警报信息),其要么通过外接工业防火墙等设备进行安全防护,要么采用基于机器学习(包括SVM、决策树和人工神经网络等)的入侵检测技术。
然而,上述应用于PLC的入侵检测方法都存在一些不可忽略的缺陷:第一、基于外接工业防火墙等设备实现入侵检测存在网络安全风险,并且容易造成资源浪费;第二、基于机器学习的入侵检测方法只能识别正常和异常的入侵行为,却不能识别出具体的入侵行为种类;第三、上述入侵检测方法均缺乏自适应性和可扩展性,无法根据周围环境的变化动态调整检测攻击的顺序。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种PLC设备的安全防护方法和系统,其目的在于,解决现有基于外接工业防火墙等设备实现入侵检测的方法存在网络安全风险、容易造成资源浪费的技术问题,以及现有基于机器学习的入侵检测方法只能识别正常和异常的入侵行为,却不能识别出具体的入侵行为种类的技术问题,以及现有入侵检测方法均缺乏自适应性和可扩展性,无法根据周围环境的变化动态调整检测攻击顺序的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种PLC设备的安全防护方法,包括以下步骤:
(1)从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获得该工控通信数据包对应的工控协议信息,包括工控通信数据包中上位机的MAC地址SMAC、工控通信数据包中PLC设备的MAC地址DMAC、PLC设备的控制数据Data、上位机的IP地址SIP、PLC设备的IP地址DIP、上位机的端口号Sport、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、PLC设备的地址码Addr、以及PLC设备的功能码Func;
(2)判断步骤(1)得到的工控通信数据包中上位机的MAC地址SMAC、以及工控通信数据包中PLC设备的MAC地址DMAC是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(3),否则发送报警信息,过程结束;
(3)判断步骤(1)得到的工控通信数据包中上位机的IP地址SIP、以及PLC设备的IP地址DIP是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(4),否则发送报警信息,过程结束;
(4)判断步骤(1)得到的工控通信数据包中PLC设备的端口号Dport是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(5),否则发送报警信息,过程结束。
(5)判断步骤(1)得到的工控通信数据包中PLC设备的事务处理标识符TID、PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、PLC设备的地址码Addr、以及PLC设备的功能码Func是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(7),否则进入步骤(6)。
(6)根据预先建立的工控知识库判断步骤(1)得到的工控通信数据包是否是合法的工控通信数据包,如果是则进入步骤(7),否则将该工控通信数据包加入拦截封包日志文件中,过程结束;
(7)将工控通信数据包发送到PLC设备所控制的设备执行。
优选地,步骤(1)具体包括以下子步骤:
(1-1)解析工控通信数据包的数据链路层部分,以提取工控通信数据包的数据链路层信息;
(1-2)解析工控通信数据包的网络层部分,以提取工控通信数据包的网络层信息;
(1-3)解析工控通信数据包的传输层部分,以提取工控通信数据包的传输层信息;
(1-4)解析工控通信数据包的应用层部分,以提取工控通信数据包的应用层信息;
优选地,工控通信数据包的链路层信息包括工控通信数据包中上位机的MAC地址SMAC、工控通信数据包中PLC设备的MAC地址DMAC、以及PLC设备的控制数据;
工控通信数据包的网络层信息包括工控通信数据包中上位机的IP地址SIP、以及工控通信数据包中PLC设备的IP地址DIP;
工控通信数据包的传输层信息包括工控通信数据包中上位机的端口号Sport、以及工控通信数据包中PLC设备的端口号Dport;
工控通信数据包的应用层信息包括工控通信数据包中PLC设备的事务处理标识符TID、工控通信数据包中PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、工控通信数据包中PLC设备的地址码Addr、以及工控通信数据包中PLC设备的功能码Func。
优选地,工控白名单是采用以下步骤来实现的:
(2-1)建立空白的工控白名单wlist,对该工控白名单wlist进行初始化,并启动计时器开始计时,其中工控白名单wlist包括多个条目,用于表示不同上位机和不同工控系统之间的通信信息,每个条目包括9个字段:源MAC地址、目标MAC地址、源IP地址、目标IP地址、目标端口号、事务处理标识符、协议ID、功能码、以及地址码;
(2-2)判断当前时间t是否已经达到学习时间阈值T,如果已经达到,则过程结束,否则转入步骤(2-3);
(2-3)从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获取该工控通信数据包对应的工控协议信息,包括上位机的MAC地址SMAC、PLC设备的MAC地址DMAC、上位机的IP地址SIP、PLC设备的IP地址DIP、上位机的端口号Sport、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议PID、工控通信数据包中协议数据的长度Len、PLC设备的的功能码Func、PLC设备的地址码Addr,其构成11元组T’={SMAC,DMAC,SIP,DIP,Sport,Dport,TID,pID,Len,Addr,Func};
(2-4)判断11元组T’中工控通信数据包中协议数据的长度Len是小于预设的最短数据包长度min,还是大于预设的最大数据包长度max,如果是小于预设的最短数据包长度min,则将最短数据包长度min更新为通信数据包中协议数据的长度Len,然后进入步骤(2-5),如果是大于预设的最大数据包长度max,则将最大数据包长度max更新为通信数据包中协议数据的长度Len,然后进入步骤(2-5);
(2-5)判断11元组T’中上位机的MAC地址SMAC、以及PLC设备的MAC地址DMAC是否存在于工控白名单wlist的同一个条目中,如果是则进入步骤(2-6),否则在工控白名单wlist中创建一个新条目,并使用该11元组T’中上位机的MAC地址SMAC、以及PLC设备的MAC地址DMAC更新该创建的新条目,然后转入步骤(2-6);
(2-6)将11元组T’中上位机的IP地址SIP、PLC设备的IP地址DIP、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议PID、PLC设备的的功能码Func、以及PLC设备的地址码Addr添加到步骤(2-5)的该条目中;
(2-7)输出工控白名单wlist、预设的最短数据包长度min,以及预设的最大数据包长度max。
优选地,预设的最大数据包长度max等于1000到3000字节之间,优选为1518,预设的最小数据包长度min等于0到100字节之间,优选为64。
优选地,工控知识库是按照以下步骤建立的:
(6-1)建立空白的工控知识库,该工控知识库包括多个条目,用于表示PLC设备的敏感执行信息,每个条目包括3个字段:敏感地址码、控制数据阈值(包括最小控制数据Vmin、最大控制数据Vmax)、以及敏感功能码;
(6-2)判断工控知识库对应的学习开关标志位是否为1,如果是则转入步骤(6-3),否则过程结束;
(6-3)从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获取该工控通信数据包对应的工控协议信息,包括PLC设备的地址码Addr,PLC设备的控制数据、PLC设备的的功能码Func,其构成3元组ST={Addr,Data,Func};
(6-4)判断3元组ST中PLC设备的地址码Addr是否存在于工控知识库中,如果是则进入步骤(6-5),否则在工控知识库中创建一个新条目,并使用该3元组ST中PLC设备的地址码Addr更新该创建的新条目,然后转入步骤(6-5);
(6-5)判断3元组ST中工控通信数据包中PLC设备的控制数据Val是小于工控知识库中的最小控制数据Vmin,还是大于预设的最大控制数据Vmax,如果是小于工控知识库中的最小控制数据Vmin,则将最小控制数据Vmin更新为通信数据包中PLC设备的控制数据Val,然后进入步骤(6-6),如果是大于预设的最大数值Vmax,则将最大控制数据Vmax更新为通信数据包中PLC设备的控制数据Val,然后进入步骤(6-6);
(6-6)判断3元组ST中PLC设备的功能码Func是否存在于工控知识库中,如果是则进入步骤(6-7),否则使用该3元组ST中PLC设备的功能码Func更新步骤(6-4)中新创建的该条目,然后转入步骤(6-7);
(6-7)输出执行数据阈值、敏感功能码以及敏感地址码。
优选地,当PLC设备的控制数据是PLC设备所控制的电机的转速时,预设的最大控制数据Vmax等于10000到20000转/分之间,优选为10000,预设的最小控制数据Vmin等于0到500转/分之间,优选为0。
按照本发明的另一方面,提供了一种PLC设备的安全防护系统,包括:
第一模块,用于从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获得该工控通信数据包对应的工控协议信息,包括工控通信数据包中上位机的MAC地址SMAC、工控通信数据包中PLC设备的MAC地址DMAC、PLC设备的控制数据Data、上位机的IP地址SIP、PLC设备的IP地址DIP、上位机的端口号Sport、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、PLC设备的地址码Addr、以及PLC设备的功能码Func;
第二模块,用于判断第一模块得到的工控通信数据包中上位机的MAC地址SMAC、以及工控通信数据包中PLC设备的MAC地址DMAC是否存在于预先建立的工控白名单wlist中,如果是,则进入第三模块,否则发送报警信息,过程结束;
第三模块,用于判断第一模块得到的工控通信数据包中上位机的IP地址SIP、以及PLC设备的IP地址DIP是否存在于预先建立的工控白名单wlist中,如果是,则进入第四模块,否则发送报警信息,过程结束;
第四模块,用于判断第一模块得到的工控通信数据包中PLC设备的端口号Dport是否存在于预先建立的工控白名单wlist中,如果是,则进入第五模块,否则发送报警信息,过程结束。
第五模块,用于判断第一模块得到的工控通信数据包中PLC设备的事务处理标识符TID、PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、PLC设备的地址码Addr、以及PLC设备的功能码Func是否存在于预先建立的工控白名单wlist中,如果是,则进入第七模块,否则进入第六模块。
第六模块,用于根据预先建立的工控知识库判断第一模块得到的工控通信数据包是否是合法的工控通信数据包,如果是则进入第七模块,否则将该工控通信数据包加入拦截封包日志文件中,过程结束;
第七模块,用于将工控通信数据包发送到PLC设备所控制的设备执行。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)由于本发明采用了步骤(1)到步骤(7),其实现了在PLC内部进行安全保护,不再需要外接工业防火墙等设备,极大的节约了成本,避免了资源浪费的问题;
(2)由于本发明采用了步骤(2)到步骤(6),其采用PLC内置安全防护功能的机制,因此能够解决现有PLC外接防火墙从而带来的时延及吞吐量有限的问题,却不能识别出具体的入侵行为种类的技术问题;
(3)由于本发明采用了步骤(2)到步骤(5),其采用工控白名单的安全防御机制,因此能够解决现有黑名单防御机制漏洞库不全或无法及时更新所带来的安全问题;
(4)由于本发明采用了步骤(6),其采用工控知识库的安全防御机制,因此能够解决现有安全防御机制因工控白名单学习不全或无法及时更新所带来的安全问题。
附图说明
图1是本发明PLC设备的安全防护方法的整体流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明提供了一种PLC设备的安全防护方法,包括以下步骤:
(1)从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获得该工控通信数据包对应的工控协议信息,包括工控通信数据包中上位机的MAC地址,即源MAC地址(Source MAC address,简称SMAC)、工控通信数据包中PLC设备的MAC地址,即目标MAC地址(Destination MAC address,简称DMAC)、PLC设备的控制数据Data、上位机的IP地址,即源IP地址(Source IP address,简称SIP)、PLC设备的IP地址,即目标IP地址(Destination IPaddress,简称DIP)、上位机的端口号,即源端口号(Source port,简称Sport)、PLC设备的端口号,即目标端口号(Destination port,简称Dport)、PLC设备的事务处理标识符(Transaction ID,简称TID)、PLC设备的协议标识符(Protocol ID,简称PID)、工控通信数据包中协议数据的长度(Length,简称Len)、PLC设备的地址码(Address,简称Addr)、以及PLC设备的功能码(Function,简称Func);
具体而言,本发明对工控通信数据包进行解析,使用的是IPTables和Suricate软件。
本步骤具体包括以下子步骤:
(1-1)解析工控通信数据包的数据链路层部分,以提取工控通信数据包的数据链路层信息;
具体而言,工控通信数据包的链路层信息包括工控通信数据包中上位机的MAC地址,即源MAC地址(Source MAC address,简称SMAC)、工控通信数据包中PLC设备的MAC地址,即目标MAC地址(Destination MAC address,简称DMAC)、以及PLC设备的控制数据(诸如PLC设备所控制的电机的转速、温度传感器的工作温度等);
(1-2)解析工控通信数据包的网络层部分,以提取工控通信数据包的网络层信息;
具体而言,工控通信数据包的网络层信息包括工控通信数据包中上位机的IP地址,即源IP地址(Source IP address,简称SIP)、以及工控通信数据包中PLC设备的IP地址,即目标IP地址(Destination IP address,简称DIP);
(1-3)解析工控通信数据包的传输层部分,以提取工控通信数据包的传输层信息;
具体而言,工控通信数据包的传输层信息包括工控通信数据包中上位机的端口号,即源端口号(Source port,简称Sport)、以及工控通信数据包中PLC设备的端口号,即目标端口号(Destination port,简称Dport);
(1-4)解析工控通信数据包的应用层部分,以提取工控通信数据包的应用层信息;
具体而言,工控通信数据包的应用层信息包括工控通信数据包中PLC设备的事务处理标识符(Transaction ID,简称TID)、工控通信数据包中PLC设备的协议标识符(Protocol ID,简称PID)、工控通信数据包中协议数据的长度(Length,简称Len)、工控通信数据包中PLC设备的地址码(Address,简称Addr)、以及工控通信数据包中PLC设备的功能码(Function,简称Func)。
(2)判断步骤(1)得到的工控通信数据包中上位机的MAC地址SMAC、以及工控通信数据包中PLC设备的MAC地址DMAC是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(3),否则发送报警信息,过程结束;
更具体而言,工控白名单是采用以下步骤来实现的:
(2-1)建立空白的工控白名单wlist,对该工控白名单wlist进行初始化,并启动计时器开始计时,其中工控白名单wlist包括多个条目,用于表示不同上位机和不同工控系统之间的通信信息,每个条目包括9个字段:源MAC地址、目标MAC地址、源IP地址、目标IP地址、目标端口号、事务处理标识符、协议ID、功能码、以及地址码;
(2-2)判断当前时间t是否已经达到学习时间阈值T,如果已经达到,则过程结束,否则转入步骤(2-3);
具体而言,学习时间阈值T的取值范围是1分钟到1个月,优选是6小时。
(2-3)从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获取该工控通信数据包对应的工控协议信息,包括上位机的MAC地址SMAC、PLC设备的MAC地址DMAC、上位机的IP地址SIP、PLC设备的IP地址DIP、上位机的端口号Sport、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议PID、工控通信数据包中协议数据的长度Len、PLC设备的的功能码Func、PLC设备的地址码Addr,其构成11元组T’={SMAC,DMAC,SIP,DIP,Sport,Dport,TID,pID,Len,Addr,Func};
(2-4)判断11元组T’中工控通信数据包中协议数据的长度Len是小于预设的最短数据包长度min,还是大于预设的最大数据包长度max,如果是小于预设的最短数据包长度min,则将最短数据包长度min更新为通信数据包中协议数据的长度Len,然后进入步骤(2-5),如果是大于预设的最大数据包长度max,则将最大数据包长度max更新为通信数据包中协议数据的长度Len,然后进入步骤(2-5);
具体而言,预设的最大数据包长度max等于1000到3000字节(byte)之间,优选为1518,预设的最小数据包长度min等于0到100字节之间,优选为64。
(2-5)判断11元组T’中上位机的MAC地址SMAC、以及PLC设备的MAC地址DMAC是否存在于工控白名单wlist的同一个条目中,如果是则进入步骤(2-6),否则在工控白名单wlist中创建一个新条目,并使用该11元组T’中上位机的MAC地址SMAC、以及PLC设备的MAC地址DMAC更新该创建的新条目,然后转入步骤(2-6);
(2-6)将11元组T’中上位机的IP地址SIP、PLC设备的IP地址DIP、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议PID、PLC设备的的功能码Func、以及PLC设备的地址码Addr添加到步骤(2-5)的该条目中;
(2-7)输出工控白名单wlist、预设的最短数据包长度min,以及预设的最大数据包长度max;
(3)判断步骤(1)得到的工控通信数据包中上位机的IP地址SIP、以及PLC设备的IP地址DIP是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(4),否则发送报警信息,过程结束;
(4)判断步骤(1)得到的工控通信数据包中PLC设备的端口号Dport是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(5),否则发送报警信息,过程结束;
(5)判断步骤(1)得到的工控通信数据包中PLC设备的事务处理标识符TID、PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、PLC设备的地址码Addr、以及PLC设备的功能码Func是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(7),否则进入步骤(6);
(6)根据预先建立的工控知识库判断步骤(1)得到的工控通信数据包是否是合法的工控通信数据包,如果是则进入步骤(7),否则将该工控通信数据包加入拦截封包日志文件中,过程结束;
具体而言,本步骤中的工控知识库是按照以下步骤建立的:
(6-1)建立空白的工控知识库,该工控知识库包括多个条目,用于表示PLC设备的敏感执行信息,每个条目包括3个字段:敏感地址码、控制数据阈值(其包括最小控制数据Vmin、以及最大控制数据Vmax)、以及敏感功能码;
具体而言,当PLC设备的控制数据是PLC设备所控制的电机的转速时,预设的最大控制数据Vmax等于10000到20000(转/分)之间,优选为10000,预设的最小控制数据Vmin等于0到500(转/分)之间,优选为0。
(6-2)判断工控知识库对应的学习开关标志位是否为1,如果是则转入步骤(6-3),否则过程结束;
(6-3)从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获取该工控通信数据包对应的工控协议信息,包括PLC设备的地址码Addr,PLC设备的控制数据、PLC设备的的功能码Func,其构成3元组ST={Addr,Data,Func};
(6-4)判断3元组ST中PLC设备的地址码Addr是否存在于工控知识库中,如果是则进入步骤(6-5),否则在工控知识库中创建一个新条目,并使用该3元组ST中PLC设备的地址码Addr更新该创建的新条目,然后转入步骤(6-5);
(6-5)判断3元组ST中工控通信数据包中PLC设备的控制数据Val是小于工控知识库中的最小控制数据Vmin,还是大于预设的最大控制数据Vmax,如果是小于工控知识库中的最小控制数据Vmin,则将最小控制数据Vmin更新为通信数据包中PLC设备的控制数据Val,然后进入步骤(6-6),如果是大于预设的最大数值Vmax,则将最大控制数据Vmax更新为通信数据包中PLC设备的控制数据Val,然后进入步骤(6-6);
(6-6)判断3元组ST中PLC设备的功能码Func是否存在于工控知识库中,如果是则进入步骤(6-7),否则使用该3元组ST中PLC设备的功能码Func更新步骤(6-4)中新创建的该条目,然后转入步骤(6-7);
(6-7)输出执行数据阈值、敏感功能码以及敏感地址码;
(7)将工控通信数据包发送到PLC设备所控制的设备执行。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种PLC设备的安全防护方法,其特征在于,包括以下步骤:
(1)从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获得该工控通信数据包对应的工控协议信息,包括工控通信数据包中上位机的MAC地址SMAC、工控通信数据包中PLC设备的MAC地址DMAC、PLC设备的控制数据Data、上位机的IP地址SIP、PLC设备的IP地址DIP、上位机的端口号Sport、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、PLC设备的地址码Addr以及PLC设备的功能码Func;
(2)判断步骤(1)得到的工控通信数据包中上位机的MAC地址SMAC、以及工控通信数据包中PLC设备的MAC地址DMAC是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(3),否则发送报警信息,过程结束;其中工控白名单wlist是采用以下步骤来实现的:
(2-1)建立空白的工控白名单wlist,对该工控白名单wlist进行初始化,并启动计时器开始计时,其中工控白名单wlist包括多个条目,用于表示不同上位机和不同工控系统之间的通信信息,每个条目包括9个字段:源MAC地址、目标MAC地址、源IP地址、目标IP地址、目标端口号、事务处理标识符、协议ID、功能码、以及地址码;
(2-2)判断当前时间t是否已经达到学习时间阈值T,如果已经达到,则过程结束,否则转入步骤(2-3);
(2-3)从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获取该工控通信数据包对应的工控协议信息,包括上位机的MAC地址SMAC、PLC设备的MAC地址DMAC、上位机的IP地址SIP、PLC设备的IP地址DIP、上位机的端口号Sport、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议PID、工控通信数据包中协议数据的长度Len、PLC设备的的功能码Func、PLC设备的地址码Addr,其构成11元组T’={SMAC,DMAC,SIP,DIP,Sport,Dport,TID,pID,Len,Addr,Func};
(2-4)判断11元组T’中工控通信数据包中协议数据的长度Len是小于预设的最短数据包长度min,还是大于预设的最大数据包长度max,如果是小于预设的最短数据包长度min,则将最短数据包长度min更新为通信数据包中协议数据的长度Len,然后进入步骤(2-5),如果是大于预设的最大数据包长度max,则将最大数据包长度max更新为通信数据包中协议数据的长度Len,然后进入步骤(2-5);
(2-5)判断11元组T’中上位机的MAC地址SMAC、以及PLC设备的MAC地址DMAC是否存在于工控白名单wlist的同一个条目中,如果是则进入步骤(2-6),否则在工控白名单wlist中创建一个新条目,并使用该11元组T’中上位机的MAC地址SMAC、以及PLC设备的MAC地址DMAC更新该创建的新条目,然后转入步骤(2-6);
(2-6)将11元组T’中上位机的IP地址SIP、PLC设备的IP地址DIP、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议PID、PLC设备的的功能码Func、以及PLC设备的地址码Addr添加到步骤(2-5)的该条目中;
(2-7)输出工控白名单wlist、预设的最短数据包长度min,以及预设的最大数据包长度max;
(3)判断步骤(1)得到的工控通信数据包中上位机的IP地址SIP、以及PLC设备的IP地址DIP是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(4),否则发送报警信息,过程结束;
(4)判断步骤(1)得到的工控通信数据包中PLC设备的端口号Dport是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(5),否则发送报警信息,过程结束;
(5)判断步骤(1)得到的工控通信数据包中PLC设备的事务处理标识符TID、PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、PLC设备的地址码Addr、以及PLC设备的功能码Func是否存在于预先建立的工控白名单wlist中,如果是,则进入步骤(7),否则进入步骤(6);
(6)根据预先建立的工控知识库判断步骤(1)得到的工控通信数据包是否是合法的工控通信数据包,如果是则进入步骤(7),否则将该工控通信数据包加入拦截封包日志文件中,过程结束;
(7)将工控通信数据包发送到PLC设备所控制的设备执行。
2.根据权利要求1所述的安全防护方法,其特征在于,步骤(1)具体包括以下子步骤:
(1-1)解析工控通信数据包的数据链路层部分,以提取工控通信数据包的数据链路层信息;
(1-2)解析工控通信数据包的网络层部分,以提取工控通信数据包的网络层信息;
(1-3)解析工控通信数据包的传输层部分,以提取工控通信数据包的传输层信息;
(1-4)解析工控通信数据包的应用层部分,以提取工控通信数据包的应用层信息。
3.根据权利要求1或2所述的安全防护方法,其特征在于,
工控通信数据包的链路层信息包括工控通信数据包中上位机的MAC地址SMAC、工控通信数据包中PLC设备的MAC地址DMAC、以及PLC设备的控制数据;
工控通信数据包的网络层信息包括工控通信数据包中上位机的IP地址SIP、以及工控通信数据包中PLC设备的IP地址DIP;
工控通信数据包的传输层信息包括工控通信数据包中上位机的端口号Sport、以及工控通信数据包中PLC设备的端口号Dport;
工控通信数据包的应用层信息包括工控通信数据包中PLC设备的事务处理标识符TID、工控通信数据包中PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、工控通信数据包中PLC设备的地址码Addr、以及工控通信数据包中PLC设备的功能码Func。
4.根据权利要求3所述的安全防护方法,其特征在于,
预设的最大数据包长度max等于1000到3000字节之间;
预设的最小数据包长度min等于0到100字节之间。
5.根据权利要求1所述的安全防护方法,其特征在于,工控知识库是按照以下步骤建立的:
(6-1)建立空白的工控知识库,该工控知识库包括多个条目,用于表示PLC设备的敏感执行信息,每个条目包括3个字段:敏感地址码、控制数据阈值(包括最小控制数据Vmin、最大控制数据Vmax)、以及敏感功能码;
(6-2)判断工控知识库对应的学习开关标志位是否为1,如果是则转入步骤(6-3),否则过程结束;
(6-3)从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获取该工控通信数据包对应的工控协议信息,包括PLC设备的地址码Addr,PLC设备的控制数据、PLC设备的的功能码Func,其构成3元组ST={Addr,Data,Func};
(6-4)判断3元组ST中PLC设备的地址码Addr是否存在于工控知识库中,如果是则进入步骤(6-5),否则在工控知识库中创建一个新条目,并使用该3元组ST中PLC设备的地址码Addr更新该创建的新条目,然后转入步骤(6-5);
(6-5)判断3元组ST中工控通信数据包中PLC设备的控制数据Val是小于工控知识库中的最小控制数据Vmin,还是大于预设的最大控制数据Vmax,如果是小于工控知识库中的最小控制数据Vmin,则将最小控制数据Vmin更新为通信数据包中PLC设备的控制数据Val,然后进入步骤(6-6),如果是大于预设的最大数值Vmax,则将最大控制数据Vmax更新为通信数据包中PLC设备的控制数据Val,然后进入步骤(6-6);
(6-6)判断3元组ST中PLC设备的功能码Func是否存在于工控知识库中,如果是则进入步骤(6-7),否则使用该3元组ST中PLC设备的功能码Func更新步骤(6-4)中新创建的该条目,然后转入步骤(6-7);
(6-7)输出执行数据阈值、敏感功能码以及敏感地址码。
6.根据权利要求5所述的安全防护方法,其特征在于,当PLC设备的控制数据是PLC设备所控制的电机的转速时,预设的最大控制数据Vmax等于10000到20000转/分之间,预设的最小控制数据Vmin等于0到500转/分之间。
7.一种PLC设备的安全防护系统,其特征在于,包括:
第一模块,用于从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获得该工控通信数据包对应的工控协议信息,包括工控通信数据包中上位机的MAC地址SMAC、工控通信数据包中PLC设备的MAC地址DMAC、PLC设备的控制数据Data、上位机的IP地址SIP、PLC设备的IP地址DIP、上位机的端口号Sport、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、PLC设备的地址码Addr、以及PLC设备的功能码Func;
第二模块,用于判断第一模块得到的工控通信数据包中上位机的MAC地址SMAC、以及工控通信数据包中PLC设备的MAC地址DMAC是否存在于预先建立的工控白名单wlist中,如果是,则进入第三模块,否则发送报警信息,过程结束;其中工控白名单wlist是采用以下子模块来实现的:
第一子模块,用于建立空白的工控白名单wlist,对该工控白名单wlist进行初始化,并启动计时器开始计时,其中工控白名单wlist包括多个条目,用于表示不同上位机和不同工控系统之间的通信信息,每个条目包括9个字段:源MAC地址、目标MAC地址、源IP地址、目标IP地址、目标端口号、事务处理标识符、协议ID、功能码、以及地址码;
第二子模块,用于判断当前时间t是否已经达到学习时间阈值T,如果已经达到,则过程结束,否则转入第三子模块;
第三子模块,用于从上位机获取工控通信数据包,对该工控通信数据包进行解析,以获取该工控通信数据包对应的工控协议信息,包括上位机的MAC地址SMAC、PLC设备的MAC地址DMAC、上位机的IP地址SIP、PLC设备的IP地址DIP、上位机的端口号Sport、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议PID、工控通信数据包中协议数据的长度Len、PLC设备的的功能码Func、PLC设备的地址码Addr,其构成11元组T’={SMAC,DMAC,SIP,DIP,Sport,Dport,TID,pID,Len,Addr,Func};
第四子模块,用于判断11元组T’中工控通信数据包中协议数据的长度Len是小于预设的最短数据包长度min,还是大于预设的最大数据包长度max,如果是小于预设的最短数据包长度min,则将最短数据包长度min更新为通信数据包中协议数据的长度Len,然后进入第五子模块,如果是大于预设的最大数据包长度max,则将最大数据包长度max更新为通信数据包中协议数据的长度Len,然后进入第五子模块;
第五子模块,用于判断11元组T’中上位机的MAC地址SMAC、以及PLC设备的MAC地址DMAC是否存在于工控白名单wlist的同一个条目中,如果是则进入第六子模块,否则在工控白名单wlist中创建一个新条目,并使用该11元组T’中上位机的MAC地址SMAC、以及PLC设备的MAC地址DMAC更新该创建的新条目,然后转入第六子模块;
第六子模块,用于将11元组T’中上位机的IP地址SIP、PLC设备的IP地址DIP、PLC设备的端口号Dport、PLC设备的事务处理标识符TID、PLC设备的协议PID、PLC设备的的功能码Func、以及PLC设备的地址码Addr添加到第五子模块的该条目中;
第七子模块,用于输出工控白名单wlist、预设的最短数据包长度min,以及预设的最大数据包长度max;
第三模块,用于判断第一模块得到的工控通信数据包中上位机的IP地址SIP、以及PLC设备的IP地址DIP是否存在于预先建立的工控白名单wlist中,如果是,则进入第四模块,否则发送报警信息,过程结束;
第四模块,用于判断第一模块得到的工控通信数据包中PLC设备的端口号Dport是否存在于预先建立的工控白名单wlist中,如果是,则进入第五模块,否则发送报警信息,过程结束;
第五模块,用于判断第一模块得到的工控通信数据包中PLC设备的事务处理标识符TID、PLC设备的协议标识符PID、工控通信数据包中协议数据的长度Len、PLC设备的地址码Addr、以及PLC设备的功能码Func是否存在于预先建立的工控白名单wlist中,如果是,则进入第七模块,否则进入第六模块;
第六模块,用于根据预先建立的工控知识库判断第一模块得到的工控通信数据包是否是合法的工控通信数据包,如果是则进入第七模块,否则将该工控通信数据包加入拦截封包日志文件中,过程结束;
第七模块,用于将工控通信数据包发送到PLC设备所控制的设备执行。
CN202010847599.8A 2020-08-21 2020-08-21 一种plc设备的安全防护方法和系统 Active CN111897284B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010847599.8A CN111897284B (zh) 2020-08-21 2020-08-21 一种plc设备的安全防护方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010847599.8A CN111897284B (zh) 2020-08-21 2020-08-21 一种plc设备的安全防护方法和系统

Publications (2)

Publication Number Publication Date
CN111897284A CN111897284A (zh) 2020-11-06
CN111897284B true CN111897284B (zh) 2021-06-29

Family

ID=73230517

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010847599.8A Active CN111897284B (zh) 2020-08-21 2020-08-21 一种plc设备的安全防护方法和系统

Country Status (1)

Country Link
CN (1) CN111897284B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468488B (zh) * 2020-11-25 2023-05-23 杭州安恒信息技术股份有限公司 工业异常监测方法、装置、计算机设备及可读存储介质
CN112383563A (zh) * 2020-12-03 2021-02-19 中国铁建重工集团股份有限公司 一种入侵检测方法及相关装置
CN114355853B (zh) * 2021-12-30 2023-09-19 绿盟科技集团股份有限公司 一种工控数据取证方法、装置、电子设备及存储介质
CN115002048B (zh) * 2022-05-31 2023-09-12 珠海格力电器股份有限公司 一种数据传输方法、装置、电子设备及存储介质
CN114726656A (zh) * 2022-06-08 2022-07-08 浙江国利网安科技有限公司 一种网络安全防护的方法及装置
CN115871754B (zh) * 2023-03-08 2023-07-21 北京全路通信信号研究设计院集团有限公司 轨道交通控制信号系统、检测方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120129745A (ko) * 2011-05-18 2012-11-28 (주)엠코피아 데이터 추상화를 이용하여 프로그래머블 로직 컨트롤러 장치 및 비연동 장치를 원격에서 복합 제어하는 에이에스피 서비스 시스템 및 방법
CN108183945A (zh) * 2017-12-25 2018-06-19 冶金自动化研究设计院 基于物联网技术的人防工程设备智能化管理系统
CN108701032A (zh) * 2017-08-09 2018-10-23 深圳市志合创伟信息技术有限公司 一种plc可信自动配置方法、装置及计算机可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4849340B2 (ja) * 2007-04-03 2012-01-11 オムロン株式会社 プログラマブルコントローラ及びユニット
CN105450619A (zh) * 2014-09-28 2016-03-30 腾讯科技(深圳)有限公司 恶意攻击的防护方法、装置和系统
CN111064668B (zh) * 2018-10-17 2022-06-14 华为技术有限公司 路由表项的生成方法、装置及相关设备
CN111083154A (zh) * 2019-12-24 2020-04-28 北京网太科技发展有限公司 一种安全防护方法、装置及存储介质
CN111147478B (zh) * 2019-12-24 2022-08-12 北京网太科技发展有限公司 一种安全防护方法、装置及存储介质
CN111327592B (zh) * 2020-01-19 2022-11-18 陈建慧 网络监测方法及相关装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120129745A (ko) * 2011-05-18 2012-11-28 (주)엠코피아 데이터 추상화를 이용하여 프로그래머블 로직 컨트롤러 장치 및 비연동 장치를 원격에서 복합 제어하는 에이에스피 서비스 시스템 및 방법
CN108701032A (zh) * 2017-08-09 2018-10-23 深圳市志合创伟信息技术有限公司 一种plc可信自动配置方法、装置及计算机可读存储介质
CN108183945A (zh) * 2017-12-25 2018-06-19 冶金自动化研究设计院 基于物联网技术的人防工程设备智能化管理系统

Also Published As

Publication number Publication date
CN111897284A (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN111897284B (zh) 一种plc设备的安全防护方法和系统
US10819721B1 (en) Systems and methods for monitoring traffic on industrial control and building automation system networks
Anton et al. Two decades of SCADA exploitation: A brief history
US8990259B2 (en) Anchored patterns
US20180063191A1 (en) System and method for using a virtual honeypot in an industrial automation system and cloud connector
CN111869189A (zh) 网络探针和处理消息的方法
US11546295B2 (en) Industrial control system firewall module
US20140298008A1 (en) Control System Security Appliance
US11870788B2 (en) Utilizing a machine learning model to determine real-time security intelligence based on operational technology data and information technology data
Rodofile et al. Process control cyber-attacks and labelled datasets on S7Comm critical infrastructure
CN109459995B (zh) 一种面向多种工业以太网协议的状态监测系统及监测方法
CN112242991B (zh) 用于关联事件来检测信息安全事故的系统和方法
Nicholson et al. Position paper: Safety and security monitoring in ics/scada systems
Ovaz Akpinar et al. Development of the ECAT preprocessor with the trust communication approach
US20180316700A1 (en) Data security inspection mechanism for serial networks
CN115834218A (zh) 一种调度数据网多级阻断的安全防护方法及系统
CN111935085A (zh) 工业控制网络异常网络行为的检测防护方法和系统
CN114978782B (zh) 工控威胁检测方法、装置、工控设备以及存储介质
JP2023126177A (ja) ネットワークにおけるインフラストラクチャの異常を検出するための方法および装置
CN106411816B (zh) 一种工业控制系统、安全互联系统及其处理方法
KR102295348B1 (ko) 운영 기술 데이터의 보안 위협 분석 및 탐지 방법
Ponomarev Intrusion Detection System of industrial control networks using network telemetry
Xu et al. Identification of ICS Security Risks toward the Analysis of Packet Interaction Characteristics Using State Sequence Matching Based on SF‐FSM
CN111158736B (zh) 一种智能捕获windows操作系统补丁更新文件的方法
Durakovskiy et al. About the cybersecurity of automated process control systems

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