Aller au contenu

Systèmes de Détection d'Intrusion & Architecture Security Onion

Systèmes de Détection d’Intrusion & Architecture Security Onion

Section intitulée « Systèmes de Détection d’Intrusion & Architecture Security Onion »

1. Security Onion — Vue d’ensemble de la plateforme

Section intitulée « 1. Security Onion — Vue d’ensemble de la plateforme »

Security Onion est une distribution Linux conçue pour la Supervision de la Sécurité Réseau (NSM). Elle fournit une plateforme intégrée offrant une visibilité télémétriques complète sur l’infrastructure réseau à travers trois fonctions opérationnelles principales :

FonctionDescription
Capture de donnéesCapture complète de paquets (PCAP) + génération de métadonnées de session
Détection d’intrusionSondes réseau (NIDS) et agents hôtes (HIDS)
Outils d’analyse des alertesTableaux de bord et interfaces de flux de travail pour la corrélation analyste

La plateforme centralise la détection afin de réduire le temps moyen de réponse (MTTR) et prend en charge l’analyse post-mortem via les données PCAP brutes.


2. Security Onion — Outils intégrés (Critique à l’examen)

Section intitulée « 2. Security Onion — Outils intégrés (Critique à l’examen) »

2.1 Systèmes de Détection d’Intrusion Réseau (NIDS)

Section intitulée « 2.1 Systèmes de Détection d’Intrusion Réseau (NIDS) »
OutilCaractéristique principaleAstuce examen
SnortDétection par signatures ; utilise une syntaxe de règles stricte pour inspecter les en-têtes et charges utiles des paquets ; architecture mono-threadGénère des alertes d’intrusion réseau via des règles et signatures
SuricataDétection par signatures + multithreading natif pour les flux à haut débit ; supporte l’identification de protocoles et l’extraction de fichiers en temps réelSeul NIDS avec support natif du multithreading
Zeek (anciennement Bro)Framework d’analyse réseau générant des journaux de métadonnées enrichis (HTTP, DNS, certificats SSL) sans nécessiter de capture complète des paquets pour chaque analyseOrienté métadonnées ; n’est pas un moteur d’alerte traditionnel

⚠️ Piège à l’examen : Zeek (anciennement Bro) est parfois référencé sous le nom « Bro » dans les questions plus anciennes. Il s’agit du même outil.

2.2 Systèmes de Détection d’Intrusion Hôte (HIDS)

Section intitulée « 2.2 Systèmes de Détection d’Intrusion Hôte (HIDS) »
OutilDescription
OSSECHIDS open-source intégré à Security Onion ; réalise l’analyse de journaux, la surveillance d’intégrité des fichiers (FIM), la détection de rootkits et la supervision des politiques
WazuhHIDS moderne intégré à Security Onion ; évolution d’OSSEC avec des fonctionnalités améliorées

Réponse à l’examen : OSSEC et Wazuh sont tous deux des réponses valides pour « IDS hôte dans Security Onion ».

OutilFonction principaleAstuce examen
SguilConsole principale de gestion des alertes ; utilisée pour initier les investigations de flux de travail, pivoter vers les transcriptions de paquets et classifier les événementsPoint de départ des investigations analyste
KibanaInterface tableau de bord interactive vers les données Elasticsearch ; utilisée pour la visualisation et l’interrogation de grands jeux de données normalisésRéponse pour « tableau de bord interactif vers Elasticsearch »
PulledPorkUtilitaire de gestion automatisée des signatures pour Snort ; télécharge automatiquement les nouvelles règlesRéponse pour « outil utilisé par Snort pour le téléchargement automatique des règles »
WiresharkOutil GUI d’analyse de paquets ; utilisé pour afficher les captures de paquets complètes à des fins d’analyseUtile mais n’est pas un outil de flux de travail d’alertes

3. Matrice de Classification des Alertes (Critique à l’examen)

Section intitulée « 3. Matrice de Classification des Alertes (Critique à l’examen) »

La classification précise des alertes est essentielle à l’efficacité du SOC. Elle quantifie la précision des systèmes de détection.

