Vous êtes sur la page 1sur 21

IDS-IPS

1. Types d'IDS/IPS
On identifie différents types de systèmes de détection et de prévention d'intrusions :

N-IDS & H-IDS


Network IDS et Host-based IDS. Il s'agit là de systèmes de détection d'intrusions basés au
niveau réseau ou au niveau des hôtes.
Généralement, un N-IDS sera constitué d'un serveur positionné judicieusement à un endroit
précis du réseau qui analysera tous les flux réseaux qu'il peut voir, pour générer des alertes de
tentatives d'intrusions.
Un H-IDS analysera lui les tentatives d'intrusion au sein d'une machine en particulier. On
pourra là avoir une architecture basée sur un serveur par hôtes analysées, ainsi qu'un serveur
central regroupant les différentes alertes.

N-IPS & H-IPS


Network IPS et Host-based IPS. Il s'agit là de systèmes de prévention d'intrusions. Lorsqu'un
IPS au niveau d'une hôte ou du réseau détectera une tentative d'intrusion, il génèrera une alerte
et enverra un message à un firewall pour qu'il puisse bloquer le flux suspect.

IDS hybrides
On peut citer "Prelude" comme système hybride.

Un système de gestion des informations et des événements de sécurité


( SIEM : Security information and event management ) est une solution de sécurité qui
permet aux organisations de détecter les menaces avant qu'elles ne perturbent leurs activités
Un IDS hybride rassemble les caractéristiques de plusieurs IDS. On pourra alors par exemple
placer des sondes sur des points stratégiques du réseau, ou sur des machines.
Chacune de ces sondes remontera alors des alertes à une machine centrale, qui va agréger le
tout.

[Tapez ici] [Tapez ici] 1 / 21


Des alertes formattées
Les alertes visent à être formattées. Un groupe de travail au sein de l'IETF : IDWG – « Intrusion
Detection Working Group », mène des réflexions et un travail de standardisation des alertes.
Ainsi est née la norme IDMEF – « Intrusion Detection Message Exchange Format » (RFC 4765),
ainsi que le protocole IDXP – « Intrusion Detection eXchange Protocol » (RFC 4767), toujours au
statut expérimental.

2. Faux positif et faux négatif

Faux positif
On parle de "faux positif " lorsque un paquet anodin (ne consistuant aucune menace réelle)
est détecté comme tentative d'intrusion.

Faux négatif
On parle de faux négatif lorsqu'une tentative d'intrusion n'est pas détectée.

3. Détection d'intrusions
Un système de détection d'intrusions cherchera à différencier un flux normal d'une attaque.
Nous allons ici décrire les deux types d'approches existants pour la détection des
intrusions : l'approche par scénarios et l'approche comportementale.

Approche par scénarios


Cette approche se base sur le principe que l'on a connaissance des techniques de l'assaillant.

Recherche de motifs (Pattern matching)


On aura dans ce cas une base de signatures, regroupant un grand nombre d'attaques. Chacun
des paquets analysés sera comparé aux signatures, et dans le cas où une signature
correspondra à ce paquet, il sera alors considéré comme frauduleux.
Avantages :
L'avantage de cette technique est la facilité de mise à jour : de nouvelles signatures sont
régulièrement publiées sur internet.
Limites :
Une des limites est celle appelée « 0 day ». En effet, lorsq'une nouveau type d'attaque voit le
jour, sa signature correspondante n'est pas publiée instatanément. Il faudra alors attendre
plusieurs jours pour être en mesure de reconnaitre cette nouvelle attaque.
Une autre limite concerne la modification des signatures. En effet, si le pirate modifie
légèrement son attaque, la signature correspondante ne permettra alors pas de détecter
l'attaque. Par exemple, un pirate pourra prendre pour cible un port différent que celui décrit
dans la signature d'une attaque.

[Tapez ici] [Tapez ici] 2 / 21


Exemple :
– Recherche de « /cgi-bin/phf » : un pirate pourra tenter d'accéder à ce CGI (tentative
d’exploit).
– - Si les 8 premiers octets des données UDP sont « CE63D1D2 16E713CF », on détectera
une tentative de connexion avec back orifice en utilisant le mot de passe par défaut.

