IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> ACE:高级CIP评估 -> 正文阅读

[网络协议]ACE:高级CIP评估

一、摘要

本文介绍了一种工具,高级CIP评估器(ACE),它被动地处理CIP通信层,并从观察到的网络流量中自动提取设备、通信和系统信息。由于ACE是被动运行的,不会产生自己的任何网络流量,因此系统运行不会受到干扰。ACE揭示了有关ICS的信息,如其网络设备、通信模式和系统操作,而其他工具无法从CIP层获取这些信息。这种从ICS网络流量中提取和处理质量信息的能力使ACE成为ICS系统发现和安全应用的实用工具。该工具具有很高的可扩展性,可以应用于各种类型的集成电路。ACE使用具有代表性的ICS发电试验台进行了测试和验证。
本文中使用了几个关键术语,定义如下:
系统:ICS运行期间所有可观察和不可观察的网络、过程和物理方面。
设备信息:设备的所有静态详细信息,例如名称、供应商、类型和固件。
通信信息:表示系统设备随时间的行为的静态信息,例如通信的设备组、使用的协议和涉及的CIP对象。
系统信息:不依赖于ICS成功运行的静态数据。系统信息包括设备信息和通信信息。

二、介绍

(一)CIP结构

CIP使用对象建模、引用和通信过程在网络上的设备之间传输信息。网络上的每个设备都可以表示为对象的集合,每个对象都是单个设备功能的抽象。例如,有一个通信对象,它使用CIP在网络上实现设备通信。任何未表示为对象的设备元件或功能都无法通过CIP通信访问。这些对象被构造成类和实例,每个对象都拥有属性。
类被定义为具有相同功能的一组对象。例如,通过网络生成和使用CIP消息的一组对象将构成一个通信类。实例是类中的单个对象,例如,由五个对象组成的通信类因此有五个通信对象实例。一个类的每个实例对象都拥有相同的属性,尽管这些属性的值在实例之间可能不同。除了实例属性外,对象类还具有描述整个类的属性。类属性的一个例子是类中存在多少实例。最后,服务是作用于对象的类和实例的操作。CIP通信结构由在目标设备的特定CIP类上执行操作的CIP服务组成。然后,目标设备用适当的服务响应响应请求设备。通过检查工业网络上设备通信中涉及的CIP对象的服务和交互,可以建立有关网络设备和整个ICS的信息。

(二)协议上下文

CIP在传输的数据包中提供上下文信息,只要有合适的工具和解释数据包的能力,就可以提取系统信息。以太网/IP封装CIP数据包的一般格式如图1所示,但是封装数据的结构和内容因CIP服务或命令而异。因此,CIP数据包的解释更具挑战性。CIP封装的一般格式

(三)主动与被动侦察

主动侦察可以产生通常无法通过网络传输的信息,如PLC梯形图逻辑,使其成为侦察的强大选项。一些关键信息很少通过网络传输,可能永远不会被纯粹的被动工具观察到。相反,主动侦察可以有效、及时地直接请求这些信息。在分析已知系统环境时,如果允许生成网络流量,并且操作员具备一些系统知识,则首选主动侦察。但主动侦察必须精心设计和执行,已经证明,联网的ICS容易受到错误网络活动的影响,网络异常(如格式错误的数据包)可能会导致ICS出现故障,甚至关闭。

被动侦察不能产生与主动侦察相同的系统洞察水平,但在某些条件下,它是未知系统环境的有用工具,也是本文工具ACE中使用的方法。被动工具不需要单独操作。通过被动分析获得的信息可以被主动工具用来优化其功能。例如,使用被动获得的开放系统端口知识,无需进行完整端口扫描,并允许主动工具直接与感兴趣的开放端口通信。

三、ACE的功能与结构

(一)功能

ACE的关键功能包括:
处理所有基于IP的层,包括EtherNet/IP、CIP、CIP Connection Manager和CIP Class Generic,以提取设备、通信和系统信息及功能。
在PLC编程和重置条件期间,从网络捕获中提取PLC标签。
在图形数据库中存储系统信息,以适应数据和设备连接。

(二)结构

随着设备出现在网络上或出现替代通信模式,ACE生成的数据的结构属性经常发生变化。因此,图形数据库最适合执行设备通信信息以及设备和系统信息关系的存储和检索。

