You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
suricata/doc/userguide/rules
Yash Datre 353885acc2 detect: extend app-layer-protocol to accept a pipe-separated value list
Extend the app-layer-protocol keyword to accept a pipe-separated list of
protocol values, so a single rule can match any of several protocols:

    app-layer-protocol:[!]<proto1>|<proto2>[|...][,<qualifier>]...;

A non-negated list matches when the flow's protocol equals any listed value
(OR); a negated list matches when it equals none of them (NOR). The
single-value form and the trailing mode qualifier are unchanged.

Matching keeps the historical AppProtoEquals() equivalences by default
(dns/doh2, http/http1/http2, dcerpc/smb, ...). An `exact` qualifier selects
strict identity matching with no equivalences and no http umbrella; it
combines with a direction mode in any order. Because a flow is never the
generic ALPROTO_HTTP, `http,exact` is rejected at load.

Values are expanded once at rule load into an effective match-set bitmask, so
the per-packet match is a single bitmask test. Single-value rules remain
prefilterable; multi-value rules are excluded from prefiltering and an
explicit prefilter on them is rejected. Conflicting keyword combinations
(duplicate or overlapping negations, mixed positive/negated) are rejected at
load. Engine-analysis reports the effective match set.

Ticket: 7705
(cherry picked from commit 43bc2db41e)
4 days ago
..
dataset-examples doc: add dataset examples 4 years ago
dns-keywords
fast-pattern
flow-keywords doc: fix spelling in flowbits image 6 years ago
header-keywords doc: Replace images of tables and rules with text in rules docs 9 years ago
http-keywords doc/userguide: update http keywords 6 years ago
intro doc: Replace images of tables and rules with text in rules docs 9 years ago
normalized-buffers
payload-keywords doc/userguide: fix within-distance pointer graphics in payload-keywords doc 7 months ago
pcre doc: Move pcre entirely to Payload Keywords section 9 years ago
rule-types userguide: explain rule types and categorization 2 years ago
app-layer.rst detect: extend app-layer-protocol to accept a pipe-separated value list 4 days ago
base64-keywords.rst detect: limit base64_decode `bytes` to 64KiB 2 years ago
bypass-keyword.rst doc: Update bypass docs to use new keyword format 1 year ago
config.rst detect/config: add flow tracking doc 1 year ago
datasets.rst doc/userguide: add dataset match subdomain documentation 3 weeks ago
dcerpc-keywords.rst doc: fix dcerpc.opnum documentation 6 months ago
decode-layer.rst doc/decode-events: new: unknown event description 2 years ago
dhcp-keywords.rst doc: integer keywords 3 years ago
differences-from-snort.rst lua: Remove luajit support 2 years ago
dnp3-keywords.rst doc: fix typo on example 7 years ago
dns-keywords.rst detect/dns: support string for dns.rrtype 1 year ago
email-keywords.rst detect: add email.received keyword 1 year ago
enip-keyword.rst enip: convert to rust 2 years ago
fast-pattern-explained.rst doc: remove references to prehistoric versions 3 years ago
file-keywords.rst doc: integer keywords 3 years ago
flow-keywords.rst flowbits: add deprecation notice for toggle command 3 months ago
ftp-keywords.rst ftp: support STOU data transfers 2 months ago
header-keywords.rst doc/userguide: add missing ipopts values 6 months ago
http-keywords.rst userguide: document how suricata processes rules 1 year ago
http2-keywords.rst http2: add frames support 2 years ago
ike-keywords.rst doc: integer keywords 3 years ago
index.rst ntp: add ntp.version keyword 4 months ago
integer-keywords.rst detect/integers: support kibibyte unit 1 year ago
intro.rst doc/userguide: add rule hooks to protocol doc 11 months ago
ip-reputation-rules.rst doc/userguide: document iprep isset/isnotset 2 years ago
ipaddr.rst doc: add reference to ipaddr in IP matching 4 years ago
ja-keywords.rst ja4: implement for TLS and QUIC 2 years ago
kerberos-keywords.rst doc: add multi buffer support note to keyword docs 3 years ago
ldap-keywords.rst detect: add ldap.responses.attribute_type 1 year ago
lua-detection.rst doc/lua-detection: fix example script; remove most buffers 1 year ago
mdns-keywords.rst mdns: add mdns parser, logger and detection 1 year ago
meta.rst userguide: document how suricata processes rules 1 year ago
modbus-keyword.rst doc: spelling mistakes in various sections of the user guide 8 years ago
mqtt-keywords.rst detect/mqtt: move keywords to rust 2 years ago
multi-buffer-matching.rst doc: complete list of multi-buffers 1 year ago
nfs-keywords.rst doc: add file.name information to nfs keyword doc 3 years ago
noalert.rst doc/userguide: add noalert/alert keyword docs 2 years ago
ntp-keywords.rst ntp: convert reference_id to buffer and add keyword 4 months ago
payload-keywords.rst doc/bytemath: document the result of wide shifts 2 weeks ago
pgsql-keywords.rst pgsql: add query keyword 1 year ago
prefilter-keywords.rst doc: convert fancy quotes to straight quotes 7 years ago
quic-keywords.rst doc: add multi buffer support note to keyword docs 3 years ago
rfb-keywords.rst detect/rfb: move keywords to rust 2 years ago
rule-types.rst doc: adjust for master to main rename 12 months ago
rules-internals.rst userguide: document how suricata processes rules 1 year ago
sdp-keywords.rst doc/sdp: fix doc to match real keywords names 1 year ago
sip-keywords.rst doc: add new sip keywords 2 years ago
smb-keywords.rst detect: update smb.version keyword 3 years ago
smtp-keywords.rst detect/smtp: smtp.rcpt_to keyword 2 years ago
snmp-keywords.rst detect/snmp: add snmp.trap_type keyword 5 months ago
ssh-keywords.rst doc: fix typo and missing newline in rules/ssh_keywords. 11 months ago
tag.rst doc/userguide: add tag keyword page 3 years ago
thresholding.rst doc/threshold: Threshold keyword clarifications 2 years ago
tls-keywords.rst detect/ssl: properly handle negation in ssl_version keyword 9 months ago
transforms.rst doc: be more precise for decompress transforms 6 months ago
vlan-keywords.rst detect: add vlan.layers keyword 2 years ago
websocket-keywords.rst app-layer: websockets protocol support 2 years ago
xbits.rst doc/userguide: add xbits tx scope support 11 months ago