mirror of https://github.com/OISF/suricata
doc: dnp3 keywords
parent
9dea001c7d
commit
98f56f9916
@ -0,0 +1,149 @@
|
||||
DNP3 keyword (Currently in development, not available yet)
|
||||
==========================================================
|
||||
|
||||
The DNP3 keywords can be used to match on fields in decoded DNP3
|
||||
messages. The keywords are based on Snort's DNP3 keywords and aim to
|
||||
be 100% compatible.
|
||||
|
||||
dnp3_func
|
||||
---------
|
||||
|
||||
This keyword will match on the application function code found in DNP3
|
||||
request and responses. It can be specified as the integer value or
|
||||
the symbolic name of the function code.
|
||||
|
||||
Syntax
|
||||
~~~~~~
|
||||
|
||||
::
|
||||
|
||||
dnp3_func:<value>;
|
||||
|
||||
Where value is one of:
|
||||
|
||||
* An integer value between 0 and 255 inclusive.
|
||||
* Function code name:
|
||||
|
||||
* 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
|
||||
|
||||
dnp3_ind
|
||||
--------
|
||||
|
||||
This keyword matches on the DNP3 internal indicator flags in the
|
||||
response application header.
|
||||
|
||||
Syntax
|
||||
~~~~~~
|
||||
|
||||
::
|
||||
|
||||
dnp3_ind:<flag>{,<flag>...}
|
||||
|
||||
|
||||
Where flag is the name of the internal indicator:
|
||||
|
||||
* 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
|
||||
|
||||
This keyword will match of any of the flags listed are set. To match
|
||||
on multiple flags (AND type match), use dnp3_ind for each flag that
|
||||
must be set.
|
||||
|
||||
Examples
|
||||
~~~~~~~~
|
||||
|
||||
::
|
||||
|
||||
dnp3_ind:all_stations;
|
||||
|
||||
::
|
||||
|
||||
dnp3_ind:class_1_events,class_2_events;
|
||||
|
||||
dnp3_obj
|
||||
--------
|
||||
|
||||
This keyword matches on the DNP3 application data objects.
|
||||
|
||||
Syntax
|
||||
~~~~~~
|
||||
|
||||
::
|
||||
|
||||
|
||||
dnp3_obj:<group>,<variation>
|
||||
|
||||
Where <group> and <variation> are integer values between 0 and 255 inclusive.
|
||||
|
||||
dnp3_data
|
||||
---------
|
||||
|
||||
This keyword will cause the following content options to match on the
|
||||
re-assembled application buffer. The reassembled application buffer is
|
||||
a DNP3 fragment with CRCs removed (which occur every 16 bytes), and
|
||||
will be the complete fragment, possibly reassembled from multiple DNP3
|
||||
link layer frames.
|
||||
|
||||
Syntax
|
||||
~~~~~~
|
||||
|
||||
::
|
||||
|
||||
dnp3_data;
|
||||
|
||||
Example
|
||||
~~~~~~~
|
||||
|
||||
::
|
||||
|
||||
dnp3_data; content:|c3 06|;
|
Loading…
Reference in New Issue