热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

工控系统概述

工业控制系统安全-工控系统概述简短介绍工控系统架构、组成部分、功能以及术语等方面,掌握基本工控系统知识。工控系统指的是工业自动化控制系统,主要利用电子

工业控制系统安全-工控系统概述

简短介绍工控系统架构、组成部分、功能以及术语等方面,掌握基本工控系统知识。工控系统指的是工业自动化控制系统,主要利用电子电气、机械、软件组合实现。主要是使用计算机技术,微电子技术,电气手段,使工厂的生产和制造过程更加自动化、效率化、精确化,并具有可控性及可视性。


普渡参考模型

普渡企业参考架构(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)方法。


推荐阅读
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
author-avatar
kg810219_447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有