更全的杂志信息网

从Modbus风险谈工业控制系统协议防护

更新时间:2016-07-05

随着两化融合进程的不断加速,工控系统产品越来越多地应用于电力、冶金、水利、石油、天然气、化工、交通运输、制药等领域。近年来,更是在航天装备、航空导弹、舰船火炮等大型制造领域崭露头角。工控系统已经与国计民生紧密结合,其信息安全问题直接关系到国家政权、主权、人民福祉、经济社会可持续发展和保障持续安全状态的能力。工控系统的安全直接关系到国家安全,应该站在国家安全战略的层面关注其信息安全问题。

1.要把科学化的社会主义核心价值体系落实在实际行动上。政治路线确定之后,干部就是决定的因素。人类社会阶级分化之后,社会制度、社会原则、社会运行的组织者和实施者,就以管理者和领导者的身份面对人民大众。如果他们以自身的正确行为来示范他人遵循社会公共价值体系,众人就会服气而且服从;否则,既不服,而又仿效,社会必乱,国家必亡!所以孔子说:“政者,正也。子帅以正,孰敢不正……其身正,不令而行,其身不正,虽令不从。”[6]236建设中国特色社会主义现代化国家,就必须对党的各级领导干部提出新要求,使他们具备更高的思想素质和道德标准。

一、工控系统信息安全概述

工控系统信息安全问题来源于其设计理念。在设计之初,由于资源受限、非面向网络等原因,为满足工业设计实施的实时、稳定需求,所有相关的固件、操作系统、数据库、应用程序和通信网络都注重系统的可用性和完整性,几乎没有考虑安全性或者保密性,由图1可知[1]

图1 工控系统和通用信息系统实现目标优先级的比较

随着技术发展和应用需求变化,工控系统越来越多地采用通用通信网络设施及技术标准构建,并且与企业网的互联需求日益迫切。通过网络互联,企业管理层可以实时了解调整工控系统运行状态,技术人员能够轻松实现科研数据到工业实施的成果转化。由此,源于封闭性设计的工控系统面临了来自内部和外部的双重安全挑战,安全漏洞层出不穷。

时至今日,工控系统信息安全问题的解决还仅仅停留在建立纵深防御体系这一整体互联防御的范畴,针对其自身的安全缺陷的防护设计还没有得到实施。以资产为研究对象,工控系统信息安全涉及操作系统、实时数据库、应用程序和通信网络4个方面;以安全漏洞为研究对象,则涉及通信协议漏洞、操作系统漏洞、安全配置和运维管理漏洞、防病毒及恶意代码漏洞、应用程序漏洞5个类别。

其中,通信协议漏洞又分为两类:一类是用于外部网络或企业管理层等与MES层或管理监控层通信的协议[2],通常采用TCP/IP协议,用以满足企业管理层或技术人员对历史数据库(镜像)或信息管理系统的控制或查询需要;另一类是用于控制层(客户端)与现场设备(服务端)间通信的协议,该类协议能够为服务端传递指令,为客户端传递数据和状态消息,是主机间通信的专门语言,是域内协议。多年来,多个标准化组织试图通过协议标准化的工作规范域内协议的描述,但确实由于应用领域和适用现场设备的不同,目前仍存在大量不同版本的域内协议,比如OPC Classic协议、Modbus协议族、EtherNet/IP-CIP协议、DNP3.0协议、FF协议、Siemens S7协议、iec60870协议、Profinet协议等。

域内协议有一些共性,比如普遍缺乏物理层的描述,能够适应不同速率的串行或以太网传输需求;大部分都已经与TCP/IP协议进行融合,同时支持串行总线和以太网等不同方式的多点通信;支持预定义和自定义功能码的配合使用,长度可调的数据包格式和宽松的校验机制,使得不同厂商能够为不同工业场景需求研制专门的现场设备(如PLC)。解决通信设备间域内协议的安全问题是本文关注的重点。

二、Modbus协议原理与面临的安全风险

绝大多数域内协议在设计之初,仅仅考虑功能实现、提高效率和可靠性,很少涉及安全性问题。如果将控制层与现场设备间的通信比作传话服务,域内协议就是双方使用的语言,尽管语言类型有很多,甚至还有方言,设计者总能够较好地解决“听得到、听得懂”的问题,但在避免“偏听、重听”等方面却鲜有办法。随着网络的不断发展,误码率和传输速率都大大改善,这使得协议方面的安全缺陷被无限放大。下面就以Modbus协议为例,探讨域内协议面临的安全风险。

划分安全域的方式是纵深防御体系的精髓,对安全域内采用不同的防护策略,安全域间使用边界隔离设备的方式是工控系统协议隔离和监控的有效途径。可以将MES层至现场设备层定义为内部域,企业管理层以外直至互联网定义为外部域。

