The section your link pointed to isn't on Suricata's page any more, so we've brought you to the top.
Suricata is a network Intrusion Detection System, Intrusion Prevention System and Network Security Monitoring engine developed by the OISF and the Suricata community.
alert tcp any any -> any any (msg:"Start a login count"; content:"login failed"; flowint:loginfail,notset; flowint:loginfail,=,1; noalert;)
alert tcp any any -> any any (msg:"Counting Logins"; content:"login failed"; flowint:loginfail,isset; flowint:loginfail,+,1; noalert;)
alert tcp any any -> any any (msg:"More than Five login fails in a Stream"; content:"login failed"; flowint:loginfail,isset; flowint:loginfail,>,5;)
alert http any any -> any any (msg:"User1 or User2 logged in"; content:"login"; flowbits:isset,user1|user2; sid:1;)
alert tcp any any -> any any (msg:"DNS or HTTP detected"; app-layer-protocol:dns|http; sid:1000001; rev:1;)
firewall:
policies:
accept-arp: true
default-policy: drop
alert dns any any -> any any (msg:"Blocklisted domain hit"; dns.query; dataset:isset,bad-domains,type string,match subdomain; sid:1000002; rev:1;)
alert tcp any any -> any any (msg:"TCP WScale Match"; tcp.wscale:12; flow:established; sid:1000001;)
Add 'tcp-stream' to the output section of your suricata.yaml
Configure 'dpdk' with a 'bonding' section in suricata.yaml
dataset-remove my_dataset key_to_delete
alert http any any -> any any (msg:"Bidirectional flow"; threshold:type by_both, track by_src, count 5, seconds 60;)
dynamic-loadable-modules:
- filename: my_plugin.so
args: "arg1=value"
alert dns any any -> any any (msg:"DNS AXFR Query"; dns.opcode:24; sid:1000001; rev:1;)
alert tls any any -> any any (msg:"Known Malicious JA3"; ja3s:set:malicious_ja3_list; sid:1000002; rev:1;)
suricata --pcap-file /path/to/traffic.lz4
./configure --disable-libnss --disable-libnspr
./configure --without-libmagic
local ts = SCPacketTimestamp(e)
run_user: suricata
run_group: suricata
http-server:
inspection-size: 1024
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Raw Header Inspection"; content:"Value|0A"; http_raw_header; classtype:bad-unknown; sid:1000001; rev:1;)
Summary
Suricata is an open-source network IDSIDSAn intrusion detection system, monitoring traffic or host activity for suspicious behavior and producing alerts. Detection alone does not necessarily block the activity., IPSIPSAn intrusion prevention system, inspecting activity and blocking traffic or actions that match its security rules. It adds active enforcement to detection. and NSM engine that inspects live traffic or pcappcapA packet capture, recorded network packets that can be inspected later. Analysts use it to reconstruct communication and investigate protocol behavior or suspicious traffic. files and matches it against rules to detect or block threats, free to use. It runs as a daemon on a network interface or sensor, fed by rule sources it can fetch and update, rather than as a library or SaaSSaaSSoftware delivered over the internet and run on the provider's infrastructure, so the buyer pays a subscription instead of installing or operating anything locally. console, which makes it a fit for SOCSOCA security operations center, the team or function that monitors threats, investigates alerts and coordinates incident response. Its work can be internal, outsourced or shared. analysts and network security engineers who own traffic monitoring and intrusion prevention rather than endpoint or application teams. Its own README describes it as an IDS/IPS/NSM engine in the tradition of tools like Snort, with rule syntax that overlaps that ecosystem while adding firewall-policy controls, TCP session matching and protocol-list rules of its own. First committed in 2008, it remains active with 342 contributors, over 1,800 commits in the past year, and a release only 18 days old.
Suricata is a network Intrusion Detection System, Intrusion Prevention System and Network Security Monitoring engine developed by the OISF and the Suricata community.
Which connections in my network match known attack patterns right now?
inspects live traffic against loaded rule sets and raises an alert for every packet or flow that matches a signature, naming the rule that fired
Which sessions should be dropped before they reach their destination?
runs inline in prevention mode and drops or rejects matching traffic based on the rule's action, rather than only logging it after the fact
Did this traffic capture from an incident contain anything malicious?
replays the saved pcap through the same rule set used live and produces the identical alert log, so past traffic can be checked after the fact
Is a host talking to a subdomain of a domain we've blocklisted?
matches the dataset keyword against subdomains of listed entries, not just exact matches, and alerts on the connection
Are my rules only watching one protocol when the traffic could arrive as several?
lets a single rule list several protocol values for the app-layer-protocol keyword, so one signature covers traffic arriving as any of them
Should this ARP or unmatched traffic be allowed through my firewall policy?
applies the configured default policy to flows with no explicit match and a separate accept-arp setting to ARP specifically, so the fallback behavior is explicit rather than implicit
42 capabilities
across 3 capability groups
· 1 backed by code, an API document or a real run
Built from Suricata's releases, docs, README and our own runs.
“Seen” marks the month we first spotted a release the vendor didn't date.
Group names and tags are our labels.
+Protocol decode extensionsshippedAdds support for decoding and detecting specific protocol variants, such as ICMPv6 MLDv2 reports.10 releases · first seen Feb 2017▸
Shared capability: Network traffic analysis
release
10 total
Adds doh support for DNS over HTTPS decoding
8.0.0-beta1 · Apr 2025
· source
· release history
Adds geneve as a new protocol decoder in the application layer
6.0.0-rc1 · Sep 2020
· source
· release history
Adds HTTP/2 decoder support for parsing HTTP/2 traffic streams.
6.0.0-beta1 · Aug 2020
· source
· release history
New snmp protocol parser, logging, and detection capabilities
5.0.0-rc1 · Sep 2019
· source
· release history
New rdp protocol parser with logging and detection capabilities
5.0.0-rc1 · Sep 2019
· source
· release history
New sip protocol parser, logging, and detection capabilities
5.0.0-rc1 · Sep 2019
· source
· release history
+DNS protocol detectionshippedProvides a stateless DNS parser for detecting and analyzing DNS traffic, implemented in Rust for performance.4 releases · 1 other source · first seen Jun 2017▸
Shared capability: Network traffic analysis
release
Adds DNS opcode range matching support using ranges in dns.opcode values
8.0.0-beta1 · Apr 2025
· source
· release history
eve: add stream tcp logging to EVE JSON output
7.0.0-rc2 · Jun 2023
· source
· release history
Enables parsing and extraction of Start of Authority (SOA) app layer data from DNS packets
6.0.0-rc1 · Sep 2020
· source
· release history
Introduces a new stateless DNS parser written in Rust for improved performance and reliability
4.0.0-beta1 · Jun 2017
· source
· release history
example
Detect specific DNS query types like AXFR or TKEY to identify potential data exfiltration or reconnaissance.$ alert dns any any -> any any (msg:"DNS AXFR Query"; dns.opcode:24; sid:1000001; rev:1;)
5.0.0-rc1 · Sep 2019
· source
+Protocol detection extensionsshippedAdds support for decoding and detecting specific application-layer protocols including GRE over Ethernet, EtherNet/IP/CIP, and SSHFP records.4 releases · first seen Mar 2016▸
Adds EtherNet/IP and CIP protocol support enabling detection of PLC traffic
3.2beta1 · Oct 2016
· source
· release history
DNS logging now includes SSHFP records when configured in the dns module
3.1rc1 · Jun 2016
· source
· release history
Adds transparent Ethernet bridge decoding for GRE.
3.0.1rc1 · Mar 2016
· source
· release history
+Decode error monitoringshippedProvides visibility into protocol decode errors via accessible counters in the stats subsystem.1 release · first seen Mar 2016▸
Shared capability: Network traffic analysis
release
Creates counters for decode-events errors accessible via stats subsystem
3.0.1rc1 · Mar 2016
· source
· release history
+Packet captureshippedCaptures packets associated with alerts and flows; packets that cannot be assigned to a flow, such as ICMPv4 error messages or packets dropped due to flow memcap limits, may still trigger alerts but their captures are discarded.7 releases · 4 other sources · first seen Apr 2011▸
Shared capability: Full packet retention
release
7 total
Adds dynamic-loadable-module support for loading plugins at runtime.
6.0.0-beta1 · Aug 2020
· source
· release history
pcap.filename can now use .lz4 extension to enable LZ4 compression for pcap logs
4.1.0-rc1 · Jul 2018
· source
· release history
TPACKET_V3 support added to AF_PACKET interface via Feature #681
3.1rc1 · Jun 2016
· source
· release history
feature #383 adds stream logging to capture packet flow data
2.1beta2 · Nov 2014
· source
· release history
Adds eve-log capability to include raw packet payloads in alert output
2.1beta1 · Aug 2014
· source
· release history
Adds af-packet support for high speed packet capture
1.1beta3 · Oct 2011
· source
· release history
docs
capture needs a flow to store into. Some packets are inspected without one -- ICMPv4 error messages, for example, or a packet that could not be given a flow because the flow memcap was reached. Those packets can still alert, but their captures are dropped.
seen Sep 2026
· source
example
Capture TCP stream data (payload, offsets) in EVE JSON for full context analysis.$ Add 'tcp-stream' to the output section of your suricata.yaml
7.0.0-rc2 · Jun 2023
· source
Enable loading of a custom dynamic plugin module in the configuration.$ dynamic-loadable-modules: - filename: my_plugin.so args: "arg1=value"
6.0.0-beta1 · Aug 2020
· source
Store pcap logs in compressed format to save disk space.$ suricata --pcap-file /path/to/traffic.lz4
4.1.0-rc1 · Jul 2018
· source
+Rule source management and updates1 featureNetwork analysis▸
+Rule source managementshippedFetches and updates the rule sources used by the tool for detection.1 other source▸
Shared capability: Rule source management and updates
example
Fetch and update rule sources$ suricata-update
+Other / not yet classified36 featuresFeatures we have not matched to a capability yet. A suggested match is marked.▸
+Advanced protocol content inspectionshippedProvides detection keywords for inspecting specific fields and states of application-layer protocols such as HTTP, SSL/TLS, and SCTP.38 releases · 3 other sources · first seen Apr 2011▸
release
38 total
Adds query detection keyword for PostgreSQL (pgsql) protocol inspection
8.0.0-rc1 · Jun 2025
· source
· release history
Adds ftp.completion_code, ftp.reply_received, ftp.mode, and ftp.dynamic_port keywords for FTP protocol detection
8.0.0-rc1 · Jun 2025
· source
· release history
Adds email.received, email.url, and email.message_id keywords for MIME/Email protocol detection
8.0.0-rc1 · Jun 2025
· source
· release history
Adds FTP rule keywords: ftp.reply, ftp.command_data, and ftp.command
8.0.0-beta1 · Apr 2025
· source
· release history
Adds SMTP detection keywords: smtp.mail_from, smtp.rcpt_to, and smtp.helo
8.0.0-beta1 · Apr 2025
· source
· release history
example
Check if a TLS certificate has expired using the new detection keywords$ alert tls any any -> any any (msg:"Expired Cert"; tls_cert_expired:true; sid:1000001;)
3.2beta1 · Oct 2016
· source
Increase the buffer size for inspecting HTTP request bodies to a specific server configuration.$ http-server: inspection-size: 1024
1.4beta3 · Nov 2012
· source
Use a Lua script to inspect HTTP payloads for custom patterns not covered by standard Suricata rules.$ # Add to suricata.yaml files: - /etc/suricata/rules/custom-rules.rules rules: - luajit: inspect_http.lua
1.4beta2 · Oct 2012
· source
+Detection rule enhancementsshippedExtends the rule language with new keywords for byte extraction, suppression, and data-at position negation.14 releases · 1 other source · first seen Oct 2011▸
release
14 total
Adds kib unit support for detect/integers rule matching to allow size-based detection in kibibytes.
8.0.0 · Jul 2025
· source
· release history
Adds tcp.wscale keyword to match TCP Window Scale option values
8.0.0-rc1 · Jun 2025
· source
· release history
Adds new detection keywords: mime.email.to, mime.email.subject, mime.email.from, and mime.email.cc
8.0.0-beta1 · Apr 2025
· source
· release history
Adds explicit action scopes with the action keywords in rules
8.0.0-beta1 · Apr 2025
· source
· release history
Enables integer bitmask detection via the int:mask: transform/keyword syntax
8.0.0-beta1 · Apr 2025
· source
· release history
Adds by_both option to the threshold rule keyword for bidirectional counting.
6.0.0-beta1 · Aug 2020
· source
· release history
example
Create a detection rule using the new TCP window scale keyword to identify specific TCP initialization patterns.$ alert tcp any any -> any any (msg:"TCP WScale Match"; tcp.wscale:12; flow:established; sid:1000001;)
8.0.0-rc1 · Jun 2025
· source
+Traffic metadata loggingshippedsuggestedLogs various traffic metrics and states including stats counters, TLS state/version, Type of Service, and unified2 payloads.13 releases · first seen Apr 2011▸
Suggested capability: Network traffic analysis. This is our guess, not confirmed.
release
13 total
HTTP response headers Location and Server added to EVE JSON output
5.0.0-beta1 · Apr 2019
· source
· release history
Adds TLS certificate serial number decoding capability via eve.tls output
4.0.0-beta1 · Jun 2017
· source
· release history
Extends EVE JSON logs to include alerts within drop log entries
2.1beta4 · May 2015
· source
· release history
Introduces flow/connection logging via eve-log
2.1beta1 · Aug 2014
· source
· release history
Adds SIGHUP signal handling for automatic log rotation without restarting the service
2.0.2 · Jun 2014
· source
· release history
Adds VLAN and QinQ tag IDs to all outputs.
2.0rc2 · Mar 2014
· source
· release history
+Live IDS traffic analysisshippedRuns an intrusion detection system against live traffic on a specified network interface.9 releases · 3 other sources · first seen Apr 2011▸
release
9 total
Adds pre_stream rule hook to intercept traffic before stream inspection
8.0.0-rc1 · Jun 2025
· source
· release history
Adds pre_flow rule hook to run detection logic before flow tracking
8.0.0-rc1 · Jun 2025
· source
· release history
New cluster_peer runmode for load balancing by IP header (src<->dst)
5.0.0-rc1 · Sep 2019
· source
· release history
Protocol detection supports specifying flow direction with new rule modifiers
5.0.0-beta1 · Apr 2019
· source
· release history
Adds PF_RING BPF support (requires PF_RING >= 5.1) and privilege dropping capabilities
1.2beta1 · Dec 2011
· source
· release history
Adds a workers runmode for multi-dev and/or clustered PF_RING, AF_PACKET, pcap
1.1beta3 · Oct 2011
· source
· release history
docs
Network IDS, IPS, and NSM engine that detects and prevents threats by inspecting live traffic and pcap files.
example
Configure a threshold rule that counts events in both directions (src and dst).$ alert http any any -> any any (msg:"Bidirectional flow"; threshold:type by_both, track by_src, count 5, seconds 60;)
6.0.0-beta1 · Aug 2020
· source
Run live IDS on an interface$ suricata -c /etc/suricata/suricata.yaml -i eth0
+Firewall policy enforcementshippedApplies firewall policies to network traffic, with controls for ARP handling, a configurable default fallback action for unmatched flows, and enforcement points at application-layer protocol stages such as SMTP.6 releases · 3 other sources · first seen Apr 2011▸
release
Adds default-policy setting to firewall policy config for specifying a fallback action when no explicit policy matches.
suricata-8.0.7 · Sep 2026
· source
· release history
Adds firewall progress states to the SMTP parser, enabling policy enforcement at SMTP transaction stages.
suricata-8.0.7 · Sep 2026
· source
· release history
Adds accept-arp option under firewall.policies config to control whether ARP traffic is accepted by the firewall policy engine.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
suricata-8.0.7 · Sep 2026
· source
· release history
Adds Python module for unix socket interaction
1.4.1 · Mar 2013
· source
· release history
Adds unix socket commands: fetching config, counters, basic runtime info
1.4.1 · Mar 2013
· source
· release history
Adds nfq_set_mark keyword for setting Netfilter queue marks in inline mode.
1.1beta2 · Apr 2011
· source
· release history
docs
A hook at the protocol's first state (progress 0) is accepted and is equivalent to the plain hook form: there are no prior states to auto-accept http1:<request_started equals http1:request_started
seen Oct 2026
· source
The TLS state names used in firewall rules ( accept:hook tls:<state> alert tls:<state> ) and in the firewall.policies.app.tls config keys changed from completion milestones to active phases (e.g.
docs update · Oct 2026
· source
example
Allow ARP traffic through the firewall and set a default drop policy for unmatched flows.$ firewall: policies: accept-arp: true default-policy: drop
suricata-8.0.7 · Sep 2026
· source
+Offline pcap analysisshippedAnalyses a pre-captured pcap file for intrusion detection without requiring a live network interface.5 releases · 3 other sources · first seen Dec 2010▸
Also counts toward: Offline mode
release
stream.inline default changes to auto, enabling it in IPS mode and disabling it in IDS mode.
1.4beta3 · Nov 2012
· source
· release history
Adds TCP SACK support to the stream engine
1.1beta3 · Oct 2011
· source
· release history
Adds replace keyword support for rule modification
1.1beta3 · Oct 2011
· source
· release history
Adds negation support for the isdataat keyword in rule signatures.
1.1beta2 · Apr 2011
· source
· release history
Adds http_raw_header, http_stat_msg, and http_stat_code keyword support for network inspection rules
1.1beta1 · Dec 2010
· source
· release history
docs
Network IDS, IPS, and NSM engine that detects and prevents threats by inspecting live traffic and pcap files.
example
Inspect raw HTTP headers in network rules using the new http_raw_header keyword$ alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"Raw Header Inspection"; content:"Value|0A"; http_raw_header; classtype:bad-unknown; sid:1000001; rev:1;)
1.1beta1 · Dec 2010
· source
Offline analysis of a pcap$ suricata -r traffic.pcap -l ./logs
+Alert and state output extensionshippedAdds support for external state matching outputs such as Prelude.6 releases · 1 other source · first seen Nov 2011▸
release
Rule reload performance is significantly improved under low traffic conditions.
1.4rc1 · Nov 2012
· source
· release history
Interactive unix socket mode allows external management of Suricata via a Unix domain socket.
1.4rc1 · Nov 2012
· source
· release history
run_group and run_user config entries allow specifying the daemon's identity.
1.4beta3 · Nov 2012
· source
· release history
Adds USR2 signal handling for experimental live rule reload without restarting the daemon
1.3rc1 · Jun 2012
· source
· release history
Adds unixsock output support for all outputs except unified2 via a PoC Python script in qa/
1.2rc1 · Jan 2012
· source
· release history
Adds Prelude output capability for state matches
1.1rc1 · Nov 2011
· source
· release history
example
Run the Suricata daemon as a specific system user and group for isolation.$ run_user: suricata run_group: suricata
1.4beta3 · Nov 2012
· source
+Flow state tracking with flowbitsshippedAllows detection rules to set, check, and act on named flags (flowbits) that persist across multiple packets within the same flow, enabling stateful multi-packet detection logic.5 releases · 1 other source · first seen Oct 2011▸
release
Enables community flow id generation for interoperable flow identification across distributed sensors
4.1.0-rc2 · Oct 2018
· source
· release history
feature #1264 provides Lua scripts with access to TCP quad / Flow Tuple metadata
2.1beta2 · Nov 2014
· source
· release history
Adds only_stream and no_stream flow keyword options
1.2rc1 · Jan 2012
· source
· release history
Adds support for flowbits in ip-only rules
1.1beta3 · Oct 2011
· source
· release history
docs
Flow Keywords flowbits Flowbits consists of two parts. The first part describes the action it is going to perform, the second part is the name of the flowbit. There are multiple packets that belong to one flow. Suricata keeps those flows in memory.
docs update · Oct 2026
· source
+Dataset-based subdomain matchingshippedEnables detection rules to match any subdomain of entries stored in a dataset, extending domain-based blocking to cover entire subdomain trees.4 releases · 2 other sources · first seen Oct 2012▸
release
Adds match subdomain option to the dataset keyword, enabling rules to match subdomains of entries in a dataset.
suricata-8.0.7 · Sep 2026
· source
· release history
Promotes the datasets subsystem out of experimental status to stable
6.0.0-rc1 · Sep 2020
· source
· release history
Adds the dataset-remove unix command to delete entries from datasets.
6.0.0-beta1 · Aug 2020
· source
· release history
Global vs rule thresholds support for [3] syntax
1.4beta2 · Oct 2012
· source
· release history
example
Detect connections to any subdomain of a blocklisted domain set using the new match subdomain dataset option.$ alert dns any any -> any any (msg:"Blocklisted domain hit"; dns.query; dataset:isset,bad-domains,type string,match subdomain; sid:1000002; rev:1;)
suricata-8.0.7 · Sep 2026
· source
Remove a specific entry from a Suricata dataset via the CLI tool.$ dataset-remove my_dataset key_to_delete
6.0.0-beta1 · Aug 2020
· source
+Network acceleration via netmapshippedEnables high-performance packet processing by utilizing the netmap framework for optimized network interface access.5 releases · 1 other source · first seen May 2015▸
release
dpdk: add support for bonding interface
7.0.0-rc2 · Jun 2023
· source
· release history
Hardware offload support for XDP bypass with pinned maps
5.0.0-rc1 · Sep 2019
· source
· release history
netmap mode adds support for load balancing and Vale switches
5.0.0-beta1 · Apr 2019
· source
· release history
Netmap backend supports threads: auto configuration key to auto-detect thread count
3.1rc1 · Jun 2016
· source
· release history
Adds netmap interface type to enable network acceleration via the netmap framework
2.1beta4 · May 2015
· source
· release history
example
Bind multiple physical DPDK NICs to a single logical interface for increased throughput and redundancy.$ Configure 'dpdk' with a 'bonding' section in suricata.yaml
7.0.0-rc2 · Jun 2023
· source
+Performance profiling and optimizationshippedOffers mechanisms to profile packet processing performance and optimize stream inspection efficiency.6 releases · first seen Apr 2011▸
release
unix-socket supports modify_memcap to adjust memory caps at runtime
4.1.0-beta1 · Mar 2018
· source
· release history
hyperscan spm integration allows hyperscan to handle single-pattern matching
3.1rc1 · Jun 2016
· source
· release history
hyperscan mpm is now enabled by default for faster pattern matching
3.1rc1 · Jun 2016
· source
· release history
hyperscan mpm integration enables high-performance pattern matching using the Hyperscan library.
3.0.1 · Apr 2016
· source
· release history
Extends stream engine to inspect streams in larger chunks for improved performance.
1.1beta2 · Apr 2011
· source
· release history
Adds fast_pattern support for the http_method content modifier.
1.1beta2 · Apr 2011
· source
· release history
+Lua scripting integrationshippedPermits the writing and execution of custom Lua scripts within the detection engine for dynamic logic and actions.4 releases · 1 other source · first seen Jun 2014▸
Also counts toward: Scripting API, Scripting language support
release
Adds Lua sandboxing via the lua subsystem
8.0.0-beta1 · Apr 2025
· source
· release history
Adds SCPacketTimestamp Lua function to allow scripts to access packet timestamp data
3.2rc1 · Nov 2016
· source
· release history
Adds Lua SMTP protocol support (Feature #1775) enabling inspection of SMTP traffic through Lua scripts
3.1.1 · Jul 2016
· source
· release history
Adds liblua support allowing Lua scripting integration within the detection engine
2.0.2 · Jun 2014
· source
· release history
example
Example usage inside a Lua script to retrieve the timestamp from an event object e.$ local ts = SCPacketTimestamp(e)
3.2rc1 · Nov 2016
· source
+JSON schema property sortingverifiedSorts properties in a JSON schema file in place or checks whether they are already sorted, exiting with a non-zero code if not.4 other sources · first seen Apr 2025▸
command line
--check — Check if properties are sorted (exit 1 if not)
suricata-8.0.0-rc1 · Jun 2025
· command-line history
schema_file — Path to the JSON schema file
suricata-8.0.0-rc1 · Jun 2025
· command-line history
--in-place — Sort the file in place (only if not in check mode)
suricata-8.0.0-rc1 · Jun 2025
· command-line history
+EVE log format enhancementsshippedExtends the EVE log output with dropped packet capture, tag fields, and improved flow_id uniqueness.3 releases · first seen Sep 2016▸
release
EVE logs can now include all dropped packets via a new option
3.1.2 · Sep 2016
· source
· release history
Supports tag field in EVE log output format
3.1.2 · Sep 2016
· source
· release history
Makes logged flow_id more unique across sessions
3.1.2 · Sep 2016
· source
· release history
+Extended flow variable inspectionshippedEnables detection rules to inspect and match against custom integer variables (flow_ints) and string variables (flow_vars) within a TCP session using LuaJit.3 releases · first seen Jul 2013▸
Also counts toward: Scripting API, Scripting language support
release
feature #1263 grants Lua scripts access to raw Stream Payloads for deep inspection
2.1beta2 · Nov 2014
· source
· release history
Adds liblua support allowing Lua scripting integration within the detection engine
2.0.2 · Jun 2014
· source
· release history
flow_vars and flow_ints support via LuaJit
2.0beta1 · Jul 2013
· source
· release history
+Multi-protocol rule matchingshippedAllows a single detection rule to match across multiple application-layer protocols by specifying a pipe-separated list of protocol values in the app-layer-protocol keyword.1 release · 1 other source · first seen Sep 2026▸
release
Extends app-layer-protocol keyword to accept a pipe-separated list of protocol values in a single rule.
suricata-8.0.7 · Sep 2026
· source
· release history
example
Match DNS or HTTP traffic in a single rule using the new pipe-separated protocol list in app-layer-protocol.$ alert tcp any any -> any any (msg:"DNS or HTTP detected"; app-layer-protocol:dns|http; sid:1000001; rev:1;)
suricata-8.0.7 · Sep 2026
· source
+Programmatic rule dependency managementshippedAllows detection rules to specify minimum engine version requirements and define explicit action scopes for better integration with external controllers.2 releases · first seen Apr 2025▸
release
Enhances CPU affinity logic with per-interface NUMA preferences via cpu-affinity config
8.0.0-rc1 · Jun 2025
· source
· release history
Adds requires rule keyword to specify minimum Suricata version
8.0.0-beta1 · Apr 2025
· source
· release history
+Network acceleration via DPDK RSS configurationshippedEnables high-performance packet processing by configuring Data Plane Development Kit Receive Side Scaling rules for optimized network interface access.2 releases · first seen Apr 2025▸
release
Enables DPDK RSS configuration using rte_flow rules via the dpdk config
8.0.0-beta1 · Apr 2025
· source
· release history
Provides an auto option for DPDK rx-desc and tx-desc properties in config
8.0.0-beta1 · Apr 2025
· source
· release history
+IP reputation file CIDR supportshippedAllows IP reputation lists to include network ranges specified in CIDR notation.2 releases · first seen Nov 2014▸
release
IP reputation matching technique usable in http/dns contexts
5.0.0-rc1 · Sep 2019
· source
· release history
feature #707 expands IP reputation files to accept network range inclusion via CIDR notation
2.1beta2 · Nov 2014
· source
· release history
+Debugging output improvementshippedImproves error reporting for BPF loading failures in af-packet mode to assist with configuration troubleshooting.2 releases · first seen Dec 2018▸
release
libjansson is no longer optional; builds will fail without it installed
5.0.0-beta1 · Apr 2019
· source
· release history
Improves BPF loading failure error output in af-packet mode
4.1.1 · Dec 2018
· source
· release history
+Build dependency optimizationshippedAllows the build process to explicitly exclude NSS/NSPR libraries when they are not required, reducing binary dependencies.1 release · 1 other source · first seen Jul 2018▸
Also counts toward: Command-line interface
release
Adds --disable-libnss and --disable-libnspr build options to explicitly disable NSS/NSPR support
4.1.0-rc1 · Jul 2018
· source
· release history
example
Build Suricata without NSS libraries when they are not needed.$ ./configure --disable-libnss --disable-libnspr
4.1.0-rc1 · Jul 2018
· source
+Keyword enumerationshippedLists available detection keywords and their possible string values in JSON format via a command-line flag.1 release · 1 other source · first seen Nov 2012▸
Also counts toward: Command-line interface, JSON data export
release
Improved --list-keywords command-line option displays detailed information and documentation links for all supported keywords.
1.4rc1 · Nov 2012
· source
· release history
docs
Possible string values for a keyword can be found by running --list-keywords=json jq ."keyword".enum_values
seen Oct 2026
· source
+TCP session lifecycle matchingshippedProvides a tcp.session keyword that allows rules to match across the full lifecycle of a TCP session.1 release · first seen Sep 2026▸
release
Adds tcp.session keyword for unified TCP lifecycle matching across a session.
suricata-8.0.7 · Sep 2026
· source
· release history
+HTTP event log metadatashippedsuggestedEnhances HTTP EVE log entries to include port information derived from the configured hostname.1 release · first seen Oct 2018▸
Suggested capability: Network traffic analysis. This is our guess, not confirmed.
release
Adds http_port to HTTP Eve-log entries when specified in the hostname.
4.1.0-rc2 · Oct 2018
· source
· release history
+Multi-tenancy traffic isolationshippedEnables the separation of network traffic processing by configuring specific network devices to isolate multi-tenant environments.1 release · first seen Oct 2018▸
release
Adds device selector option within the multi-tenancy feature to isolate traffic by network device
4.1.0-rc2 · Oct 2018
· source
· release history
+Programmatic ruleset managementshippedProvides programmatic access to rule loading status and error information via Unix sockets for better integration with external controllers.1 release · first seen Mar 2018▸
release
unix-socket exposes ruleset_info to make rule load errors available programmatically
4.1.0-beta1 · Mar 2018
· source
· release history
+IPv6 tunneling supportshippedAdds configuration support for IPv6 tunneling protocols such as Teredo.1 release · first seen Jul 2017▸
release
Adds Teredo configuration support to the tool
4.0.0-rc2 · Jul 2017
· source
· release history
+Log rotation managementshippedProvides mechanisms for rotating log files, including signal-based rotation of unified2 logs without requiring a service restart.1 release · first seen Jun 2017▸
release
Adds signal-based rotation of unified2 log files without requiring a service restart via unified2 logger config
4.0.0-beta1 · Jun 2017
· source
· release history
+NFS protocol detectionshippedEnables parsing, logging, and intrusion detection for Network File System (NFS) traffic through the application-layer module.1 release · first seen Jun 2017▸
release
Adds NFS protocol parsing, logging, and detection capabilities through the app-layer module
4.0.0-beta1 · Jun 2017
· source
· release history
+Advanced HTTP rule matchingshippedAdds capability to match exact HTTP request line content within a flow.1 other source · first seen Oct 2016▸
example
Match the exact HTTP request line content in a flow$ alert http any any -> any any (msg:"Suspicious Request"; http_request_line:"/admin/login"; sid:1000002;)
3.2beta1 · Oct 2016
· source
+File integrity verificationshippedProvides SHA1 and SHA256 checksums in filestore events for file identification.1 release · first seen Oct 2016▸
release
Adds sha1 and sha256 fields to filestore events for SHA1 and SHA256 checksum support
3.2beta1 · Oct 2016
· source
· release history
+Custom Lua output handlersshippedProvides a mechanism for Lua scripts to define custom output formats and actions for alerts.1 release · first seen Nov 2014▸
Also counts toward: Scripting API, Scripting language support
release
feature #1312 introduces Lua output support for custom scripting actions
2.1beta2 · Nov 2014
· source
· release history
+MPLS network detectionshippedEnables the intrusion detection engine to process and detect events within MPLS over Ethernet networks.1 release · first seen Nov 2014▸
release
feature #899 adds detection capability for MPLS over Ethernet networks
2.1beta2 · Nov 2014
· source
· release history
+NFLOG iptables target supportshippedIntegrates with the NFLOG netfilter target to offload or direct packet logging to userspace.1 release · first seen Jun 2014▸
release
Adds support for the NFLOG iptables target.
2.0.2 · Jun 2014
· source
· release history
+MQTT loggingdocumentedsuggestedLogs MQTT traffic metadata, including user properties recorded as an array of key-value pairs within the properties object.1 other source▸
Suggested capability: Network traffic analysis. This is our guess, not confirmed.
docs
MQTT user properties are now logged as a new object called user_properties as an array of key-value pairs like [{"key":"mykey", value:"myvalue"}] under properties object, instead of as {key: value} pairs as a part of the properties object itself.
seen Sep 2026
· source
+Protocol enablement controldocumentedProvides explicit configuration controls for enabling or disabling specific application-layer protocol parsers, moving from implicit activation to explicit opt-in behavior.1 other source▸
docs
pgsql is no longer enabled by default. Previously, if the app-layer.protocols.pgsql section was absent from suricata.yaml, the parser would be enabled. It's now disabled by default. Simply enabling its EVE output will no longer suffice, either.
seen Sep 2026
· source
Lines in monospace are the tool's own words: help text
parsed from its source, or an endpoint from its API document. Under
release, a line is our summary of a dated release. Under
docs, it is quoted from the tool's own documentation or
website. Each links back to the source it came from.
Command line
View
Source
No command matches.
load a captured run
composed command
No matchesTry a different search, or clear a filter to see more.
option surface across analysed releases
options at that releaseadded, per releaseremoved, per release
option
found in
since
description
No matchesTry a different search, or clear a filter to see more.
option changes per release — drag across the rail to set a range
→
Values are placeholders taken from each option’s declared default.
Nothing is executed here — the output shown is a recording of a run
that already happened.
Score card
Shipping velocityreleases a month, last 12 months
Documentation qualityrelease-notes rubric, 0–100
Breaking-change disciplinehow rarely a release breaks users, and notice given
Maintenance riskquiet time against its own cadence, maintainers
Innovation & surfacenew capabilities, API and MCP surface
Community health
Contributor trenddistinct committers, this year against last
Maintainer concentrationbus factor now against a year ago
Issue backlog trendissues closed per issue opened, 12 months
Responsivenessmedian time to a maintainer’s first reply
Nine scores for Suricata, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Each score is 0–100 on a published rubric, derived from data this site already shows.
A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
Documentation quality — the release-notes rubric published on the analytics page, unchanged.
Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail Suricata puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
OISF's home page and 18 more pages as they looked each month from August 2021 to October 2026: 29 renders, 0 changes of tagline or palette. Step through them, play them, or put any two months side by side.
Website history is included with Researcher and Business.
← → or h l a month · Shift a year · [ ] previous / next change · Space play · 1 2 3 page · T whole page · C compare · F full size
← → or h l the right month · Shift the left · S swap · W wipe · T whole page · Esc back
Rebranding timeline
Dates bound when a change appeared between captures. Possible rebrands are AI suggestions; a redesign alone does not establish a rebrand.
Releases
Show
49 entries
No entries match these filters.
October 20262
September 20263
July 20251
June 20251
April 20251
June 20231
December 20201
September 20201
August 20201
October 20191
September 20191
April 20191
December 20181
October 20181
July 20181
March 20181
July 20171
June 20171
February 20171
November 20161
October 20161
September 20161
July 20161
June 20161
April 20161
March 20161
May 20151
November 20141
August 20141
June 20141
March 20141
July 20131
March 20131
November 20122
October 20121
August 20121
June 20122
April 20121
January 20121
December 20111
November 20111
October 20111
April 20111
December 20101
Project health
Issue, contributor and maintainer activity in OISF/suricata, 2023-10 – 2026-09,
as of 2026-09-25. Twelve-month figures first; the trend lines run
the whole window.
Contributors47+6 vs prior 12 months
Maintainers4+1 joined · −3 left, last 12 months
Bus factor2committers behind half the commits
Community-filednot measuredof issues opened, last 12 months
Median time to closenot measuredissues closed, last 12 months
Open backlognot measuredopen issues today
Issues opened / monthnot measured
Open backlognot measured
Contributors / month9
Commits / month43
Stars6,642
Issue themes, last 12 monthsnot measured
Counts from the project's public repository and git history; no individuals
are identified. Maintainers are the committers covering 80% of the last year's
commits. how we measure this
Articles
1 article
· updated Nov 4, 2026
Where Suricata turns up in what others publish: how-tos, attack reports that
name it, and incident write-ups. A row says why it is here and quotes where the
article names it; the link goes to the publisher.