ClassificationIncident signalé ?Incident survenu ?DescriptionRéponse opérationnelle
Vrai Positif (VP)✅ Oui✅ OuiL’IDS identifie correctement une activité malveillante / un exploit confirméDéclencher le protocole de réponse à incident
Vrai Négatif (VN)❌ Non❌ NonTrafic bénin que l’IDS ignore correctementAucune action (état nominal)
Faux Positif (FP)✅ Oui❌ NonTrafic légitime incorrectement signalé comme une menaceAffiner/ajuster les signatures IDS
Faux Négatif (FN)❌ Non✅ OuiUne intrusion réelle non détectée par le système — les exploits passent inaperçusDéfaillance de sécurité critique ; révision des règles requise
QuestionRéponse
Aucune alerte, aucun incidentVrai Négatif
L’alerte identifie correctement un exploitVrai Positif
Les exploits NE sont PAS détectés par les systèmes de sécuritéFaux Négatif
Alerte levée mais aucun incident ne s’est réellement produitFaux Positif

4. Méthodologie d’Analyse — Déterministe vs Probabiliste

Section intitulée « 4. Méthodologie d’Analyse — Déterministe vs Probabiliste »
AttributAnalyse DéterministeAnalyse Probabiliste
Base logiqueConditions prédéfinies et signatures fixesModélisation statistique et score de probabilité
ApplicationProtocoles standardisés sur ports fixes bien connus (ex. : TCP/80, TCP/443)Comportements anormaux et ports dynamiques/éphémères
FiabilitéRésultat binaire (Correspondance / Aucune correspondance)Score de confiance basé sur la ligne de base historique
LimitationInefficace contre les menaces Zero-dayRisque plus élevé de faux positifs

Réponse à l’examen : « Repose sur des conditions prédéfinies et peut analyser des applications utilisant des ports fixes bien connus »Déterministe

Réponse à l’examen : « Repose sur différentes méthodes pour établir la probabilité qu’un événement de sécurité se soit produit »Probabiliste


L’efficacité de Snort repose sur sa structure de règles. Chaque règle comporte un en-tête de règle et des options de règle.

action protocole ip_src port_src direction ip_dst port_dst (options)

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80
(msg:“MALWARE-CNC Win.Trojan.Nimda.A”; content:“GET /admin.dll”; sid:1000001; rev:1;)

  • HEADER : Action (alert), Protocole (tcp), IPs, Ports, Direction (->).

  • OPTIONS : Contenues entre parenthèses ().

    • msg : Le texte décrivant l’événement.

    • content : La signature (payload) à rechercher.

    • sid : Identifiant de la règle (VRT = Cisco Talos, ET = Emerging Threats).

ComposantValeurDescription
ActionalertGénérer une alerte et journaliser l’événement
ProtocoletcpProtocole de couche transport à inspecter
Source$EXTERNAL_NET anyVariable réseau + tout port source
Direction->Unidirectionnel (source vers destination)
Destination$HTTP_SERVERS 80Variable réseau + port de destination
msg"Malicious Server Hit!"Message d’alerte lisible par l’humain
content"GET /admin.dll"Chaîne de charge utile à faire correspondre
sid1000001Identifiant unique de règle Snort
rev1Numéro de révision de la règle

Les règles Snort proviennent de différentes sources selon leur origine et leur licence. Le SID (Snort ID) permet d’identifier la source d’une règle.

SigleNom completDescriptionPlage de SID
GPLGeneral Public LicenseAnciennes règles créées par Sourcefire, publiées sous licence open source BSD1 – 3 464
VRTVulnerability Research TeamRègles créées et maintenues par Cisco Talos (anciennement équipe Sourcefire VRT)3 465 – 1 000 000
ETEmerging ThreatsRègles open source sous licence BSD, maintenues par la communauté Proofpoint> 2 000 000

Mémo pour le QCM :

  • GPLolder rules created by Sourcefire (les premières règles historiques)
  • VRTrules created and maintained by Cisco Talos (équipe de recherche Cisco)
  • ETopen source rules under BSD license (Emerging Threats, communauté open source)

Fonction de Snort dans Security Onion : Générer des alertes d’intrusion réseau à l’aide de règles et de signatures.

Snort surveille le trafic transitant par l’équipement réseau. Lorsque la charge utile d’un paquet correspond à une signature configurée (ex. : téléchargement d’un binaire malveillant connu), il écrit une entrée d’alerte dans /var/log/snort/alert.

Exemple d’entrée d’alerte Snort :