Analyse de protocoles :
Cette méthode permettra de vérifier que les protocoles sont utilisés en conformité avec les
normes.
Par exemple, la technique du « Ping of death » consiste à forger des paquets ICMP Echo
Request ayant une longueur de données supérieure à la taille maximale. Ce paquet sera alors
fragmenté en une multitude de paquets. Le destinataire doit réassembler ces paquets, et se
crash souvent car ce type de réassemblage est souvent mal implémenté. Cette technique est
maintenant ancienne et les firewalls ne laissent généralement pas passer ces paquets.

Analyse heuristique
L'analyse heuristique consiste à définir des valeurs seuil pour certaines caractéristiques.Par
exemple, si le nombre de sessions sur une machine dépasse un seuil défini, on détectera cela
comme une intrusion.

Approche comportementale
On effectue dans cette méthode une détection d'intrusions en fonction du comportement
passé de l’utilisateur. Exemple de métriques : charge CPU, volumes de données échangées,
heures de connexion, répartition statistiques des protocoles utilisés, etc.
Cette approche consiste donc à dresser un profil de l'utilisateur. Pour faire cela, on aura une
période d'apprentissage pendant laquelle le système enregistrera les actions courantes de
l'utilisateur. On devinera facilement que cela comporte une faille : si un pirate est déjà présent
lors de la phase d'apprentissage, ses actions seront considérées normales pour le système.
De plus, on pourra fixer des limites de fluctuation du profil de l'utilisateur. Ainsi, un pirate pour
essayer d'influer sur le profil de l'utilisateur par de minimes variances, qui au bout d'un certain
temps, aura ont modifié le profil de l'utilisateur à souhait pour pouvoir mener l'attaque sans
être détecté.

Approche probabiliste
On aura dans ce cas la représentation d’une utilisation courante d’une application ou d ’un
protocole.
Par exemple, dans le cas d'une connexion sur le port 80 d'une machine, on aura une probabilité
de 0,9 d'avoir un GET, ainsi qu'une probabilité de 0.8 que la réponse à ce GET soit un HTTP 200
OK.

[Tapez ici] [Tapez ici] 3 / 21


Approche statistique
On cherchera là à quantifier des paramètres liés à l’utilisateur : utilisation processeurs,
mémoire, nombre de connexions sortantes par jour, vitesse de frappe au clavier, sites les plus
visités etc. Cette méthode présente des difficultés de mise en place. C'est une méthode
utilisée dans le domaine de la recherche, et mis en oeuvre par des réseaux neuronaux et data
mining.

4. HIDS & HIPS (Host Intrusion & Prevention System)


Nous nous focalisons ici sur les systèmes de détection et de prévention des intrusions au
niveau des hôtes.
Ces systèmes se basent sur l'intégrité du système pour détecter des intrusions.

Tripwire
Ce logiciel calcule les empruntes (MD5, SHA, etc.) des fichiers spécifiés une première fois, puis
vérifiera à des intervales de temps réguliers (via le cron) que l'emprunte actuelle de chacun des
fichiers correspond bien à celle calculée précédemment. L'administrateur maintient une base
de référence des fichiers à analyser. La robustesse de Tripwire réside dans le fait que les fichiers
de fichiers de configuration et la base de données de référence de TripWire sont eux aussi
analysés.
Pour toute modification, les empreintes des fichiers de configuration et de la base de données
seront donc recalculées.

LogSurfer
Logsurfer lui va analyser les fichiers de journaux (logs) d'une machine et va tenter de
reconnaitre une signature d'intrusion à l'aide d'expressions régulières (ou regex).
Lorsqu'une intrusion sera détectée, plusieurs actions seront possibles :
• Alerter l'administrateur
• Exécuter une commande
• Ouvrir un contexte (sauvegarde de lignes répondant à un certain critère).

[Tapez ici] [Tapez ici] 4 / 21


