mirror of
https://github.com/zeek/zeek.git
synced 2025-10-06 00:28:21 +00:00
Copy docs into Zeek repo directly
This is based on commit 2731def9159247e6da8a3191783c89683363689c from the zeek-docs repo.
This commit is contained in:
parent
83f1e74643
commit
ded98cd373
1074 changed files with 169319 additions and 0 deletions
14
doc/scripts/base/protocols/mqtt/__load__.zeek.rst
Normal file
14
doc/scripts/base/protocols/mqtt/__load__.zeek.rst
Normal file
|
@ -0,0 +1,14 @@
|
|||
:tocdepth: 3
|
||||
|
||||
base/protocols/mqtt/__load__.zeek
|
||||
=================================
|
||||
|
||||
|
||||
:Imports: :doc:`base/protocols/mqtt/consts.zeek </scripts/base/protocols/mqtt/consts.zeek>`, :doc:`base/protocols/mqtt/main.zeek </scripts/base/protocols/mqtt/main.zeek>`
|
||||
|
||||
Summary
|
||||
~~~~~~~
|
||||
|
||||
Detailed Interface
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
109
doc/scripts/base/protocols/mqtt/consts.zeek.rst
Normal file
109
doc/scripts/base/protocols/mqtt/consts.zeek.rst
Normal file
|
@ -0,0 +1,109 @@
|
|||
:tocdepth: 3
|
||||
|
||||
base/protocols/mqtt/consts.zeek
|
||||
===============================
|
||||
.. zeek:namespace:: MQTT
|
||||
|
||||
Constants definitions for MQTT.
|
||||
|
||||
:Namespace: MQTT
|
||||
|
||||
Summary
|
||||
~~~~~~~
|
||||
Constants
|
||||
#########
|
||||
=============================================================================================== =
|
||||
:zeek:id:`MQTT::msg_types`: :zeek:type:`table` :zeek:attr:`&default` = :zeek:type:`function`
|
||||
:zeek:id:`MQTT::qos_levels`: :zeek:type:`table` :zeek:attr:`&default` = :zeek:type:`function`
|
||||
:zeek:id:`MQTT::return_codes`: :zeek:type:`table` :zeek:attr:`&default` = :zeek:type:`function`
|
||||
:zeek:id:`MQTT::versions`: :zeek:type:`table` :zeek:attr:`&default` = :zeek:type:`function`
|
||||
=============================================================================================== =
|
||||
|
||||
|
||||
Detailed Interface
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
Constants
|
||||
#########
|
||||
.. zeek:id:: MQTT::msg_types
|
||||
:source-code: base/protocols/mqtt/consts.zeek 6 6
|
||||
|
||||
:Type: :zeek:type:`table` [:zeek:type:`count`] of :zeek:type:`string`
|
||||
:Attributes: :zeek:attr:`&default` = :zeek:type:`function`
|
||||
:Default:
|
||||
|
||||
::
|
||||
|
||||
{
|
||||
[2] = "connack",
|
||||
[11] = "unsuback",
|
||||
[5] = "pubrec",
|
||||
[7] = "pubcomp",
|
||||
[6] = "pubrel",
|
||||
[10] = "unsubscribe",
|
||||
[14] = "disconnect",
|
||||
[4] = "puback",
|
||||
[13] = "pingresp",
|
||||
[12] = "pingreq",
|
||||
[8] = "subscribe",
|
||||
[3] = "publish",
|
||||
[9] = "suback",
|
||||
[1] = "connect"
|
||||
}
|
||||
|
||||
|
||||
|
||||
.. zeek:id:: MQTT::qos_levels
|
||||
:source-code: base/protocols/mqtt/consts.zeek 29 29
|
||||
|
||||
:Type: :zeek:type:`table` [:zeek:type:`count`] of :zeek:type:`string`
|
||||
:Attributes: :zeek:attr:`&default` = :zeek:type:`function`
|
||||
:Default:
|
||||
|
||||
::
|
||||
|
||||
{
|
||||
[0] = "at most once",
|
||||
[2] = "exactly once",
|
||||
[1] = "at least once"
|
||||
}
|
||||
|
||||
|
||||
|
||||
.. zeek:id:: MQTT::return_codes
|
||||
:source-code: base/protocols/mqtt/consts.zeek 35 35
|
||||
|
||||
:Type: :zeek:type:`table` [:zeek:type:`count`] of :zeek:type:`string`
|
||||
:Attributes: :zeek:attr:`&default` = :zeek:type:`function`
|
||||
:Default:
|
||||
|
||||
::
|
||||
|
||||
{
|
||||
[2] = "Refused: identifier rejected",
|
||||
[3] = "Refused: server unavailable",
|
||||
[5] = "Refused: not authorized",
|
||||
[0] = "Connection Accepted",
|
||||
[4] = "Refused: bad user name or password",
|
||||
[1] = "Refused: unacceptable protocol version"
|
||||
}
|
||||
|
||||
|
||||
|
||||
.. zeek:id:: MQTT::versions
|
||||
:source-code: base/protocols/mqtt/consts.zeek 23 23
|
||||
|
||||
:Type: :zeek:type:`table` [:zeek:type:`count`] of :zeek:type:`string`
|
||||
:Attributes: :zeek:attr:`&default` = :zeek:type:`function`
|
||||
:Default:
|
||||
|
||||
::
|
||||
|
||||
{
|
||||
[4] = "3.1.1",
|
||||
[3] = "3.1",
|
||||
[5] = "5.0"
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
19
doc/scripts/base/protocols/mqtt/index.rst
Normal file
19
doc/scripts/base/protocols/mqtt/index.rst
Normal file
|
@ -0,0 +1,19 @@
|
|||
:orphan:
|
||||
|
||||
Package: base/protocols/mqtt
|
||||
============================
|
||||
|
||||
Support for MQTT protocol analysis.
|
||||
|
||||
:doc:`/scripts/base/protocols/mqtt/__load__.zeek`
|
||||
|
||||
|
||||
:doc:`/scripts/base/protocols/mqtt/consts.zeek`
|
||||
|
||||
Constants definitions for MQTT.
|
||||
|
||||
:doc:`/scripts/base/protocols/mqtt/main.zeek`
|
||||
|
||||
Implements base functionality for MQTT (v3.1.1) analysis.
|
||||
Generates the mqtt.log file.
|
||||
|
338
doc/scripts/base/protocols/mqtt/main.zeek.rst
Normal file
338
doc/scripts/base/protocols/mqtt/main.zeek.rst
Normal file
|
@ -0,0 +1,338 @@
|
|||
:tocdepth: 3
|
||||
|
||||
base/protocols/mqtt/main.zeek
|
||||
=============================
|
||||
.. zeek:namespace:: MQTT
|
||||
|
||||
Implements base functionality for MQTT (v3.1.1) analysis.
|
||||
Generates the mqtt.log file.
|
||||
|
||||
:Namespace: MQTT
|
||||
:Imports: :doc:`base/protocols/mqtt/consts.zeek </scripts/base/protocols/mqtt/consts.zeek>`
|
||||
|
||||
Summary
|
||||
~~~~~~~
|
||||
Types
|
||||
#####
|
||||
================================================================== ======================================================================
|
||||
:zeek:type:`MQTT::ConnectInfo`: :zeek:type:`record`
|
||||
:zeek:type:`MQTT::PublishInfo`: :zeek:type:`record`
|
||||
:zeek:type:`MQTT::State`: :zeek:type:`record` Data structure to track pub/sub messaging state of a given connection.
|
||||
:zeek:type:`MQTT::SubUnsub`: :zeek:type:`enum` :zeek:attr:`&redef`
|
||||
:zeek:type:`MQTT::SubscribeInfo`: :zeek:type:`record`
|
||||
================================================================== ======================================================================
|
||||
|
||||
Redefinitions
|
||||
#############
|
||||
==================================================================== =============================================================
|
||||
:zeek:type:`Log::ID`: :zeek:type:`enum`
|
||||
|
||||
* :zeek:enum:`MQTT::CONNECT_LOG`
|
||||
|
||||
* :zeek:enum:`MQTT::PUBLISH_LOG`
|
||||
|
||||
* :zeek:enum:`MQTT::SUBSCRIBE_LOG`
|
||||
:zeek:type:`connection`: :zeek:type:`record`
|
||||
|
||||
:New Fields: :zeek:type:`connection`
|
||||
|
||||
mqtt: :zeek:type:`MQTT::ConnectInfo` :zeek:attr:`&optional`
|
||||
|
||||
mqtt_state: :zeek:type:`MQTT::State` :zeek:attr:`&optional`
|
||||
:zeek:id:`likely_server_ports`: :zeek:type:`set` :zeek:attr:`&redef`
|
||||
==================================================================== =============================================================
|
||||
|
||||
Events
|
||||
######
|
||||
============================================= ====================================================================
|
||||
:zeek:id:`MQTT::log_mqtt`: :zeek:type:`event` Event that can be handled to access the MQTT record as it is sent on
|
||||
to the logging framework.
|
||||
============================================= ====================================================================
|
||||
|
||||
Hooks
|
||||
#####
|
||||
=================================================================== =
|
||||
:zeek:id:`MQTT::log_policy_connect`: :zeek:type:`Log::PolicyHook`
|
||||
:zeek:id:`MQTT::log_policy_publish`: :zeek:type:`Log::PolicyHook`
|
||||
:zeek:id:`MQTT::log_policy_subscribe`: :zeek:type:`Log::PolicyHook`
|
||||
=================================================================== =
|
||||
|
||||
Functions
|
||||
#########
|
||||
======================================================== ==========================================================================
|
||||
:zeek:id:`MQTT::publish_expire`: :zeek:type:`function` The expiration function for published messages that haven't been logged
|
||||
yet simply causes the message to be logged.
|
||||
:zeek:id:`MQTT::subscribe_expire`: :zeek:type:`function` The expiration function for subscription messages that haven't been logged
|
||||
yet simply causes the message to be logged.
|
||||
======================================================== ==========================================================================
|
||||
|
||||
|
||||
Detailed Interface
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
Types
|
||||
#####
|
||||
.. zeek:type:: MQTT::ConnectInfo
|
||||
:source-code: base/protocols/mqtt/main.zeek 24 45
|
||||
|
||||
:Type: :zeek:type:`record`
|
||||
|
||||
|
||||
.. zeek:field:: ts :zeek:type:`time` :zeek:attr:`&log`
|
||||
|
||||
Timestamp for when the event happened
|
||||
|
||||
|
||||
.. zeek:field:: uid :zeek:type:`string` :zeek:attr:`&log`
|
||||
|
||||
Unique ID for the connection
|
||||
|
||||
|
||||
.. zeek:field:: id :zeek:type:`conn_id` :zeek:attr:`&log`
|
||||
|
||||
The connection's 4-tuple of endpoint addresses/ports
|
||||
|
||||
|
||||
.. zeek:field:: proto_name :zeek:type:`string` :zeek:attr:`&log` :zeek:attr:`&optional`
|
||||
|
||||
Indicates the protocol name
|
||||
|
||||
|
||||
.. zeek:field:: proto_version :zeek:type:`string` :zeek:attr:`&log` :zeek:attr:`&optional`
|
||||
|
||||
The version of the protocol in use
|
||||
|
||||
|
||||
.. zeek:field:: client_id :zeek:type:`string` :zeek:attr:`&log` :zeek:attr:`&optional`
|
||||
|
||||
Unique identifier for the client
|
||||
|
||||
|
||||
.. zeek:field:: connect_status :zeek:type:`string` :zeek:attr:`&log` :zeek:attr:`&optional`
|
||||
|
||||
Status message from the server in response to the connect request
|
||||
|
||||
|
||||
.. zeek:field:: will_topic :zeek:type:`string` :zeek:attr:`&log` :zeek:attr:`&optional`
|
||||
|
||||
Topic to publish a "last will and testament" message to
|
||||
|
||||
|
||||
.. zeek:field:: will_payload :zeek:type:`string` :zeek:attr:`&log` :zeek:attr:`&optional`
|
||||
|
||||
Payload to publish as a "last will and testament"
|
||||
|
||||
|
||||
|
||||
.. zeek:type:: MQTT::PublishInfo
|
||||
:source-code: base/protocols/mqtt/main.zeek 67 107
|
||||
|
||||
:Type: :zeek:type:`record`
|
||||
|
||||
|
||||
.. zeek:field:: ts :zeek:type:`time` :zeek:attr:`&log`
|
||||
|
||||
Timestamp for when the publish message started
|
||||
|
||||
|
||||
.. zeek:field:: uid :zeek:type:`string` :zeek:attr:`&log`
|
||||
|
||||
UID for the connection
|
||||
|
||||
|
||||
.. zeek:field:: id :zeek:type:`conn_id` :zeek:attr:`&log`
|
||||
|
||||
ID fields for the connection
|
||||
|
||||
|
||||
.. zeek:field:: from_client :zeek:type:`bool` :zeek:attr:`&log`
|
||||
|
||||
Indicates if the message was published by the client of
|
||||
this connection or published to the client.
|
||||
|
||||
|
||||
.. zeek:field:: retain :zeek:type:`bool` :zeek:attr:`&log`
|
||||
|
||||
Indicates if the message was to be retained by the server
|
||||
|
||||
|
||||
.. zeek:field:: qos :zeek:type:`string` :zeek:attr:`&log`
|
||||
|
||||
QoS level set for the message
|
||||
|
||||
|
||||
.. zeek:field:: status :zeek:type:`string` :zeek:attr:`&log` :zeek:attr:`&default` = ``"incomplete_qos"`` :zeek:attr:`&optional`
|
||||
|
||||
Status of the published message. This will be set to "incomplete_qos"
|
||||
if the full back and forth for the requested level of QoS was not seen.
|
||||
Otherwise if it's successful the field will be "ok".
|
||||
|
||||
|
||||
.. zeek:field:: topic :zeek:type:`string` :zeek:attr:`&log`
|
||||
|
||||
Topic the message was published to
|
||||
|
||||
|
||||
.. zeek:field:: payload :zeek:type:`string` :zeek:attr:`&log`
|
||||
|
||||
Payload of the message
|
||||
|
||||
|
||||
.. zeek:field:: payload_len :zeek:type:`count` :zeek:attr:`&log`
|
||||
|
||||
The actual length of the payload in the case the *payload*
|
||||
field's contents were truncated according to
|
||||
:zeek:see:`MQTT::max_payload_size`.
|
||||
|
||||
|
||||
.. zeek:field:: ack :zeek:type:`bool` :zeek:attr:`&default` = ``F`` :zeek:attr:`&optional`
|
||||
|
||||
Track if the message was acked
|
||||
|
||||
|
||||
.. zeek:field:: rec :zeek:type:`bool` :zeek:attr:`&default` = ``F`` :zeek:attr:`&optional`
|
||||
|
||||
Indicates if the server sent the RECEIVED qos message
|
||||
|
||||
|
||||
.. zeek:field:: rel :zeek:type:`bool` :zeek:attr:`&default` = ``F`` :zeek:attr:`&optional`
|
||||
|
||||
Indicates if the client sent the RELEASE qos message
|
||||
|
||||
|
||||
.. zeek:field:: comp :zeek:type:`bool` :zeek:attr:`&default` = ``F`` :zeek:attr:`&optional`
|
||||
|
||||
Indicates if the server sent the COMPLETE qos message
|
||||
|
||||
|
||||
.. zeek:field:: qos_level :zeek:type:`count` :zeek:attr:`&default` = ``0`` :zeek:attr:`&optional`
|
||||
|
||||
Internally used for comparing numeric qos level
|
||||
|
||||
|
||||
|
||||
.. zeek:type:: MQTT::State
|
||||
:source-code: base/protocols/mqtt/main.zeek 122 128
|
||||
|
||||
:Type: :zeek:type:`record`
|
||||
|
||||
|
||||
.. zeek:field:: publish :zeek:type:`table` [:zeek:type:`count`] of :zeek:type:`MQTT::PublishInfo` :zeek:attr:`&optional` :zeek:attr:`&write_expire` = ``5.0 secs`` :zeek:attr:`&expire_func` = :zeek:see:`MQTT::publish_expire`
|
||||
|
||||
Published messages that haven't been logged yet.
|
||||
|
||||
|
||||
.. zeek:field:: subscribe :zeek:type:`table` [:zeek:type:`count`] of :zeek:type:`MQTT::SubscribeInfo` :zeek:attr:`&optional` :zeek:attr:`&write_expire` = ``5.0 secs`` :zeek:attr:`&expire_func` = :zeek:see:`MQTT::subscribe_expire`
|
||||
|
||||
Subscription/unsubscription messages that haven't been ACK'd or
|
||||
logged yet.
|
||||
|
||||
|
||||
Data structure to track pub/sub messaging state of a given connection.
|
||||
|
||||
.. zeek:type:: MQTT::SubUnsub
|
||||
:source-code: base/protocols/mqtt/main.zeek 19 23
|
||||
|
||||
:Type: :zeek:type:`enum`
|
||||
|
||||
.. zeek:enum:: MQTT::SUBSCRIBE MQTT::SubUnsub
|
||||
|
||||
.. zeek:enum:: MQTT::UNSUBSCRIBE MQTT::SubUnsub
|
||||
:Attributes: :zeek:attr:`&redef`
|
||||
|
||||
|
||||
.. zeek:type:: MQTT::SubscribeInfo
|
||||
:source-code: base/protocols/mqtt/main.zeek 47 65
|
||||
|
||||
:Type: :zeek:type:`record`
|
||||
|
||||
|
||||
.. zeek:field:: ts :zeek:type:`time` :zeek:attr:`&log`
|
||||
|
||||
Timestamp for when the subscribe or unsubscribe request started
|
||||
|
||||
|
||||
.. zeek:field:: uid :zeek:type:`string` :zeek:attr:`&log`
|
||||
|
||||
UID for the connection
|
||||
|
||||
|
||||
.. zeek:field:: id :zeek:type:`conn_id` :zeek:attr:`&log`
|
||||
|
||||
ID fields for the connection
|
||||
|
||||
|
||||
.. zeek:field:: action :zeek:type:`MQTT::SubUnsub` :zeek:attr:`&log`
|
||||
|
||||
Indicates if a subscribe or unsubscribe action is taking place
|
||||
|
||||
|
||||
.. zeek:field:: topics :zeek:type:`string_vec` :zeek:attr:`&log`
|
||||
|
||||
The topics (or topic patterns) being subscribed to
|
||||
|
||||
|
||||
.. zeek:field:: qos_levels :zeek:type:`index_vec` :zeek:attr:`&log` :zeek:attr:`&optional`
|
||||
|
||||
QoS levels requested for messages from subscribed topics
|
||||
|
||||
|
||||
.. zeek:field:: granted_qos_level :zeek:type:`count` :zeek:attr:`&log` :zeek:attr:`&optional`
|
||||
|
||||
QoS level the server granted
|
||||
|
||||
|
||||
.. zeek:field:: ack :zeek:type:`bool` :zeek:attr:`&log` :zeek:attr:`&default` = ``F`` :zeek:attr:`&optional`
|
||||
|
||||
Indicates if the request was acked by the server
|
||||
|
||||
|
||||
|
||||
Events
|
||||
######
|
||||
.. zeek:id:: MQTT::log_mqtt
|
||||
:source-code: base/protocols/mqtt/main.zeek 111 111
|
||||
|
||||
:Type: :zeek:type:`event` (rec: :zeek:type:`MQTT::ConnectInfo`)
|
||||
|
||||
Event that can be handled to access the MQTT record as it is sent on
|
||||
to the logging framework.
|
||||
|
||||
Hooks
|
||||
#####
|
||||
.. zeek:id:: MQTT::log_policy_connect
|
||||
:source-code: base/protocols/mqtt/main.zeek 15 15
|
||||
|
||||
:Type: :zeek:type:`Log::PolicyHook`
|
||||
|
||||
|
||||
.. zeek:id:: MQTT::log_policy_publish
|
||||
:source-code: base/protocols/mqtt/main.zeek 17 17
|
||||
|
||||
:Type: :zeek:type:`Log::PolicyHook`
|
||||
|
||||
|
||||
.. zeek:id:: MQTT::log_policy_subscribe
|
||||
:source-code: base/protocols/mqtt/main.zeek 16 16
|
||||
|
||||
:Type: :zeek:type:`Log::PolicyHook`
|
||||
|
||||
|
||||
Functions
|
||||
#########
|
||||
.. zeek:id:: MQTT::publish_expire
|
||||
:source-code: base/protocols/mqtt/main.zeek 131 135
|
||||
|
||||
:Type: :zeek:type:`function` (tbl: :zeek:type:`table` [:zeek:type:`count`] of :zeek:type:`MQTT::PublishInfo`, idx: :zeek:type:`count`) : :zeek:type:`interval`
|
||||
|
||||
The expiration function for published messages that haven't been logged
|
||||
yet simply causes the message to be logged.
|
||||
|
||||
.. zeek:id:: MQTT::subscribe_expire
|
||||
:source-code: base/protocols/mqtt/main.zeek 137 141
|
||||
|
||||
:Type: :zeek:type:`function` (tbl: :zeek:type:`table` [:zeek:type:`count`] of :zeek:type:`MQTT::SubscribeInfo`, idx: :zeek:type:`count`) : :zeek:type:`interval`
|
||||
|
||||
The expiration function for subscription messages that haven't been logged
|
||||
yet simply causes the message to be logged.
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue