10.25. ENIP/CIP 关键词¶
10.25.1. enip_command¶
针对ENIP命令,我们匹配ENIP封装中的命令字段。
示例:
enip_command:99;
enip_command:list_identity;
enip_command使用:ref:16位无符号整数 <rules-integer-keywords>。 也可以通过枚举文本指定。
10.25.2. cip_service¶
对于CIP服务,我们最多使用3个逗号分隔值,分别表示服务、类和属性。 这些值在CIP规范中有描述。CIP类与其服务相关联,CIP属性与其服务相关联。 如果只需匹配到服务级别,则只需提供服务值。若需匹配到CIP属性,则必须提供全部3个值。
示例:
cip_service:75
cip_service:16,246,6
(参考 http://read.pudn.com/downloads166/ebook/763211/EIP-CIP-V1-1.0.pdf)
协议信息可在此处查阅: http://literature.rockwellautomation.com/idc/groups/literature/documents/wp/enet-wp001_-en-p.pdf
10.25.3. enip.status¶
针对ENIP状态,我们匹配ENIP封装中的状态字段。 使用32位无符号整数值。
enip.status使用:ref:32位无符号整数 <rules-integer-keywords>。 也可以通过枚举文本指定。
示例:
enip.status:100;
enip.status:>106;
enip.status:invalid_cmd;
10.25.4. enip.protocol_version¶
匹配不同消息中的协议版本。 使用16位无符号整数值。
enip.protocol_version使用:ref:16位无符号整数 <rules-integer-keywords>。
示例:
enip.protocol_version:1;
enip.protocol_version:>1;
10.25.5. enip.cip_attribute¶
匹配不同消息中的cip属性。 使用32位无符号整数值。
允许在不匹配cip.service的情况下进行匹配。
enip.cip_attribute使用:ref:32位无符号整数 <rules-integer-keywords>。
示例:
enip.cip_attribute:1;
enip.cip_attribute:>1;
10.25.6. enip.cip_instance¶
匹配CIP请求路径中的cip实例。 使用32位无符号整数值。
enip.cip_instance使用:ref:32位无符号整数 <rules-integer-keywords>。
示例:
enip.cip_instance:1;
enip.cip_instance:>1;
10.25.7. enip.cip_class¶
匹配CIP请求路径中的cip类。 使用32位无符号整数值。
enip.cip_class使用:ref:32位无符号整数 <rules-integer-keywords>。
允许在不匹配cip.service的情况下进行匹配。
示例:
enip.cip_class:1;
enip.cip_class:>1;
10.25.8. enip.cip_extendedstatus¶
匹配存在的cip扩展状态(如果有)。 对于多服务数据包,将匹配任何出现的状态。 使用16位无符号整数值。
enip.cip_extendedstatus使用:ref:16位无符号整数 <rules-integer-keywords>。
示例:
enip.cip_extendedstatus:1;
enip.cip_extendedstatus:>1;
10.25.9. enip.revision¶
匹配身份消息中的修订版本。 使用16位无符号整数值。
enip.revision使用:ref:16位无符号整数 <rules-integer-keywords>。
示例:
enip.revision:1;
enip.revision:>1;
10.25.10. enip.identity_status¶
匹配身份消息中的状态(非ENIP头部)。 使用16位无符号整数值。
enip.identity_status使用:ref:16位无符号整数 <rules-integer-keywords>。
示例:
enip.identity_status:1;
enip.identity_status:>1;
10.25.11. enip.state¶
匹配身份消息中的状态。 使用8位无符号整数值。
enip.state使用:ref:8位无符号整数 <rules-integer-keywords>。
示例:
enip.state:1;
enip.state:>1;
10.25.12. enip.serial¶
匹配身份消息中的序列号。 使用32位无符号整数值。
enip.serial使用:ref:32位无符号整数 <rules-integer-keywords>。
示例:
enip.serial:1;
enip.serial:>1;
10.25.13. enip.product_code¶
匹配身份消息中的产品代码。 使用16位无符号整数值。
enip.product_code使用:ref:16位无符号整数 <rules-integer-keywords>。
示例:
enip.product_code:1;
enip.product_code:>1;
10.25.14. enip.device_type¶
匹配身份消息中的设备类型。 使用16位无符号整数值。
enip.device_type使用:ref:16位无符号整数 <rules-integer-keywords>。
示例:
enip.device_type:1;
enip.device_type:>1;
10.25.15. enip.vendor_id¶
匹配身份消息中的厂商ID。 使用16位无符号整数值。
enip.vendor_id使用:ref:16位无符号整数 <rules-integer-keywords>。
示例:
enip.vendor_id:1;
enip.vendor_id:>1;
10.25.16. enip.product_name¶
匹配身份消息中的产品名称。
示例:
enip.product_name; pcre:"/^123[0-9]*/";
enip.product_name; content:"swordfish";
enip.product_name
是'粘性缓冲区',可用作 fast_pattern
。
10.25.17. enip.service_name¶
匹配服务列表消息中的服务名称。
示例:
enip.service_name; pcre:"/^123[0-9]*/";
enip.service_name; content:"swordfish";
enip.service_name
是'粘性缓冲区',可用作 fast_pattern
。
10.25.18. enip.capabilities¶
匹配服务列表消息中的功能。 使用16位无符号整数值。
enip.capabilities使用:ref:16位无符号整数 <rules-integer-keywords>。
示例:
enip.capabilities:1;
enip.capabilities:>1;
10.25.19. enip.cip_status¶
匹配cip状态(多服务数据包中的任意一个状态)。 使用8位无符号整数值。
enip.cip_status使用:ref:8位无符号整数 <rules-integer-keywords>。
示例:
enip.cip_status:1;
enip.cip_status:>1;