From: Michael Altizer (mialtize)
Date: Fri, 21 Feb 2020 18:06:45 +0000 (+0000)
Subject: Merge pull request #1992 in SNORT/snort3 from ~MIALTIZE/snort3:build_268 to master
X-Git-Tag: 3.0.0-268
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57f41b6e049d4854721ec4f5aa03e3b94e55bc70;p=thirdparty%2Fsnort3.git
Merge pull request #1992 in SNORT/snort3 from ~MIALTIZE/snort3:build_268 to master
Squashed commit of the following:
commit 785c0e89b1bde00cc72133e23738c57727407758
Author: Michael Altizer
Date: Fri Feb 21 11:00:08 2020 -0500
build: generate and tag build 268
---
diff --git a/ChangeLog b/ChangeLog
index 2e8be1bcc..58c232bed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,118 @@
+20/02/21 - build 268
+
+-- appid: Adding support for appid detection on decrypted SSL sessions
+-- appid: Adding support for wildcard ports in static host port cache
+-- appid: clean up ENABLE_APPID_THIRD_PARTY from configure_cmake
+-- appid: cleanup terminology
+-- appid: delete odp context on exit
+-- appid: detect payload for http tunnel traffic
+-- appid: do not reload third party on reload_config
+-- appid: Don't mark HTTP session done if the ssl detector is still in progress
+-- appid: Fix array initialization on Appid
+-- appid: get rid of ENABLE_APPID_THIRD_PARTY flag
+-- appid: handle invalid uri in http tunnel traffic
+-- appid: load app mapping data to odp context
+-- appid: move dns, sip, ssl and http pattern matchers to odp context; move client discovery
+ manager to odp context
+-- appid: move odp config, host-port cache and length cache to a separate class OdpContext; remove
+ obsolete port detector code
+-- appid: reset tp packet counters each time we do reinspect
+-- appid: support third party reload when snort is running with single packet thread
+-- bufferlen: match on total length unless remaining is specified
+-- build: Clean up accumulated tabs and trailing whitespace in the code
+-- build: clean up non-hyperscan builds
+-- build: Fix more Clang 9 compiler warnings
+-- build: Remove some extraneous semicolons (compiler warnings)
+-- build: Rename parameters that shadow class members (compiler warnings)
+-- build: Updates across the board for stricter Clang const-casting warnings
+-- catch: Update to Catch v2.11.1
+-- cip: explicitly include sys/time.h header
+-- codecs: Use unions for checksum pseudoheaders
+-- content: add hyperscan content literal matching alternative to boyer-moore
+-- content: delete flawed hyper search test
+-- content: use hs_compile if hs_compile_lit is not available
+-- copyright: update year to 2020
+-- dce_tcp: fixup flow data handling
+-- detection: add config option to enable conversion of pcre expressions to use the regex engine
+-- detection: add hyperscan_literals option
+-- detection: add pcre_override to enable/disable pcre/O
+-- detection: signature evaluation looping based on literal contents only (exclude regex)
+-- doc: manual updates for HTTP/2
+-- doc: update documentation for lua whitelist
+-- doc: update reload_limitations.txt
+-- file_api: enable Active when there are reset rules in the file policy
+-- framework: introduce ScratchAllocator class to help with scratch memory management
+-- gtp_inspect: fix default port binding
+-- hash: refactor ghash implementation to convert it to an actual C++ class
+-- hash: refactor key compare function prototype and functions to return boolean
+-- hash: refactor to move common definitions into hash_defs.h
+-- hash: refactor xhash to be a real C++ class
+-- host_tracker: Check lock in a separate thread in unit-test
+-- host_tracker: make current_size atomic to save some locks
+-- host_tracker: Support host_cache reload with RRT when memcap changes
+-- http2_inspect: add transfer encoding chunked at end of decoded http1 header block
+-- http2_inspect: data frame http inspection walking skeleton first phase
+-- http2_inspect: fast pattern support
+-- http2_inspect: fix string decode error
+-- http2_inspect: frame data no longer in file_data
+-- http2_inspect: integration with NHI
+-- http2_inspect: support disabling detection for uninteresting HTTP/2 frames
+-- http2_inspect: support HPACK dynamic table size updates
+-- http_inspect: add http_param rule option
+-- http_inspect: gzip splitting beyond request_depth should use correct target size
+-- http_inspect: no duplicate built-in events for a flow
+-- http_inspect: patch H2I-related xtra data crash
+-- http_inspect: process multiple files simultaneously over HTTP/1.1
+-- http_inspect: refactoring
+-- http_inspect: update test tool to support the HTTP/2 macros and new insert command
+-- http_inspect: when detection is disabled, disable all rules not just content rules
+-- http_inspect/http2_inspect: H2I unified2 extra data logging
+-- hyperscan: convert thread locals to scan context
+-- inspectors: ensure correct lookup by type, name, or service
+-- inspectors: print label for type and alias in inspector manager. Remove printing module name in
+ inspectors ::show() method.
+-- ips: alert service rules check ports
+-- ips_pcre: compile/evaluate pcre rule option regular expressions with the hyperscan regex engine
+ when possible
+-- ips_pcre: support the O & R modifiers when converting pcre to regex
+-- ips: refactor rule parsing
+-- ips: remove dead code from rule parser
+-- ips: use service "file" instead of "user"
+-- loggers: update vlan logging in csv and json loggers
+-- lua: Added missing file magic pattern for FLIC
+-- lua: Added missing file magic pattern for IntelHEX
+-- lua: fix typo in default smtp's alt_max_command_line_len
+-- lua: update default lua files to whitelist the defined tables
+-- main: add verbose inspector output during reload
+-- main: make IPS actions (reject, react, replace) configurable per-IPS policy
+-- main: move config_lua to Shell::configure
+-- memory: Treating config value memory.cap as per thread instead of global
+-- metadata: add --metadata-filter to load matching rules only
+-- mime: support simultaneous file processing of MIME-encoded files over HTTP/1.1
+-- module_manager: add snort_whitelist_append and snort_whitelist_add_prefix FFIs
+-- normalizer: disable all normalizations by default except for tcp.ips
+-- packet_io: provide default reset action (bidirectional reset for TCP, ICMP unreachable for the
+ rest)
+-- packet_io: refactor Active and IPS Actions to start disentangling them
+-- parser: add service http2 to http rules
+-- parser: store local copy of service name
+-- pcre: ensure use of maximal ovector size and simplify logic
+-- port_scan: Supporting reload config when memcap changes
+-- protocols: provide direct access to the CiscoMetaData layer
+-- regex: convert thread locals to scan context
+-- reload: eliminate FatalError calls that can't happen because snort_calloc always returns valid
+ memory
+-- rna: use standard uint8_t type instead of u_int8_t
+-- search_engine: trivial reformatting
+-- smtp: update defaults to better align with Snort 2
+-- snort2lua: conversion of path containing variables
+-- snort: add new warn flag warn-conf-strict that will throw out warning when table is not found
+-- snort: Adding some verbose logs for appid, file_id, and reputation inspectors
+-- stream_tcp: ensure that flows with mss and timestamps are picked up on syn
+-- tweaks: set reasonable stream_ip.min_fragment_length values
+-- tweaks: update per new normalizer defaults
+-- tweaks: update policy configs to better align with Snort 2
+
19/12/20 - build 267
-- appid: Adding command for third-party reload
diff --git a/doc/snort_manual.html b/doc/snort_manual.html
index adf59bb00..7712cf40d 100644
--- a/doc/snort_manual.html
+++ b/doc/snort_manual.html
@@ -782,10 +782,10 @@ asciidoc.install(2);
,,_ -*> Snort++ <*-
-o" )~ Version 3.0.0 (Build 267)
+o" )~ Version 3.0.0 (Build 268)
'''' By Martin Roesch & The Snort Team
http://snort.org/contact#team
- Copyright (C) 2014-2019 Cisco and/or its affiliates. All rights reserved.
+ Copyright (C) 2014-2020 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
@@ -1183,6 +1183,24 @@ active.max_responses = 1
+
Whitelist
+
When Snort is run with the --warn-conf-strict option, warnings will be
+generated for all Lua tables present in the configuration files that do
+not map to Snort module names. Like with other warnings, these will
+upgraded to errors when Snort is run in pedantic mode.
+
To dynamically add exceptions that should bypass this strict validation,
+two Lua functions are made available to be called during the evaluation
+of Snort configuration files: snort_whitelist_append() and
+snort_whitelist_add_prefix(). Each function takes a whitespace-delimited
+list, the former a list of exact table names and the latter a list of table
+name prefixes to allow.
+
Examples:
+snort_whitelist_append("table1 table2")
+snort_whitelist_add_prefix("local_ foobar_")
+
The accumulated contents of the whitelist (both exact and prefix) will be
+dumped when Snort is run in verbose mode (-v).
+
+
Rules
Rules determine what Snort is looking for. They can be put directly in
your Lua configuration file with the ips module, on the command line with
@@ -5332,7 +5350,7 @@ plus_to_space = true
percent_u = false
utf8_bare_byte = false
iis_unicode = false
-iis_double_decode = false
+iis_double_decode = true
The HTTP inspector normalizes percent encodings found in URIs. For instance
it will convert "%48%69%64%64%65%6e" to "Hidden". All the options listed
@@ -5376,7 +5394,7 @@ you to create exemptions for those characters.
simplify_path = true
-backslash_to_slash = false
+backslash_to_slash = true
HTTP inspector simplifies directory paths in URIs by eliminating extra
traversals using ., .., and /.
@@ -5403,9 +5421,8 @@ directories to be separated by backslashes:
\this\is\the\other\way\to\write\a\path
-backslash_to_slash is turned off by default. If you are protecting such a
-server then set backslash_to_slash = true and all the backslashes will be
-replaced with slashes during normalization.
+backslash_to_slash is turned on by default. It replaces all the backslashes
+with slashes during normalization.
@@ -5831,6 +5848,29 @@ http2_frame_data; content:"MaLwArE"; sid:3; rev:1; )
Frame type 0 is DATA which carries the HTTP message body. This rule will
search for MaLwArE inside an HTTP message body.
+To smooth the transition to inspecting HTTP/2, rules that specify
+service:http will be treated as if they also specify service:http2.
+Thus:
+
+
+
alert tcp any any -> any any (flow:established, to_server;
+http_uri; content:"/foo";
+service: http; sid:10; rev:1;)
+
+
+
+
+
alert tcp any any -> any any (flow:established, to_server;
+http_uri; content:"/foo";
+service: http,http2; sid:10; rev:1;)
+
+Thus it will alert on "/foo" in the URI for both HTTP/1 and HTTP/2 traffic.
+The reverse is not true. "service: http2" without http will match on HTTP/2
+flows but not HTTP/1 flows.
+This feature makes it easy to add HTTP/2 inspection without modifying
+large numbers of existing rules. New rules should explicitly specify
+"service http,http2;" if that is the desired behavior. Eventually
+support for http implies http2 may be deprecated and removed.
In the future, http2_inspect will support HPACK header decompression and
be fully integrated with http_inspect to provide full inspection of the
individual HTTP/1.1 streams.
@@ -7112,7 +7152,7 @@ int attribute_table.max_services_per_host = 8: maximum number o
-int attribute_table.max_metadata_services = 8: maximum number of services in rule { 1:255 }
+int attribute_table.max_metadata_services = 9: maximum number of services in rule { 1:255 }
@@ -7404,6 +7444,11 @@ bool detection.global_rule_state = false: apply rule_state agai
+bool detection.hyperscan_literals = false: use hyperscan for content literal searches instead of boyer-moore
+
+
+
+
int detection.offload_limit = 99999: minimum sizeof PDU to offload fast pattern search (defaults to disabled) { 0:max32 }
@@ -7414,7 +7459,7 @@ int detection.offload_threads = 0: maximum number of simultaneo
-bool detection.pcre_enable = true: disable pcre pattern matching
+bool detection.pcre_enable = true: enable pcre pattern matching
@@ -7429,6 +7474,16 @@ int detection.pcre_match_limit_recursion = 1500: limit pcre sta
+bool detection.pcre_override = true: enable pcre match limit overrides when pattern matching (ie ignore /O)
+
+
+
+
+bool detection.pcre_to_regex = false: enable the use of regex instead of pcre for compatible expressions
+
+
+
+
bool detection.enable_address_anomaly_checks = false: enable check and alerting of address anomalies
@@ -7805,27 +7860,32 @@ int host_cache.memcap = 8388608: maximum host cache size in byt
-
-host_cache.lru_cache_adds: lru cache added new entry (sum)
+host_cache.adds: lru cache added new entry (sum)
+
+
+-
+
+host_cache.alloc_prunes: lru cache pruned entry to make space for new entry (sum)
-
-host_cache.lru_cache_prunes: lru cache pruned entry to make space for new entry (sum)
+host_cache.find_hits: lru cache found entry in cache (sum)
-
-host_cache.lru_cache_find_hits: lru cache found entry in cache (sum)
+host_cache.find_misses: lru cache did not find entry in cache (sum)
-
-host_cache.lru_cache_find_misses: lru cache did not find entry in cache (sum)
+host_cache.reload_prunes: lru cache pruned entry for lower memcap during reload (sum)
-
-host_cache.lru_cache_removes: lru cache found entry and removed it (sum)
+host_cache.removes: lru cache found entry and removed it (sum)
@@ -9126,6 +9186,11 @@ implied snort.--mem-check: like -T but also compile search engi
+string snort.--metadata-filter: <filter> load only rules containing filter string in metadata if set
+
+
+
+
implied snort.--nostamps: don’t include timestamps in log file names
@@ -9291,6 +9356,11 @@ implied snort.--warn-conf: warn about configuration issues
+implied snort.--warn-conf-strict: warn about unrecognized elements in configuration files
+
+
+
+
implied snort.--warn-daq: warn about DAQ issues, usually related to mode
@@ -13106,6 +13176,16 @@ int gtp_inspect.trace: mask for enabling debug traces in module
121:12 (http2_inspect) unknown parameter in HTTP/2 settings frame
+
+
+121:13 (http2_inspect) invalid HTTP/2 frame sequence
+
+
+
+
+121:14 (http2_inspect) HTTP/2 dynamic table size limit exceeded
+
+
@@ -13225,7 +13310,7 @@ int
http_inspect.iis_unicode_code_page = 1252: code page to use
-bool http_inspect.iis_double_decode = false: perform double decoding of percent encodings to normalize characters
+bool http_inspect.iis_double_decode = true: perform double decoding of percent encodings to normalize characters
@@ -13235,7 +13320,7 @@ int http_inspect.oversize_dir_length = 300: maximum length for
-bool http_inspect.backslash_to_slash = false: replace \ with / when normalizing URIs
+bool http_inspect.backslash_to_slash = true: replace \ with / when normalizing URIs
@@ -13746,6 +13831,11 @@ bool http_inspect.simplify_path = true: reduce URI directory pa
119:248 (http_inspect) gzip compressed data followed by unexpected non-gzip data
+
+
+119:249 (http_inspect) excessive HTTP parameter key repeats
+
+
@@ -14081,7 +14181,7 @@ int
imap.uu_decode_depth = -1: Unix-to-Unix decoding depth (-1
-
-bool normalizer.ip4.base = true: clear options
+bool normalizer.ip4.base = false: clear options
-
@@ -14106,17 +14206,17 @@ bool normalizer.ip4.trim = false: truncate excess payload beyon
-
-bool normalizer.tcp.base = true: clear reserved bits and option padding and fix urgent pointer / flags issues
+bool normalizer.tcp.base = false: clear reserved bits and option padding and fix urgent pointer / flags issues
-
-bool normalizer.tcp.block = true: allow packet drops during TCP normalization
+bool normalizer.tcp.block = false: allow packet drops during TCP normalization
-
-bool normalizer.tcp.urp = true: adjust urgent pointer if beyond segment length
+bool normalizer.tcp.urp = false: adjust urgent pointer if beyond segment length
-
@@ -14131,7 +14231,7 @@ select normalizer.tcp.ecn = off: clear ecn for all packets | se
-
-bool normalizer.tcp.pad = true: clear any option padding bytes
+bool normalizer.tcp.pad = false: clear any option padding bytes
-
@@ -14161,27 +14261,27 @@ bool normalizer.tcp.trim = false: enable all of the TCP trim op
-
-bool normalizer.tcp.opts = true: clear all options except mss, wscale, timestamp, and any explicitly allowed
+bool normalizer.tcp.opts = false: clear all options except mss, wscale, timestamp, and any explicitly allowed
-
-bool normalizer.tcp.req_urg = true: clear the urgent pointer if the urgent flag is not set
+bool normalizer.tcp.req_urg = false: clear the urgent pointer if the urgent flag is not set
-
-bool normalizer.tcp.req_pay = true: clear the urgent pointer and the urgent flag if there is no payload
+bool normalizer.tcp.req_pay = false: clear the urgent pointer and the urgent flag if there is no payload
-
-bool normalizer.tcp.rsv = true: clear the reserved bits in the TCP header
+bool normalizer.tcp.rsv = false: clear the reserved bits in the TCP header
-
-bool normalizer.tcp.req_urp = true: clear the urgent flag if the urgent pointer is not set
+bool normalizer.tcp.req_urp = false: clear the urgent flag if the urgent pointer is not set
-
@@ -14588,7 +14688,7 @@ int perf_monitor.seconds = 60: report interval { 1:max32 }
-
-int perf_monitor.flow_ip_memcap = 52428800: maximum memory in bytes for flow tracking { 8200:maxSZ }
+int perf_monitor.flow_ip_memcap = 52428800: maximum memory in bytes for flow tracking { 236:maxSZ }
-
@@ -15261,7 +15361,22 @@ int port_scan.icmp_window = 0: detection interval for all ICMP
-
-port_scan.packets: total packets (sum)
+port_scan.packets: number of packets processed by port scan (sum)
+
+
+-
+
+port_scan.trackers: number of trackers allocated by port scan (sum)
+
+
+-
+
+port_scan.alloc_prunes: number of trackers pruned on allocation of new tracking (sum)
+
+
+-
+
+port_scan.reload_prunes: number of trackers pruned on reload due to reduced memcap (sum)
@@ -16129,17 +16244,17 @@ int smtp.max_auth_command_line_len = 1000: max auth command Lin
-
-int smtp.max_command_line_len = 0: max Command Line Length { 0:65535 }
+int smtp.max_command_line_len = 512: max Command Line Length { 0:65535 }
-
-int smtp.max_header_line_len = 0: max SMTP DATA header line { 0:65535 }
+int smtp.max_header_line_len = 1000: max SMTP DATA header line { 0:65535 }
-
-int smtp.max_response_line_len = 0: max SMTP response line { 0:65535 }
+int smtp.max_response_line_len = 512: max SMTP response line { 0:65535 }
-
@@ -17901,7 +18016,12 @@ implied ber_skip.optional: match even if the specified BER type
-
-interval bufferlen.~range: check that length of current buffer is in given range { 0:65535 }
+interval bufferlen.~range: check that total length of current buffer is in given range { 0:65535 }
+
+
+-
+
+implied bufferlen.relative: use remaining length (from current position) instead of total length
@@ -18883,6 +19003,25 @@ implied http_method.with_trailer: parts of this rule examine HT
+
http_param
+
What: rule option to set the detection cursor to the value of the specified HTTP parameter key which may be in the query or body
+
+
+
+
+
+
http_raw_body
What: rule option to set the detection cursor to the unnormalized message body
@@ -19389,7 +19528,7 @@ implied
md5.relative = false: offset from cursor instead of sta
-
What: rule option for conveying arbitrary name, value data within the rule text
+
What: rule option for conveying arbitrary comma-separated name, value data within the rule text
@@ -19476,6 +19615,29 @@ string
pcre.~re: Snort regular expression
+
+
+-
+
+pcre.pcre_rules: total rules processed with pcre option (sum)
+
+
+-
+
+pcre.pcre_to_hyper: total pcre rules by hyperscan engine (sum)
+
+
+-
+
+pcre.pcre_native: total pcre rules compiled by pcre engine (sum)
+
+
+-
+
+pcre.pcre_negated: total pcre rules using negation syntax (sum)
+
+
+
pkt_data
@@ -24595,6 +24757,11 @@ these libraries see the Getting Started section of the manual.
+--metadata-filter <filter> load only rules containing filter string in metadata if set
+
+
+
+
--nostamps don’t include timestamps in log file names
@@ -24760,6 +24927,11 @@ these libraries see the Getting Started section of the manual.
+--warn-conf-strict warn about unrecognized elements in configuration files
+
+
+
+
--warn-daq warn about DAQ issues, usually related to mode
@@ -25120,7 +25292,7 @@ int attribute_table.max_hosts = 1024: maximum number of hosts i
-int attribute_table.max_metadata_services = 8: maximum number of services in rule { 1:255 }
+int attribute_table.max_metadata_services = 9: maximum number of services in rule { 1:255 }
@@ -25275,7 +25447,12 @@ bit_list binder[].when.zones: zones { 63 }
-interval bufferlen.~range: check that length of current buffer is in given range { 0:65535 }
+interval bufferlen.~range: check that total length of current buffer is in given range { 0:65535 }
+
+
+
+
+implied bufferlen.relative: use remaining length (from current position) instead of total length
@@ -25885,6 +26062,11 @@ bool detection.global_rule_state = false: apply rule_state agai
+bool detection.hyperscan_literals = false: use hyperscan for content literal searches instead of boyer-moore
+
+
+
+
int detection.offload_limit = 99999: minimum sizeof PDU to offload fast pattern search (defaults to disabled) { 0:max32 }
@@ -25895,7 +26077,7 @@ int detection.offload_threads = 0: maximum number of simultaneo
-bool detection.pcre_enable = true: disable pcre pattern matching
+bool detection.pcre_enable = true: enable pcre pattern matching
@@ -25910,6 +26092,16 @@ int detection.pcre_match_limit_recursion = 1500: limit pcre sta
+bool detection.pcre_override = true: enable pcre match limit overrides when pattern matching (ie ignore /O)
+
+
+
+
+bool detection.pcre_to_regex = false: enable the use of regex instead of pcre for compatible expressions
+
+
+
+
int detection.trace: mask for enabling debug traces in module { 0:max53 }
@@ -26675,7 +26867,7 @@ implied http_header.with_trailer: parts of this rule examine HT
-bool http_inspect.backslash_to_slash = false: replace \ with / when normalizing URIs
+bool http_inspect.backslash_to_slash = true: replace \ with / when normalizing URIs
@@ -26710,7 +26902,7 @@ string http_inspect.ignore_unreserved: do not alert when the sp
-bool http_inspect.iis_double_decode = false: perform double decoding of percent encodings to normalize characters
+bool http_inspect.iis_double_decode = true: perform double decoding of percent encodings to normalize characters
@@ -26805,6 +26997,16 @@ implied http_method.with_trailer: parts of this rule examine HT
+implied http_param.nocase: case insensitive match
+
+
+
+
+string http_param.~param: parameter to match
+
+
+
+
implied http_raw_cookie.request: match against the cookie from the request message even when examining the response
@@ -27400,7 +27602,7 @@ bool normalizer.icmp6 = false: clear reserved flag
-bool normalizer.ip4.base = true: clear options
+bool normalizer.ip4.base = false: clear options
@@ -27440,12 +27642,12 @@ multi normalizer.tcp.allow_names: don’t clear given optio
-bool normalizer.tcp.base = true: clear reserved bits and option padding and fix urgent pointer / flags issues
+bool normalizer.tcp.base = false: clear reserved bits and option padding and fix urgent pointer / flags issues
-bool normalizer.tcp.block = true: allow packet drops during TCP normalization
+bool normalizer.tcp.block = false: allow packet drops during TCP normalization
@@ -27460,32 +27662,32 @@ bool normalizer.tcp.ips = true: ensure consistency in retransmi
-bool normalizer.tcp.opts = true: clear all options except mss, wscale, timestamp, and any explicitly allowed
+bool normalizer.tcp.opts = false: clear all options except mss, wscale, timestamp, and any explicitly allowed
-bool normalizer.tcp.pad = true: clear any option padding bytes
+bool normalizer.tcp.pad = false: clear any option padding bytes
-bool normalizer.tcp.req_pay = true: clear the urgent pointer and the urgent flag if there is no payload
+bool normalizer.tcp.req_pay = false: clear the urgent pointer and the urgent flag if there is no payload
-bool normalizer.tcp.req_urg = true: clear the urgent pointer if the urgent flag is not set
+bool normalizer.tcp.req_urg = false: clear the urgent pointer if the urgent flag is not set
-bool normalizer.tcp.req_urp = true: clear the urgent flag if the urgent pointer is not set
+bool normalizer.tcp.req_urp = false: clear the urgent flag if the urgent pointer is not set
-bool normalizer.tcp.rsv = true: clear the reserved bits in the TCP header
+bool normalizer.tcp.rsv = false: clear the reserved bits in the TCP header
@@ -27515,7 +27717,7 @@ bool normalizer.tcp.trim_win = false: trim data to window
-bool normalizer.tcp.urp = true: adjust urgent pointer if beyond segment length
+bool normalizer.tcp.urp = false: adjust urgent pointer if beyond segment length
@@ -27645,7 +27847,7 @@ bool perf_monitor.flow_ip = false: enable statistics on host pa
-int perf_monitor.flow_ip_memcap = 52428800: maximum memory in bytes for flow tracking { 8200:maxSZ }
+int perf_monitor.flow_ip_memcap = 52428800: maximum memory in bytes for flow tracking { 236:maxSZ }
@@ -28740,17 +28942,17 @@ int smtp.max_auth_command_line_len = 1000: max auth command Lin
-int smtp.max_command_line_len = 0: max Command Line Length { 0:65535 }
+int smtp.max_command_line_len = 512: max Command Line Length { 0:65535 }
-int smtp.max_header_line_len = 0: max SMTP DATA header line { 0:65535 }
+int smtp.max_header_line_len = 1000: max SMTP DATA header line { 0:65535 }
-int smtp.max_response_line_len = 0: max SMTP response line { 0:65535 }
+int smtp.max_response_line_len = 512: max SMTP response line { 0:65535 }
@@ -29075,6 +29277,11 @@ implied snort.--mem-check: like -T but also compile search engi
+string snort.--metadata-filter: <filter> load only rules containing filter string in metadata if set
+
+
+
+
implied snort.-M: log messages to syslog (not alerts)
@@ -29330,6 +29537,11 @@ implied snort.--warn-all: enable all warnings
+implied snort.--warn-conf-strict: warn about unrecognized elements in configuration files
+
+
+
+
implied snort.--warn-conf: warn about configuration issues
@@ -31145,27 +31357,32 @@ interval wscale.~range: check if TCP window scale is in given r
-host_cache.lru_cache_adds: lru cache added new entry (sum)
+host_cache.adds: lru cache added new entry (sum)
+
+
+
+
+host_cache.alloc_prunes: lru cache pruned entry to make space for new entry (sum)
-host_cache.lru_cache_find_hits: lru cache found entry in cache (sum)
+host_cache.find_hits: lru cache found entry in cache (sum)
-host_cache.lru_cache_find_misses: lru cache did not find entry in cache (sum)
+host_cache.find_misses: lru cache did not find entry in cache (sum)
-host_cache.lru_cache_prunes: lru cache pruned entry to make space for new entry (sum)
+host_cache.reload_prunes: lru cache pruned entry for lower memcap during reload (sum)
-host_cache.lru_cache_removes: lru cache found entry and removed it (sum)
+host_cache.removes: lru cache found entry and removed it (sum)
@@ -31195,6 +31412,11 @@ interval wscale.~range: check if TCP window scale is in given r
+http2_inspect.max_table_entries: maximum entries in an HTTP/2 dynamic table (max)
+
+
+
+
http_inspect.chunked: chunked message bodies (sum)
@@ -31220,6 +31442,11 @@ interval wscale.~range: check if TCP window scale is in given r
+http_inspect.excess_parameters: repeat parameters exceeding max (sum)
+
+
+
+
http_inspect.flows: HTTP connections inspected (sum)
@@ -31255,6 +31482,11 @@ interval wscale.~range: check if TCP window scale is in given r
+http_inspect.parameters: HTTP parameters inspected (sum)
+
+
+
+
http_inspect.partial_inspections: pre-inspections for detained inspection (sum)
@@ -31815,6 +32047,26 @@ interval wscale.~range: check if TCP window scale is in given r
+pcre.pcre_native: total pcre rules compiled by pcre engine (sum)
+
+
+
+
+pcre.pcre_negated: total pcre rules using negation syntax (sum)
+
+
+
+
+pcre.pcre_rules: total rules processed with pcre option (sum)
+
+
+
+
+pcre.pcre_to_hyper: total pcre rules by hyperscan engine (sum)
+
+
+
+
perf_monitor.alloc_prunes: flows pruned on allocation of IP flows (sum)
@@ -31895,7 +32147,22 @@ interval wscale.~range: check if TCP window scale is in given r
-port_scan.packets: total packets (sum)
+port_scan.alloc_prunes: number of trackers pruned on allocation of new tracking (sum)
+
+
+
+
+port_scan.packets: number of packets processed by port scan (sum)
+
+
+
+
+port_scan.reload_prunes: number of trackers pruned on reload due to reduced memcap (sum)
+
+
+
+
+port_scan.trackers: number of trackers allocated by port scan (sum)
@@ -34790,6 +35057,11 @@ interval wscale.~range: check if TCP window scale is in given r
+119:249 (http_inspect) excessive HTTP parameter key repeats
+
+
+
+
121:1 (http2_inspect) error in HPACK integer value
@@ -34850,6 +35122,16 @@ interval wscale.~range: check if TCP window scale is in given r
+121:13 (http2_inspect) invalid HTTP/2 frame sequence
+
+
+
+
+121:14 (http2_inspect) HTTP/2 dynamic table size limit exceeded
+
+
+
+
122:1 (port_scan) TCP portscan
@@ -37071,6 +37353,11 @@ deleted -> unified2: 'vlan_event_types'
+http_param (ips_option): rule option to set the detection cursor to the value of the specified HTTP parameter key which may be in the query or body
+
+
+
+
http_raw_body (ips_option): rule option to set the detection cursor to the unnormalized message body
@@ -37136,6 +37423,11 @@ deleted -> unified2: 'vlan_event_types'
+hyperscan (search_engine): intel hyperscan-based mpse with regex support
+
+
+
+
icmp4 (codec): support for Internet control message protocol v4
@@ -37256,7 +37548,7 @@ deleted -> unified2: 'vlan_event_types'
-metadata (ips_option): rule option for conveying arbitrary name, value data within the rule text
+metadata (ips_option): rule option for conveying arbitrary comma-separated name, value data within the rule text
@@ -38531,6 +38823,11 @@ deleted -> unified2: 'vlan_event_types'
+ips_option::http_param: rule option to set the detection cursor to the value of the specified HTTP parameter key which may be in the query or body
+
+
+
+
ips_option::http_raw_body: rule option to set the detection cursor to the unnormalized message body
@@ -38641,7 +38938,7 @@ deleted -> unified2: 'vlan_event_types'
-ips_option::metadata: rule option for conveying arbitrary name, value data within the rule text
+ips_option::metadata: rule option for conveying arbitrary comma-separated name, value data within the rule text
@@ -39024,11 +39321,6 @@ daq.snaplen
-daq.no_promisc
-
-
-
-
detection.asn1
@@ -39039,11 +39331,6 @@ file_id.max_files_cached
-port_scan.memcap
-
-
-
-
process.chroot
@@ -39064,97 +39351,12 @@ process.set_uid
-stream.footprint
-
-
-
-
-stream.ip_cache.max_sessions
-
-
-
-
-stream.ip_cache.pruning_timeout
-
-
-
-
-stream.ip_cache.idle_timeout
-
-
-
-
-stream.icmp_cache.max_sessions
-
-
-
-
-stream.icmp_cache.pruning_timeout
-
-
-
-
-stream.icmp_cache.idle_timeout
-
-
-
-
-stream.tcp_cache.max_sessions
-
-
-
-
-stream.tcp_cache.pruning_timeout
-
-
-
-
-stream.tcp_cache.idle_timeout
-
-
-
-
-stream.udp_cache.max_sessions
-
-
-
-
-stream.udp_cache.pruning_timeout
-
-
-
-
-stream.udp_cache.idle_timeout
-
-
-
-
-stream.user_cache.max_sessions
-
-
-
-
-stream.user_cache.pruning_timeout
-
-
-
-
-stream.user_cache.idle_timeout
-
-
-
-
-stream.file_cache.max_sessions
-
-
-
-
-stream.file_cache.pruning_timeout
+snort.--bpf
-stream.file_cache.idle_timeout
+snort.-l
@@ -39194,7 +39396,7 @@ Adding/removing stream_* inspectors if stream was already configured