Aide-mémoire – Détection d'intrusion avec Suricata
BTS SIO SISR 2e année – Bloc 3 – S12
Un mot ou un sigle inconnu ? Passe la souris dessus, ou ouvre le glossaire.
IDS ou IPS
| IDS | IPS | |
|---|---|---|
| Position | Copie du trafic | En coupure |
| Action | Alerte | Alerte et bloque |
| On commence par | Oui | Quand les règles sont mûres |
Structure d'une règle
action protocole source port -> destination port (options)
alert http any any -> $HOME_NET any (msg:"..."; http.uri; content:"..."; nocase; sid:1000001; rev:1;)
| Option | Rôle |
|---|---|
msg |
Texte de l'alerte |
http.uri |
Adresse demandée, normalisée |
http.uri.raw |
Adresse brute (pour ../ et autres astuces) |
http.user_agent |
En-tête User-Agent |
content:"x" |
Chercher x ; nocase ignore la casse |
distance:0 |
Après le contenu précédent |
flags:S |
Paquets de demande de connexion |
threshold:type both, track by_src, count N, seconds T |
N événements en T secondes, une alerte |
classtype |
Catégorie (donne la priorité) |
sid, rev |
Identifiant (≥ 1 000 000 pour les règles locales) et révision |
Commandes
| Besoin | Commande |
|---|---|
| Tester la configuration | sudo suricata -T -c /etc/suricata/suricata.yaml -S règles |
| Lancer sur une interface | sudo suricata -c /etc/suricata/suricata.yaml -S règles --af-packet=IFACE -l dossier |
| Définir son réseau | --set vars.address-groups.HOME_NET="[10.40.0.0/24]" |
| Voir les alertes | cat dossier/fast.log |
| Détail des alertes | jq 'select(.event_type=="alert")' dossier/eve.json |
| Voir ce que la sonde voit | jq 'select(.event_type=="http")' dossier/eve.json |
| Mettre à jour des règles publiées | suricata-update (non testé dans ce laboratoire) |
-S charge uniquement ton fichier : plus rapide pour apprendre, mais sans les règles publiées.
Régler
| Problème | Levier |
|---|---|
| Faux positif | Préciser la règle ; sinon suppression pour une source connue |
| Attaque manquée | Élargir ou ajouter une règle ; vérifier le bon tampon |
| Source légitime bruyante | suppress gen_id 1, sig_id N, track by_src, ip A.B.C.D dans threshold.config |
| Règle inutile | La désactiver (commentaire) et le noter |
Toute exception est documentée : règle, source, raison, responsable, date de revue.
Ce qu'une sonde ne voit pas
- Le contenu des échanges chiffrés ;
- Le trafic qui ne passe pas devant elle ;
- Ce qui n'a pas de motif réseau reconnaissable.
Vérifier qu'une règle fonctionne
- Écrire la règle ; 2.
-T; 3. lancer la sonde ; 4. rejouer l'attaque de laboratoire ; 5. rejouer une action légitime ; 6. lirefast.logeteve.json(la sonde a-t-elle vu la requête ?).