[工业网络] 模型建立

普渡大学ICS参考模型

普渡企业参考架构(PERA)是由西奥多·J·威廉姆斯(Theodore J. Williams)和普渡大学计算机集成制造工业大学联盟的成员在1990年代开发的企业架构参考模型。该模型被ISA-99(现为ISA/IEC 62443)等工业安全标准所采用,并用作ICS网络分段的关键概念。普渡参考模型(或简称“普渡模型”)在ICS社区中被广泛用于描述一个大型ICS中所有主要组件之间的主要相互依赖性和相互作用,是理解任何OT环境的一个很好的起点。
我们将在后续章节中详细讨论普渡参考模型与安全策略和架构的关系。现在,我们将高层次地看一下其主要组件和级别,如图所示。

image-1.png

  • Level 5: 企业区
    企业区是管理供应链的地方。ERP系统如SAP和JD Edwards被用来理解和响应供应和需求。这些系统从所有下属系统(通常跨多个站点或一个企业)获取数据,以查看总体供应、生产和需求,从而管理工作订单。ICS很少直接连接到这一层,但显然需要从各种OT网络和ICS组件获得准确和及时的信息。

  • Level 4:现场业务规划和物流
    而第5级通常存在于公司或多站点总部
    4表示每个站点、工厂或设施用于控制本地设施运行的IT系统。该级别接受来自第5级的订单,并监视较低级别的性能,以了解操作状态、与生产计划的性能、本地工厂的问题管理,以及更新第5级的企业系统。

  • ICS-Demilitarized区
    非军事区(ICS-DMZ)是IT和OT之间共享信息的层。这是一个更加现代化的结构,由NIST网络安全框架、NIST 800-82、NERC CIP和ISA-62443等标准努力推动。通常出现在ICS-DMZ中的有复制服务器、补丁管理服务器、工程工作站和配置/变更管理系统。DMZ的目的是提供IT信息的安全交换,而不会将较低层的关键组件直接暴露给攻击者。这是安全规划的一个主要重点领域

  • Level 3:现场制造与运行控制
    虽然第5层和第4层仅存在于网络的IT侧,隔离区(DMZ)就像夹心饼干中的夹心,但第3层及以下定义并构成了网络OT侧的系统。第3层通常包含SCADA的监督部分、DCS的视图和控制访问,或是控制室的视图和监控功能,用于监控OT网络的其余部分。这是操作员与系统进行交互的主要层次,操作员在该层次查看和监控过程事件和趋势,响应警报和事件,通过工作订单维护等功能管理过程的正常运行时间和可用性,并确保产品质量。

  • Level 2:区域监督控制
    第2级具有许多与第3级相同的功能,但是在这个级别中,过程单元或线级功能主要用于对过程的各个区域进行局部控制。这个级别的区别在于实际的ics开始出现的级别,例如plc和变频驱动器(vfd)。然而,这个级别的主要系统包括hmi。在这个级别中,您可以通过HMI面板看到实时流程事件和操作员级流程交互的本地视图,并通过这些逻辑驱动组件看到流程的自动控制。

  • Level 1:基本控制

虽然一些PLC、VFD等设备存在于第2层,但这是这些设备的主要位置。该层次包括所谓的基本过程控制系统(BPCS)。BPCS是一个通用术语,适用于非安全相关的控制系统,其中执行和管理以下功能:

  1. BPCS在可配置的限制(称为设定点)内控制过程。
  2. BPCS向HMI提供实时数据,用于操作员级别的过程交互。
  3. 操作员在此层次与BPCS的设定点和逻辑进行交互,以优化工厂操作。
  4. 过程级别的警报和事件在此层次进行管理和响应。第2层依赖于第3层及以上层次的信息,用于日程安排、监控警报和提供反馈以管理过程。
  5. BPCS还包括传感器、执行器、继电器和其他组件,这些组件将过程值测量并报告给PLC、DCS、SCADA和第1至5层的其他组件。
  • Level 0:过程
    也称为受控设备(EUC)级别,这是由1级控制的物理设备所在的位置。这些包括驱动、马达、阀门和其他组成实际过程的部件。0级的完整性对于安全和高效的操作至关重要,因为这是操作过程实际物理特性的地方。如果BPCS和EUC不能正常运行,或者关于工艺状态的信息不准确,则BPCS或操作员无法准确响应工艺条件。

结合:

图中说明了所有这些层是如何协同工作以内聚地管理整个过程的。入侵ICS需要详细了解所有级别的功能和相互作用,并结合工业通信协议本身的知识,以便传播攻击。

image-2.png

SCADA