Les actions des HIPS
Les HIPS bloquent les comportements tels que :
* Lecture / écriture de fichiers protégés
* Accès à des ports non autorisés
* Tentative d'exploitation de débordement de pile (détection de Shellcode)
* Accès à certaines zones de la base de registres
* Connexions suspectes (sessions RPC actives anormalement longues sur des machines
distantes, etc.)

D'autres H-IDS/H-IPS
Parmi la multitude de HIDS/HIPS, on peut aussi citer Tripwire, Logsufer, Swatch, Nocol, Osiris,
Prelude (Hybride), Entercept, Okena (Cisco), ServerLock, etc.

5. NIDS & NIPS (Network Intrusion & Prevention System)

Un peu d'histoire
Historiquement TCPDump représente le premier NIDS. Le principe de fonctionnement d'un
NIDS est basé sur le fait qu’une interface de la machine faisant office de NIDS aura une
interface en mode « promiscious », faisant remonter tous les paquets qu'elle voit transiter sur
le réseau, même si ces derniers ne sont pas à destination de la machine elle même.
Lorsqu'une intrusion sera détectée, le NIDS enverra un avertissement à l’administrateur (par
Syslog, logfile, mail etc).

Positionnement au sein du réseau


L'idéal est d'avoir une machine disposant de plusieurs interfaces réseaux. Ainsi, on utilisera
une interface spécifiquement pour effectuer le monitoring du réseau, et on utilisera une
interface différente pour envoyer les notifications à l'administrateur.

[Tapez ici] [Tapez ici] 5 / 21


On voit sur le schéma précédent que si l'on place notre NIDS en position 3, on analysera les
paquets transitant entre internet et notre réseau interne ainsi que notre DMZ, mais l'on
n'analysera pas les flux internes entre notre réseau et la DMZ. De plus, positionner le système
de NIDS en amont du routeur/firewall fera que l'on recevra énormément de trafic à analyser, le
firewall n'ayant pas déjà effectué un premier filtrage.
En position 2, on analysera le flux internet/DMZ, et réseau/DMZ, mais pas internet/réseau
interne.
Enfin en position 1, on analysera le flux entre le réseau interne et internet/DMZ.
Pour optimalisé, il faudrait placer des NIDS en positions 1 et 2.

[Tapez ici] [Tapez ici] 6 / 21


Snort / Suricata
Snort & Suricata, NIDS le plus répandu et utilisé.

Quelques caractéristiques :
> Open source
> Peu couteux en ressources
> Pas d’interface graphique
De base, Snort ne possède pas d'interface graphique. Cependant, il existe un grand nombre d'interface
graphique développées par des organismes tiers, le plus souvent en utilisant la technologie Php/Mysql.
> Grande base de signatures mise à jour
> Gestion du réassemblage
 Analyse protocolaire (ex:ping of death) et pattern matching
> 3 modes de fonctionnement :
 Sniffer de paquets
 Loggueur de paquets
 Détection / Prévention d’intrusions
> Langage de description des règles

Créer ses propres règles


La syntaxe générale des règles est la suivante :
Action protocole @src #port_src -><- | <> @dest #port_dest [(options_de_règle)]
Où Action peut avoir les valeurs :
alert : remontera une alerte à l'administrateur.
log : enregistrera la détection dans un fichier de journal.
pass : ne rien effectuer.
activate : permet d'activer une autre règle, qui sera alors de type dynamic.
dynamic : définit une règle qui sera activable par une autre.
Et protocole :
tcp/udp/icmp

Options de règle
La syntaxe des options d'une règle est la suivante :
(mot_clé:valeur;mot_clé2:valeur2;…)
15 mots clés sont disponibles : ack, msg, flags, réacs, resp, content-list, …

msg
Description de la règle

[Tapez ici] [Tapez ici] 7 / 21


flags
Test des drapeaux TCP (ACK, SYN…), opérateur logique (+,*,!)
Exemple : (flags:SF;msg:"SYN FIN scan")

ack
Teste le champ d’acquittement TCP pour une valeur donnée
Exemple : (flags:A;ack:0;msg:"NMap TCP ping")