图2 TCP模式下的Modbus消息模式

(一)数据易被窃听

Modbus协议通信过程中,地址和命令全部采用明文传输,因此数据可以很容易被攻击者捕获和解析,为攻击者提供便利,攻击者不仅能够捕获PLC生产商及型号信息,更能够通过解析明文数据字段,区分控制字段和信息字段,从而得到某个仪表的电气数据,再综合工控系统所在单位性质、相关设备型号特征和电气数据得到整个系统加工成品的关键参数。表1给出了某工件PLC电气数据信息表,从中我们可以得到该工件的环境参数,采用同种方式针对诸如关键武器参数等重要信息实施窃取将会对国家安全产生巨大威胁。

表1 某工件P L C电气Mo d b u s协议数据信息表

协议结构 数 值 信息含义 备 注事物标识符 0 0 0 0 请求/响应识别码 识别码为0协议标识符 0 0 0 0 协议识别码 M o d b u s协议长 度 0 0 2 a 以后字节数量 数量为4 2单元标识符 1 5 连接识别码 识别码为2 1功能码 0 3 数据包功能 读取保持寄存器…… …… ……0 0 0 6 0 0 0 2 当前湿度 湿度6 2%0 0 0 2 0 0 0 8 当前温度 温度2 8%0 0 0 6 0 0 0 2 屏幕显示温度 湿度6 2%0 0 0 2 0 0 0 8 屏幕显示温度 温度2 8%1送风过载 未过载1风机故障 未故障1加湿故障 未故障1湿度监测指示 正常1温度监测指示 正常…… …… ……数 据

(二)数据易被篡改

第三步解决重放攻击和泛洪问题,此类问题解决不难,但应放到最后,因为传统的增加时间戳和会话机制虽然可以有效解决问题,但在有限带宽下增加了通信中断可能性,可以考虑针对某类设备采用在数据段中预留时间戳字段的方式解决开销问题。

工控系统协议加固是解决协议自身安全问题的有效手段,协议的加固应从源头开始,不能盲目。由加固带来的开销将会直接影响工控设备间通信的效率和稳定性,同时也会提升设备兼容成本。由加固带来的指令识别、执行错误,设备宕机甚至系统崩溃,也属于安全事件范畴。因此,必须从系统需求出发进行充分的设计和论证,经过模拟和真实环境的测试后方可逐个模块加以实施。

(2)水稳定性。当沥青路面中存在水时,在温湿循环及重复车辆荷载作用下,使得集料与胶结料之间的黏结力降低,沥青胶结料本身黏聚力下降[2],在重复车辆荷载作用下,导致路面结构性破坏和使用功能降低,并诱发其他病害。因此,本文通过浸水马歇尔试验评价TPS排水沥青混合料的水稳定性,TPS排水沥青混合料水稳定性试验结果如表5所示。

(三)校验不全导致应用程序拒绝服务

Modbus协议帧设计了校验字段,图3为Modbus协议RTU消息帧CRC校验代码。

图3 RTU消息帧CRC校验代码

虽然Modbus协议族对数据长度有限定措施,如采用255、260等上限,但通过上述代码可以看出,工控设备对接收到的Modbus协议数据包没有长度校验,攻击者可以通过直接缩短报文结构当中的长度数值或修改数值并在数据字段尾部添加其他字段的方式,实现非法数据传输,进而导致缓冲区溢出。

(四)TCP/IP协议漏洞的重用

Modbus协议已经可以在通用计算机和通用操作系统上实现,其基于 TCP/IP协议的变种使得T C P/I P协议自身存在的安全问题不可避免地会影响到工控系统安全[4]。非法网络数据获取、中间人、拒绝服务、IP欺骗、病毒木马等在互联网中的常用攻击手段都会影响基于Modbus协议的工控系统安全。

三、协议安全性建议

(一)采用自主可控的固件并保持更新

工控系统的画面、监视和控制功能,特别是通信数据的生成和协议解析都依靠应用程序加以实现,应用程序依托的操作系统(如VxWorks、uClinux、WinCE嵌入式系统)均需要运算单元、存储设备、可编程逻辑器件等固件作为支撑,因此,根本上解决通信协议安全问题的办法是保证固件安全。以现场设备为例,目前广泛应用的工控系统传感器、PLC、RTU等仪表设备,甚至DCS、SIS等控制系统几乎全部采用国外厂商的固件,其存在的“后门”漏洞隐患始终是一颗“定时炸弹”,随时会对整个系统的安全造成影响。因此,采用自主可控固件是解决一系列安全问题的首要选择,自主可控固件意味着全新的程序编译和接口调用方式、独立的认证体系,有助于解决或来自通用应用程序的协议攻击问题,传统的基于Metasploit开源程序或控制程序、PLC植入恶意代码将无法执行。举个例子,当芯片的片选信号都找不到时,根本谈不上攻击程序的安装调用和实施攻击。当然,目前国内研制生产的固件,比如龙芯、多思等CPU产品能否满足工控系统实时可靠的性能要求,需要与解决信息安全问题同步考虑。

