杨泓彬++于浩
【摘 要】 为使工业从业人员提高工控系统信息安全防范意识,加强工控设备信息安全防护措施,本文将针对一套锅炉控制系统中的可编程控制器西门子S7-300进行相关网络攻击测试,通过利用了S7-300 PLC与上位机编程软件STEP7间通信过程中身份认证机制不完善的脆弱点,以重放攻击的形式人为控制PLC开关机。通过实例证明,网络攻击可以在工控系统中轻松实现,借此希望引起相关从业人员人员的重视。
【关键词】 锅炉 可编程控制器 重放攻击 脆弱性
锅炉作为一种重要的工业生产设备,在化工、发电以及人们的日常生活中起着至关重要的作用。近几年,随着对工业生产要求的不断提高,锅炉作为工业过程中重要的上游动力设备,也正向着大容量、多参数、高效率的方向快速进步。因此,保证锅炉的运行安全,意义重大。
但随着计算机技术、通信技术和控制技术的发展,传统的控制领域已向网络化方向高速发展。尤其以“震网”病毒为首的几起工控信息安全事件的发生,使得工控系统安全得到了国家有关部门的高度重视。为引起相关从业人员对工控信息安全的重视,本文通过对基于西门子S7-300可编程逻辑控制器(Programmable Logic Controller,PLC)的锅炉控制系统进行针对性的模拟网络攻击,来分析PLC这一常见的控制器的安全隐患,并模拟工控系统信息安全脆弱性可能带来的危害。
1 锅炉控制系统(如图1)
1.1 锅炉控制系统介绍
锅炉系统(包括炉膛、油箱和水箱)作为被控对象,由西门子S7-300PLC等现场工业控制器采集锅炉系统的所有数字量、模拟量信号,完成对锅炉系统的闭环控制。同时,在该控制系统中,工业监控服务器通过工业以太网与现场控制器通讯,监控锅炉的运行状态和修改运行参数。
本系统的控制器主要由西门子S7-300 PLC、ABB AC-500 PLC及北京安控Super32-L RTU组成。其中,S7-300 PLC将对锅炉主体完成全部的控制功能,包括对锅炉进水量、进油量、汽包水位和压力等的控制;安控Super32-L RTU完成对水箱的控制功能,通过读取水箱内部实时水位作出补水、告警等功能;ABB AC-500 PLC完成对油箱的控制功能,通过对其油箱内部实时油位作出进油、告警等功能。
锅炉控制系统网络结构图如图2所示。
1.2 控制系统软件设计(如图3)
在本文介绍的控制系统中,西门子S7-300 PLC负责了对锅炉燃烧状态的控制,我们将对其进行基于网络的信息安全攻击测试,因此,S7-300 PLC是我们研究的重点。
S7-300是德国西门子公司生产的可编程控制器(PLC)系列产品之一,在国内外各工业领域都有广泛的应用。其中,在我国的水利、炼化等领域的关键控制系统中更是起到了核心控制器的作用。S7-300系列PLC采用了模块化结构设计,各种单独模块之间可进行广泛组合和扩展,包括导轨、电源模块、CPU模块、接口模块、信号模块、功能模块等,在提升其技术开放性的同时也带来了一定的安全隐患。现在,越来越多的控制方案会选择将PLC与从设备或现场仪表的通信通过现场总线、与上位机系统的通信通过工业以太网进行,这便使得通过以太网对PLC等工业控制设备进行攻击成为可能。
在本系统中,S7-300 PLC主要负责锅炉本体控制方案的实现。其对锅炉本体的控制可分为:(1)对汽包水位的PID控制;(2)对汽包压力的PID控制;(3)对紧急停车及复位的控制;(4)对锅炉燃烧、停炉的时序控制,所有控制的状态由S7-300 PLC通过工业以太网传送到上位机的WINCC监控界面中。
控制方案的软件实现由西门子编程软件STEP7完成,西门子STEP7是用于SIMATIC S7系列PLC创建可编程逻辑控制程序的标准软件。用户程序由用户在STEP7中生成,然后将其下载到PLC中,用户程序可包含处理用户特定的自动化任务所需要的所有功能。
2 网络攻击
2.1 攻击原理
本节将介绍锅炉控制系统中对西门S7-300 PLC的模拟网络攻击,笔者将通过对完全面向市场开放的工控软硬件进行试验分析,获取可被利用的通信数据,从而在锅炉控制系统中进行重放攻击,使之造成一定的恶意破坏效果。
重放攻击(Replay Attacks)是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的。这种攻击会不断恶意或欺诈性地重复一个有效的数据传输,重放攻击可以由发起者,也可以由拦截并重发该数据的敌方进行。在本实验中,攻击者利用网络监听或者模拟环境重现获取相应的认证凭据,之后再把它重新发给通信双方,即使两者通信中关键数据进行了加密,但是仍防止不了重放攻击发生。
2.2 攻击环境
本文中,锅炉控制系统的核心控制器S7-300 PLC的IP地址为192.168.0.9,其余设备IP地址分配如表1所示。对于攻击者而言,IP地址可以通过入侵到工厂网络后进行嗅探发现,亦可通过社会工程学手段间接获取。实际环境中,攻击者甚至可以无需知晓IP地址,在发起网络攻击时对所有可能是控制设备的IP地址进行无差别的试探攻击来达到目的。本文在介绍攻击过程前设定一个攻击者已掌握目标控制系统所处网络环境的前提,即笔者事先已掌握了锅炉控制系统内各设备的网络参数。
2.3 攻击过程
2.3.1 复现攻击场景
S7-300 PLC及STEP7编程软件为市面上可轻易获得的工控软硬件,笔者预先在实验室对PLC与上位机软件通信的环境进行模拟,抓取影响关键操作、可重放的网络数据流。笔者发现STEP7在为S7-300 PLC下装组态时会强制令PLC的CPU进入停止状态,即状态由RUN MODE切换至STOP MODE。笔者多次试验上述操作,确认这段TCP会话数据流没有采用身份认证措施。因此,若能够伪装成控制系统内的上位机重放这段会话,就有可能产生将PLC“关机”的效果。endprint
2.3.2 攻击准备
攻击者编写用于重放该段网络数据流的脚本工具,于实验室环境中对PLC进行重放攻击,成功实现了“远程关闭PLC”这一行为。如图4所示,TCP协议所承载的应用层数据未采用相应的认证措施,任何与PLC进行这段TCP会话的设备均可使PLC停止工作。
2.3.3 攻击实施
实际情况中,攻击者需要将所编写的“恶意代码”带入到工控系统的网络中。笔者制作含有所编写的攻击脚本的小型便携式设备,从物理上接近控制系统直接通过接入以太网将恶意代码植入到网络中。恶意代码开始运作后,第一步要获取与S7-300 PLC的“通信权”,如果该PLC在组态编程时设定了访问控制列表,则可以对整个工控网络进行ARP欺骗,将自己伪装成处于该访问控制列表中的主机。与PLC可建立TCP连接后,直接重放实验室中获得的TCP数据流。
2.3.4 攻击后果
与实验室试验的结果相同,锅炉控制系统中的S7-300 PLC受到网络攻击后,其运行状态从RUN MODE切换至STOP MODE,上位机WINCC监控画面丢失了所有S7-300 PLC的监控数据响应,S7-300 PLC对于炉膛内部的闭环控制也瞬间停止,炉膛内部水位、温度等参数处于不可控的状态。
由于本次模拟攻击是在受控环境中实施的,攻击发生后及时为PLC重启,未产生任何物理破坏与财产损失。在实际工况中,即使发生了针对锅炉控制系统的网络攻击,由于联锁保护装置的存在,产生极其严重的破坏的可能性较低,但因为停工可能会造成一定程度上的财产损失。
2.4 结论分析
本文所进行的模拟攻击利用了S7-300 PLC与上位机编程软件STEP7间通信过程中身份认证机制不完善的脆弱点,以重放攻击的形式令PLC工作停止。使用同样的手段,笔者也能使PLC从“停止”模式切换至“运行”模式或“清除”模式,致使PLC工作异常。
经笔者验证,除了西门子S7系列PLC有此类问题存在,对于其他厂商的控制器也能通过这种手段经由网络进行攻击。产生此类问题的根源是设备厂商在研制承载于以太网的设备间通讯协议时,没有很完整地考虑协议的安全性。因此,其脆弱性可以说是由设备自身带来的。一个有效地防范此类脆弱性带来的危害的办法是:不影响工控系统可用性的前提下,在系统网络上采取针对网络数据流量的审计、监控措施,在攻击的初期阶段即及时发现异常嗅探、ARP欺骗等行为的发生,在攻击发生时采用“白名单”策略过滤异常工控协议数据,保证整个控制系统稳定运行。
3 结语
本文对基于西门子S7-300 PLC锅炉控制系统进行了分析,提出了一种针对PLC的网络攻击手段,并详述了攻击过程以及产生的后果。此类网络攻击可以对多种关键基础设施中的各类PLC产生效果,对实际工况造成一定的影响。因此,本文的研究工作为工业控制系统的信息安全研究提供了一种思路和方法,同时也旨在引起相应业内人士的重视和思考。
参考文献:
[1]王亚迪.基于Matlab/RTW的锅炉控制系统硬件在环设计[D].上海:华东理工大学,2013.
[2]廖常初.S7-300/400 PLC应用技术[M].北京:机械工业出版社,2005:8.
[3]温彦文,吴春生.可编程控制器(PLC)在锅炉自动控制系统中的应用与实践[J].北京:中国科技纵横,2010
[4]周强泰.锅炉原理[M].北京:中国电力出版社,2009:9.endprint
2.3.2 攻击准备
攻击者编写用于重放该段网络数据流的脚本工具,于实验室环境中对PLC进行重放攻击,成功实现了“远程关闭PLC”这一行为。如图4所示,TCP协议所承载的应用层数据未采用相应的认证措施,任何与PLC进行这段TCP会话的设备均可使PLC停止工作。
2.3.3 攻击实施
实际情况中,攻击者需要将所编写的“恶意代码”带入到工控系统的网络中。笔者制作含有所编写的攻击脚本的小型便携式设备,从物理上接近控制系统直接通过接入以太网将恶意代码植入到网络中。恶意代码开始运作后,第一步要获取与S7-300 PLC的“通信权”,如果该PLC在组态编程时设定了访问控制列表,则可以对整个工控网络进行ARP欺骗,将自己伪装成处于该访问控制列表中的主机。与PLC可建立TCP连接后,直接重放实验室中获得的TCP数据流。
2.3.4 攻击后果
与实验室试验的结果相同,锅炉控制系统中的S7-300 PLC受到网络攻击后,其运行状态从RUN MODE切换至STOP MODE,上位机WINCC监控画面丢失了所有S7-300 PLC的监控数据响应,S7-300 PLC对于炉膛内部的闭环控制也瞬间停止,炉膛内部水位、温度等参数处于不可控的状态。
由于本次模拟攻击是在受控环境中实施的,攻击发生后及时为PLC重启,未产生任何物理破坏与财产损失。在实际工况中,即使发生了针对锅炉控制系统的网络攻击,由于联锁保护装置的存在,产生极其严重的破坏的可能性较低,但因为停工可能会造成一定程度上的财产损失。
2.4 结论分析
本文所进行的模拟攻击利用了S7-300 PLC与上位机编程软件STEP7间通信过程中身份认证机制不完善的脆弱点,以重放攻击的形式令PLC工作停止。使用同样的手段,笔者也能使PLC从“停止”模式切换至“运行”模式或“清除”模式,致使PLC工作异常。
经笔者验证,除了西门子S7系列PLC有此类问题存在,对于其他厂商的控制器也能通过这种手段经由网络进行攻击。产生此类问题的根源是设备厂商在研制承载于以太网的设备间通讯协议时,没有很完整地考虑协议的安全性。因此,其脆弱性可以说是由设备自身带来的。一个有效地防范此类脆弱性带来的危害的办法是:不影响工控系统可用性的前提下,在系统网络上采取针对网络数据流量的审计、监控措施,在攻击的初期阶段即及时发现异常嗅探、ARP欺骗等行为的发生,在攻击发生时采用“白名单”策略过滤异常工控协议数据,保证整个控制系统稳定运行。
3 结语
本文对基于西门子S7-300 PLC锅炉控制系统进行了分析,提出了一种针对PLC的网络攻击手段,并详述了攻击过程以及产生的后果。此类网络攻击可以对多种关键基础设施中的各类PLC产生效果,对实际工况造成一定的影响。因此,本文的研究工作为工业控制系统的信息安全研究提供了一种思路和方法,同时也旨在引起相应业内人士的重视和思考。
参考文献:
[1]王亚迪.基于Matlab/RTW的锅炉控制系统硬件在环设计[D].上海:华东理工大学,2013.
[2]廖常初.S7-300/400 PLC应用技术[M].北京:机械工业出版社,2005:8.
[3]温彦文,吴春生.可编程控制器(PLC)在锅炉自动控制系统中的应用与实践[J].北京:中国科技纵横,2010
[4]周强泰.锅炉原理[M].北京:中国电力出版社,2009:9.endprint
2.3.2 攻击准备
攻击者编写用于重放该段网络数据流的脚本工具,于实验室环境中对PLC进行重放攻击,成功实现了“远程关闭PLC”这一行为。如图4所示,TCP协议所承载的应用层数据未采用相应的认证措施,任何与PLC进行这段TCP会话的设备均可使PLC停止工作。
2.3.3 攻击实施
实际情况中,攻击者需要将所编写的“恶意代码”带入到工控系统的网络中。笔者制作含有所编写的攻击脚本的小型便携式设备,从物理上接近控制系统直接通过接入以太网将恶意代码植入到网络中。恶意代码开始运作后,第一步要获取与S7-300 PLC的“通信权”,如果该PLC在组态编程时设定了访问控制列表,则可以对整个工控网络进行ARP欺骗,将自己伪装成处于该访问控制列表中的主机。与PLC可建立TCP连接后,直接重放实验室中获得的TCP数据流。
2.3.4 攻击后果
与实验室试验的结果相同,锅炉控制系统中的S7-300 PLC受到网络攻击后,其运行状态从RUN MODE切换至STOP MODE,上位机WINCC监控画面丢失了所有S7-300 PLC的监控数据响应,S7-300 PLC对于炉膛内部的闭环控制也瞬间停止,炉膛内部水位、温度等参数处于不可控的状态。
由于本次模拟攻击是在受控环境中实施的,攻击发生后及时为PLC重启,未产生任何物理破坏与财产损失。在实际工况中,即使发生了针对锅炉控制系统的网络攻击,由于联锁保护装置的存在,产生极其严重的破坏的可能性较低,但因为停工可能会造成一定程度上的财产损失。
2.4 结论分析
本文所进行的模拟攻击利用了S7-300 PLC与上位机编程软件STEP7间通信过程中身份认证机制不完善的脆弱点,以重放攻击的形式令PLC工作停止。使用同样的手段,笔者也能使PLC从“停止”模式切换至“运行”模式或“清除”模式,致使PLC工作异常。
经笔者验证,除了西门子S7系列PLC有此类问题存在,对于其他厂商的控制器也能通过这种手段经由网络进行攻击。产生此类问题的根源是设备厂商在研制承载于以太网的设备间通讯协议时,没有很完整地考虑协议的安全性。因此,其脆弱性可以说是由设备自身带来的。一个有效地防范此类脆弱性带来的危害的办法是:不影响工控系统可用性的前提下,在系统网络上采取针对网络数据流量的审计、监控措施,在攻击的初期阶段即及时发现异常嗅探、ARP欺骗等行为的发生,在攻击发生时采用“白名单”策略过滤异常工控协议数据,保证整个控制系统稳定运行。
3 结语
本文对基于西门子S7-300 PLC锅炉控制系统进行了分析,提出了一种针对PLC的网络攻击手段,并详述了攻击过程以及产生的后果。此类网络攻击可以对多种关键基础设施中的各类PLC产生效果,对实际工况造成一定的影响。因此,本文的研究工作为工业控制系统的信息安全研究提供了一种思路和方法,同时也旨在引起相应业内人士的重视和思考。
参考文献:
[1]王亚迪.基于Matlab/RTW的锅炉控制系统硬件在环设计[D].上海:华东理工大学,2013.
[2]廖常初.S7-300/400 PLC应用技术[M].北京:机械工业出版社,2005:8.
[3]温彦文,吴春生.可编程控制器(PLC)在锅炉自动控制系统中的应用与实践[J].北京:中国科技纵横,2010
[4]周强泰.锅炉原理[M].北京:中国电力出版社,2009:9.endprint