当应用于更通用的ICS术语时,监控和数据采集系统可能是最被广泛滥用的术语。SCADA主要是指在广泛的地理区域内对多种ICS类型进行分组,如图所示。SCADA系统是由组成整个系统的所有单独的控制和通信组件组成的。SCADA环境的典型例子包括供水设施、天然气管道和电力传输和分配系统。

image-3.png

DCS

分布式控制系统(DCS)通常是用于自动化大型设施(如石油和天然气精炼厂以及化工厂)中数千个I/O点的大规模系统。DCS和SCADA之间的差异微妙,但传统上SCADA用于地理分布更广泛的操作,例如水/废水或电力分配,而DCS通常局限于工厂的四面墙内。然而,DCS的特性使其有些独特。DCS通常是高度工程化和刚性的系统,遵循供应商规定的严格部署和架构。

DCS结合了基于Unix、Linux或Microsoft的终端作为工作站来查看和控制过程,通常连接在一个冗余网络中,该网络利用多宿主计算机和网络交换技术提供高可用性。DCS的例子包括霍尼韦尔FTE和艾默生DeltaV。

PLC

plc是工业自动化领域的主力,几乎在每个工厂都可以找到。这些设备通常被称为“控制器”,广泛应用于工厂环境和看似不太可能的地方,如电梯、机场的坡道控制,甚至在我们驾驶的汽车中。plc的大小从成人拳头的大小到小型台式计算机的大小,它们的特点是三个主要组件:微控制器,扩展槽和背板。

image-4.png

image-5.png

微控制器是PLC的大脑,也是固件、程序(通常是梯形逻辑)和设定点存在的地方。在传统的plc中,固件和控制器程序在很大程度上是静态的。设定点是为运行中的程序所配置的变量,可以由进程的状态手动或动态地更改。

在微控制器旁边,通常有扩展槽或模块连接,以扩展PLC的能力。这些模块包括

  • 多种网络类型,如以太网,远程I/O, ControlNet,
    PROFINET或其他
  • 支持802.11、802.15.4或其他网络类型的无线扩展
  • 数字或模拟I/O卡连接到现场设备
  • 机箱防火墙、网络网关等其他模块

将所有这些结合在一起的是背板,这是一个硬线接口,允许多个设备和微控制器之间的通信。这方面是最重要的,因为网络安全分析师和攻击者都必须了解背板的工作原理和控制器的工作原理。例如,可以部署PLC并将其用作控制传送系统的驱动器的控制器。或者,相同的PLC具有相同的卡,但不同的程序可以简单地用于汇集多种网络类型。尽管后者没有“控制”功能

HMI

人机界面(HMI)是ICS的“视图”。HMI可能仅仅是驱动柜外部的一个小面板。大多数情况下,HMI使用键盘或触摸的显示器,以图形方式显示整体过程,并允许操作员通过为特定组件输入命令来控制过程中的各个点。图中显示了蒸馏塔的常见图形表示,这在许多化工厂和石油天然气精炼厂中是一个常见的过程。

image-6.png

值得注意的是,对于攻击者来说,人机界面 (HMI) 通常是一个显示所有过程自动控制点的图形界面。寻找轻松攻击过程的方法的攻击者会首先集中在这里,试图接管 HMI 的显示。尽管这将是一次“嘈杂”的网络攻击,攻击者仍然可以部署一个远程桌面协议 (RDP) 会话,并像在同一控制台的操作员一样与过程进行交互。

SIS

安全仪表系统(SIS)在事情不按计划进行时发挥作用。SIS 是高度工程化的专业控制系统。通常,供应商会使用其现有的 PLC 平台来创建 SIS。除了核心微控制器,SIS 还使用一系列复杂的模拟和数字投票系统(1 出 2 或 2 出 3)来监控和响应不利的过程条件。通常,SIS 只设计提供几个核心功能,即在硬件故障发生时将过程带入安全状态或启动有序关闭。

重要的是要注意,SIS 在许多工业控制系统(ICS)环境中并不广泛使用。传统上,SIS 仅在硬件故障发生的可预测率表明随机故障将在给定时间段内 X 次引起危险情况时使用。如果这种随机硬件故障发生的概率统计上不太可能足以导致不安全状况,那么通常不会使用 SIS。这一点很关键,因为迄今为止,安全领域主要关注的是随机硬件故障。尽管安全标准确实表明安全性很重要,但现在才开始认真应对这样一个事实:尽管随机硬件故障的概率不足以保证使用 SIS,但确定性的网络安全威胁的可能性可能会建议使用更加稳健的 SIS 来代替或与 PLC 结合使用。

VFD