04/28-17:00:04.092153 [**] [1:1000003:0] Malicious Server Hit! [**] [Priority: 0]
{TCP} 209.165.200.235:34484 -> 209.165.202.133:6666
ChampValeur
Horodatage04/28-17:00:04.092153
ID de signature1:1000003:0
Message d’alerteMalicious Server Hit!
IP:Port source209.165.200.235:34484
IP:Port destination209.165.202.133:6666

Une fois qu’un Vrai Positif est confirmé par l’analyste, des mesures de confinement doivent être appliquées au niveau du pare-feu. Dans l’environnement CyberOps, cela s’effectue via iptables sur le routeur/pare-feu (R1).

ChaîneTraite le trafic…Exemple
INPUTArrivant sur l’équipement pare-feu lui-mêmePings entrants vers l’interface de R1
OUTPUTOriginaire de l’équipement pare-feuRéponses aux pings générées par R1
FORWARDTransitant à travers le pare-feu vers un autre hôteTrafic routé par R1 entre les réseaux

✅ Le trafic entre les utilisateurs internes et un serveur malveillant externe passe à travers R1 → utiliser la chaîne FORWARD.

Fenêtre de terminal
# Bloquer le trafic TCP à destination du serveur malveillant sur le port 6666
iptables -I FORWARD -p tcp -d 209.165.202.133 --dport 6666 -j DROP
OptionSignification
-I FORWARDInsérer la règle en tête de la chaîne FORWARD
-p tcpFaire correspondre le protocole TCP
-d 209.165.202.133Faire correspondre l’IP de destination
--dport 6666Faire correspondre le port de destination 6666
-j DROPAction : rejeter silencieusement le paquet
Fenêtre de terminal
iptables -L -v

La sortie attendue confirme la règle DROP dans la chaîne FORWARD :

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt source destination
0 0 DROP tcp -- any 209.165.202.133 tcp dpt:6666

Pour bloquer tout le trafic vers/depuis le serveur incriminé (pas seulement TCP/6666) :

Fenêtre de terminal
iptables -I FORWARD -d 209.165.202.133 -j DROP # Bloquer tout le trafic sortant vers l'attaquant
iptables -I FORWARD -s 209.165.202.133 -j DROP # Bloquer tout le trafic entrant depuis l'attaquant

Ce scénario retrace le flux de travail analyste complet, de l’alerte à la remédiation.

  • H10 simule un serveur malveillant internet exécutant nginx sur TCP port 6666
  • H5 (utilisateur interne) télécharge W32.Nimda.Amm.exe depuis 209.165.202.133:6666
  • Snort sur R1 détecte la charge utile et écrit une alerte
  • L’analyste utilise Sguil pour examiner l’alerte et pivoter vers les données PCAP
  • L’analyste applique une règle DROP iptables sur R1 pour bloquer les connexions ultérieures
[Alerte générée par Snort]
|
v
[Sguil — Initier l'investigation / Classifier l'alerte]
|
v
[Wireshark / tcpdump — Examiner le PCAP pour confirmation]
|
v
[Vrai Positif confirmé]
|
v
[iptables — Appliquer la règle DROP sur la chaîne FORWARD]
|
v
[Vérification — La nouvelle tentative wget échoue avec « Connection timed out »]

Le fichier .pcap capturé (nimda.download.pcap) permet à l’analyste de :

  • Reconstruire la session TCP complète
  • Inspecter les en-têtes de requête/réponse HTTP
  • Extraire le binaire malveillant depuis le flux
  • Confirmer les horodatages exacts et les données transférées
  • L’utiliser dans d’autres travaux pratiques pour une analyse approfondie des malwares

8. Trois Outils d’Analyse Intégrés à Security Onion

Section intitulée « 8. Trois Outils d’Analyse Intégrés à Security Onion »

(Le QCM demande de « Choisir trois »)

Les trois principaux outils d’analyse dans Security Onion sont :

  1. Sguil — Gestion des alertes et initiation du flux de travail
  2. Kibana — Tableau de bord Elasticsearch et visualisation des données
  3. Wireshark — Affichage et analyse des captures de paquets complètes

⚠️ Snort et Suricata sont des moteurs de détection, pas des outils d’analyse. OSSEC/Wazuh sont des agents HIDS.


