ACE: Advanced CIP Evaluator
一、摘要
本文介绍了一种工具,高级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&