基于轨道交通控制系统网络信息安全仿真分析*
2018-01-29莫嘉永林俊南
徐 超,莫嘉永,林俊南
(广州市信息安全测评中心,广东 广州 510635)
0 引言
目前,工业控制系统主要采用数据采集与监控系统(SCADA)、分布式控制系统(DCS)、可编程逻辑控制器(PLC)、远程终端单元(RTU)和智能电子设备(IED)等控制设备,被广泛应用于水利、化工、石油、运输等核心工业领域[1-2]。
随着“震网”事件、乌克兰电力系统攻击事件、蜻蜓组织等黑客行为被披露,工业控制系统网络的信息安全问题越来越受到人们关注,如何对工业控制系统进行管理和防护,成为了相关管理层必须面对的重要问题。本文针对近期国内外工业控制系统信息安全事件进行分析,并在已建成的模拟工业控制实验系统上进行工业控制系统信息安全攻防实验,在此基础上给出工业控制领域信息安全防护的建议。
1 工业控制系统信息安全趋势
随着“两化融合”和工业4.0的逐步推进,信息和网络技术在运输和制造业系统等工业控制领域得到了广泛的应用,不仅极大地提高了生产效率,同时也节约了成产成本。为实现工业控制系统和传统信息系统之间的信息分享,工业控制系统也逐渐打破了以往的封闭性,采用标准、通用的通信协议及软硬件系统,甚至有些工业控制系统通过某些方式连接到互联网等公共网络中[3]。这样容易使得隐藏在工业控制系统中的漏洞被黑客利用而发起攻击,导致企业设备乃至国家关键基础设施都会遭到破坏。
通过中国国家信息安全漏洞共享平台所发布的漏洞信息,统计2010年至2017年7月工业控制系统公开漏洞数量,如图1所示,从2010年开始,每年发现的漏洞数量持续保持着高位,在最近3年又开始呈现出上升势头。
图1 2010年~2017年7月公开工控漏洞数量
分析美国ICS-CERT(Industrial Control Systems Cyber Emergency Response Team)最近几年发布的ICS-CERT年度回顾报告[4-10],统计2010年至2016年公开全球工控安全事件数量,如图2所示。通过对图1和图2进行分析,工控安全事件也随着工控漏洞发现数量增加而持续上升,影响范围也越来越广,从而也说明工控漏洞的危险和影响力越来越大。
图2 2010年-2016全球工业控制系统安全事件数量
谈及工业控制系统信息安全,必须提及到震网病毒(Stuxnet),2010年6月震网病毒被首次发现,震网病毒是第一个专门被设计定向攻击真实世界中关键基础设施的“蠕虫”病毒。震网病毒首先通过外部主机感染伊朗工程师的U盘,当工程师将感染病毒的U盘插入到伊朗核工业内部主机后,病毒利用Windows的快捷方式解析漏洞、RPC远程执行漏洞和打印机后台程序服务漏洞,迅速地在互联网主机之间传播;最后抵达安装了WinCC软件的主机,攻击伊朗铀浓缩离心机,导致设备出现故障[11-12]。根据塞门特克公示统计,全球约45 000个网络被震网病毒感染,其中60%的受害主机位于伊朗境内[13]。目前该病毒已经变异和发展,2011年主流安全厂商均宣称发现了震网二代蠕虫病毒,又名Duqu。2017最新发布CVE-2017-8464漏洞与震网病毒所使用漏洞极为相似,黑客可以通过U盘和网络共享等途径触发漏洞,完全控制用户系统。
在2016年,全球各地发生了多起工业控制系统网络安全事故,工业控制系统网络安全影响愈演愈烈。如2016年1月,以色列能源与水力基础设施部部长Yuval Steinitz宣称,该国电力供应系统受到重大网络攻击侵袭;2016年3月,名为“洋葱狗”的黑客组织被360团队披露,该组织长期对亚洲国家的能源、交通等基础行业进行渗透和情报窃取;2016年4月,美国水处理和流控操作系统遭黑客入侵,经事后分析该自来水控制系统的安全较为脆弱,许多关键漏洞都被公开暴露在互联网上;2016年4月,德国核电站计算机系统被检测出恶意程序,该恶意程序是在核电站负责燃料装卸系统的Block B网络中发现的;2016年6月,针对全球超过30个国家逾130家工业领域的企业开展工业间谍活动,这次行程被称为“食尸鬼行动”;2016年8月伊朗多个重要石化工厂被恶意软件攻击;2016年10月,北美地区Dyn公司遭遇最大DDos攻击,由恶意软件Mirai控制的僵尸网络,针对网络域名服务公司Dyn发起DDos攻击,导致这些公司大面积网络中断[14]。
与传统的IT信息系统不同,工业控制系统在设计时注重实用性,往往会忽略安全性,导致工业控制系统中不可避免地存在安全漏洞。为了降低和避免漏洞对工业控制系统的影响,急需对已发现的中高危漏洞进行修补和对系统源代码进行审计。为了保证工业控制系统的安全稳定运行,针对工业控制系统的信息安全问题研究和防护方案制定迫在眉睫。
2 基于轨道交通控制系统实验平台搭建
为了能更好地了解和研究工业控制系统存在的信息安全问题及解决方案的验证,搭建基于西门子S7-300 PLC和WinCC的模拟工业控制实验系统,作为分析工业以太网通信协议和研究工业控制网络信息安全攻防实验平台。轨道交通控制系统是工业控制系统的典型行业应用,具有广泛的普遍性,完整的轨道交通控制系统主要包括管理层、控制层和现场层,控制网络是以自动运行控制系统为核心,以工业以太网连接各大业务系统,最终和互联网接通。
该模拟工业控制实验系统模拟了实际列车运行系统的控制功能,S7-300是模块化的中小型PLC,适合用于中等控制性能的控制要求,当系统规模扩大和更为复杂时,可以增加模块,对PLC进行扩展,简单实用的分布式结构和强大的通信联网能力,使其应用十分灵活;WinCC被用于实现过程的可视化、信息化、智能化,为操作人员提供友好的人机界[15-16]。通过组建通信环网,上位机与下位机S7-300 PLC实现数据通信,对列车和控制点进行调节和监控,为工业控制系统信息安全技术研究提供模拟实验环境。整个模拟实验系统分为管理层、控制层和现场层三个层次,如图3所示。其中,管理层包括工程师站和操作员站,作为上位机,以实现整个系统管理、数据处理和存储、人机交互等功能;控制层包括S7-300 PLC,作为下位机执行对模拟轨道交通沙盘的控制和监视任务;现场层包括沙盘传感器,通过接收控制层的控制信号和沙盘传感器反馈的信号,完成对列车和控制点的控制功能。
图3 模拟轨道交通控制实验系统网络结构图
模拟实验系统使用到了两种通信网络:以太网和Profibus DP现场总线网络。以太网是实现工程师站和操作员站对S7-300 PLC之间通信,选择普通网卡通过TCP/IP连接S7-300 PLC的方式。Profibus DP现场总线实现S7-300 PLC和模拟轨道交通沙盘之间的通信,使用ET200远程I/O子站,IM151-1接口模块通过Profibus DP现场总线与S7-300 PLC进行数据通信和交换。
3 模拟攻击实验
本节主要介绍模拟黑客在已建成的模拟工业控制实验系统上对工业控制实验系统发起的攻击行为,并验证对工业控制系统攻击的有效性和真实性,从而更好地研究工控系统防护方案部署的有效性和可用性。
模拟轨道交通控制实验系统使用到了两种通信网络:以太网和Profibus DP现场总线网络。以太网是实现工程师站和操作员站对S7-300 PLC之间的通信,选择普通网卡通过TCP/IP连接S7-300 PLC的方式。Profibus DP现场总线提供S7-300 PLC和模拟轨道交通沙盘之间的通信,使用ET200 远程I/O子站,IM151-1接口模块通过Profibus DP现场总线与S7-300 PLC进行数据通信和交换。目前,工业控制系统越来越多地与IT系统及互联网相连通,同时由于工业控制系统安全机制的缺失,黑客很容易针对这些系统和设备发起攻击。黑客利用工具攻击工业控制系统管理层和控制层,如密码猜测攻击、后门设置、嗅探、地址欺骗和病毒U盘等,导致整个控制系统混乱甚至停机的情况。
模拟攻击方式是攻击者利用Windows的MS17-010漏洞上传远程控制木马,MS17-010漏洞即“永恒之蓝”勒索蠕虫病毒所使用的漏洞,对操作员的操作进行桌面远程监控,再通过ARP欺骗,实现对上位机经过以太网向下位机S7-300 PLC发送数据的流量进行抓包,记录操作员每次操作时抓包软件抓取到的指令数据包,然后根据记录到的指令,开发一个恶意攻击程序,实现对该模拟控制系统实施攻击的行为。
首先,利用MS17-010漏洞,上传远程控制木马,通过大灰狼远程控制软件V8.89,对上位机的操作进行桌面远程监控。然后再将攻击笔记本接入模拟实验系统内网,利用EvilFoca工具,扫描出局域网内所有的设备IP地址,同时可以监控到发送控制指令的上位机的IP地址和接受控制指令的下位机S7-300 PLC 的IP地址,利用Evil FOCA软件对操作员站的MAC地址表进行更改,并实施ARP欺骗,如图4所示。
图4 扫描出模拟系统中联网设备
成功实施远程监控和ARP欺骗后,在攻击笔记本上运行网络数据包捕获工具SmartSniff V2.1.1,使操作员站发送给下位机的指令数据包先被转送到攻击笔记本,然后再由攻击笔记本将数据包发送给下位机S7-300 PLC。同理,下位机S7-300 PLC到操作员站的应答数据包也会先经过攻击笔记本,再由攻击笔记本发给操作员站。如图5所示,第①部分数据是操作员站向S7-300 PLC发送指令数据包,第②数据是S7-300 PLC收到指令数据后的应答。
图5 捕获工程师站发送的指令数据
利用捕获的指令数据包,可针对该模拟实验系统开发恶意攻击程序。恶意攻击程序采用Python 2.7版本进行开发,攻击笔记本需要与S7-300 PLC建立连接,并向S7-300 PLC发送攻击指令,连接通信代码如下所示:
s=socket.socket()
s.connect((ip, port))
s.send(create_connect_payload)
time.sleep(0.2)
s.send(setup_communication_payload)
time.sleep(0.2)
s.send(payload)
time.sleep(0.2)
其中,IP为S7-300 PLC的IP地址,port为端口号,S7-300 PLC本地端口为102,create_connect_payload为连接S7-300 PLC指令,setup_communication_payload为S7-300 PLC通信指令,payload为网络数据包,捕获到操作员站向S7-300 PLC发送的指令数据包,如下所示为打开岔道的指令:
paload=0300000702f0000300002402f080320100003500000e00050501120a100100010000830000170003000101′.decode(′hex′)
在攻击笔记本上,运行恶意攻击程序,输入需要攻击目标IP和端口,根据提示选择攻击控制点,对S7-300 PLC实施攻击测试,S7-300 PLC的 CUP槽号为02,如发送打开岔道的指令,模拟轨道交通控制实验系统上岔道的相应继电器会被打开,外轨列车通过岔道进入内轨轨道上运行,最后两列列车发生追尾事故,攻击输入如图6所示。
图6 恶意攻击程序输入
此外,利用漏洞和捕获的数据制作病毒U盘,还可实现对该模拟控制系统的两种不同的攻击实验:
(1)利用CVE-2017-8464漏洞,制作病毒U盘,只要运行感染病毒的U盘,即可成功利用该漏洞获取到与本地用户相同的用户权限,导致该模拟系统可被远程操作进行控制。
(2)根据捕获到的数据,针对该模拟控制实验系统定制病毒U盘,操作员站或工程师站被插入病毒U盘,病毒程序自动运行,通过与S7-300 PLC 建立通信连接后,发生攻击指令,实现了对该模拟系统的攻击,导致该模拟系统数据异常;还可利用U盘自启动攻击脚本,导致S7-300 PLC的CPU被关闭,使模拟系统停止运行,同样可以实现对该模拟系统的攻击。
从以上模拟攻击验证可知,工业控制系统的安全问题主要具有以下几点:工业控制系统通信协议Modbus TCP/IP 被广泛应用到工业控制通信中,但该层缺乏保护机制,通信协议的安全性相对脆弱;工业控制系统管理层和控制层大量使用了PC服务器和终端产品,操作系统使用大量的通用系统,将操作系统上的漏洞引入到工业控制系统;使用U盘和电子邮件不当,导致病毒在局域网中传播,如震网病毒就是充分利用了Windows操作系统和西门子Step7的漏洞。
4 防护安全建议
传统IT系统信息安全将保密性放在首位,并配以必要的访问控制,防止用户信息被盗取,完整性和可用性紧跟其后。对于工业自动化控制系统而言,目标优先级的顺序则正好相反。工业控制系统信息安全首要考虑的是所有系统部件的可用性,完整性则在第二位,保密性通常都在最后考虑。同时,工业控制系统具有通信实时性强、系统不轻易重启、系统不随意更新和打补丁等特点[17-19]。所以在考虑工业控制系统网络信息安全防护时,需要综合考虑传统IT系统和工业控制系统特点,加以防护。
通过结合传统IT系统和工业控制系统特点与本文实现的模拟攻击实验和工业控制系统安全指南[20],对工业控制系统领域进行安全防护及信息安全测评的建议主要有以下几点:
(1)对整体网络结构进行分析,分析可能通过传统IT系统网络向工业控制系统网络发起攻击的途径,在这些攻击路径上设置安全防护,建议在传统IT系统网络和工业控制网络连接之间使用路由器和高性能防火墙结合方式。路由器配置在防火墙之前,路由器提供数据包过滤的服务,这样可以利用处理数据包性能快速的路由器来处理传统IT系统网络传入的大量数据包,降低防火墙的负荷,让防火墙提供更深度检测,严格访问控制,将访问控制细化到端口级;还可以通过划分网络区域,加强对每个区域主机的安全加固。
(2)增强主机的安全性,建议使用高安全性的主机杀毒软件和定期更新操作系统补丁,并且定期进行系统测试,本次使用的Windows的MS17-010漏洞上传远程控制软件,可以轻易绕过市面上主流的杀毒软件;同时删除或禁用不必要服务和程序,禁用远程维护功能;对内网主机使用ARP MAC地址绑定,防止中间人攻击;加强对工业控制系统中的工程师站、操作员站和服务器等主机的USB接口管理。使用USB安全管理设备,能有效地提高USB攻击防护能力,也能为用户提供U盘行为管理能力,未经过认证的U盘不具备任何权限,认证通过的U盘还可以规定其使用范围。同时,对不使用或未加安全防护的USB接口进行及时封堵,这样能有效防止已感染病毒U盘对工业控制系统的攻击。
(3)增加防范恶意代码和入侵措施,保证工业控制系统文件不受病毒的影响,及时发现恶意入侵的行为。建议在工作站和服务器等设备安装工业控制系统防病毒软件,并定期进行升级更新和系统补丁升级等;增加入侵检测系统IDS(“Intrusion Detection Systems”),IDS是一个旁路监听设备,部署在工业控制系统网络与防火墙之间的共有网络中,通过IDS的监控,能识别出恶意入侵,如新端口被打开、系统配置被改变等,同时也可以在工业核心控制单元前端部署可以对Modbus、S7、Ethernet/IP和OPC等主流工业控制系统协议进行深度分析和过滤的防护设备。
(4)制定工业控制网络信息安全管理制度,明确工控系统信息安全管理目标,强化信息安全意识,落实信息安全责任制。建议建立完整的工业控制系统网络信息安全管理方案、策略和计划等,实施网络分级分域管理,严格控制域间隔离和访问控制策略;合理分类设置账户权限,以最小特权原则分配账户权限,确保可能的事故造成的损失最小化;成立责任部门,明确资产责任人,建立资产使用权,制定资产在生产、调试、运行、维护和报废等过程中的处置方法;完善工控系统信息安全监控和预警机制,制定应急预案,提高对工业控制系统突发信息安全事件的应急响应能力,做到“及时发现问题,及时解决问题”。
5 结论
工业控制系统网络信息安全形势愈发严峻。本文分析近期发生的工业控制系统网络信息安全事件,同时在实验模拟轨道交通控制实验系统上进行模拟攻击实验,并给出针对工业控制领域信息安全防护的建议。下一步,将深入研究分析国内外工业控制系统安全防护相关政策标准,继续进行工业控制系统网络信息安全模拟攻防实验,力求将工业控制系统安全防护理论和攻防实践相结合,探索对工业控制系统网络信息安全行之有效的防护方案。
[1] GB/T30976.1~.2-2014工业控制系统信息安全[S].北京:标准出版社,2014.
[2] 彭勇,江常青,谢丰,等. 工业控制系统信息安全研究进展[J]. 清华大学学报(自然科学版),2012,52(10):1396-1408.
[3] 李鸿培,于旸,忽朝俭,等.工业控制系统及其安全性研究报告[R].北京:北京神州绿盟信息安全科技有限公司,2013.
[4] NCCIC/ICS-CERT. Year in Review FY 2010[EB/OL].(2017-08-31)[2017-11-20]https://icscert.us-cert.gov/Year-Review-2010.
[5] NCCIC/ICS-CERT. Year in Review FY 2010[EB/OL].(2017-08-31)[2017-11-20]https://icscert.us-cert.gov/Year-Review-2011.
[6] NCCIC/ICS-CERT. Year in Review FY 2010[EB/OL].(2017-08-31)[2017-11-20]https://icscert.us-cert.gov/Year-Review-2012.
[7] NCCIC/ICS-CERT. Year in Review FY 2010[EB/OL].(2017-08-31)[2017-11-20]https://icscert.us-cert.gov/Year-Review-2013.
[8] NCCIC/ICS-CERT. Year in Review FY 2010[EB/OL].(2017-08-31)[2017-11-20]https://icscert.us-cert.gov/Year-Review-2014.
[9] NCCIC/ICS-CERT. Year in Review FY 2010[EB/OL].(2017-08-31)[2017-11-20]https://icscert.us-cert.gov/Year-Review-2015.
[10] NCCIC/ICS-CERT. Year in Review FY 2010[EB/OL].(2017-08-31)[2017-11-20]https://icscert.us-cert.gov/Year-Review-2016.
[11] 张敏,张五一,韩桂芬. 工业控制系统信息安全防护体系研究[J]. 工业控制计算机,2013,26(10):25-27.
[12] 王伟. 加强工业控制系统安全防护的认识与思考[J]. 中国信息化,2014(9):71-74.
[13] 许子先,罗建,孟楠,等. 工业控制系统组态软件安全研究[J]. 信息网络安全,2017(7):73-79.
[14] 侠名.工业控制系统及其安全性研究报告[R].北京:北京匡恩网络科技有限责任公司,2016.
[15] 廖常初.S7-300/400应用技术[M].北京:机械工业出版社,2005:12-14;
[16] 李军. WinCC组态技巧与技术问答[M].北京: 机械工业出版社,2013.
[17] 褚健. 重中之重:工业控制系统安全的盛世危言[J]. 科技导报,2012,30(25):15-17.
[18] 王小山,杨安,石志强,等. 工业控制系统信息安全新趋势[J]. 信息网络安全,2015(1):6-11.
[19] 王昱镔,陈思,程楠. 工业控制系统信息安全防护研究[J].信息网络安全,2016(9):35-39.
[20] STOUFFER K,FALCE J,SCARFONE K. Guide to Industrial Control Systems (ICS) Security [M].National Institute of Standards & Technology, 2011.