TTL
Teste la valeur du TTL (time to live)
Exemple : (alert tcp any any -> any any(msg: “Traceroute";TTL:1)

resp
Met en œuvre des réponses flexibles
Exemple : (alert tcp any any -> 192.168.0.1/24 1524 (flags:S; resp:rst_all; msg: "Root shell
backdoor attempt";)
Valeur : rst_all - envoie des paquets TCP_RST dans les deux directions

react
Réponse active (block, msg) sur connexions HTTP.
Exemple : (alert tcp any any <> 192.168.0.1/24 80 (content-list: "adults"; msg: “Adult sites";
react: block,msg)

Exemple :
alert tcp any any -> 192.168.1.0/24 21 (content: "USER root"; nocase;msg: "Tentative
d'accès au FTP pour l'utilisateur root";)

Mise en pratique
Créer des règles locales de type :
action protocole src_ip src_port direction dst_ip dst_port (options)
1. Créer la régle qui detecte les pings sur votre ids
Alert icmp any any  192.168.0.245/24 80 (msg : « Mon IDS Se fait pinguer » ; SID : 10000)
2. Détecter les pings de votre reseau (netid)
Alert icmp any any  192.168.0.0/24 any (msg : « Mon Reseau Local Se fait pinguer » ;
SID : 10001)
3. Détecter les trames extérieures à votre réseau

[Tapez ici] [Tapez ici] 8 / 21


Alert icmp any any <> 192.168.0.0/24 any (msg : « Attaque extérieure de mon LAN qui se
fait pinguer » ; SID : 10002)
4. Détecter les attaques éventuelles sur votre serveur web provenant pas de votre réseau
Alert any any any -> 192.168.0.0/24 80 (msg : « Attaque extérieure Srv http qui se fait
attaquer » ; SID : 10003)
Alert any any any -> 192.168.0.0/24 443 (msg : « Attaque extérieure Srv https qui se fait
attaquer » ; SID : 10004)
- Rédigez la règle dans le fichier au format
action protocole src_ip src_port direction dst_ip dst_port (options)
2. Exercices : Expliquez les règles suivantes :
- alert icmp any any -> $HOME_NET any (msg:"ICMP test detected";
GID:1;sid:10000001;rev:001; classtype:icmpevent;)
- log tcp 192.168.80.132 any –> any 22

Application Etude de cas


Vous réfléchissez à l’opportunité d’installer un outil de détection d’intrusion IDS/IPS et
synthétisez vos recherches dans une note figurant dans le dossier documentaire. Votre
choix s’est porté sur le logiciel Suricata, de type Network IDS/IPS, plutôt que sur un logi-
ciel de type Host IDS/IPS, vous prévoyez de l’installer entre le réseau administratif et le
réseau de supervision SCADA.
Question A2.2
Justifier, d’une part, le choix du logiciel Suricata et, d’autre part, le choix de son positionnement.
Votre choix est validé, il a été décidé de configurer l’outil afin de pallier une potentielle attaque
du ver Industroyer.
Question A2.3
a) Repérer, dans le tableau d’indicateurs de compromission, les lignes identifiant la commu-
nication vers les serveurs de commande et contrôle (C&C).
b) Rédiger les quatre règles du logiciel Suricata permettant de bloquer ces échanges.

On n'attend pas de règles optimisées. Les règles en tcp ou http sont équivalentes.
a) Les lignes concernées sont les lignes 3 à 6 du tableau des IoC.

[Tapez ici] [Tapez ici] 9 / 21


b)
drop ip any any -> 195.16.88.6 any (msg : "Blocage connexion C&C ;)
drop ip any any -> 93.115.27.57 any (msg : "Blocage connexion C&C ;)
drop ip any any -> 5.39.218.152 any (msg : "Blocage connexion C&C ;)
drop http any any -> any any (content : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;
InfoPath.1)" ; msg : "Blocage C&C communication ; )
On peut penser à bloquer dans les deux sens. Le principe d’un « bot » est d’ouvrir une connexion
vers les serveurs, donc c’est en principe lui qui ouvre la connexion et permet les échanges,
donc c’est inutile. Quand c'est drop, on n'exige pas forcément un message supposé aller dans
les logs.
La pertinence du message n'est pas évaluée.

Réponse des NIPS


Un NIPS pourra générer des paquets de type TCP FIN et ICMP Host Unreachable pour bloquer
les tentatives d'intrusion.
Cependant, dans le cas de faux positif, on fermera des connexions non malicieuses.
C'est pourquoi pour certaines alertes on va préférer les enregistrer dans de fichiers de log plutôt que
d’avoir une réponse fermant la connexion des hôtes.

Autres actions possibles des NIPS :


> Reconfiguration d’équipements tiers
> Envoi d’un trap SNMP à un agent de supervision

[Tapez ici] [Tapez ici] 10 / 21


> Envoi d’un E-mail à un ou plusieurs utilisateurs
> Journaliser une attaque
> Sauvegarder les paquets suspicieux
> Démarrage d’une application
> Envoi d’un RST_KILL : construction d’un paquet TCP FIN.
> Notification visuelle d’une alerte.

D'autres N-IDS/N-IPS
Parmi la multitude de NIDS/NIPS, on peut aussi citer WatchGuard, NetScreen, TopLayer, etc.

6. Contournement des IDS

Quelques techniques
Déni de service contre un IDS
Un pirate pourra essayer d'effectuer un DoS sur l'IDS pour qu'il ne puisse plus remplir
pleinement son rôle.

Attaque par injection


Il s'agit là de l'ajout de paquets superflus
Ex : fragmentation IP et recouvrement de fragments (modification des champs « longueur » et
« décalage »).
Ex : Exploiter le Timeout pour le réassemblage (~60s sur machines, <60s sur IDS)

Attaque par évasion


Cette technique a pour but de ne pas faire détecter un paquet par l’IDS.
Ex : modification des chaînes de caractères :
GET /etc/rc.d/../././././/.//./passwd
Ou GET %65%74%63/%70%61%73%73%77%64 (codage en hexadécimal)
URL longues, Remplacer espaces par tabulations, ‘/’ par ‘\’ etc.

Shellcode
Il s'agit là d'une technique permettra de faire du débordement de la pile. En général, un pirate
utilisera plusieurs instructions assembleur NOP pour pouvoir atteindre des zones mémoires. Il
pourra alors remplacer les instructions NOP par d'autres instructions n'altérant pas le
fonctionnement de son programme, et qui ne seront pas détectées.

[Tapez ici] [Tapez ici] 11 / 21


7. Présentation de Suricata
Suricata est un système de détection d'intrusion open source (IDS) et un système de prévention
des intrusions (IPS) qui peut être utilisé pour détecter et prévenir un large éventail de menaces
réseau. Suricata est un moteur haute performance qui peut être utilisé pour surveiller les
réseaux câblés et sans fil. Il peut être utilisé pour détecter un large éventail de menaces,
notamment :
• Malware

• Intrusions de réseau

• Attaques de déni de service

• Violations de données

Suricata est un outil puissant qui peut être utilisé pour protéger les réseaux contre un large
éventail de menaces. Il est facile à installer et à configurer, et il est livré avec un ensemble
complet de fonctionnalités. Suricata est un bon choix pour les organisations de toutes tailles.

8. Comment fonctionne Suricata


Suricata fonctionne en surveillant le trafic réseau et en recherchant des modèles qui
correspondent aux menaces connues. Suricata peut utiliser diverses méthodes pour détecter
les menaces, notamment :

[Tapez ici] [Tapez ici] 12 / 21


• Détection basée sur la signature : Suricata peut rechercher des modèles spécifiques
dans le trafic réseau qui correspondent aux menaces connues.
• Détection basée sur les anomalies : Suricata peut rechercher du trafic en dehors de la

plage de comportement normale.


• Détection basée sur le comportement : Suricata peut rechercher du trafic présentant un

comportement caractéristique d'une menace.

9. Suricata Caractéristiques
Suricata est livré avec un ensemble complet de fonctionnalités, y compris :
• Prise en charge d'un large éventail de protocoles

• Capacité à détecter un large éventail de menaces

• Haute performance

• Facile à installer et à configurer

• Ensemble complet d'outils

10. Suricata Avantages


Suricata offre un certain nombre d'avantages, notamment :
• Haute performance : Suricata est un moteur haute performance qui peut être utilisé
pour surveiller les réseaux câblés et sans fil.
• Large gamme de détections : Suricata peut détecter un large éventail de menaces, y
compris les logiciels malveillants, les intrusions réseau, les attaques par déni de service
et les violations de données.
• Facile à utiliser : Suricata est facile à installer et à configurer, et il est livré avec un guide
d'utilisation complet.
• Open source : Suricata est un outil open source, ce qui signifie qu'il est gratuit et peut
être facilement personnalisé.

11. Options de Déploiement Suricata


Suricata peut être déployé dans une variété d'environnements, notamment :
• Sur site : Suricata peut être déployé sur site sur un serveur dédié ou une machine
virtuelle.
• Cloud : Suricata peut être déployé dans le cloud sur une variété de fournisseurs de cloud,
tels qu'Amazon Web Services (AWS), Microsoft Azure et Google Cloud Platform (GCP).
• Service géré : Suricata peut être déployé en tant que service géré par un fournisseur tiers.

[Tapez ici] [Tapez ici] 13 / 21


12. Suricata Prix
Suricata est un outil open-source, donc il n'y a pas de coût pour le déployer ou l'utiliser.
Cependant, il existe un certain nombre de modules complémentaires optionnels qui peuvent
être achetés, tels que :

• Packs de règles Suricata : Les packs de règles Suricata peuvent être achetés pour
ajouter un support pour des signatures de menaces supplémentaires.
• Flux de renseignements sur les menaces : Les flux de renseignements sur les menaces
peuvent être achetés pour fournir des renseignements en temps réel sur les menaces
émergentes.

Conclusion
Suricata est un puissant outil IDS/IPS qui peut être utilisé pour protéger les réseaux contre un
large éventail de menaces. Suricata est facile à installer et à configurer, et il est livré avec un
ensemble complet de fonctionnalités. Suricata est un bon choix pour les organisations de
toutes tailles.

Voici quelques avantages supplémentaires d'utiliser Suricata:

• Évolutif : Suricata peut être mis à l'échelle pour répondre aux besoins des plus grandes
organisations.
• Fiable : Suricata a été utilisé par des organisations de toutes tailles pendant des années
avec beaucoup de succès.
• Securisé : Suricata est un outil sécurisé qui est régulièrement mis à jour avec de
nouvelles fonctionnalités et des correctifs de sécurité.

Si vous recherchez un outil IDS/IPS puissant, facile à utiliser et évolutif, Suricata est une bonne
option à considérer.

[Tapez ici] [Tapez ici] 14 / 21


13. PFSEnse / Suricata

Mettre à jour

Installer le paquet

[Tapez ici] [Tapez ici] 15 / 21


Interface de gestion

[Tapez ici] [Tapez ici] 16 / 21


Paramétrages des règles

[Tapez ici] [Tapez ici] 17 / 21


Mise à jour des règles

Gestion des interfaces

Paramétrages des détections d’intrusion sur LAN


 Choix de l’interface d’écoute

[Tapez ici] [Tapez ici] 18 / 21


 Mise en place des règles d’écoutes

 Avertissement

 Vérification

[Tapez ici] [Tapez ici] 19 / 21


 Visualisation des catégories de règles à appliquer

 Détails des régles par catégories

[Tapez ici] [Tapez ici] 20 / 21


https://www.youtube.com/watch?v=S0-vsjhPDN0
https://rules.emergingthreats.net/OPEN_download_instructions.html
https://suricata.io/
https://www.youtube.com/playlist?list=PLFqw30a25lWRIhAnQNb7ZaPpexPYgxhVv
https://docs.suricata.io/en/latest/install.html
https://suricata.io/documentation/
https://flesueur.github.io/srs/tp3-ids.html
https://dsi.ut-capitole.fr/cours/TP_IDS.pdf
https://noctisdark.dev/blog/labs/tp-suricata/
https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricata_Rules

[Tapez ici] [Tapez ici] 21 / 21

Vous aimerez peut-être aussi