第二步解决授权认证问题,即要求证明方将当前系统和软件状态的度量信息通过可信报告功能发送给验证者进行验证[5],从而达到限制发出控制指令用户的身份和权限的目的,文献[6]给出了一种基于可信计算Modbus协议授权认证方法,实质上该方法就是采用信道加密方式同时解决了授权和握手问题,但其增加第三方认证的方式增加了协议处理开销和设备成本。

此外,自主可控固件并不能一劳永逸地解决所有问题,比如自主可控PLC终将得到大面积应用,攻击者最终也会得到部分固件参数和嵌入式系统数据,这就要求必须实时更新固件,以应对自主可控固件及其操作系统已知漏洞引入的安全风险,同时有助于减少可能发生的0Day漏洞。当然,在生产环境中这一点做起来会十分困难,但实时更新固件仍然是解决协议问题的根本手段。如果固件更新足够及时,固件版本达到最高时,ICS-CERT、CNVD等机构发布的漏洞将得到解决,任意代码执行(如缓冲区溢出)等技术攻击、拒绝服务攻击和Web接口等安全问题也将很难开展。需要注意补丁程序自身的安全问题,攻击者或行业竞争对手可能在补丁程序中内嵌攻击或原有已知漏洞等恶意程序,因此,需要对固件、操作系统等补丁程序进行隔离观察或检测,确认其安全性后方可运行在实际系统中。

(二)采用完备的安全设计对协议进行加固

此外,由于全部通信都包含功能码,攻击者可以滥用功能码,对工控设备进行基于指令的操作,包括打开或关闭阀门、读写线圈数据、启动或停止PLC,甚至可以更改控制逻辑等危险操作。例如,Digital Bond公司成功挖掘了Schneider功能码90漏洞。功能码有效的码字范围是十进制1-255,其中128-255为异常相应保留,Schneider使用功能码90实现对PLC的stop cpu命令操作,当攻击者结合重放攻击利用该功能码时,可在监控设备不知情的情况下,实现大批量设备CPU的终止运行。

第一步解决信息泄露问题。随着PLC运算能力的大幅提升,已经能够承担与控制系统配合完成信源加解密任务的能力,可以逐步采用线性规则变换、对称加密和非对称加密的方式逐步增加数据的非明文转换强度,同时保证相关设备能够承受运算开销。

路德政介绍说,郑州先科的生产基地位于河南省新乡经济开发区工业路中段,交通便利。基地占地13321平方米,其中综合办公区占地2000平方米,建筑面积1000平方米,生产区占地11000平方米,车间6000平方米,仓库2500平方米。基地拥有最先进的全自动液体、粉剂等多种包装生产线十余条,技术力量雄厚,产品质量卓越,包装精美,被广大客户誉为“中国液肥行业的一面旗帜”。30年来,在稳步发展的同时先郑州科始终专注于一件事:精益求精,打造中国叶面肥第一品牌!

由于大部分工控系统应用层协议没有充足的预留字段,对协议的加固应首先考虑字段内部的变换,谨慎采取大量增加开销字段的方式,以保证系统的完整性和可用性。

(3)去产能、调结构、转动能。“河北省推进去产能调结构转动能工作会议”强调:按照坚决去、主动调、加快转的要求,牢固树立和贯彻新发展理念,坚定不移化解过剩产能,积极培育新的发展动能,全力推动河北创新发展、绿色发展、高质量发展。到2020年,全省钢铁冶炼企业减少到60家左右,前15家企业产能规模占全省的比重达到90%以上,水泥企业减少到200家以内,前3家企业熟料产能规模占全省的比重达到65%以上。这就意味着对河北省矿产资源开发利用也提出了新的要求,必须在提升矿产开发技术、方法和提高产品质量上下功夫,以适应规模化集约化与创新发展的新形势和新要求。

Modbus协议通信过程中,没有任何认证方面的定义,也没有基于角色或行为的访问控制措施,攻击者可以利用侦听发现的合法地址发送功能码建立一个Modbus通信会话[3],服务端将认为收到的指令来自客户端并积极响应,从而出现重放、泛洪等扰乱整个或者部分控制过程的问题。由于协议在应用层没有对用户进行分类和权限划分,这会导致任意用户可以执行任意功能。例如,CybatiWorks仿真软件模拟中,基于M o d b u s协议的Cybati交通信号灯可以在信号标志位被非授权反置的情况下改变信号状态,攻击者同时利用重发手段,使得用于监视的人机界面上的样子与信号状态变更前的状态一致。

