摘要
电力系统是一个相对比较封闭的系统,为了更好地开展电力控制系统信息安全研究,我们设计了一种电力控制系统信息安全实验平台。该平台由攻击端、防护模块、数据采集和控制器,以及电动机等电力负荷组成。在该实验平台上进行了拒绝服务攻击和伪造数据包攻击与防护的实验,以Modbus/TCP为例进行了fuzzing模糊测试实验。最终,实验验证了电力控制系统信息安全实验平台的性能,实验平台能够帮助我们更好地开展电力控制系统信息安全研究。
1 引言
电力行业很早就采用计算机实现生产过程自动化。现代电力企业网络基础设施日益完善,已建成生产、管理、营销等不同类型的信息系统,企业信息化[1]水平达到新的高度,有效保证了电力系统安全、优质和经济运行。各类电力信息系统由于信息共享和协作已经实现互连,网络通信协议也逐步采用开放通用的TCP/IP协议,这使得非法者可以采用各种攻击技术在信息空间(Cyber Space)对电力信息系统进行攻击,破坏电力系统信息安全(Cyber Security in PowerSystem),影响电力系统可靠运行,甚至导致系统振荡或大范围停电。2010年震惊世界的针对伊朗核电站的震网病毒[8],以及最近的乌克兰电网遭受黑客攻击事件[2],针对电力控制系统的网络攻击事件呈不断上升的趋势。随着德国工业4.0[3]、美国工业互联网[4]、中国《中国制造2025》[5]等规划不断推进,电力控制系统将与互联网信息系统不断融合,电力控制系统将面临越来越多的信息安全问题的挑战。因此,越来越多的国内外学者进行电力控制系统的信息安全研究。震网病毒就是针对伊朗核电站所使用西门子PLC的漏洞 [6]进行的一种欺骗型攻击,因此我们还需要在电力控制系统SCADA、PLC、DCS [7]之间的通信数据设置深度包过滤。我们要对电力控制系统信息安全进行研究,避免不了实验,但是在实际的电力控制系统中进行实验是不现实的,为此我们设计一种电力控制系统信息安全实验平台,实验平台能进行模糊测试以及各种信息安全攻击实验。
2 实验平台设计
电力控制系统信息安全实验平台主要有400V、220V电源,空气开关,交直流接触器,控制器(西门子及欧姆龙PLC),被控对象(电机、指示灯、智能Wi-Fi网关),防护模块(工业网关)以及攻击端(PC,U盘)等组成。PLC控制器以及被控对象通过工业网关与外部交换机及上位机隔离,通信数据经过工业网关过滤。拓扑结构如图1所示。
图1 实验平台拓扑结构
可编程逻辑控制器(PLC)具有耐用、稳定性强、高鲁棒性等优点,非常适合工业控制系统环境。平台中PLC的通信协议是基于Modbus/TCP的西门子私有协议S7,上位机通过该协议和PLC通信,控制电动机及指示灯等负荷的正常运行。该实验平台中,实验对象主要包括电动机,指示灯,阀门等。
防护模块是基于工业网关内置工业通讯协议的防护模式,通过配置工业网关协议过滤规则,对通信数据进行深度过滤。规则可以根据不同的通信协议,配置相关过滤规则。例如,该实验是基于Modbus/TCP,可以选择该协议进行规则配置。通常工业通讯协议基于常规TCP/IP协议在应用层的高级开发,本实验平台就是基于常规TCP/IP在应用层的高级开发的Modbus/TCP协议上的隔离防护平台。当数据包经过防护模块时,会对其进行深度包检测,检验合格让其通过,不合格直接丢弃。
攻击端一般为PC机或者U盘等,先通过Wireshark抓包分析协议数据包,然后伪造变异数据,再和PLC建立连接,发送数据包使其执行错误的指令,从而攻击成功。U盘攻击原理大致一样,U盘里会存在一个会自执行的程序,会改变PLC的输出。或者通过拒绝服务攻击来对PLC进行攻击。部分程序如图2所示。
图2 伪造数据包攻击程序
该程序就是通过伪造数据来对PLC进行攻击的,最终使PLC该亮的点熄灭了。
3 防火墙模块设计
防火墙模块硬件主要是西门子的工业网关,能够针对工业控制系统通信协议进行深度包检测,可以对过滤规则进行配置。主要包括通信协议端口号检测、协议标识符检测、功能码检测、数据长度及PLC输入输出线圈地址检测,通过这些过滤规则的配置,大大减少控制器被攻击成功的可能性。
Modbus/TCP协议采用客户端/服务器模式通信,正常通信时是使用服务器的502[9]端口通信,对于外来的数据包来说,目的端口应是502,若攻击数据修改了目的端口,则可能会造成通信故障,使控制器无法正常工作。端口号模块则会有效地保证通信时服务器端口选择502,保证正常通信,避免故障发生。Modbus/TCP协议是应用层协议,其协议头部有确定的协议标识符,协议表示模块通过对应用层协议的解析,正确识别协议标识符,可以防止攻击数据包伪装成其他协议进行通信从而造成系统故障。不同的功能码对应不同的操作,在实际工业环境中,合法的功能码是被预先设定的,所以当攻击数据包企图通过修改功能码来修改控制器的动作从而造成故障时,功能码模块就可以有效的防护,保证只有合法功能码通过。对于不同的功能码,数据包的长度是不一样的,但是对于确定的某个功能码,数据包的长度是唯一的,所以我们通过对协议应用层数据的深度包解析,对应的功能码我们通过数据长度模块做防护,就能防止攻击数据通过修改数据包长度造成控制器故障的问题。防火墙数据过滤规则配置如图3所示。
图3 数据包深度过滤流程图
PLC中线圈地址是有范围的,即有线圈地址的上限和下限,攻击数据通过修改线圈地址范围造成控制器错误操作,线圈地址模块就是防护这种攻击,保证正常的通信。首先防护模块可以选择开启或者不开启,即数据直接通过还是必须经过预先设定好的防护模块,检测过后再通过。其次,流程图中的五个防护模块只要其中任何一个防护模块检测数据异常,此数据就会被丢弃,只有通过所有防护模块后,数据才能够被控制器接收到,实现通信。
4 信息安全实验平台性能测试
电力控制系统信息安全实验平台实物图如图4所示,笔者在该平台上进行了伪造数据包攻击实验和模糊测试,及拒绝服务攻击实验。
图4 实验平台部分实物图
4.1 伪造数据包攻击实验
攻击PLC控制器,先使用Wireshark抓包分析协议数据包,然后伪造变异数据,再和PLC建立连接,发送数据包使其执行错误的指令,使PLC控制器出现故障,有可能停止运转或者不按正常方式运转,对PLC及其被控对象造成不可预知的破坏。从而攻击成功。U盘攻击原理大致一样,U盘里会存在一个会自执行的程序,会改变PLC的输出。由信息安全防护措施可知,所有的数据包必须通过防火墙才能到达PLC控制端。若防护模块没有开启,则默认通过所有数据包,当伪造的数据包到达PLC控制器,PLC会出现故障,负责监控PLC工作状态的PLC监控端也会出现相应的提示;若防护模块开启,并通过配置端进行数据包过滤规则配置。配置完成后,该防护模块就能进行数据包过滤,实现严格的防护功能,当含有攻击的数据包到达防护模块,防护模块会对数据包进行深度检测,就会被它直接丢弃,拒绝非法数据包的通过。只有满足协议规则并且合理的数据包才能让其通过。
4.2 fuzzing实验
在该实验平台上还可以进行模糊测试,漏洞挖掘实验,通过配置参数,测试机或漏洞挖掘设备向被测设备(控制器)发送测试数据包,并记录导致控制器异常的数据包,然后对其进行分析,为什么会导致异常,是不是偶然的,最终才能确定是不是漏洞。模糊测试的部分程序如图5所示。
图5 fuzzing测试部分程序
4.3 拒绝服务攻击(DoS)实验
该实验平台可以做PLC拒绝服务攻击实验。 DoS[10]主要通过对PLC控制器发送大量不合法的请求连接数据包占用连接资源,造成PLC控制器故障甚至于断开网络,使监控端无法收到控制器返回的信号,也无法对控制器进行控制,造成无法预知的后果。由信息安全防护措施可知,所有的数据包必须通过防护模块才能到达PLC控制端。若防护模块没有开启,则默认通过所有数据包,当大量的请求连接数据包到达PLC控制器,PLC会出现故障并断网,负责监控PLC工作状态的PLC监控端无法获取PLC控制器的运行状态;若防护模块开启,并通过配置端进行数据包过滤规则配置。配置完成后,该防护模块就能进行数据包过滤,实现严格的防护功能,当不合法[11]的数据包到达防护模块,就会被它直接丢弃,拒绝不合法的请求数据包,大量不合理的请求连接数据包是不可能通过防火墙的,只有合法的请求包才能通过。
5 结语
本文设计并实现了一种电力控制系统信息安全实验平台,该平台对开展电力控制系统信息安全研究有很大意义。该平台能够向人们展示电力安全问题严重性和重要性,真正感受到信息安全问题研究的迫切。并且,在该实验平台上,还可以进行攻击实验,模糊测试,漏洞挖掘等电力信息安全实验。本实验平台还有很多可以改进的地方,比如系统太小,距离真正的电力系统有很大的差别,负荷种类不够多,控制器种类也不够多。未来我们将会建立一个10kV,十几个节点的小型电力系统,尽量模拟真正的电力系统,为电力系统安全问题研究提供一个真正的实验环境,而不总是仿真实验。
★基金项目:国家自然科学基金(61772327),上海自然科学基金(15110500700),浙江大学工业控制技术国家重点实验室开发课题(ICT1800380),上海电力学院智能电网产学研中心项目(A-0009-17-002-05),上海科委地方能力建设项目(16ZR1436300)。
作者简介
王 勇 (1973-),男,河南确山人,教授,现就职于上海电力学院信息安全系,主要从事电力信息安全、工业控制系统信息安全研究。
高志远(1992-),男,河南南阳人,硕士研究生,现就读于上海电力学院计算机科学与技术学院,主要从事工业控制系统信息安全研究。
刘金永 (1991-),男,河南平顶山人,硕士研究生,现就读于上海电力学院计算机科学与技术学院,主要从事工业控制系统入侵检测研究。
王 相(1994-),男,江苏无锡人,硕士研究生,现就读于上海电力学院计算机科学与技术学院,主要从事电力系统通信协议攻击检测关键技术方面的研究。
李双飞(1996-),男,回,河南周口人,本科,现就读于上海电力学院计算机科学与技术学院,主要从事工业控制系统信息安全研究。
邵猷海(1994-),男,江西九江人,硕士研究生,现就读于上海电力学院计算机科学与技术学院,主要从事工业控制系统信息安全研究。
翟 昊(1997-),男,上海人,本科,现就读于上海电力学院计算机科学与技术学院。
刘 蔚(1988-),女,上海人,本科,现就职于上海云物信息技术有限公司,主要从事数据安全分析。
摘自《自动化博览》2018工业控制系统信息安全专刊(第五辑)
声明:本文来自工业安全产业联盟,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。