QuestionRéponse correcteJustification
Aucune alerte signalée, aucun incident survenuVrai NégatifSystème correctement silencieux sur le trafic bénin
L’alerte identifie correctement un exploitVrai PositifDétection correcte d’une activité malveillante réelle
Analyse utilisant des conditions prédéfinies + ports fixes bien connusDéterministeLogique de correspondance binaire sur des ports connus
Outil utilisé par Snort pour le téléchargement automatique des règlesPulledPorkUtilitaire de mise à jour automatique des règles
Interface tableau de bord interactive vers ElasticsearchKibanaCouche de visualisation pour Elasticsearch
Analyse basée sur la probabilité d’un événement de sécuritéProbabilisteApproche statistique/comportementale
NIDS utilisant des signatures ET le multithreading natifSuricataSeul Suricata supporte nativement le multithreading
HIDS intégré à Security OnionOSSECAgent HIDS principal (Wazuh également valide)
Trois outils d’analyse dans Security OnionSguil, Kibana, WiresharkOutils principaux côté analyste
Fonction de Snort dans Security OnionGénérer des alertes d’intrusion réseau via des règles/signaturesRôle central de l’IDS
Outil HIDS intégré à Security OnionWazuhRemplacement/évolution moderne d’OSSEC
Outil pour initier une investigation de flux de travailSguilConsole analyste principale
Classe d’alerte indiquant que les exploits ne sont pas détectésFaux NégatifDétection manquée = faille critique

Security Onion
├── NIDS
│ ├── Snort → Basé sur signatures, mono-thread, utilise PulledPork pour les mises à jour de règles
│ └── Suricata → Basé sur signatures + multithreading natif
├── HIDS
│ ├── OSSEC → Analyse de journaux, FIM, détection de rootkits
│ └── Wazuh → Successeur amélioré d'OSSEC
├── Outils d'Analyse
│ ├── Sguil → Console d'alertes, initiation du flux de travail, pivot PCAP
│ ├── Kibana → Tableau de bord Elasticsearch
│ └── Wireshark → Affichage des captures de paquets complètes
└── Outils de Support
├── Zeek (Bro) → Journalisation des métadonnées réseau
└── PulledPork → Téléchargement automatique des règles Snort

Les Métacaractères Fondamentaux (À connaître par cœur)

Section intitulée « Les Métacaractères Fondamentaux (À connaître par cœur) »
SymboleNomFonctionExemple de Match
.PointN’importe quel caractère unique.c.t → cat, cot, c4t
^Accent circonflexeDébut de ligne ou de chaîne.^Jan → Lignes commençant par “Jan”
$DollarFin de ligne ou de chaîne.exe$ → Fichiers se terminant par .exe
*Astérisque0, 1 ou plusieurs fois le précédent.ab* → a, ab, abbb
+PlusAu moins 1 fois le précédent.ab+ → ab, abbb (pas “a”)
?Point d’interrogation0 ou 1 fois (optionnel).https? → http ou https
\BackslashÉchappe un caractère spécial.192\.168 → cherche un vrai point
**``**Pipe (OU)Alternative entre deux motifs.

Utilisées pour définir des ensembles de caractères autorisés.

  • [abc] : N’importe quel caractère parmi a, b ou c.
  • [a-z] : N’importe quelle lettre minuscule.
  • [0-9] : N’importe quel chiffre.
  • [^0-9] : N’importe quel caractère SAUF un chiffre (le ^ à l’intérieur des crochets signifie “Négation”).
  • \d : Équivalent à [0-9] (Digit).
  • \w : Caractère alphanumérique (lettres, chiffres, underscore).
  • \s : Espace blanc (espace, tabulation).

Pour définir exactement combien de répétitions sont attendues.

  • {n} : Exactement n fois. (Ex: \d{4} pour une année).
  • {n,} : Au moins n fois.
  • {n,m} : Entre n et m fois.

Scénario A : Trouver une IP dans un log (linux.md)

Section intitulée « Scénario A : Trouver une IP dans un log (linux.md) »

Pour trouver une adresse IP commençant par 192.168 : ^192\.168\.\d{1,3}\.\d{1,3} Explication : Début de ligne, échappement des points, et entre 1 et 3 chiffres pour les derniers octets.

Scénario B : Détecter une Injection SQL (attacking.md)

Section intitulée « Scénario B : Détecter une Injection SQL (attacking.md) »

Chercher des mots-clés typiques suivis d’un signe égal : .*(SELECT|INSERT|UNION|OR).*=.* Explication : Cherche n’importe quoi, suivi d’un mot-clé SQL, suivi d’un signe égal.

Chercher des extensions potentiellement dangereuses : \.(exe|bat|sh|py)$