无论如何,协议的加固应在系统全生命周期加以考虑,结合安全编码和测试技术,才能达到消除安全漏洞的目的。

(三)利用纵深防御体系采取协议隔离和监控措施

Modbus协议是Schneider Electric公司(前身为Modicon)设计出的在PLC上的串行通信协议,属于应用层报文传输协议,包含ASCII、RTU、TCP3种报文类型,以及Modbus plus、Modbus over IP等多个变种,图2给出了Modbus/TCP协议消息格式示例。其中,基本的协议数据单元(PDU)中包含功能码和数据段两部分:功能码用于确定数据包的功能,并能够对PLC实施读取、写入、诊断等控制措施;数据段是承载PLC功能信息的帧结构,由于其结构简单、健壮性好、速率范围广,多年来已经应用于从工厂到变电站等多种设施中。近年来,工控系统与外部网络互联程度不断加深,据奇虎360公司对工业系统公网暴露数据统计,目前有一万多台基于Modbus协议的设备直接与互联网联接,其中Schneider控制系统接近两千台。可见,此种缺少安全机制的协议已经完全暴露在攻击者的可及范围之内,主要风险有以下几点。

第一步可在内部域和外部域之间设置传统IT防火墙,采用包过滤黑名单的方式阻止任意来自企业网或互联网的数据包进入内部域,将MES层设为DMZ区,严格限制外部域对DMZ区指定服务器,特别是历史数据库镜像和信息管理系统,禁用透明模式,限制TCP/IP协议族通过的具体服务和端口,不宜使用状态检测方式放行OPC Classic协议对DMZ区全部服务器的访问,同时防止具有任何包括TCP/IP变种的工业控制协议通过I T防火墙访问外部域。

这首《年轻的朋友来相会》,用欢快的旋律,唱出的是1980年代的青春宣言。歌曲或许不再流行,但那种青春心态、奋斗精神永不过时。

第二步可在DMZ区与过程监控层或现场控制层之间配备工业控制级防火墙或基于协议深度检测和虚拟化技术的协议隔离设备,重点启用其工业插件模块实现对Modbus TCP、OPC等协议的深度检查,如自动跟踪OPCServer/Clinet数据包、审查Modbus功能码和寄存器地址等,通过深度检测、协议剥离解决TCP/IP协议漏洞、功能码滥用漏洞等问题,同时可对未知工控系统通信协议实施自适应学习和访问控制。

图1示,阳性淋巴结中PLAGL2高表达,其染色强度高于相应的PCa原发灶组织,其中在PCa组织中弱阳性5例,阳性4例,强阳性6例,在转移淋巴结组织中,弱阳性2例,阳性6例,强阳性12例,差异有统计学意义,χ2=8.686,P=0.039。

第三步可根据安全域安全防护需要,在保证通信可用性的前提下实施针对专用协议的异常行为检测,配合第二步中部署的隔离设备或措施实施针对“主体、地点、时间、访问方式、操作、客体”等要素的安全审计,从而提供安全事件爆发后的追查能力。

四、结语

工控系统协议安全问题仅仅是纵深防御体系中需要关注的一项内容,如何避免协议漏洞的同时解决实时性与安全性(保密性)的矛盾,结合认证体系解决管理员权限独大等一系列问题,将是今后一段时期需要系统考虑的事情。

当微网进入孤岛运转[5]模式时,超导磁场储能技术采用电压与电流双闭环形式运转,并给多个逆变装置提供恒定的电压与频率。式(2)给出微网外环调节装置,即电容C,并将输出电流作为电流内环值的参照结果,将滤除电流变换装置的输出三相电流值设置为ia,ib,ic,电压值设置为ua,ub,uc,在超导磁场储能状态下微网三相电流设定为iaSMES,ibSMES,icSMES。

参考文献:

[1] 欧阳劲松,丁露. IEC62443工控网络与系统信息安全标准综述[J].信息技术与标准化,2012(01):24.

[2] 企业控制系统集成.第1部分:模型和术语[S].ANSI/ISA 95.00.01~2010.

[3] 左卫程,永新. Modbus协议原理及安全性分析[J].通信技术,2013,46(12):66~69.

[4] Nicholsona. SCADA Security in the Light of Cyber-War-fare[J].Computers&Security,2012,31(04):418~436.

[5] 颜文波.可信平台中基于属性的远程证明系统[D].武汉:华中科技大学,2007.

[6] 杨静.SCADA系统的Modbus/TCP协议安全研究[D].北京:北京工业大学,2016.

侯碧翀,云霄
《保密科学技术》 2018年第3期
《保密科学技术》2018年第3期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号