变频驱动器(VFD)本质上是“智能”电机。它们是一种小型 PLC 的变体,称为驱动控制器,通过维持一个程序来响应手动输入或控制程序的需求,以改变其连接的驱动器的速度。对于工业控制系统(ICS)网络研究人员或攻击者来说,这种驱动控制器是主要关注点,因为它的功能类似于 PLC,可以以类似的方式进行攻击,但由于所控制的设备是大规模的强力驱动器,往往会有立竿见影的后果。变频驱动器通过改变施加到驱动器上的频率和电压来控制其速度和操作方向。你可以在图中看到一个 VFD 的示例。

image-7.png

ICS 杀伤链

2015年10月,SANS研究所发布了“ICS杀伤链”,作者是
迈克尔·j·阿桑特、罗伯特·m·李(https://www.sans.org/readingroom/whitepapers/ICS/industrial-control-system-cyber-kill-chain-36297)。
ICS杀伤链的突出之处在于,它不仅准确地代表了我们所看到的ICS恶意软件活动(如Stuxnet和Havex)所展示的整个方法和攻击过程,而且还强调了一个事实,即重大ICS事件需要彻底了解目标的过程环境。

报告的作者在他们对侦察、开发和验证/测试阶段的描述中说明了这一点,并强调了“战役”的心态和策略。换句话说,ICS Kill Chain考虑了攻击者用来了解流程环境的方法和总体流程,开发重要的ICS特定攻击,并在部署之前测试/验证/调整漏洞利用。这个微分器可以在第二阶段找到,如图所示。

image-8.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/768842.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

warning: LF will be replaced by CRLF the next time Git touches it warning

问题: warning: in the working copy of , LF will be replaced by CRLF the next time Git touches it warning: 今天上传git时报错,使用Ai;得知; 解决: 将 Git 配置为不自动转换换行符,使用以下命令…

snap和apt的区别简单了解

Linux中没有tree命令的时候提示安装的时候出现了两个命令,简单看了看两者有何区别(一般用apt就可以了): sudo snap install tree 和 sudo apt install tree 这两个命令都是用来安装 tree 命令行工具的,但它们使用的是不…

webSocket网页通信---使用js模拟多页面实时通信

webSocket是什么 WebSocket是一种先进的网络技术,它提供了一种在单个TCP连接上进行全双工通信的能力。传统的基于HTTP的通信是单向的,即客户端发起请求,服务器响应请求,然后连接关闭。但是,WebSocket允许服务器和客户端…

Spring Boot2.x教程:(四)Spring Boot2.6及之后版本整合Knife4j的问题

Spring Boot2.6及之后版本整合Knife4j的问题 1、概述2、问题出现原因及解决办法3、拓展3.1、为什么发生这种变化 4、总结 大家好,我是欧阳方超,可以扫描下方二维码关注我的公众号“欧阳方超”,后续内容将在公众号首发。 1、概述 今天在2.7…

Raylib 坐标系适应与GPU绘制参数

通过750 - 鼠标坐标&#xff0c;把原点在左上角的鼠标坐标变成左下角 实现输入数据后的坐标系同GPU原点在左下角坐标相同&#xff0c; 比数组0&#xff0c;0对应左上角好&#xff0c; 此时实际上数组0&#xff0c;0对应左下角 #include <raylib.h> // 感受&#xff1a…

如何用Python实现三维可视化?

Python拥有很多优秀的三维图像可视化工具&#xff0c;主要基于图形处理库WebGL、OpenGL或者VTK。 这些工具主要用于大规模空间标量数据、向量场数据、张量场数据等等的可视化&#xff0c;实际运用场景主要在海洋大气建模、飞机模型设计、桥梁设计、电磁场分析等等。 本文简单…

OpenELM:开启开放训练和推理框架的高效语言模型家族

随着大模型模型规模的增长&#xff0c;这些强大工具的透明度、可复现性和对数据偏见的敏感性也引起了人们的关注。这些问题不仅关系到研究的开放性和公平性&#xff0c;也关系到模型输出的可信度和安全性。为了应对这些挑战&#xff0c;Apple的研究团队发布了名为OpenELM的新一…

守护进程到底是什么?如何创建?(图文并茂,你不得不看的一篇文章)

目录 守护进程&#xff08;Daemon Process&#xff09;详解 守护进程的特点 创建守护进程的步骤 用守护进程实现输入Hello功能 守护进程的用途 如何查看我们的守护进程&#xff1f; 1. ps 命令 2. top 命令 总结 守护进程&#xff08;Daemon Process&#xff09;详解 …

如何在主动动态安全中使用人工智能驱动的威胁分类提高防御精准度

面对当今世界不断演变的网络威胁&#xff0c;人工智能和网络安全将会发挥重要的防护作用。在数据泄露和网络攻击日益突出的时代&#xff0c;人工智能和网络安全之间的合作成为数字安全战场上的强大盟友。 本文将深入研究这两个领域的融合&#xff0c;揭示它们在彻底改变威胁检测…

Java---Mybatis详解二

雄鹰展翅凌空飞&#xff0c; 大江奔流不回头。 壮志未酬心未老&#xff0c; 豪情万丈任遨游。 巍巍高山攀顶峰&#xff0c; 滔滔黄河入海流。 风云变幻凭君舞&#xff0c; 踏遍天涯尽逍遥。 目录 一&#xff0c;环境准备 二&#xff0c;删除 三&#xff0c;删除(预编译SQL) 为什…

奇瑞被曝强制加班,“896”成常态且没有加班费

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 7 月 2 日消息&#xff0c;一位认证为“奇瑞员工”的网友近期发帖引发热议&#xff0c;奇瑞汽车内部存在强制加班行为&#xff0c;每周加班时长需大于 20 小时并且没有加班费&#xff0c;仅补贴 10 元…

CJSON库

目录 一、介绍 1、JSON是什么 2、为什么使用CJSON 3、JSON格式 二、使用CJSON构造JSON 1、创建对象 2、添加字段 3、转换格式 4、释放对象 三、使用CJSON解析JSON 1、解析数据 2、 获取字段 3、释放对象 一、介绍 1、JSON是什么 JSON是什么呢&#xff1f;JSON全称…

Android studio 打包低版本的Android项目报错

一、报错内容 Execution failed for task :app:packageRelease. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade> com.android.ide.common.signing.KeytoolException: Failed to read key key0 from store "…

如何创建移动类型

第一步打开事务代码&#xff1a; OMJJ 下面这个工作区可以不填&#xff0c;或者填入你的范围&#xff08;例如我准备copy Z52成为Z54 那么就可以输入从Z52到Z54&#xff0c;SAP的这个操作就是这么怪&#xff0c;哈哈&#xff09;不然就会出现一个这样的报错“在工作区中指定关…

聚焦西安应博会|2024西安城市安全应急产业展9月精彩呈现

2024西安城市安全应急产业博览会 时间&#xff1a;2024年9月12日-14日 地点&#xff1a;西安国际会展中心 运营&#xff1a;西安西部文化产业博览会有限公司 【展会简介】 为推动安全应急装备向智能化、成套化、专业化方向发展&#xff0c;迎接新质生产力在应急产业新技术…

在C++中,工厂模式的思考(《C++20设计模式》及常规设计模式对比)

文章目录 一、前言二、讲解1、构造函数的弊端2、工厂方法&#xff08;解决上述弊端&#xff09;3、简单工厂3.1 **UML类图**3.2 **实现** 4、工厂模式4.1 **UML类图**4.2 **实现** 5、抽象工厂5.1 **UML类图**5.2 **实现** 三、总结 一、前言 在看《C20设计模式》一书中产生了…

【软件测试】快速定位bug,编写测试用例

作为一名测试人员如果连常见的系统问题都不知道如何分析&#xff0c;频繁将前端人员问题指派给后端人员&#xff0c;后端人员问题指派给前端人员&#xff0c;那么在团队里你在开发中的地位显而易见 &#xff0c;口碑、升值、加薪那应该是你遥不可及的梦 但是作为测试人员来说&…

【ARMv8/v9 GIC 系列 5 -- GIC GICD_CTRL 使用详细介绍】

文章目录 GICD_CTRLGICD_CTLR 寄存器结构RWP&#xff08;Register Write Pending&#xff09;E1NWF&#xff08;Enable 1 of N Wakeup Functionality&#xff09;DS&#xff08;Disable Security&#xff09; 亲和性路由&#xff08;Affinity Routing&#xff09;ARE_NSARE_S 中…

华侨大学24计算机考研数据速览,专硕22408复试线290分,学硕11408接收调剂!

华侨大学计算机专业创建于1980年&#xff0c;是福建省最早设立计算机专业的高校之一。1982年成立计算机系&#xff0c;2008年成立计算机科学与技术学院。根据“华侨大学计算机科学与技术学院网站”资料&#xff0c;该院有计算机科学与技术、软件工程、网络工程3个本科专业&…

Mysql-基础-DDL操作

1、数据库操作 查询 查询所有数据库 show databases; 创建 创建数据库 create database [if not exists] 数据库名 使用及查询 use 数据库名 select database() 查询当前所处数据库 删除 drop database [if not exists] 数据库名 2、表操作 查询当前库中的所…