ACE: Advanced CIP Evaluator

  • 一、摘要
  • 二、介绍
    • (一)CIP结构
    • (二)协议上下文
    • (三)主动与被动侦察
  • 三、ACE的功能与结构
    • (一)功能
    • (二)结构
      • (1)Ethernet层
      • (2)IP层
      • (3)传输层(TCP or UDP)
      • (4)EhterNet/IP 层
      • (5)CIP层
      • (6)CIP连接管理器
      • (7)CIP类通用
  • 四、ACE的优势与不足
    • (一)优势
    • (二)不足

一、摘要

本文介绍了一种工具,高级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数据包的解释更具挑战性。

(三)主动与被动侦察

主动侦察可以产生通常无法通过网络传输的信息,如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所示。

(1)Ethernet层

Ethernet层是分析的第一个数据包层,从这一层提取数据包的源MAC地址和目的MAC地址。该层提供关于两个设备的设备信息:作为包源的发送设备和作为包目的地的接收设备。使用以太网层细节构建图形数据库的算法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层提取的系统信息的存储。

(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将其添加到图形信息中。


根据前向开放服务操作的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标签中发现的网络设备添加到系统图中的过程。

四、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

ACE:高级CIP评估相关推荐

  1. 阿里云ACE高级认证考试试卷内容范围(云计算架构师)

    阿里云ACE云计算架构师高级认证考试试卷范围有哪些?阿里云ACP网分享阿里云ACE高级认证云计算架构师试卷范围,阿里云ACE考试内容包括弹性计算与网络设计.阿里云系统高可用与容灾.阿里云应用部署与管理 ...

  2. 阿里云ace考试试题以及关于阿里云ace的相关问题解答

    阿里云ace认证对于个人来说可以证明你在技术领域的专业度,可以解决实际问题,获得更多阿里云的就业机会,对于企业来说通过云认证培养专业人才,提高公司云技术能力,而获得这个认证需要通过阿里云ace考试,接 ...

  3. 阿里云ACE高级工程师的备考经验分享

    阿里云ACE高级认证首位云计算架构师谢俊东的备考经验分享,阿里云ACE认证是阿里云的高级工程师认证,目前只有云计算架构师一个专业,考费费用为2400元/次,试卷满分为150分,及格分数90分,考试时间 ...

  4. 域用户更改密码提示拒绝访问_AD域中的ACL攻防探索

    前言关于域内ACL的攻防近两年经常被人所提起,同时也产生了很多关于域内ACL相关的工具和攻击方式,本文将会从ACL的概念谈起,然后介绍几种不同的域内攻击方式以及如何监测和防御对于ACL的攻击.ACL的 ...

  5. bootstraptable获得所有行_“安全超新星”集结出道,共创交通美好未来 2020广汽本田安全中国行首届道路安全创新大赛成功举办...

    两辆汽车分别搭载了代表着婴儿的红心,当两车相撞,被安全座椅包裹的红心安然无恙,而另一颗没有安全措施的红心直接裂开.画面配文"救救孩子",让人格外揪心.这是来自2020年广汽本田安全 ...

  6. bootstraptable获得所有行_2020广汽本田安全中国行·首届道路安全创新大赛成功举办...

    两辆汽车分别搭载了代表着婴儿的红心,当两车相撞,被安全座椅包裹的红心安然无恙,而另一颗没有安全措施的红心直接裂开.画面配文"救救孩子",让人格外揪心.这是来自2020年广汽本田安全 ...

  7. 19-A Walk-based Model on Entity Graphs for Relation Extraction(句内多对,多关系,多元,2018ACL

    文章目录 abstract 1.introduction 2 Proposed Walk-based Model 2.1 嵌入层 2.2 Bidirectional LSTM Layer 2.3 Ed ...

  8. 数据库系统原理复习提纲

    数据库系统原理复习提纲 参考文献:A First Course in Database Systems | 3rd Edition Authors:Jennifer Widom,Jeffrey D U ...

  9. OM | 浅谈收益管理与动态定价

    作者:吴迪,同济大学经管学院管理科学与工程在读研究生,研究方向:服务网络设计与优化.数据驱动运营优化和分析.收益管理和定价,李相勇老师团队 收益管理(Revenue Management; RM)关注 ...

最新文章

  1. java hashmap 去重复_为什么我在Java HashMap中得到重复的键?
  2. c#进行三角形周长面积计算公式_小学数学,期末复习,量的计算单位及进率归类,常用计算公式表...
  3. python查询MySQL写入Excel
  4. 如何提高天猫入驻成功率?掌握这两点即可
  5. 用Office2010做博客园客户端
  6. ios 数字键盘左下角添加按钮_IOS数字键盘左下角添加完成按钮的实现方法
  7. android---手电筒之摩尔斯电码
  8. jquery 圆点绕圆旋转_jquery 圆形旋转图片滚动切换效果
  9. 企业级WLAN市场格局
  10. java更改用户邮箱_git 修改提交邮箱以及用户名-亲测
  11. 都在学奈飞 高盛要玩数据订阅
  12. JavaScript的ES3, ES5, ES6实现继承方式
  13. 3dmax和VRay灯光
  14. highcharts.js:61 Error: text attribute y: Expected length, NaNNaN.错误的解决
  15. html5 心形照片墙,教你两种“心形拼图”法|制作照片墙,3分钟搞定!
  16. Bootstrap网站模板
  17. 【经验分享】桥接网络无法联网、开发板挂载根文件系统问题解决
  18. 《数据结构》八大排序(详细图文分析讲解)
  19. java uri用法_javaurl类的用法
  20. 马斯克:你只见我谈笑间荣耀封神,却不知我曾险失所有

热门文章

  1. stm32 2.4寸 TFT 触摸屏STM32驱动程序 2.4inch Arduino Display
  2. 阿里云云原生一体化数仓 — 数据治理新能力解读
  3. 计算机毕业设计python基于django在线古诗词学习系统
  4. 这一次,彻底理解XSS攻击
  5. Linux用户管理(三)Linux文件管理
  6. python驱动级模拟按键_Python实现windows下模拟按键和鼠标点击的方法
  7. Android Studio Notes/学习笔记
  8. matlab模拟高斯光束波前相位分布,光束波前校正与信标研究
  9. Xmind软件及文件双击不能打开?
  10. 设置Linux防火墙时间同步