草庐IT

网络物理系统安全之​CPS域之工业控制系统

铸盾安全 2023-04-10 原文

CPS域 

在介绍了保护CPS的一般原则之后,在本节中,我们将讨论CPS的特定域安全问题。我们特别关注工业控制系统、电网、运输系统、车辆、机器人、医疗设备和消费物联网。

3.1 工业控制系统

工业控制系统代表了连接到物理世界的各种网络信息技术系统[157]。根据应用的不同,这些控制系统在化学工业中也称为过程控制系统(PCS),如果用于监督和控制的设备是使用整体架构采购的,则称为分布式控制系统(DCS)。

控制系统通常由一组网络代理组成,由传感器、执行器、控制处理单元(如可编程逻辑控制器(PLC)、远程终端单元(RTU)和通信设备组成。例如,石油和天然气行业使用集成控制系统来管理工厂现场的炼油操作,远程监控天然气管道的压力和流量,并控制天然气输送的流量和路径。自来水公司可以远程监控井位并控制水井的泵;监测储罐中的流量、储罐液位或压力;监测pH值、浊度和氯残留量;并控制向水中添加化学物质。

控制系统具有分层层次结构[1],可用于网络分段并确保访问控制。图5显示了此层次结构的较低层的图示。

顶层主要使用传统的信息技术:计算机、操作系统和相关软件。他们控制业务物流系统,该系统管理基本的工厂生产计划、材料使用、运输和库存水平,以及工厂绩效,并保留数据历史记录以进行数据驱动的分析(例如,预测性维护)。

监控层是监控和数据采集(SCADA)系统和其他服务器与可编程逻辑控制器(PLC)和远程终端单元(RTU)等远程控制设备通信的地方).控制室中的服务器与这些控制设备之间的通信是通过监督控制网络(SCN)完成的。

监管控制在下层完成,涉及现场仪表,例如传感器(温度计、转速计等)和执行器(泵、阀门等)。虽然传统上这种接口是模拟的(例如,4-20毫安),但传感器和执行器数量的增加以及它们增加的智能和功能,已经产生了新的现场通信网络(FCN),其中PLC和其他类型的控制器与远程输入/输出盒连接,或直接与传感器和执行器连接,使用新的基于以太网的工业协议(如ENIP和PROFINET)以及无线网络(如WirelessHART)。还提出了几种环形拓扑来避免这些网络的单点故障,例如在ENIP上使用设备级环网(DLR)。

SCN和FCN网络代表运营技术(OT)网络,它们具有不同的通信要求和不同的工业网络协议。虽然SCN可以容忍高达几秒钟的延迟,但FCN通常需要一个数量级的较低通信延迟,通常支持周期为400us的设备之间的通信。

入侵检测是保护控制系统的热门研究课题,这包括使用适用于工业协议的网络安全监视器[107,109,158,110,111,159,112],以及基于物理的异常检测[30,114,116,160,113,161]。我们监控系统物理的层可以对可以检测到的攻击类型产生重大影响[162]。

特别是,攻击者可以从(1)SCADA服务器[163]破坏并发起攻击,(2)控制器/PLC[164]、(3)传感器[29]和(4)执行器[165],这些攻击中的每一个都可以在系统的不同层观察到。

工业控制系统的网络安全监控工作大部分已在SCN部署了网络入侵检测系统。但是,如果异常检测系统仅部署在监控网络中,则受损的PLC可以将操纵的数据发送到现场网络,同时假装向监督控制网络报告一切正常。在Stuxnet攻击中,攻击者破坏了PLC(西门子315)并发送了操纵控制信号ua(与原始信号不同,u,即ua u)。收到ua后,变频器周期性增加和转子速度降低,远高于和低于其预期运行水平。当变频器y的状态随后被继电器回PLC时,受到损害的PLC向控制中心报告了一个操纵值yay(声称设备是正常运行)。对西门子417控制器[164]进行了类似的攻击,攻击者在PLC上捕获了21秒的有效传感器变量,然后连续重放它们。在攻击期间,确保通过SCN发送到SCADA监视器的数据看起来正常[164]。Giraldo等人对各种ICS攻击(控制器,传感器或执行器攻击)的可检测性进行了系统研究。[162],最终建议是在现场网络以及监控网络以及控制的不同回路中部署系统监视器系统。

除了攻击检测,防止系统达到不安全状态也是一个活跃的研究领域[39,166,167,168,169]。基本思想是确定控制动作可能导致系统出现问题,因此参考监视器将阻止该控制信号到达物理系统。其他研究领域包括遗留系统中的安全性改造[170,87]和工业控制设备中的恶意软件[171,172]。Krotofil和Gollmann对ICS安全研究进行了简要调查[173],对ICS安全领域最新实践的回顾包括Knowles等人的工作。[174,78]。

研究工业控制系统的一个问题是平台的多样性,包括设备(不同制造商使用不同技术)和应用(水、化学系统、石油和天然气等)的多样性。因此,该领域的一大挑战是结果的可重复性和工业控制测试台的通用性[175]。

有关网络物理系统安全之​CPS域之工业控制系统的更多相关文章

  1. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  2. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  3. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  4. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  5. ruby - 用 YAML.load 解析 json 安全吗? - 2

    我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("

  6. ruby-on-rails - 安全地显示使用回形针 gem 上传的图像 - 2

    默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同

  7. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

  8. ruby - 404 未找到,但可以从网络浏览器正常访问 - 2

    我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT

  9. ruby - 使写入文件线程安全 - 2

    我在一个ruby​​文件中有一个函数可以像这样写入一个文件File.open("myfile",'a'){|f|f.puts("#{sometext}")}这个函数在不同的线程中被调用,使得像上面这样的文件写入不是线程安全的。有谁知道如何以最简单的方式使这个文件写入线程安全?更多信息:如果重要的话,我正在使用rspec框架。 最佳答案 您可以通过File#flock给锁File.open("myfile",'a'){|f|f.flock(File::LOCK_EX)f.puts("#{sometext}")}

  10. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

随机推荐