From: Michael Altizer (mialtize)
Date: Thu, 23 Apr 2020 16:12:51 +0000 (+0000)
Subject: Merge pull request #2179 in SNORT/snort3 from ~MIALTIZE/snort3:3_0_1_build_2 to master
X-Git-Tag: 3.0.1-2
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c63686fae682d77121a4503c5e1f3465690af50;p=thirdparty%2Fsnort3.git
Merge pull request #2179 in SNORT/snort3 from ~MIALTIZE/snort3:3_0_1_build_2 to master
Squashed commit of the following:
commit 0e72d23267ca0d938d9bcb94273cf92e8cf93fac
Author: Michael Altizer
Date: Thu Apr 23 11:44:18 2020 -0400
build: generate and tag 3.0.1 build 2
---
diff --git a/ChangeLog b/ChangeLog
index 8f5e0090b..a8c90e869 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,85 @@
+2020/04/23 - 3.0.1 build 2
+
+-- appid: Change sessionAPI to accomodate stream_index
+-- appid: detect payload for first http2 stream
+-- appid: Fix thread-safety issues in appid
+-- appid: mark third-party inspection as done for expected flows
+-- appid: Populate url for QUIC sessions by extracting QUIC SNI metadata from third-party
+-- appid: remove thirdparty processing for http2 traffic
+-- appid: remove unused code
+-- appid: remove unused config options and rename "debug" option
+-- appid: set up packet counters to make sure flows with one-way data don't pend forever
+-- appid: Support org unit in SSL lookup API and do not overwrite the API provided data
+-- codecs: Clean up CiscoMetaData implementation
+-- codecs: GRE checksum updated for injected and rewritten packets
+-- codecs: Update GRE flags and offset for injected packets
+-- control: Disable request unit-test in cmake if shell is disabled
+-- control: Fixing data races in request read and response
+-- file: apply cached verdict on already seen file
+-- file_magic: Update category for HWP and MSOLE2
+-- flowbits: eliminate extraneous FlowBitState
+-- flowbits: fix reload mapping
+-- flowbits: refactor implementation
+-- flowbits: relocate bitop.h to helpers
+-- flowbits: remove extraneous count
+-- flowbits: remove unused group support
+-- flow: track allocations for each flow, update cap_weights
+-- framework: Remove unused InspectorData template
+-- ftp_data: fix ids flushing at EOF
+-- ftp: whitelisting reason support
+-- host_tracker: Move all HostCacheAlloc template implementions to the header
+-- http2_inspect: discard split connection preface
+-- http2_inspect: flush pending data when a non-data frame is received
+-- http2_inspect: handle the case of leftover header only (no body)
+-- http2_inspect: support 0 length data frames
+-- http_inspect: add fragment to http_uri
+-- http_inspect: cut over to wizard on successful CONNECT response
+-- http_inspect: enhance processing of connect messages
+-- http_inspect: fix duplicated detained_inspection print in show()
+-- http_inspect: make script tag check case insensitive
+-- http_inspect: register extra-data callbacks in constructor
+-- hyperscan: simplify scratch memory initialization
+-- inspectors: designate service inspectors control channels for avc only
+-- inspectors: designate service inspectors for file carving
+-- inspectors: designate service inspectors for start tls
+-- inspectors: update verbose config output in show() method to a new format
+-- ips_context: add support to fallback to avc only
+-- ips: fix rule state mapping and policy lookup
+-- ips: remove plugins cruft from option tree node (rule body)
+-- latency: check if ip header is present before deferring it
+-- latency: use test_timeout config option to deterministically trigger latency events for ifdef
+ REG_TEST
+-- loggers: Add SGT field to CSV and JSON loggers
+-- main: Make test_log() static in snort_debug.cc
+-- managers: print inspectors' config output for every inspection policy configured
+-- metadata-filter: apply to so rule stubs
+-- output: allow error messages in quiet mode
+-- packet_io: log daq batch size
+-- packet_io: log daq pool size
+-- perf_monitor: Enable or disable flow-ip-profiling using shell commands
+-- plugin_manager: make erase from plug_map safer
+-- plugin_manager: make sure --show-plugins option picks up SO plugins
+-- reload: update ReloadError response messages to use consistent wording across all messages
+-- session: remove unused IPS option
+-- sip: Support pinhole for sip early media
+-- snort2lua: make qos configuration values deleted from firewall
+-- snort: add --dump-rule-deps
+-- snort: add --dump-rule-state
+-- snort: add flowbits set and checked to --dump-rule-meta
+-- snort: add rule text to --dump-rule-meta
+-- snort: enable --dump-rule-meta to work without a conf
+-- snort: initial implementation of --dump-rule-meta
+-- snort: remove inappropriate fatal errors
+-- snort: remove unused --pcap-reload option
+-- so rules: allow stub gid:sid:rev to override so
+-- so rules: allow stub header to override so header
+-- stream_tcp: remove unused session printing cruft
+-- target_based: refactor host attribute table logic into a c++ class, eliminate dead code
+-- target_based: refactor to improve design of the host attribute classes
+-- target_based: refactor to load host attribute table from file
+-- time: make packet_gettimeofday public
+-- trace: refactor stdout/syslog logging of trace into logger framework
+
2020/03/31 - 3.0.1 build 1
-- analyzer: Send detained packet event when a packet is held
diff --git a/doc/snort_manual.html b/doc/snort_manual.html
index b2dfffb5f..dc2402c5f 100644
--- a/doc/snort_manual.html
+++ b/doc/snort_manual.html
@@ -782,7 +782,7 @@ asciidoc.install(2);
,,_ -*> Snort++ <*-
-o" )~ Version 3.0.1 (Build 1)
+o" )~ Version 3.0.1 (Build 2)
'''' By Martin Roesch & The Snort Team
http://snort.org/contact#team
Copyright (C) 2014-2020 Cisco and/or its affiliates. All rights reserved.
@@ -5426,6 +5426,27 @@ with slashes during normalization.
+
CONNECT processing
+
The HTTP CONNECT method is used by a client to establish a tunnel to a destination via an HTTP proxy
+server. If the connection is successful the server will send a 2XX success response to the client,
+then proceed to blindly forward traffic between the client and destination. That traffic belongs to
+a new session between the client and destination and may be of any protocol, so clearly the HTTP
+inspector will be unable to continue processing traffic following the CONNECT message as if it were
+just a continuation of the original HTTP/1.1 session.
+
Therefore upon receiving a success response to a CONNECT request, the HTTP inspector will stop
+inspecting the session. The next packet will return to the wizard, which will determine the
+appropriate inspector to continue processing the flow. If the tunneled protocol happens to be
+HTTP/1.1, the HTTP inspector will again start inspecting the flow, but as an entirely new session.
+
There is one scenario where the cutover to the wizard will not occur despite a 2XX success response
+to a CONNECT request. HTTP allows for pipelining, or sending multiple requests without waiting for a
+response. If the HTTP inspector sees any further traffic from the client after a CONNECT request
+before it has seen the CONNECT response, it is unclear whether this traffic should be interpreted as
+a pipelined HTTP request or tunnel traffic sent in anticipation of a success response from the
+server. Due to this potential evasion tactic, the HTTP inspector will not cut over to the wizard if
+it sees any early client-to-server traffic, but will continue normal HTTP processing of the flow
+regardless of the eventual server response.
+
+
Detection rules
http_inspect parses HTTP messages into their components and makes them
available to the detection engine through rule options. Let’s start with an
@@ -5572,9 +5593,10 @@ is the scheme, "www.samplehost.com" is the host, "287" is the port,
on uri type. If the uri is of type absolute (contains all six components) or
absolute path (contains path, query and fragment) then the path and query
components are normalized. In these cases, http_uri represents the normalized
-path and query (/path?query). If the uri is of type authority (host and port),
-the host is normalized and http_uri represents the normalized host with the port
-number. In all other cases http_uri is the same as http_raw_uri.
+path, query, and fragment (/path?query#fragment). If the uri is of type
+authority (host and port), the host is normalized and http_uri represents the
+normalized host with the port number. In all other cases http_uri is the same
+as http_raw_uri.
Note: this section uses informal language to explain some things. Nothing
here is intended to conflict with the technical language of the HTTP RFCs
and the implementation follows the RFCs.
@@ -7089,6 +7111,11 @@ int active.min_interval = 255: minimum number of seconds betwee
active.holds_canceled: total number of packet hold requests canceled (sum)
+
+
+active.holds_allowed: total number of packet hold requests allowed (sum)
+
+
@@ -7154,6 +7181,11 @@ string
alerts.tunnel_verdicts: let DAQ handle non-allow verdict
-
+string attribute_table.hosts_file: filename to load attribute host table from
+
+
+-
+
int attribute_table.max_hosts = 1024: maximum number of hosts in attribute table { 32:max53 }
@@ -8346,7 +8378,7 @@ int output.event_trace.max_data = 0: maximum amount of packet d
-
-bool output.quiet = false: suppress non-fatal information (still show alerts, same as -q)
+bool output.quiet = false: suppress normal logging on stdout (same as -q)
-
@@ -8948,7 +8980,7 @@ implied snort.-Q: enable inline mode operation
-
-implied snort.-q: quiet mode - Don’t show banner and status report
+implied snort.-q: quiet mode - suppress normal logging on stdout
-
@@ -9098,6 +9130,21 @@ string snort.--dump-defaults: [<module prefix>] output mo
-
+implied snort.--dump-rule-deps: dump rule dependencies in json format for use by other tools
+
+
+-
+
+implied snort.--dump-rule-meta: dump configured rule info in json format for use by other tools
+
+
+-
+
+implied snort.--dump-rule-state: dump configured rule state in json format for use by other tools
+
+
+-
+
implied snort.--dump-version: output the version, the whole version, and only the version
@@ -9283,11 +9330,6 @@ implied snort.--pcap-no-filter: reset to use no filter when get
-
-implied snort.--pcap-reload: if reading multiple pcaps, reload snort config between pcaps
-
-
--
-
implied snort.--pcap-show: print a line saying what pcap is currently being read
@@ -9579,12 +9621,17 @@ int snort.trace.all = 0: enable traces in module { 0:255 }
-
-snort.attribute_table_reloads: number of times hosts table was reloaded (sum)
+snort.attribute_table_reloads: number of times hosts attribute table was reloaded (sum)
-
-snort.attribute_table_hosts: total number of hosts in table (sum)
+snort.attribute_table_hosts: number of hosts added to the attribute table (sum)
+
+
+-
+
+snort.attribute_table_overflow: number of host additions that failed due to attribute table full (sum)
@@ -9618,6 +9665,20 @@ string
suppress[].ip: restrict suppression to thes
+
+
trace
+
What: configure trace log messages
+
+
+
+
+
@@ -9682,7 +9743,40 @@ protocol decoding, anomaly detection, and construction of active responses.<
-116:471 (ciscometadata) invalid Cisco Metadata SGT
+116:471 (ciscometadata) invalid Cisco Metadata security group tag
+
+
+
+
+
+-
+
+ciscometadata.truncated_hdr: total truncated Cisco Metadata headers (sum)
+
+
+-
+
+ciscometadata.invalid_hdr_ver: total invalid Cisco Metadata header versions (sum)
+
+
+-
+
+ciscometadata.invalid_hdr_len: total invalid Cisco Metadata header lengths (sum)
+
+
+-
+
+ciscometadata.invalid_opt_len: total invalid Cisco Metadata option lengths (sum)
+
+
+-
+
+ciscometadata.invalid_opt_type: total invalid Cisco Metadata option types (sum)
+
+
+-
+
+ciscometadata.invalid_sgt: total invalid Cisco Metadata security group tags (sum)
@@ -10877,27 +10971,12 @@ int appid.app_stats_rollover_size = 20971520: max file size for
-int appid.app_stats_rollover_time = 86400: max time period for collection appid stats before rolling over the log file { 0:max31 }
-
-
-
-
string appid.app_detector_dir: directory to load appid detectors from
-int appid.instance_id = 0: instance id - ignored { 0:max32 }
-
-
-
-
-bool appid.debug = false: enable appid debug logging
-
-
-
-
-bool appid.dump_ports = false: enable dump of appid port information
+bool appid.list_odp_detectors = false: enable logging of odp detectors statistics
@@ -13230,7 +13309,7 @@ int gtp_inspect.trace.all = 0: enable traces in module { 0:255
-121:10 (http2_inspect) invalid HTTP/2 header field
+121:10 (http2_inspect) HTTP/2 invalid header field
@@ -13928,6 +14007,36 @@ bool http_inspect.simplify_path = true: reduce URI directory pa
119:252 (http_inspect) HTTP/2 message body smaller than Content-Length header value
+
+
+119:253 (http_inspect) HTTP CONNECT request with a message body
+
+
+
+
+119:254 (http_inspect) HTTP client-to-server traffic after CONNECT request but before CONNECT response
+
+
+
+
+119:255 (http_inspect) HTTP CONNECT 2XX response with Content-Length header
+
+
+
+
+119:256 (http_inspect) HTTP CONNECT 2XX response with Transfer-Encoding header
+
+
+
+
+119:257 (http_inspect) HTTP CONNECT response with 1XX status code
+
+
+
+
+119:258 (http_inspect) HTTP CONNECT response before request message completed
+
+
@@ -14043,7 +14152,7 @@ bool http_inspect.simplify_path = true: reduce URI directory pa
-
-http_inspect.detained_packets: TCP packets delayed by detained inspection (sum)
+http_inspect.detains_requested: packet hold requests for detained inspection (sum)
-
@@ -14061,6 +14170,11 @@ bool http_inspect.simplify_path = true: reduce URI directory pa
http_inspect.parameters: HTTP parameters inspected (sum)
+-
+
+http_inspect.connect_tunnel_cutovers: CONNECT tunnel flow cutovers to wizard (sum)
+
+
@@ -14819,6 +14933,24 @@ bool perf_monitor.summary = false: output summary at shutdown
+
+
+-
+
+perf_monitor.enable_flow_ip_profiling(seconds, packets): enable statistics on host pairs
+
+
+-
+
+perf_monitor.disable_flow_ip_profiling(): disable statistics on host pairs
+
+
+-
+
+perf_monitor.show_flow_ip_profiling(): show status of statistics on host pairs
+
+
+
-
@@ -15751,7 +15883,17 @@ bool rna.log_when_idle = false: enable host update logging when
-
-int rt_global.memcap = 2048: cap on amount of memory used
+int rt_global.downshift_packet = 0: attempt downshift at this packet on flow (0 is disabled) { 0:max32 }
+
+
+-
+
+int rt_global.downshift_mode = 3: 1 = unconditional, 2 = !ctl and !tls, 3 = !ctl and !file { 1:3 }
+
+
+-
+
+int rt_global.memcap = 2048: cap on amount of memory used (0 is disabled) { 0:max53 }
@@ -16802,7 +16944,7 @@ int stream.ip_cache.idle_timeout = 180: maximum inactive time b
-
-int stream.ip_cache.cap_weight = 64: additional bytes to track per flow for better estimation against cap { 0:65535 }
+int stream.ip_cache.cap_weight = 0: additional bytes to track per flow for better estimation against cap { 0:65535 }
-
@@ -16812,7 +16954,7 @@ int stream.icmp_cache.idle_timeout = 180: maximum inactive time
-
-int stream.icmp_cache.cap_weight = 8: additional bytes to track per flow for better estimation against cap { 0:65535 }
+int stream.icmp_cache.cap_weight = 0: additional bytes to track per flow for better estimation against cap { 0:65535 }
-
@@ -16822,7 +16964,7 @@ int stream.tcp_cache.idle_timeout = 3600: maximum inactive time
-
-int stream.tcp_cache.cap_weight = 11500: additional bytes to track per flow for better estimation against cap { 0:65535 }
+int stream.tcp_cache.cap_weight = 11000: additional bytes to track per flow for better estimation against cap { 0:65535 }
-
@@ -16832,7 +16974,7 @@ int stream.udp_cache.idle_timeout = 180: maximum inactive time
-
-int stream.udp_cache.cap_weight = 128: additional bytes to track per flow for better estimation against cap { 0:65535 }
+int stream.udp_cache.cap_weight = 0: additional bytes to track per flow for better estimation against cap { 0:65535 }
-
@@ -16842,7 +16984,7 @@ int stream.user_cache.idle_timeout = 180: maximum inactive time
-
-int stream.user_cache.cap_weight = 256: additional bytes to track per flow for better estimation against cap { 0:65535 }
+int stream.user_cache.cap_weight = 0: additional bytes to track per flow for better estimation against cap { 0:65535 }
-
@@ -18930,17 +19072,12 @@ implied flow.only_frag: match on defragmented packets only
-
-string flowbits.~op: set|reset|isset|etc.
+enum flowbits.~op: bit operation or noalert (no bits) { set | unset | isset | isnotset | noalert }
-
-string flowbits.~bits: bits or group
-
-
--
-
-string flowbits.~group: group if arg1 is bits
+string flowbits.~bits: bit [|bit]* or bit [&bit]*
@@ -20030,20 +20167,6 @@ string service.*: one or more comma-separated serv
-
session
-
What: rule option to check user data from TCP sessions
-
-
-
-
-
-
sha256
What: payload rule option for hash matching
@@ -20504,7 +20627,7 @@ bool
alert_csv.file = false: output to alert_csv.txt instead of
-multi alert_csv.fields = timestamp pkt_num proto pkt_gen pkt_len dir src_ap dst_ap rule action: selected fields will be output in given order left to right { action | class | b64_data | client_bytes | client_pkts | dir | dst_addr | dst_ap | dst_port | eth_dst | eth_len | eth_src | eth_type | flowstart_time | gid | icmp_code | icmp_id | icmp_seq | icmp_type | iface | ip_id | ip_len | msg | mpls | pkt_gen | pkt_len | pkt_num | priority | proto | rev | rule | seconds | server_bytes | server_pkts | service | sid | src_addr | src_ap | src_port | target | tcp_ack | tcp_flags | tcp_len | tcp_seq | tcp_win | timestamp | tos | ttl | udp_len | vlan }
+multi alert_csv.fields = timestamp pkt_num proto pkt_gen pkt_len dir src_ap dst_ap rule action: selected fields will be output in given order left to right { action | class | b64_data | client_bytes | client_pkts | dir | dst_addr | dst_ap | dst_port | eth_dst | eth_len | eth_src | eth_type | flowstart_time | gid | icmp_code | icmp_id | icmp_seq | icmp_type | iface | ip_id | ip_len | msg | mpls | pkt_gen | pkt_len | pkt_num | priority | proto | rev | rule | seconds | server_bytes | server_pkts | service | sgt| sid | src_addr | src_ap | src_port | target | tcp_ack | tcp_flags | tcp_len | tcp_seq | tcp_win | timestamp | tos | ttl | udp_len | vlan }
@@ -20590,7 +20713,7 @@ bool alert_json.file = false: output to alert_json.txt instead
-multi alert_json.fields = timestamp pkt_num proto pkt_gen pkt_len dir src_ap dst_ap rule action: selected fields will be output in given order left to right { action | class | b64_data | client_bytes | client_pkts | dir | dst_addr | dst_ap | dst_port | eth_dst | eth_len | eth_src | eth_type | flowstart_time | gid | icmp_code | icmp_id | icmp_seq | icmp_type | iface | ip_id | ip_len | msg | mpls | pkt_gen | pkt_len | pkt_num | priority | proto | rev | rule | seconds | server_bytes | server_pkts | service | sid | src_addr | src_ap | src_port | target | tcp_ack | tcp_flags | tcp_len | tcp_seq | tcp_win | timestamp | tos | ttl | udp_len | vlan }
+multi alert_json.fields = timestamp pkt_num proto pkt_gen pkt_len dir src_ap dst_ap rule action: selected fields will be output in given order left to right { action | class | b64_data | client_bytes | client_pkts | dir | dst_addr | dst_ap | dst_port | eth_dst | eth_len | eth_src | eth_type | flowstart_time | gid | icmp_code | icmp_id | icmp_seq | icmp_type | iface | ip_id | ip_len | msg | mpls | pkt_gen | pkt_len | pkt_num | priority | proto | rev | rule | seconds | server_bytes | server_pkts | service | sgt| sid | src_addr | src_ap | src_port | target | tcp_ack | tcp_flags | tcp_len | tcp_seq | tcp_win | timestamp | tos | ttl | udp_len | vlan }
@@ -24638,7 +24761,7 @@ these libraries see the Getting Started section of the manual.
--q quiet mode - Don’t show banner and status report
+-q quiet mode - suppress normal logging on stdout
@@ -24788,6 +24911,21 @@ these libraries see the Getting Started section of the manual.
+--dump-rule-deps dump rule dependencies in json format for use by other tools
+
+
+
+
+--dump-rule-meta dump configured rule info in json format for use by other tools
+
+
+
+
+--dump-rule-state dump configured rule state in json format for use by other tools
+
+
+
+
--dump-version output the version, the whole version, and only the version
@@ -24973,11 +25111,6 @@ these libraries see the Getting Started section of the manual.
---pcap-reload if reading multiple pcaps, reload snort config between pcaps
-
-
-
-
--pcap-show print a line saying what pcap is currently being read
@@ -25188,7 +25321,7 @@ int active.min_interval = 255: minimum number of seconds betwee
-multi alert_csv.fields = timestamp pkt_num proto pkt_gen pkt_len dir src_ap dst_ap rule action: selected fields will be output in given order left to right { action | class | b64_data | client_bytes | client_pkts | dir | dst_addr | dst_ap | dst_port | eth_dst | eth_len | eth_src | eth_type | flowstart_time | gid | icmp_code | icmp_id | icmp_seq | icmp_type | iface | ip_id | ip_len | msg | mpls | pkt_gen | pkt_len | pkt_num | priority | proto | rev | rule | seconds | server_bytes | server_pkts | service | sid | src_addr | src_ap | src_port | target | tcp_ack | tcp_flags | tcp_len | tcp_seq | tcp_win | timestamp | tos | ttl | udp_len | vlan }
+multi alert_csv.fields = timestamp pkt_num proto pkt_gen pkt_len dir src_ap dst_ap rule action: selected fields will be output in given order left to right { action | class | b64_data | client_bytes | client_pkts | dir | dst_addr | dst_ap | dst_port | eth_dst | eth_len | eth_src | eth_type | flowstart_time | gid | icmp_code | icmp_id | icmp_seq | icmp_type | iface | ip_id | ip_len | msg | mpls | pkt_gen | pkt_len | pkt_num | priority | proto | rev | rule | seconds | server_bytes | server_pkts | service | sgt| sid | src_addr | src_ap | src_port | target | tcp_ack | tcp_flags | tcp_len | tcp_seq | tcp_win | timestamp | tos | ttl | udp_len | vlan }
@@ -25238,7 +25371,7 @@ int alert_full.limit = 0: set maximum size in MB before rollove
-multi alert_json.fields = timestamp pkt_num proto pkt_gen pkt_len dir src_ap dst_ap rule action: selected fields will be output in given order left to right { action | class | b64_data | client_bytes | client_pkts | dir | dst_addr | dst_ap | dst_port | eth_dst | eth_len | eth_src | eth_type | flowstart_time | gid | icmp_code | icmp_id | icmp_seq | icmp_type | iface | ip_id | ip_len | msg | mpls | pkt_gen | pkt_len | pkt_num | priority | proto | rev | rule | seconds | server_bytes | server_pkts | service | sid | src_addr | src_ap | src_port | target | tcp_ack | tcp_flags | tcp_len | tcp_seq | tcp_win | timestamp | tos | ttl | udp_len | vlan }
+multi alert_json.fields = timestamp pkt_num proto pkt_gen pkt_len dir src_ap dst_ap rule action: selected fields will be output in given order left to right { action | class | b64_data | client_bytes | client_pkts | dir | dst_addr | dst_ap | dst_port | eth_dst | eth_len | eth_src | eth_type | flowstart_time | gid | icmp_code | icmp_id | icmp_seq | icmp_type | iface | ip_id | ip_len | msg | mpls | pkt_gen | pkt_len | pkt_num | priority | proto | rev | rule | seconds | server_bytes | server_pkts | service | sgt| sid | src_addr | src_ap | src_port | target | tcp_ack | tcp_flags | tcp_len | tcp_seq | tcp_win | timestamp | tos | ttl | udp_len | vlan }
@@ -25348,22 +25481,7 @@ int appid.app_stats_rollover_size = 20971520: max file size for
-int appid.app_stats_rollover_time = 86400: max time period for collection appid stats before rolling over the log file { 0:max31 }
-
-
-
-
-bool appid.debug = false: enable appid debug logging
-
-
-
-
-bool appid.dump_ports = false: enable dump of appid port information
-
-
-
-
-int appid.instance_id = 0: instance id - ignored { 0:max32 }
+bool appid.list_odp_detectors = false: enable logging of odp detectors statistics
@@ -25453,6 +25571,11 @@ int asn1.relative_offset: relative offset from the cursor { -65
+string attribute_table.hosts_file: filename to load attribute host table from
+
+
+
+
int attribute_table.max_hosts = 1024: maximum number of hosts in attribute table { 32:max53 }
@@ -26688,17 +26811,12 @@ string flags.~test_flags: these flags are tested
-string flowbits.~bits: bits or group
+string flowbits.~bits: bit [|bit]* or bit [&bit]*
-string flowbits.~group: group if arg1 is bits
-
-
-
-
-string flowbits.~op: set|reset|isset|etc.
+enum flowbits.~op: bit operation or noalert (no bits) { set | unset | isset | isnotset | noalert }
@@ -27968,7 +28086,7 @@ bool output.obfuscate = false: obfuscate the logged IP addresse
-bool output.quiet = false: suppress non-fatal information (still show alerts, same as -q)
+bool output.quiet = false: suppress normal logging on stdout (same as -q)
@@ -28788,7 +28906,17 @@ string rpc.~ver: version number or * for any
-int rt_global.memcap = 2048: cap on amount of memory used
+int rt_global.downshift_mode = 3: 1 = unconditional, 2 = !ctl and !tls, 3 = !ctl and !file { 1:3 }
+
+
+
+
+int rt_global.downshift_packet = 0: attempt downshift at this packet on flow (0 is disabled) { 0:max32 }
+
+
+
+
+int rt_global.memcap = 2048: cap on amount of memory used (0 is disabled) { 0:max53 }
@@ -28928,11 +29056,6 @@ string service.*: one or more comma-separated serv
-enum session.~mode: output format { printable|binary|all }
-
-
-
-
string sha256.~hash: data to match
@@ -29303,6 +29426,21 @@ implied snort.--dump-dynamic-rules: output stub rules for all l
+implied snort.--dump-rule-deps: dump rule dependencies in json format for use by other tools
+
+
+
+
+implied snort.--dump-rule-meta: dump configured rule info in json format for use by other tools
+
+
+
+
+implied snort.--dump-rule-state: dump configured rule state in json format for use by other tools
+
+
+
+
implied snort.--dump-version: output the version, the whole version, and only the version
@@ -29563,11 +29701,6 @@ implied snort.--pcap-no-filter: reset to use no filter when get
-implied snort.--pcap-reload: if reading multiple pcaps, reload snort config between pcaps
-
-
-
-
implied snort.--pcap-show: print a line saying what pcap is currently being read
@@ -29593,7 +29726,7 @@ implied snort.-Q: enable inline mode operation
-implied snort.-q: quiet mode - Don’t show banner and status report
+implied snort.-q: quiet mode - suppress normal logging on stdout
@@ -29983,7 +30116,7 @@ bool stream_file.upload = false: indicate file transfer directi
-int stream.icmp_cache.cap_weight = 8: additional bytes to track per flow for better estimation against cap { 0:65535 }
+int stream.icmp_cache.cap_weight = 0: additional bytes to track per flow for better estimation against cap { 0:65535 }
@@ -29998,7 +30131,7 @@ int stream_icmp.session_timeout = 30: session tracking timeout
-int stream.ip_cache.cap_weight = 64: additional bytes to track per flow for better estimation against cap { 0:65535 }
+int stream.ip_cache.cap_weight = 0: additional bytes to track per flow for better estimation against cap { 0:65535 }
@@ -30088,7 +30221,7 @@ interval stream_size.~range: check if the stream size is in the
-int stream.tcp_cache.cap_weight = 11500: additional bytes to track per flow for better estimation against cap { 0:65535 }
+int stream.tcp_cache.cap_weight = 11000: additional bytes to track per flow for better estimation against cap { 0:65535 }
@@ -30178,7 +30311,7 @@ int stream.trace.all = 0: enable traces in module { 0:255 }
-int stream.udp_cache.cap_weight = 128: additional bytes to track per flow for better estimation against cap { 0:65535 }
+int stream.udp_cache.cap_weight = 0: additional bytes to track per flow for better estimation against cap { 0:65535 }
@@ -30193,7 +30326,7 @@ int stream_udp.session_timeout = 30: session tracking timeout {
-int stream.user_cache.cap_weight = 256: additional bytes to track per flow for better estimation against cap { 0:65535 }
+int stream.user_cache.cap_weight = 0: additional bytes to track per flow for better estimation against cap { 0:65535 }
@@ -30303,6 +30436,11 @@ interval tos.~range: check if IP TOS is in given range { 0:255
+enum trace.output: output method for trace log messages { stdout | syslog }
+
+
+
+
interval ttl.~range: check if IP TTL is in the given range { 0:255 }
@@ -30433,6 +30571,11 @@ interval wscale.~range: check if TCP window scale is in given r
+active.holds_allowed: total number of packet hold requests allowed (sum)
+
+
+
+
active.holds_canceled: total number of packet hold requests canceled (sum)
@@ -30543,6 +30686,36 @@ interval wscale.~range: check if TCP window scale is in given r
+ciscometadata.invalid_hdr_len: total invalid Cisco Metadata header lengths (sum)
+
+
+
+
+ciscometadata.invalid_hdr_ver: total invalid Cisco Metadata header versions (sum)
+
+
+
+
+ciscometadata.invalid_opt_len: total invalid Cisco Metadata option lengths (sum)
+
+
+
+
+ciscometadata.invalid_opt_type: total invalid Cisco Metadata option types (sum)
+
+
+
+
+ciscometadata.invalid_sgt: total invalid Cisco Metadata security group tags (sum)
+
+
+
+
+ciscometadata.truncated_hdr: total truncated Cisco Metadata headers (sum)
+
+
+
+
daq.allow: total allow verdicts (sum)
@@ -31673,12 +31846,17 @@ interval wscale.~range: check if TCP window scale is in given r
+http_inspect.connect_tunnel_cutovers: CONNECT tunnel flow cutovers to wizard (sum)
+
+
+
+
http_inspect.delete_requests: DELETE requests inspected (sum)
-http_inspect.detained_packets: TCP packets delayed by detained inspection (sum)
+http_inspect.detains_requested: packet hold requests for detained inspection (sum)
@@ -32878,12 +33056,17 @@ interval wscale.~range: check if TCP window scale is in given r
-snort.attribute_table_hosts: total number of hosts in table (sum)
+snort.attribute_table_hosts: number of hosts added to the attribute table (sum)
-snort.attribute_table_reloads: number of times hosts table was reloaded (sum)
+snort.attribute_table_overflow: number of host additions that failed due to attribute table full (sum)
+
+
+
+
+snort.attribute_table_reloads: number of times hosts attribute table was reloaded (sum)
@@ -34818,7 +35001,7 @@ interval wscale.~range: check if TCP window scale is in given r
-116:471 (ciscometadata) invalid Cisco Metadata SGT
+116:471 (ciscometadata) invalid Cisco Metadata security group tag
@@ -35358,6 +35541,36 @@ interval wscale.~range: check if TCP window scale is in given r
+119:253 (http_inspect) HTTP CONNECT request with a message body
+
+
+
+
+119:254 (http_inspect) HTTP client-to-server traffic after CONNECT request but before CONNECT response
+
+
+
+
+119:255 (http_inspect) HTTP CONNECT 2XX response with Content-Length header
+
+
+
+
+119:256 (http_inspect) HTTP CONNECT 2XX response with Transfer-Encoding header
+
+
+
+
+119:257 (http_inspect) HTTP CONNECT response with 1XX status code
+
+
+
+
+119:258 (http_inspect) HTTP CONNECT response before request message completed
+
+
+
+
121:1 (http2_inspect) error in HPACK integer value
@@ -35403,7 +35616,7 @@ interval wscale.~range: check if TCP window scale is in given r
-121:10 (http2_inspect) invalid HTTP/2 header field
+121:10 (http2_inspect) HTTP/2 invalid header field
@@ -36618,6 +36831,21 @@ interval wscale.~range: check if TCP window scale is in given r
+perf_monitor.enable_flow_ip_profiling(seconds, packets): enable statistics on host pairs
+
+
+
+
+perf_monitor.disable_flow_ip_profiling(): disable statistics on host pairs
+
+
+
+
+perf_monitor.show_flow_ip_profiling(): show status of statistics on host pairs
+
+
+
+
snort.show_plugins(): show available plugins
@@ -38112,11 +38340,6 @@ deleted -> unified2: 'vlan_event_types'
-session (ips_option): rule option to check user data from TCP sessions
-
-
-
-
sha256 (ips_option): payload rule option for hash matching
@@ -38292,6 +38515,11 @@ deleted -> unified2: 'vlan_event_types'
+trace (basic): configure trace log messages
+
+
+
+
ttl (ips_option): rule option to check time to live field
@@ -39362,11 +39590,6 @@ deleted -> unified2: 'vlan_event_types'
-ips_option::session: rule option to check user data from TCP sessions
-
-
-
-
ips_option::sha256: payload rule option for hash matching
@@ -39705,7 +39928,7 @@ Adding/removing stream_* inspectors if stream was already configured