设G=(V,E)是有向图,其中包含一组节点或顶点V,以及一组有向边E。图中的每个节点n?V代表一个单独的联网系统设备。有关设备的任何信息都存储为节点属性,例如其MAC地址、IP地址、设备名称和设备类型。类似地,图上的每个有向边e?E表示从一个设备到另一个设备的某种形式的交互。边缘属性由任何标识通信信息组成,如以太网/IP会话。所有这些识别信息,包括设备信息和通信信息,都由ACE以有向图结构收集和存储。

基于CIP的以太网/IP通信的分层如图2所示。基于以太网/IP的CIP模型

(1)Ethernet层

Ethernet层是分析的第一个数据包层,从这一层提取数据包的源MAC地址和目的MAC地址。该层提供关于两个设备的设备信息:作为包源的发送设备和作为包目的地的接收设备。使用以太网层细节构建图形数据库的算法1如下:
算法1

(2)IP层

对数据包的以太网层进行了处理,就会对IP层进行分析。分析以太网层后的下一步是确定数据包是否包含IP层。如果不是,这意味着该数据包不使用IP,因此该数据包被忽略。如果数据包确实包含IP层,则提取数据包的源IP地址和目标IP地址,并将此信息添加到系统信息图节点。

(3)传输层(TCP or UDP)

在分析以太网和IP层之后,下一个分析的数据包层是UDP或TCP层。如果这两层都不存在,则忽略数据包的其余部分,并处理下一个数据包。UDP和TCP层都为发送和接收设备提供源端口和目标端口设备信息,并将此信息添加到系统信息图节点。

(4)EhterNet/IP 层

在对数据包的前三层进行分析以提取源和目标MAC地址、IP地址和端口后,将处理EhterNet/IP层以获取进一步的设备、通信和系统信息。EtherNet/IP是基于IP的工业网络上CIP的封装,不能与单独的以太网和IP层混淆。EtherNet/IP层对每个数据包都有一个固定的结构,它利用请求和响应通信,该层可以采用两种方式进行结构:公共数据包格式(CPF)或封装数据包结构。CPF结构的EhterNet/IP层仅由目标地址和数据组成,而封装包提供通信命令和参数。为了ACE的目的,只进一步分析封装包。从这些封装数据包中,EtherNet/IP层的两个重要参数是EtherNet/IP会话句柄和EtherNet/IP命令。

EtherNet/IP会话句柄表示两个联网设备之间的传输通道。所有CIP层通信和以太网/IP封装通信都通过注册的以太网/IP会话进行。因此,这提供了系统的通信信息。
EtherNet/IP命令执行特定的EtherNet/IP操作,例如注册会话、请求或响应设备信息、请求或响应设备通信能力,或发送CIP数据。因此,命令参数显示设备信息以及通信信息。如果EtherNet/IP命令为SendRRData或SendUnitData,则表示存在下一步检查的CIP层。如果EtherNet/IP命令是任何其他命令,则EtherNet/IP是最后一个数据包层,ACE开始检查下一个数据包。算法2显示了从以太网/IP层提取的系统信息的存储。
算法2

(5)CIP层

与EtherNet/IP一样,CIP通信通过请求和响应来执行。基于对象的交互揭示了更多关于系统的设备和通信信息,例如设备功能和通信方法。根据包的CIP层的服务和目标对象,在CIP层之后可能会有一个附加层,即CIP连接管理器或CIP类通用。

常见的CIP服务是多服务包,它由一系列CIP服务组成,所有这些服务都包含在同一个包中。另一组重要的CIP服务包括Get Attributes All和Get Attributes List服务。这些服务请求目标设备中单个对象的属性值。Get Attributes All服务读取一类对象或对象实例的所有属性,而Get Attributes List只读取请求数据包中指示的特定属性。与Get Attributes All和Get Attributes List服务类似,还有Set Attributes All和Set Attributes List服务。这些服务使用请求数据包中发送的值修改对象类或对象实例的属性,而不是像Get-type服务那样读取属性。

通过被动观察涉及设备标识对象(CIP类:0x01)的网络传输,可以从CIP层获得设备标识信息。该标识对象信息包括供应商ID、设备类型、产品名称、产品代码、序列号、固件版本和设备的运行状态,所有这些都作为节点属性添加到系统信息图中。关于与其他设备使用显式和隐式消息传递的附加CIP层信息也存储在每个节点上。

(6)CIP连接管理器

CIP连接管理器层是CIP的一个子集,包含关于两个设备之间的连接和通信的详细信息。CIP连接管理器中的第一个参数是CIP服务,CIP连接管理器层中的其余参数和值会有所不同,因为它们取决于CIP服务。ACE的设计考虑了这些要求,因此能够从CIP和CIP连接管理器层提取所有细节,而不管CIP服务是什么。

