L'IDS (Intrusion Detection System) est le système de surveillance qui détecte les activités malveillantes ou anormales sur un réseau (NIDS, Network IDS) ou un host (HIDS, Host IDS) et alerte sans bloquer (passif, par opposition à l'IPS qui est inline et peut bloquer). Le concept a été formalisé par Dorothy Denning dans son paper de référence « An Intrusion-Detection Model » publié dans IEEE Transactions on Software Engineering en février 1987, l'un des papers fondateurs de la cybersécurité moderne. L'écosystème historique repose sur trois outils open-source : Snort (1998, Marty Roesch, racheté par Cisco en 2013), Suricata (2009, Open Information Security Foundation), Zeek (créé en 1995 par Vern Paxson au LBNL, ex-Bro renommé en 2018). En 2026, l'IDS legacy s'est largement transformé en NDR (Network Detection and Response, terme Gartner 2020) avec leaders Vectra AI, Darktrace, ExtraHop Reveal(x), Corelight (commercial Zeek + Suricata), Cisco Secure Network Analytics. Le défi structurel 2026 : 95+ % du trafic Internet est chiffré HTTPS/TLS 1.3, rendant le signature matching legacy quasi-inutile, d'où l'émergence de JA4/JA4S/JA4H fingerprinting (FoxIO, 2023) et de l'Encrypted Traffic Analysis (ETA) via behavioral ML. Comprendre la distinction NIDS/HIDS/NDR, les stacks Snort/Suricata/Zeek, le placement cloud (VPC Traffic Mirroring, eBPF), et l'arbitrage open-source vs NDR commercial est non-négociable pour tout architecte SOC ou network security 2026.
Pour le contexte adjacent : voir EDR - Endpoint Detection and Response pour la couche endpoint complémentaire au IDS network, et XDR - Extended Detection and Response pour la corrélation cross-domain incluant le NDR.
1. Définition précise et catégories IDS
Dorothy Denning a formalisé en février 1987 le modèle IDS dans IEEE Transactions on Software Engineering : un système qui observe les patterns d'activité, identifie ceux qui dévient d'un baseline, et alerte. La taxonomie historique distingue quatre familles :
| Catégorie | Définition | Exemples 2026 |
|---|---|---|
| NIDS (Network IDS) | Sniff le trafic réseau (segment, broadcast, mirror, tap) | Snort, Suricata, Zeek, Vectra, Darktrace |
| HIDS (Host IDS) | Agent sur l'host, monitor logs/files/registry | OSSEC, Wazuh, Tripwire, AIDE |
| PIDS (Protocol IDS) | Spécifique à un protocole serveur | Rare, intégré aux NIDS modernes |
| APIDS (Application Protocol IDS) | Couche applicative spécifique | IronBee (déprécié), composants WAF |
Distinction IDS vs IPS vs NDR :
| Système | Mode | Action | Place dans l'architecture |
|---|---|---|---|
| IDS | Passif (out-of-band) | Alerte seulement | Mirror traffic, tap, span port |
| IPS | Inline | Alerte + block | Sur le chemin trafic réel |
| NDR | Hybride (mirror + agents) | Alerte + behavioral analytics + integration EDR/XDR | Mix mirror + sensors + cloud |
| Firewall L3/L4 | Inline | Block par règle ACL | Périmètre réseau |
| NGFW (Next-Gen FW) | Inline | Block + IPS + DPI | Périmètre + interne |
Position tranchée 2026 : l'IDS pur (signature-based, alerte-only) a été largement remplacé par le NDR dans les organisations matures. Snort/Suricata signature-only restent pertinents pour : (1) compliance PCI-DSS 4.0 Req 11.5.1 qui exige une « IDS/IPS » nommée, (2) inspection trafic déchiffré au reverse proxy, (3) souveraineté forte avec self-hosted Zeek + Suricata.
2. Méthodes de détection IDS
| Méthode | Principe | Force | Limite |
|---|---|---|---|
| Signature-based | Match exact contre rules database | Faux positifs faibles, déterministe | Aveugle aux 0-days et obfuscation |
| Anomaly-based | Baseline statistique, détecte outliers | Détecte 0-days et inconnus | Faux positifs élevés sans tuning |
| Stateful protocol analysis | Vérifie la validité protocolaire (HTTP, DNS, TLS) | Détecte malformed traffic | Limité aux protocoles parsés |
| Heuristic / ML | Behavioral ML, scoring | Détecte patterns subtils | Boîte noire, FP variables |
| JA3/JA4 fingerprinting | Signature TLS Client/Server Hello | Identifie tools sans déchiffrer | Dépend de la qualité des fingerprints |
| Encrypted Traffic Analysis | Métadonnées packets sans déchiffrer | Marche sur HTTPS/TLS 1.3 | Précision variable |
Les NIDS modernes (Suricata 7+, Zeek 6+) combinent signature + protocol parsing + scripting custom. Les NDR commerciaux ajoutent ML et JA4.
3. Snort, Suricata, Zeek - les trois piliers open-source
3.1 Snort
| Aspect | Détail |
|---|---|
| Créé en | 1998 par Marty Roesch |
| Rachat | Cisco en octobre 2013 |
| Architecture | Single-thread historique, multi-thread depuis Snort 3 (2021) |
| Format règles | Snort rules (texte, devenu standard de fait) |
| Statut 2026 | Legacy, surtout stack Cisco |
Exemple règle Snort/Suricata classique :
alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (
msg:"ATTACK SMB ETERNALBLUE Echo Request";
flow:to_server,established;
content:"|fe 53 4d 42 40|"; offset:4; depth:5;
content:"|24 00|"; offset:18; depth:2;
reference:cve,CVE-2017-0144;
reference:url,https://docs.microsoft.com/en-us/security-updates/securitybulletins/2017/ms17-010;
classtype:attempted-admin;
sid:1000001;
rev:1;
metadata:created_at 2017_03_14, mitre_attack T1210;
)3.2 Suricata
| Aspect | Détail |
|---|---|
| Créé en | 2009 par Open Information Security Foundation (OISF) |
| Architecture | Multi-thread natif, async I/O, scale > 40 Gbps avec hardware adapté |
| Format règles | Compatible Snort + extensions stateful |
| Sources rules | Emerging Threats Open (gratuit), Emerging Threats Pro ($) |
| Statut 2026 | NIDS de référence open-source |
Configuration Suricata typique pour un segment 10 Gbps :
# /etc/suricata/suricata.yaml (extrait)
%YAML 1.1
---
default-rule-path: /var/lib/suricata/rules
rule-files:
- emerging-threats.rules
- suricata.rules
- custom.rules
af-packet:
- interface: ens1f0
threads: auto
cluster-id: 99
cluster-type: cluster_flow
defrag: yes
use-mmap: yes
ring-size: 100000
block-size: 1048576
threading:
set-cpu-affinity: yes
cpu-affinity:
- management-cpu-set:
cpu: [0]
- worker-cpu-set:
cpu: [1-15]
mode: exclusive
outputs:
- eve-log:
enabled: yes
filetype: regular
filename: /var/log/suricata/eve.json
types:
- alert
- http
- dns
- tls
- flow
- files
- smb
- ssh
- ftpOutput JSON ingérable directement dans ELK, Splunk, Microsoft Sentinel, Wazuh.
3.3 Zeek (ex-Bro)
| Aspect | Détail |
|---|---|
| Créé en | 1995 par Vern Paxson au LBNL (Lawrence Berkeley National Laboratory) |
| Renommé | Bro → Zeek en 2018 |
| Architecture | Pas signature-based, scripting language pour observation et analyse |
| Output | Logs structurés : conn.log, http.log, ssl.log, dns.log, x509.log, files.log |
| Statut 2026 | Référence pour Detection Engineering, télémétrie SIEM-ready |
Exemple de script Zeek de détection :
# Détection beaconing : connexions périodiques avec faible variance
# vers un même destinataire (signature C2 typique)
@load base/protocols/conn
module Beaconing;
export {
redef enum Notice::Type += {
Beacon_Detected,
};
}
global beacon_data: table[addr, addr] of vector of time;
event connection_state_remove(c: connection) {
local key_src = c$id$orig_h;
local key_dst = c$id$resp_h;
if ([key_src, key_dst] !in beacon_data) {
beacon_data[key_src, key_dst] = vector();
}
beacon_data[key_src, key_dst][|beacon_data[key_src, key_dst]|] = network_time();
# Si plus de 10 connexions, calculer la variance des intervalles
if (|beacon_data[key_src, key_dst]| > 10) {
local intervals: vector of double;
for (i in beacon_data[key_src, key_dst]) {
if (i > 0) {
intervals[|intervals|] = interval_to_double(
beacon_data[key_src, key_dst][i] - beacon_data[key_src, key_dst][i-1]
);
}
}
# Calcul stddev simplifié
local mean = 0.0;
for (j in intervals) mean += intervals[j];
mean = mean / |intervals|;
local variance = 0.0;
for (k in intervals) variance += (intervals[k] - mean) ** 2;
variance = variance / |intervals|;
local stddev = sqrt(variance);
local cv = stddev / mean;
# Beacon si coefficient of variation < 0.2 (faible variance)
if (cv < 0.2 && mean > 30 && mean < 3600) {
NOTICE([
$note=Beacon_Detected,
$msg=fmt("Beaconing %s -> %s, mean=%fs, cv=%f", key_src, key_dst, mean, cv),
$src=key_src, $dst=key_dst
]);
}
}
}Ce script détecte le beaconing C2 (ex. Cobalt Strike sleep + jitter) en analysant la périodicité des connexions. Impossible à exprimer en règle Snort/Suricata pure.
4. JA3, JA4 et Encrypted Traffic Analysis
Avec 95+ % du trafic Internet en HTTPS/TLS 1.3 en 2026, le signature matching dans le payload est largement obsolète. Trois techniques émergentes :
4.1 JA3 (Salesforce, 2017)
Hash MD5 d'une concaténation de champs du TLS Client Hello : SSLVersion, Cipher, SSLExtension, EllipticCurve, EllipticCurvePointFormat. Identifie le client TLS (browser, malware, scanner).
Limites : pas adapté à TLS 1.3 (changement de format Client Hello), facilement randomisable par les attaquants modernes.
4.2 JA4, JA4S, JA4H (FoxIO, 2023)
Évolution publiée par FoxIO en 2023, résout les limites de JA3 :
| Variant | Cible | Format |
|---|---|---|
| JA4 | TLS Client Hello | <TLS version>_<SNI>_<num cipher>_<num ext>_<ALPN>_<ciphers>_<extensions> |
| JA4S | TLS Server Hello | Côté serveur |
| JA4H | HTTP request | Hash de la séquence HTTP request |
| JA4T | TCP fingerprint | Caractéristiques TCP stack |
| JA4X | X.509 certificate | Hash certificat serveur |
JA4 est human-readable (vs MD5 opaque de JA3), supporte TLS 1.3 et HTTP/3. Adoption croissante 2024-2026 dans Suricata, Zeek, Wireshark, Cloudflare.
4.3 Encrypted Traffic Analysis (ETA)
Cisco a popularisé l'ETA en 2017 dans Stealthwatch / Secure Network Analytics : analyse les métadonnées d'un flow chiffré (packet sizes, inter-packet timing, sequence handshake) avec ML pour détecter des patterns malveillants sans déchiffrer.
Les NDR modernes 2026 (Vectra Cognito, Darktrace, ExtraHop Reveal(x)) reposent sur cette approche + JA4 + behavioral baselines.
5. Leaders du marché NDR 2026
Le NDR (Network Detection and Response, Gartner 2020) est l'évolution moderne de l'IDS. Marché 2026 : ~3-5 milliards de dollars, croissance 20-25 %/an.
| Produit | Vendor | Force 2026 | Limite | Tarif indicatif |
|---|---|---|---|---|
| Vectra AI Cognito | Vectra AI | AI/ML mature, adoption grande entreprise, Active Directory analytics | Complex pricing | 100-500 k€/an mid-large |
| Darktrace DETECT/RESPOND | Darktrace (PE) | Self-learning ML, Antigena auto-response, marché premium | Boîte noire, marketing parfois | 100-600 k€/an |
| ExtraHop Reveal(x) 360 | ExtraHop (Bain Capital) | Wire data depth, decryption capabilities | Tarif premium | 150-500 k€/an |
| Corelight Investigator | Corelight | Zeek + Suricata commercial, Detection-as-code | Marché plus tech | 50-300 k€/an |
| Cisco Secure Network Analytics | Cisco (ex-Stealthwatch) | Intégration stack Cisco, ETA mature | Lock-in Cisco | Variable |
| Trellix Network Security | Trellix (McAfee + FireEye) | Capabilities héritées FireEye | Marque en transition | Variable |
| Arista NDR | Arista (ex-Awake) | Network-centric, integration switches Arista | Marché plus restreint | Variable |
| Microsoft Defender for Identity | Microsoft | AD/Entra ID focus, intégration Defender XDR | Limité au scope MS | Inclus E5 |
| AWS GuardDuty | AWS | Cloud-native AWS, managed | Spécifique AWS | ~12 €/M VPC Flow Logs |
Position tranchée 2026 : pour PME/ETI < 1000 employés, Vectra Cognito ou Darktrace offrent un ROI démontrable en 18-24 mois vs IDS open-source à opérer (1-2 ETP). Pour grandes orgs avec SOC mature 10+ ETP, stack hybride Suricata + Zeek + Corelight + Vectra/Darktrace combine le meilleur. Pour cloud AWS-only, GuardDuty est défaut + Suricata sur VPC mirror si besoin DPI.
6. Placement IDS dans une architecture cloud 2026
Pattern d'architecture cloud-native pour IDS/NDR :
[Internet]
│
▼
[CDN + WAF edge]
│
▼
[Cloud Load Balancer]
│
├─► VPC Production
│ ├─► [Workloads]
│ └─► [Mirror Target: Suricata + Zeek instance]
│ Logs → S3 → Athena/Sentinel/Splunk
│
├─► AWS GuardDuty (managed, VPC Flow + DNS + CloudTrail analysis)
│
└─► [Kubernetes cluster]
├─► [Microservices]
├─► Cilium Hubble (eBPF L3-L7 observability)
├─► Falco (runtime security)
└─► Service mesh (Istio + mTLS)Trois patterns d'observation cloud :
| Pattern | Outil 2026 | Cas d'usage | Limite |
|---|---|---|---|
| Mirror Traffic | AWS VPC Traffic Mirroring (2019), Azure vTAP (GA 2024), GCP Packet Mirroring | DPI sur trafic critique | Coût bandwidth élevé |
| Cloud-native managed | AWS GuardDuty, Azure Network Watcher + Sentinel, Google Cloud IDS (Palo Alto-based) | Workloads cloud, no ops | Moins de DPI custom |
| eBPF observability | Cilium Hubble, Tetragon, Falco network | K8s native, performant | Émergent, expertise nécessaire |
| Service mesh | Istio + Envoy, Linkerd | mTLS + observability microservices | Pas un IDS pur |
7. Stack opérationnelle Suricata + Zeek + ELK 2026
Stack open-source mature pour SOC budget contraint :
# Installation Suricata sur Ubuntu 24.04 (segment 10 Gbps)
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt update && sudo apt install -y suricata suricata-update
# Initialisation rules Emerging Threats Open
sudo suricata-update -V
sudo suricata-update enable-source et/open
sudo suricata-update enable-source oisf/trafficid
# Démarrage
sudo systemctl enable --now suricata
# Installation Zeek
echo 'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_24.04/ /' | \
sudo tee /etc/apt/sources.list.d/security:zeek.list
curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_24.04/Release.key | \
sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/security_zeek.gpg
sudo apt update && sudo apt install -y zeek-7.0
# Configuration Zeek pour exporter vers Filebeat → Elasticsearch
cat > /opt/zeek/etc/zeekctl.cfg <<EOF
LogDir = /var/log/zeek
LogRotationInterval = 3600
LogExpireInterval = 0
EOF
# Installation Filebeat pour shipper Zeek + Suricata logs vers Elastic
sudo apt install -y filebeat
sudo filebeat modules enable suricata zeek
sudo filebeat setup
sudo systemctl enable --now filebeatTableau comparatif performance Suricata vs Zeek vs NDR commercial :
| Métrique | Suricata 7 | Zeek 7 | Vectra/Darktrace |
|---|---|---|---|
| Throughput max single instance | ~40 Gbps | ~10 Gbps | 100+ Gbps avec scale-out |
| Type de détection | Signature + protocol | Scripting + behavioral | ML + JA4 + ETA |
| Setup time | 1-2 jours | 3-5 jours | 1-3 mois (PoC + déploiement) |
| Ops effort | 0.5-1 ETP | 0.5-1 ETP | 0.2-0.5 ETP (managed) |
| Coût licence | Gratuit | Gratuit | 100-500 k€/an |
8. Erreurs fréquentes IDS et anti-patterns
| Erreur | Symptôme | Fix |
|---|---|---|
| Signature-only sur HTTPS chiffré | Détection ~5 % des menaces réelles | Ajouter JA4 + ETA + behavioral NDR |
| Pas de tuning rules | False positive > 50 %, alerte fatigue | Tuning baseline 2-4 semaines, suppression rules |
| Snort 2.x en 2026 | Single-thread, scale impossible > 1 Gbps | Migrer Snort 3 ou Suricata |
| ModSecurity au lieu de NIDS | Couverture limitée à HTTP | NIDS dédié pour TCP/UDP/non-HTTP |
| Pas d'intégration SIEM | Logs IDS isolés, pas de corrélation | Forwarding Eve.json → SIEM/XDR |
| IDS unique sans defense-in-depth | Bypass = compromission directe | EDR + WAF + IDS + segmentation |
| Pas de monitoring du IDS lui-même | Sensor down silencieux | Healthcheck Prometheus + alerte |
| Déchiffrement TLS sur tout le trafic | SPOF crypto + cible APT tier 0 | Décryption ciblée outbound + JA4 + NDR |
| Tap legacy en cloud | Architecture obsolète | VPC Mirror Traffic + eBPF |
| Pas de mapping MITRE ATT&CK rules | Couverture invisible | ATT&CK Navigator par technique |
9. Mapping IDS/NDR vers compliance frameworks 2026
| Framework | Exigence | Mapping IDS/NDR |
|---|---|---|
| PCI-DSS v4.0 (mars 2022, mandatory mars 2025) | Requirement 11.5.1 (IDS/IPS detection) | IDS/NDR explicitement nommé |
| NIST CSF 2.0 (février 2024) | DE.CM-1 (Networks monitored) | IDS/NDR = control direct |
| NIST SP 800-94 | Guide to IDS/IPS | Référence IDS officielle |
| ISO/IEC 27001:2022 | A.8.16 (Monitoring activities) | IDS/NDR contribue |
| NIS2 (transposée FR octobre 2024) | Article 21 (cybersecurity risk management) | Detection layer attendu |
| DORA (UE, applicable janvier 2025) | Article 9 (ICT security), Article 10 (Detection) | IDS/NDR pour entités financières |
| HIPAA | §164.312(b) (Audit controls) | Network monitoring |
| SOC 2 | CC6.6 (Logical access security) + CC7.3 (Monitoring) | IDS/NDR contribue |
10. Pour aller plus loin
- EDR - Endpoint Detection and Response, la couche endpoint complémentaire au IDS network.
- XDR - Extended Detection and Response, corrélation cross-domain incluant network.
- SIEM - Security Information Event Management, corrélation logs IDS avec multi-sources.
- SOAR - Security Orchestration Automation Response, automation réponse sur alertes IDS.
- IOA - Indicators of Attack, patterns comportementaux détectés par IDS/NDR.
- Bootcamp DevSecOps, formation 12 semaines couvrant IDS, NDR, MITRE ATT&CK opérationnel.
- Hub catégorie Glossaire cyber, autres définitions de référence Zeroday.
- Dorothy Denning (1987) « An Intrusion-Detection Model » : https://users.ece.cmu.edu/~adrian/731-sp04/readings/denning-ids.pdf.
- Suricata documentation : https://docs.suricata.io/.
- Zeek documentation : https://docs.zeek.org/.
- Snort documentation : https://docs.snort.org/.
- Emerging Threats Open rules : https://rules.emergingthreats.net/open/.
- JA4 specification (FoxIO, 2023) : https://github.com/FoxIO-LLC/ja4.
- AWS VPC Traffic Mirroring : https://docs.aws.amazon.com/vpc/latest/mirroring/.
11. Points clés à retenir
- IDS = Intrusion Detection System. Passif, alerte seulement. IPS = inline, blocking. NDR (Gartner 2020) = évolution moderne avec AI/ML + ETA.
- Concept formalisé par Dorothy Denning, paper « An Intrusion-Detection Model » dans IEEE TSE en février 1987.
- Catégories : NIDS (network), HIDS (host), PIDS, APIDS. NIDS dominent en 2026.
- Trois piliers open-source : Snort (1998, racheté Cisco 2013), Suricata (2009, OISF, multi-thread natif), Zeek (1995, ex-Bro renommé 2018, scripting LBNL Vern Paxson).
- TLS 1.3 en 2026 : 95+ % du trafic Internet chiffré. Signature matching legacy obsolète. Solutions modernes : JA3 (Salesforce 2017) puis JA4/JA4S/JA4H (FoxIO 2023) + Encrypted Traffic Analysis (Cisco ETA 2017+).
- Leaders NDR 2026 : Vectra AI Cognito, Darktrace DETECT, ExtraHop Reveal(x) 360, Corelight Investigator (Zeek+Suricata commercial), Cisco Secure Network Analytics. Marché ~3-5 milliards de dollars, croissance 20-25 %/an.
- Tarification : Suricata + Zeek = gratuit + 1-2 ETP ops. NDR commercial = 100-500 k€/an PME/ETI, 200-800 k€/an grand compte.
- Cloud 2026 : AWS GuardDuty (managed) + VPC Traffic Mirroring (DPI custom). Azure vTAP GA 2024. GCP Packet Mirroring + Cloud IDS (Palo Alto). eBPF observability (Cilium Hubble, Falco) émergent sur K8s.
- Performance 2026 : Suricata 7 ~40 Gbps single instance, Zeek 7 ~10 Gbps, NDR commercial 100+ Gbps avec scale-out.
- Anti-pattern n°1 : signature-only sur HTTPS chiffré = ~5 % des menaces réelles détectées. Ajouter JA4 + behavioral.
- Anti-pattern n°2 : déchiffrement TLS sur tout le trafic = SPOF crypto + cible APT tier 0. Ciblage outbound + service mesh interne.
- Compliance : IDS/NDR mappe directement PCI-DSS v4.0 Req 11.5.1, NIST CSF 2.0 DE.CM-1, NIST SP 800-94, ISO 27001:2022 A.8.16, NIS2 article 21, DORA articles 9-10.






