CIP 检查器

CIP 检查器概述

类型

检查器(服务)

使用方式

检测

实例类型

多实例

所需其他检查器

stream_tcp

已启用

false

通用工业协议 (CIP) 是支持工业自动化应用的应用协议。EtherNet/IP (ENIP) 是基于以太网的网络中使用的 CIP 的实施。

CIP 检查器检测 TCP 或 UDP 上运行的 CIP 和 ENIP 流量,并将其发送给入侵规则引擎。可以使用自定义入侵规则中的 CIP 和 ENIP 关键字检测 CIP 和 ENIP 流量中的攻击。



在 Snort 3 中, cip 检查器不支持 CIP 应用检测器。要实施 CIP 应用检测,您可以创建和导入自定义 CIP 入侵规则,并启用相应的 IPS 规则。有关详细信息,请参阅管理应用的 Snort 3 配置文档。


配置 CIP 检查器的最佳实践

在配置 cip 检查器时,请考虑以下最佳实践:

  • 您必须在 绑定程序 检查器中添加默认 CIP 检测端口 44818 和任何其他 CIP 端口。

  • 我们建议您使用入侵防御操作作为访问控制策略的默认操作。

  • 要检测 CIP 和 ENIP 应用,您必须在相应的自定义网络分析策略中启用 cip 检查器。

  • 要使用访问控制规则阻止 CIP 或 ENIP 应用流量,请确保在相应的网络分析策略中已启用规范器检查器和其内联模式选项(默认设置)。

  • 要丢弃可触发 CIP 检查器规则和 CIP 入侵规则的流量,请确保在相应入侵策略中已启用 内联时丢弃

  • cip 检查器不支持以下任一操作的访问控制策略默认操作:

    • 访问控制:信任所有流量

    • 访问控制:阻止所有流量

  • CIP 检查器不支持 CIP 应用的应用可视性,包括网络发现。

CIP 检查器参数

CIP TCP 端口配置

绑定程序 检查器定义 CIP TCP 端口配置。有关详细信息,请参阅绑定程序检查器概述

示例:
[
    {
        "when": {
                    "role": "server",
                    "proto": "tcp",
                    "ports": "44818"
        },
        "use": {
                    "type": "cip"
        }
    }
]

embedded_cip_path

确定检查器是否检查嵌入式 CIP 连接路径。

类型: 字符串

有效值:

  • "false"

  • 用双引号引起来的 CIP 路径,例如 "0x2 0x36"

默认值: "false"

unconnected_timeout

设置默认的无关联超时时间 (秒)。当 CIP 请求消息不包含协议特定超时值,并且达到每个 TCP 连接上并发无关联请求的最大数时,系统测定此参数指定的消息的秒数。如果计时器过期,则会删除此消息,以便腾出空间来存储未来的请求。

当指定 0 时,所有未配置特定于协议的超时时间的流量将首先超时。

类型: 整数

有效范围: 0360

默认值: 300

max_unconnected_messages

设置每个 TCP 连接上并发无关联 CIP 消息的最大数。如果系统达到最大并发请求数,系统将关闭连接。

类型: 整数

有效范围: 110000

默认值: 100

max_cip_connections

设置系统允许的每个 TCP 连接上的同步 CIP 连接的最大数。

类型: 整数

有效范围: 110000

默认值: 100

CIP 检查器规则

生成事件并在内联部署中丢弃攻击性数据包启用 cip 检查器规则。

表 1. CIP 检查器规则

GID:SID

Rule Message

148:1

CIP 数据格式错误

148:2

CIP 数据不符合 ODVA 标准

148:3

超出 CIP 连接限制。已删除最近最少使用的连接

148:4

超出 CIP 未连接请求限制。已删除最早的请求

CIP 检查器入侵规则选项

cip_attribute

detection 参数指定其与 CIP 属性相匹配。

类型: 间隔

语法: cip_attribute: <range_operator><positive integer>;cip_attribute: <positive integer><range_operator><positive integer>;

有效值: 介于 0 到 65535 之间的一个或多个整数的集合,以及 “范围格式”表 中指定的 range_operator

示例: cip_attribute: 100;

cip_class

检测参数设置。

类型: 间隔

语法: cip_class: <range_operator><positive integer>中所述:或 cip_class:中所述:

有效值: 介于 0 到 65535 之间的一个或多个整数的集合,以及 “范围格式”表 中指定的 range_operator

示例: cip_class: 25;

cip_conn_path_class

检测参数,以匹配 CIP 连接路径类。

类型: 间隔

语法: cip_conn_path_class: <range_operator><positive integer>;cip_conn_path_class: <positive integer><range_operator><positive integer>;

有效值: 介于 0 到 65535 之间的一个或多个整数的集合,以及 “范围格式”表 中指定的 range_operator

示例: cip_conn_path_class: 85;

cip_instance

Detection 参数以与 CIP 实例匹配。

类型: 间隔

语法: cip_instance: <range_operator><positive integer>中所述:或 cip_instance:中所述:

有效值: 介于 0 到 65535 之间的一个或多个整数的集合,以及 “范围格式”表 中指定的 range_operator

示例: cip_instance: 15;

cip_req

Detection 参数以与 CIP 请求匹配。

语法cip_req;

示例cip_req;

cip_rsp

Detection 参数以与 CIP 响应匹配。

语法: cip_rsp;

示例: cip_rsp;

cip_service

Detection 参数以与 CIP 服务匹配。

类型: 间隔

语法: cip_service: <range_operator><positive integer>;cip_service: <positive integer><range_operator><positive integer>;

有效值: 一组介于 0 到 127 之间的一个或多个整数,以及 “范围格式”表 中指定的 range_operator

示例: cip_service: 50;

cip_status

检测参数以匹配 CIP 响应状态。

类型: 间隔

语法: cip_status: <range_operator><positive integer>;cip_status: <positive integer><range_operator><positive integer>;

有效值: 一组介于 0 到 255 之间的一个或多个整数,以及 “范围格式”表 中指定的 range_operator

示例: cip_status: 250;

表 2. 范围格式

范围格式

Operator

说明

operator i

<

少于

>

大于

=

平分

不等于

小于或等于

大于或等于

j operator k

<>

大于 j 且小于 k

<=>

大于或等于 j 且小于或等于 k