CIP连接管理器层中一个常见且重要的CIP服务是前向开放服务,它在两个设备之间建立通信通道。在初始前向开放请求和响应中,可以观察到有关请求和响应设备的信息,包括请求设备的序列号、供应商ID和目标设备内的连接路径。此外,还存在通信信息,例如发起者到目标和目标到发起者通信的连接ID,以及连接序列号。使用算法3将其添加到图形信息中。

算法3
根据前向开放服务操作的CIP对象,也可以从该服务确定更多设备信息。在访问负责促进设备间数据循环传输的组装对象的前向开放请求中,电子密钥段作为请求的一部分进行传输。此电子密钥段中包含有关目标设备的信息,包括供应商ID、设备类型、产品代码和固件版本。将从组装对象中提取的设备信息与标识对象中提供的信息进行比较,这提供了许多相同的信息,除了缺少状态信息参数。然后将所有提取的设备信息添加到表示目标设备的设备信息的图形节点。

(7)CIP类通用

与CIP连接管理器具有相同深度的另一个CIP相关层是CIP类通用层。CIP数据包的这个CIP类通用层没有很好的文档记录,并且是完全非结构化的,纯粹由原始数据组成。但是可以通过检查CIP类通用层中的PLC标签获取更多设备信息。

PLC标签是PLC内存中存储数据的部分的可读名称,这些标签是与PLC交互时分配内存和监控数据的标准方法,标签的使用为组织数据以匹配系统配置提供了额外的灵活性,并提供了一种在开发过程中记录PLC应用程序的方法。因此,通过被动观察系统网络流量获取PLC标签,可以深入了解PLC的内部操作,从而有助于发现设备信息,并有助于确定PLC在系统操作中的作用。ACE能够从被动处理CIP类通用数据包层获得PLC标签,并将相关设备和通信信息添加到图形中。

每个标记都有属性,例如标记名和该标记表示的数据类型。通过解释名称和数据类型,可以推断出每个标签所起的作用,以及PLC控制的设备。除了用于系统操作的标签外,标签还用于参考网络设备和促进设备交互。这类标签是地址I/O标签。这些地址I/O标签的结构不同于编程标签,因此可以确定关于系统的不同信息。PLC与之交互的网络上的每个输入或输出(I/O)设备都有一个单独的地址I/O标签,其参数包括位置、插槽、类型、成员、子成员和位。在PLC编程期间,所有地址I/O标记字段在网络上都是可见的,因此会显示可添加到图形中的网络设备的设备信息。算法4概述了将PLC地址I/O标签中发现的网络设备添加到系统图中的过程。
算法4

四、ACE的优势与不足

(一)优势

ACE是一种识别设备、通信和系统信息的被动方法。被动方法提取系统信息的主要好处是能够确定系统信息,而不存在损坏被观察系统或被潜在入侵检测系统发现的风险。ACE还可以应用于任何使用基于CIP的通信的ICS环境。此外,ACE是一种便携式解决方案,可以在任何计算机上以最小的依赖性使用,从而确保其广泛应用于各种ICS设置。ACE不需要作为独立工具单独运行。ACE提取的信息可以导出到其他工具,如GrassMarlin、Nmap和Nessus,如果存在正确的接口,ACE可以与企业级网络分析套件进行接口。

(二)不足

ACE的最大限制是,许多重要的基于CIP的信息仅在系统编程、系统启动、系统重置或操作员与设备交互期间通过网络传输。因此,ACE可能需要等待更长的时间才能通过网络获得这些信息。尽管ACE可以为任何支持IP的网络生成网络拓扑,但它主要是为基于CIP的通信而设计的。ACE的另一个限制涉及处理CIP中可用信息的模糊性。例如,有些服务、类和标签是特定于供应商的,未记录在CIP手册中。这意味着这些服务、类和标记的作用和使用并不广为人知。ACE的一个可能限制是无法解释ICS环境中的加密流量。因此,如果通过网络传输的流量被加密,ACE将只能获得很少(如果有的话)有关通信的信息。任何加密的东西都会对ACE保密。

