工业控制系统安全-工控系统概述
简短介绍工控系统架构、组成部分、功能以及术语等方面,掌握基本工控系统知识。工控系统指的是工业自动化控制系统,主要利用电子电气、机械、软件组合实现。主要是使用计算机技术,微电子技术,电气手段,使工厂的生产和制造过程更加自动化、效率化、精确化,并具有可控性及可视性。
普渡参考模型
普渡企业参考架构(Purdue Enterprise Reference Architecture,PERA)模型由Theodore J Williams和工业-普渡大学计算机集成制造联盟的成员于20世纪90年代提出。该模型被ISA-99标准(现在的1SA/IEC 62443)及其他工业安全标准所采纳,并且被用作工控系统网络分段的关键概念。普渡参考模型(Purdue Reference Model)在工控系统行业中也被简称为“普渡模型”(Purdue Model),广泛应用于描述大型工控系统中所有重要组件之间的主要相互依赖关系与互连关系。普渡模型是开始了解OT环境的一个很好的切入点。如下图所示。
第5层:企业区
企业区负责供应链管理。诸如SAP公司和JD Edwards公司开发的ERP系统主要用来理解供需关系并对其作出响应。这些系统从所有从属系统(通常是跨多个站点或一家企业)中接收数据,通过查看整体的供应、生产和需求情况来进行工单管理。这一层次一般不与工控系统直接相连,但是对于来自各OT网络和工控系统组件的准确、及时的信息有着明确的需求。
第4层:现场业务规划和组织
第5层通常部署于公司总部或多站点总部,第4层则表示在每个现场、车间或设施中控制本地设施运行的IT系统。该层从第5层接收工单,并对低层的运行状况进行监控,进而了解运营状态,其功能还包括生产进度执行情况的监控、本地工厂的问题管理,并对第5层企业系统的数据进行更新。
工控系统非军事区层
工控系统非军事区层(ICS-Demilitarized Zone,ICS-DMZ)实现IT和OT之间的信息共享。这是一个由NIST的网络安全框架、NIST 800-82、NERC CIP及ISA-62443等若干工业标准所推动的更为现代化的架构。ICS-DMZ中通常包括副本服务器、程序补丁管理服务器、工程师站和配置变更管理系统。DMZ区的作用是在不将下层关键组件直接暴露给攻击者的情况下实现IT信息的安全交换。这是安全规划的一个重点领域。
第3层:现场制造和操作控制
第5层和第4层仅存在于网络中的IT一侧,DMZ区则作为第5层与第4层之间的填充,就好像奥利奥饼干中的夹心层一样,第3层及以下则定义并包含了网络中OT一侧的系统。第3层通常包含SCADA系统中的监控部分,DCS的画面和控制访问,或者对OT网络中其他部分进行监测与监控的控制室。第3层是与系统进行操作员级交互的主要层次,操作员可以查看和监控过程事件和趋势,响应报警和事件,使用诸如工单维护等功能来管理过程的运行时间和可用性,进而保障产品质量。
第2层:区域监控
第2层具有许多与第3层相同的功能,但第2层主要通过过程单元或生产线级的功能实现对过程中单个区域的本地控制。该层区别于其他层次的地方在于实际的工控系统开始在本层出现,例如可编程序控制器(PLC)和变频驱动器(Variable Freuency Dive,VFD)。但是,第2层中的主要系统还包括人机界面(HMI)。在该层中,可以通过人机界面面板查看实时过程事件和操作员级过程交互的本地画面,并通过这些逻辑驱动组件实现对过程的自动控制。
第1层:基本控制
虽然第2层中也存在PLC和VFD等设备,但第1层才是这些设备主要出现的地方。第1层中包括基本过程控制系统(Basic Process Control Systems,BPCS)。BPCS系统是适用于非安全相关控制系统的通用术语,主要执行并管理以下功能:
BPCS系统在可配置的限制(即设定点,set points)范围内实现对过程的控制。
BPCS系统为人机界面提供实时数据以实现同过程的操作员级交互。
操作员与该层BPCS系统中的设定点和逻辑进行交互,以便对工厂操作进行优化。
在该层对过程级警报和事件进行管理和响应。第2层依赖于来自第3层及以上各层的信息,用于调度、监控报警并就管理过程的实施等内容提供反馈。
BPCS系统还包括传感器、执行器、继电器和其他组件,用于对过程值进行度量并将结果报告给PLC、DCS、SCADA,以及第1层至第5层的其他组件。
第0层:过程
这一层也被称为受控设备层(Equipment Under Control,EUC),这是放置第1层所控制的物理设备的位置。这些设备包括驱动器、电机、阀门以及构成实际过程的其他部件。第0层的完整性对于安全和高效的运营至关重要,因为这是现实中对过程中物理设备进行操作的地方。如果BPCS和受控设备无法正常操作,或者关于过程状态的信息不准确,那么BPCS或操作员就无法准确地响应过程条件。
功能安全层
所有这些层次(第0~5层)相互交互以确保过程执行其预先设计的功能。根据所参考的普渡参考模型的改版版本,会发现功能安全层(safety layer)或者被包含进过程层(第0层)之中,作为过程层中的一部分;或者从某种意义上说在逻辑上低于过程层。功能安全层就是当硬件故障或其他不确定的不利条件导致整个系统中断时,保护系统不会出现危险故障的层次。在功能安全层内有若干工程保护层(angineered layers of prorection)。这些保护层包括了从逻辑编码的“互锁”,到PLC中关于如何响应不良事件的指令,再到安全仪表系统(SIS)与物理安全控制措施,例如在制定的过程中确保诸如压力过高等条件不会发生的安全阀。
常用控制系统、设备、组件
1.监控与数据采集系统
由于常被用来指代一般的工控系统,监控与数据采集系统(SCADA)可能是过度使用最为广泛的术语了。SCADA系统主要是指在广阔的地理区域中一组不同类型的工控系统设备。可以将SCADA系统看作是构成整个工控系统的所有独立的控制和通信组件的总和。SCADA环境的经典实例包括供水系统、天然气管道输送系统,以及电力传输和配送系统等,SCADA系统如下图。
2.集散控制系统
通常,大型系统使用集散控制系统(DCS)实现对大型设施(如石油和天然气精炼厂及化工厂)中的数千个I/O节点的自动控制。DCS和SCADA之间的差异十分微小,但是传统上SCADA更多地用于控制分散在不同地理位置上的操作,如供水、污水处理或输配电系统,而DCS通常部署在工厂厂区内。DCS的一些特性使其非常独特。DCS通常是高度工程化的刚性系统,需要严格按照厂商指定的方式进行部署和搭建。
DCS将基于Unix、Linux或Microsoft的终端结合起来作为工作站实现对过程的观察与控制,并且通常与冗余网络相连接,其中冗余网络利用多宿主计算机和网络交换技术以提供高可用性。DCS系统的实例包括Honeywell公司出品的FTE控制网络和Emerson公司开发的DeltaV系统。
3.可编程序控制器
可编程序控制器(PLC)是工业自动化领域中的“老黄牛”,几乎在每个工厂中都可以找到PLC。PLC通常被称为“控制器”,广泛应用于工厂环境和很多看似不太可能的地方,例如电梯、机场的匝道控制,甚至我们驾驶的汽车中也包含PLC,PLC包含三个主要组件:
微控制器、扩展插槽和背板,其体积可以从成人拳头大小到小型台式计算机的尺寸,PLC的外形如下图所示。
微控制器(microcontroler)是PLC的大脑,包含固件、程序(通常是梯形逻辑)和设定点。传统PLC中的固件和控制器程序大多是静态的。设定点就是运行程序配置时使用的变量,既可以手工改变也可以根据过程状态动态改变。
除了微控制器,通常还有扩展槽或模块接口用于对PLC的功能进行扩展。这些模块包括:
多种网络类型,如以太网、远程1/O、ControlNet、PROFINET或其他网络类型。
802.11、802.15.4或其他网络类型的无线扩展口连接到现场设备的数字或模拟I/O卡。
其他模块如机架防火墙或网关。
将所有这些部件连在一起的是背板(backplane),由硬线接口对多个设备和微控制器之间的通信提供支持。这一点非常重要,无论是网络安全分析师还是攻击者都必须对背板和控制器的工作方式加以了解。例如,PLC可以部署用作控制输送系统中的驱动器组的控制器。或者模块相同、程序不同的同一块PLC也可以简单地用来将多种类型的网络聚合在一起。虽然后者没有“控制”功能,但它本身就可能成为一个重要的攻击目标,以该PLC为跳板,攻击者能够从以太网世界无缝跳转到其他总线型网络。
4.人机界面
人机界面(Human-Machine Intcrface,HMI)是工控系统的“画面”。人机界面可以像驱动器机箱外部的小面板一样简单。大多数情况下,人机界面使用键盘或触摸屏显示器,以图形方式刻画整个过程,并允许操作员采用输入特定组件命令的方式对过程中的各个点进行控制。
从攻击者的角度来看,人机界面通常是过程中的所有自动控制点的图形化展示。攻击者如果想找到一个简单的方法对过程进行攻击,首先就会把注意力聚焦在这里,并设法接管人机界面的显示。虽然这会是一个“充满噪声”的网络攻击,但攻击者可以部署一个RDP会话,然后同过程进行交互,就像任何一名操作员在同一控制台前所做的一样,人机界面如下图所示。
5.安全仪表系统
当系统未按计划执行时就会用到安全仪表系统(Safety Instrumented Systems,SIS)。SIS是精心设计的专用控制系统。通常厂商会使用他们现有的PLC平台来构建SlS系统。除了核心微控制器以外,SIS用到了一系列复杂的组件,其中既包括模拟组件也包括数字组件,然后采用二选一或者三选二的投票方式对系统进行监视并对不利的过程条件进行响应。通常SIS的设计理念是仅提供少数几个核心功能,即将过程恢复到安全状态或者在硬件故障的情况下将系统正常关闭。
值得注意的是,SIS在许多工控系统环境中并未被广泛使用。长久以来,只有当硬件故障的可预测发生率表明,在给定时间段内随机故障将导致若干次危险状况时,才会用到SIS。而如果统计结果显示不太可能发生足以导致不安全状态的随机硬件故障时,则通常不使用SIS。这一点很关键,因为到目前为止,安全界主要关注随机硬件故障。虽然安全标准确实强调了安全问题,但是直到现在才有一些可靠的研究成果指出:即便随机硬件故障的概率还没有高到部署SIS的条件,但是明确的网络安全威胁的可能性也已经足以表明,我们应该使用更加健壮的SIS取代PLC或者与PLC协同工作。
6.变频驱动器
变频驱动器(Variable Frequency Drives,VFD)本质上就是“智能”电机。它们是小规模PLC的一种变形形式,也被称为驱动器控制器(drive controller)。在变频驱动器中存在一个程序,该程序要么响应手动输入,要么响应控制程序的请求来改变其所连接的驱动器的速度。无论是工控系统网络研究人员还是攻击者都对这样的驱动器控制器非常感兴趣,因为它运行起来同PLC非常相似,并且可以被类似的方式所攻击,而且由于变频驱动器通常控制的设备是大规模驱动器,因此会直接导致严重的后果。可以通过改变施加到驱动器的频率和电压来操纵变频驱动器的运行速度和方向。
工控协议
工控网络中直接给元器件下命令的工控设备是一些专用的设备(DCS、PLC),这些专用设备接收高级的指令,然后翻译成元器件能执行的命令。这些设备叫下位机。
工控系统还有上位机,上位机就是控制计算机系统,包括工控软件、数据库等。上位机主要供人员操作。工程师在上位机上直接操作,上位机接收工程师的命令后,将命令分解给下位机。在工控系统中控制网络各组件的通信往往采用工业控制系统特有的通信协议。
1.Modbus协议
Modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其他设备的请求,以及怎样侦测错误并记录。
Modbus是采用请求/应答方式的应用层消息协议,非常方便实现在低级设备和高级设备间通信,它包含三个独特的协议数据单元:Modbus请求、Modbus应答以及Modbus异常应答。Modbus请求中包含功能码和请求。Modbus功能码有公共功能码、用户定义功能码和保留功能码三种类型。
Modbus可以采用多种通信方式,如Modbus RTU与Modbus ASCII、Modbus TCP、Modbus Plus。
2.DNP3协议
DNP(Distributed Network Protocol,分布式网络规约)是一种应用于自动化组件之间的通信协议。
ZPMC OPC Server支持与电力系统中子站系统,RTU,智能电子设备以及主站系统等通过以太网RS232/485串行通讯,将使用您的计算机中的网卡或串口。本驱动支持的通讯协议为Distributed Network Protocol3.0(简称DNP3)协议。支持的运行环境:WindowsXP,Windows2000等。
3.西门子S7协议
西门子设备使用多种不同现场总线协议,例如:MPI、Profibus、IE 、Profinet 等。Profinet用于将PLC连接到I/O模块,而不是设备的管理协议。S7以太网通信协议,主要用于将PLC连接到(i)pc站(PG/PC - PLC 通信)。
大多数情况下,西门子通信遵循传统的主从模式(master-slave)或者CS模式(client-server )。其中PC(master/client)将S7请求发送到现场设备(slave/server)。这些请求用于从设备查询或向设备发送数据或发出某些命令。当PCL作为通信主站时(master)有一些例外,通过FB14/FB15设备可以向其他设备发起GET和PUT请求。
在S400系列中,实现了所谓的循环数据I/O功能,这类似于传统的发布者 - 订阅模型。PC可以订阅某些事件,而不是PLC 定期推送所请求的数据送到网络。还有一个合作伙伴(Partner )或点对点模型,当一个活动的合作伙伴请求连接并调用阻止发送(Block Send),与此同时被动合作伙伴调用阻止接收(Block Receive)方法。