10.24. DNP3 关键词

DNP3关键词可用于匹配解码后的DNP3报文中的字段。这些关键词基于Snort的DNP3关键词设计,旨在实现100%兼容。

10.24.1. dnp3_func

该关键词用于匹配DNP3请求和响应中的应用功能码。可指定为整数值或功能码的符号名称。

10.24.1.1. 语法

dnp3_func:<>;

其中值为以下之一:

  • 0到255之间的整数值(含边界值)

  • 功能码名称:

    • confirm

    • read

    • write

    • select

    • operate

    • direct_operate

    • direct_operate_nr

    • immed_freeze

    • immed_freeze_nr

    • freeze_clear

    • freeze_clear_nr

    • freeze_at_time

    • freeze_at_time_nr

    • cold_restart

    • warm_restart

    • initialize_data

    • initialize_appl

    • start_appl

    • stop_appl

    • save_config

    • enable_unsolicited

    • disable_unsolicited

    • assign_class

    • delay_measure

    • record_current_time

    • open_file

    • close_file

    • delete_file

    • get_file_info

    • authenticate_file

    • abort_file

    • activate_config

    • authenticate_req

    • authenticate_err

    • response

    • unsolicited_response

    • authenticate_resp

10.24.2. dnp3_ind

该关键词匹配响应应用头中的DNP3内部指示标志。

10.24.2.1. 语法

dnp3_ind:<标志>{,<标志>...}

其中标志为以下内部指示名称:

  • all_stations

  • class_1_events

  • class_2_events

  • class_3_events

  • need_time

  • local_control

  • device_trouble

  • device_restart

  • no_func_code_support

  • object_unknown

  • parameter_error

  • event_buffer_overflow

  • already_executing

  • config_corrupt

  • reserved_2

  • reserved_1

只要列出的任一标志被设置,该关键词就会匹配。如需匹配多个标志(AND型匹配),需对每个必须设置的标志使用dnp3_ind。

10.24.2.2. 示例

dnp3_ind:all_stations;
dnp3_ind:class_1_events,class_2_events;

10.24.3. dnp3_obj

该关键词匹配DNP3应用数据对象。

10.24.3.1. 语法

dnp3_obj:<>,<变体>

其中<组>和<变体>为0到255之间的整数值(含边界值)。

10.24.4. dnp3_data

该关键词将使后续内容选项在重组后的应用缓冲区上进行匹配。重组后的应用缓冲区是移除CRC(每16字节出现一次)的DNP3片段,可能是由多个DNP3链路层帧重组而成的完整片段。

10.24.4.1. 语法

dnp3_data;

10.24.4.2. 示例

dnp3_data; content:"|c3 06|";