文献研究
[1]2007.The CIP Networks Library Volume 1: Common Industrial Protocol (CIP). Open
DeviceNet Vendor Association (ODV A), Ann Arbor.
[2]2007.The CIP Networks Library Volume 2: Ethernet/IP Adaptation of CIP. Open
DeviceNet Vendor Association (ODV A), Ann Arbor.
[3]Advantech. 2015. EtherNet/IP Supported SCADA Manageable ProView Ethernet
Switches. (27 5 2015). www.advantech.com/intelligent-transportation/
[4] Allen-Bradley. 2016.Logix5000 Controllers I/O and Tag Data. Rockwell Automa-
tion.
[5] P Biondi. 2010. Scapy. (22 4 2010). www.secdev.org/projects/scapy/doc/
[6] Gerald Combs. 1998. Wireshark. (1998). www.wireshark.org/
[7] iadgov. 2016. GRASSMARLIN. (2 2 2016). github.com/iadgov/GRASSMARLIN
[8]Marco Caselli; Dina Had??iosmanovi??; Emmanuele Zambon; Frank Kargl.
2013. On the Feasibility of Device Fingerprinting in Indsutrial Control Systems.
Critical Information Infrastructures Security.
[9]Perry Kundert. 2013. Communications Protocol Python Parser and Originator.
(2013). https://github.com/pjkundert/cpppo
[10]Fedor V Yarochkin; Ofir Arkin; Meder Kydyraliev; Shih-Yao Dai; Yennun Huang;
Sy-Yen Kuo. 2009. Xprobe2++: Low Volume Remote Network Information Gath-
ering Tool. IEEE/IFIP International Conference on Dependable Systems And
Networks.
[11] Gordon Lyon. 1997. Nmap Security Scanner. (9 1997). nmap.org/
[12]Ryan Grandgenett; Robin Gandhi; William Mahoney. 2014. Exploitation of Allen
Bradley’s implementation of EtherNet/IP for denial of service against industrial
control systems. 9th International Conference on Cyber Warfare and Security
2014, ICCWS 2014.
[13]Tend Micro. 2017. Industrial Control System. (2017). www.trendmicro.com/
vinfo/us/security/definition/industrial-control-system
[14]D C Miller, B; Rowe. 2012. A Survey of SCADA and Critical Infrastructure
Incidents. 1st Annual Conference on Research in Information Technology.
[15]Bradley Mitchell. 2017. The Layers of the OSI Model Illustrated. (7 4 2017).
www.lifewire.com/layers-of-the-osi-model-illustrated-818017
[16] Neo4J. 2012. Neo4J. (2012). neo4j.com/
[17] ODV A. 2018. ODV A. (16 8 2018). https://www.odva.org/
[18]ODV A. 2018. ODV A MultiVendor Demo CIP Security. (16
8 2018). https://www.odva.org/Happenings/News/ID/234/
CIP-Security-to-be-Demonstrated-at-SPS-IPC-Drives-2017
[19]ODV A. 2018. ODV A Standards. (16 8 2018). https://www.
odva.org/Technology-Standards/Common-Industrial-Protocol-CIP/
CIP-Specifications-Library
[20]ODV A. 2018. ODV A Vendor CIP Security. (16 8 2018). https:
//www.odva.org/Portals/0/Library/Conference/2015_ODV A_Conference_
Batke-Wiberg-Dube_CIP-Security-Phase-1.pdf
[21]Process Online. 2017. Industrial Ethernet and wireless growing in market
share according to HMS. (6 3 2017). www.processonline.com.au/content/
industrial-networks-buses/news/
[22]Franka; Konig Hartmut Paul, Andreas; Schuster. 2017. Network Topology Explo-
ration for Industrial Networks. International Conference on Industrial Networks
and Intelligent Systems.
[23]John Rinaldi. 2010. CIP Assemblies - Revisited. (3 3 2010). www.rtaautomation.
com/cip-assemblies-revisited/
[24]V Schiffer. 2016.The Common Industrial Protocol (CIP) and the Family of CIP
Networks. Open DeviceNet Vendor Association (ODV A), Ann Arbor.
[25]Jason Smith. 2018. ICS-pcap. (16 8 2018). https://github.com/automayt/ICS-pcap
[26]Tenable. 2018. Nessus. (16 8 2018). https://www.tenable.com/products/nessus/
nessus-professional
[27]Design World. 2017. How HMIs can solve the industrial Ethernet
communication problem. (2 2 2017). www.designworldonline.com/
hmis-can-solve-industrial-ethernet-communication-problem/
[28]Michal Zalewski. 2012. P0F V3: Passive Fingerprinter. (2012). lcamtuf.coredump.
cx/p0f3/README


  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:59:52  更:2022-03-10 23:00:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:16:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码