PAGES
← all tools
◆ IDS / IPS

Suricata

suricata-8.0.7 open-source

Suricata is a network Intrusion Detection System, Intrusion Prevention System and Network Security Monitoring engine developed by the OISF and the Suricata community.

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.

How Suricata helps

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

all 42 features, with the evidence for each →

Languages

Not documented

Features

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.

Compare with peers →

  • Suricata covers 2 of the 5 network observation capabilities we track.
  • Suricata covers 1 of the 34 network analysis capabilities we track.

What Suricata offers you

  • Scripting API3
  • Scripting language support3
  • Command-line interface2
  • JSON data export1
  • Offline mode1
Network traffic analysis 4 features Network observation since 2016
Protocol decode extensions shipped Adds 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 detection shipped Provides 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 extensions shipped Adds 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

Shared capability: Network traffic analysis

release

  • Adds pop3 protocol detection capability 8.0.0-beta1 · Apr 2025 · source · release history
  • 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 monitoring shipped Provides 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
Full packet retention 1 feature Network observation since 2011
Packet capture shipped Captures 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 updates 1 feature Network analysis
Rule source management shipped Fetches 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 classified 36 features Features we have not matched to a capability yet. A suggested match is marked.
Advanced protocol content inspection shipped Provides 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 LDAP request/response keywords: ldap.request.attribute_type, ldap.request.attribute, ldap.response.operation, ldap.distinguished_name 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 enhancements shipped Extends 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 logging shipped suggested Logs 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 analysis shipped Runs 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 enforcement shipped Applies 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 analysis shipped Analyses 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 extension shipped Adds 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 flowbits shipped Allows 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
  • Adds xbits support. 2.1beta4 · May 2015 · 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 matching shipped Enables 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 netmap shipped Enables 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 optimization shipped Offers 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 integration shipped Permits 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 sorting verified Sorts 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
  • filename — JSON schema file suricata-8.0.0-beta1 · Apr 2025 · command-line history
EVE log format enhancements shipped Extends the EVE log output with dropped packet capture, tag fields, and improved flow_id uniqueness. 3 releases · first seen Sep 2016

release

Extended flow variable inspection shipped Enables 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 matching shipped Allows 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 management shipped Allows 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 configuration shipped Enables 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 support shipped Allows 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 improvement shipped Improves 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 optimization shipped Allows 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 enumeration shipped Lists 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 matching shipped Provides 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 metadata shipped suggested Enhances 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 isolation shipped Enables 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 management shipped Provides 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 support shipped Adds configuration support for IPv6 tunneling protocols such as Teredo. 1 release · first seen Jul 2017

release

Log rotation management shipped Provides 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 detection shipped Enables 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 matching shipped Adds 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 verification shipped Provides 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 handlers shipped Provides 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 detection shipped Enables 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 support shipped Integrates with the NFLOG netfilter target to offload or direct packet logging to userspace. 1 release · first seen Jun 2014

release

MQTT logging documented suggested Logs 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 control documented Provides 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.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median 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.

Score cards are part of every paid plan.

See plans →

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.

Checking release-note history…

Explore the full chart →

Website history

suricata.io, every change

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.

See plans →

Releases

Show

49 entries

  1. October 20262
  2. September 20263
  3. July 20251
  4. June 20251
  5. April 20251
  6. June 20231
  7. December 20201
  8. September 20201
  9. August 20201
  10. October 20191
  11. September 20191
  12. April 20191
  13. December 20181
  14. October 20181
  15. July 20181
  16. March 20181
  17. July 20171
  18. June 20171
  19. February 20171
  20. November 20161
  21. October 20161
  22. September 20161
  23. July 20161
  24. June 20161
  25. April 20161
  26. March 20161
  27. May 20151
  28. November 20141
  29. August 20141
  30. June 20141
  31. March 20141
  32. July 20131
  33. March 20131
  34. November 20122
  35. October 20121
  36. August 20121
  37. June 20122
  38. April 20121
  39. January 20121
  40. December 20111
  41. November 20111
  42. October 20111
  43. April 20111
  44. December 20101
    Show

    49 entries

    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.

    1. Contributors 47 +6 vs prior 12 months
    2. Maintainers 4 +1 joined · −3 left, last 12 months
    3. Bus factor 2 committers behind half the commits
    4. Community-filed not measured of issues opened, last 12 months
    5. Median time to close not measured issues closed, last 12 months
    6. Open backlog not measured open issues today
    1. Issues opened / month not measured
    2. Open backlog not measured
    3. Contributors / month 9
    4. Commits / month 43
    5. Stars 6,642
    Issue themes, last 12 months not 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.

    Tutorials & guides 1

    • How to Configure Suricata IDS in Ubuntu Hacking Articles
      Suricata is developed by the Open Information Security Foundation.
      2 more quotes
      Suricata is a high performance Network IDS, IPS and Network Security Monitoring engine.
      Suricata is developed by the OISF and its supporting vendors.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →