Les IDS/IPS SNORT

A-les IDS



1-Présentation générale des IDS







Afin de détecter les attaques que peut subir un système, il est nécessaire d’avoir un logiciel spécialisé dont le rôle serait de surveiller les données qui transitent sur ce système, et qui serait capable de réagir si des données semblent suspectes. Plus communément appelé IDS (Intrusion Detection Systems), les systèmes de détection d’intrusions conviennent parfaitement pour réaliser cette tâche.


Un système de détection d’intrusion (ou IDS) est un mécanisme destiné à repérer des activités anormales ou suspectes sur la cible analysée (un réseau ou un hôte) .Il permet ainsi d’avoir une connaissance sur les tentatives réussies comme échouées des intrusions.
En générale un IDS est un sniffer couplé avec un moteur qui analyse le trafic selon des règles, qui décrivent un trafic à signaler.


Les IDS sont capables de détecter les logiciels malveillants (virus, ver…), le scan ou le sniff sur un réseau et les attaques DOS ou DDOS


L’IDS peut analyser :



  • la couche réseau (IP, ICMP)
  • La Couche transport (TCP, UDP)
  • La couche application (HTTP, Telnet, …)



Les Actions d’un IDS sont :



  • Journaliser l’événement Source d’information et vision des menaces courantes
  • Avertir un système avec un message (Exemple: appel SNMP)
  • Avertir un humain avec un message (Courrier électronique, SMS, interface web,…)
  • Amorcer certaines actions sur un réseau ou hôte (Exemple: mettre fin à une connexion réseau, ralentir le débit des connexions,…).




2-Les différents Types des IDS

Il existe trois grandes familles distinctes d’IDS :

Les NIDS (Network based Intrusion Detection System), qui surveillent l'état de la sécurité au niveau du réseau.

Les HIDS (Host based Intrusion Detection System), qui surveillent l'état de la sécurité au niveau des hôtes.

Les IDS hybrides, qui utilisent les NIDS et HIDS pour avoir des alertes plus pertinentes.

Les NIDS


Un NIDS est un type d’IDS qui surveille l’ensemble du réseau, et se découpe en trois grandes parties : La capture, les signatures et les alertes.




La capture :


La capture sert à la récupération de trafic réseau. En général cela se fait en temps réel, bien que certains NIDS permettent l'analyse de trafic capturé précédemment, la plupart des NIDS utilisent l’interface de programmation pcap « packet capture » pour capturer un trafic réseau, cette interface estimplémentée sous les systèmes GNU/Linux, Mac OS X par la bibliothèque libpcap. « WinPcap est le portage sous Windows de libpcap »

Le fonctionnement de la capture d'un NIDS est donc en général fortement lié à cette libpcap. Son mode de fonctionnement est de copier (sous Linux) tout paquet arrivant au niveau de la couche liaison de données du système d'exploitation. Une fois ce paquet copié, il lui est appliqué un filtre BPF (Berkley Packet Filter, un langage permettant de filtrer les paquets échangés sur un réseau), correspondant à l'affinage de ce que l'IDS cherche à récupérer comme information.

Les Signatures :


Les bibliothèques de signatures rendent la démarche d'analyse similaire à celle des antivirus quand ceux-ci s'appuient sur des signatures d'attaques. Ainsi, le NIDS est efficace s'il connaît l'attaque, mais inefficace dans le cas contraire.



Les outils commerciaux ou libres ont évolué pour proposer une personnalisation de la signature afin de faire face à des attaques dont on ne connaît qu'une partie des éléments. Les outils à base de signatures requièrent des mises à jour très régulières.

Les Alertes


Lorsqu’un IDS détecte une intrusion, il doit signaler à l’administrateur, et ce à travers les alertes. Ces alertes peuvent être enregistrées dans des fichiers logs ou dans une base de données où il est possible de les consulter plus tard par un expert de sécurité.

Les HIDS


Les HIDS (Host based IDS), signifiant "Système de détection d'intrusion machine" sont des IDS dédiés à un matériel ou système d'exploitation. Généralement, contrairement à un NIDS, le HIDS récupère les informations qui lui sont données par le matériel ou le système d'exploitation. Il y a pour cela plusieurs approches : signatures, comportement (statistiques) ou délimitation du périmètre avec un système d'ACL.

Un HIDS se comporte comme un daemon ou un service standard sur un système hôte qui détecte une activité suspecte en s’appuyant sur une norme. Si les activités s’éloignent de la norme, une alerte est générée.

La machine peut être surveillée sur plusieurs points :

- Activité de la machine : nombre et listes de processus ainsi que d'utilisateurs, ressources consommées, ...

- Activité de l'utilisateur : horaires et durée des connexions, commandes utilisées, messages envoyés, programmes activés, dépassement du périmètre défini...


- Activité malicieuse d'un ver, virus ou cheval de Troie

Un autre type d’HIDS cherche les intrusions dans le noyau (kernel) du système, et les modifications qui y sont apportées. Certains appellent cette technique «analyse protocolaire».

IDS hybride


Les IDS hybrides rassemblent les caractéristiques de NIDS et HIDS. Généralement utilisés dans un environnement décentralisé, ils permettent, en un seul outil, de surveiller les réseaux et les terminaux. Les sondes sont placées en des points stratégiques, et agissent comme NIDS et/ou HIDS suivant leurs emplacements. Toutes ces sondes remontent alors les alertes à une machine qui va centraliser le tout, et agréger ou lier les informations d'origines multiples.

3-Les méthodes de détection





Les principales méthodes :

Vérification de la pile protocolaire et des protocoles applicatifs

– Détection des violations de protocole
– mise en évidence des paquets invalides

Reconnaissance des attaques par pattern matching

– La signature


Comportementale

– Basée sur le comportement « normal » du système
– Une déviation par rapport à ce comportement est considérée suspecte
– Le comportement doit être modélisé : on définit alors un profil
(Exemple de profil : Volumes des échanges réseau - Appels systèmes d’une application Commandes usuelles d’un utilisateur)
– Une attaque peut être détectée sans être préalablement connue
– Complexité de l’implémentation et du déploiement

– Les faux positifs sont nombreux

4-les avantages et les inconvénients des IDS

Les NIDS ont pour avantage d'être des systèmes temps réel et ont la possibilité de découvrir des attaques ciblant plusieurs machines à la fois.

Leurs inconvénients sont le taux élevé de faux positifs qu'ils génèrent, le fait que les signatures aient toujours du retard sur les attaques de type 0day et qu'ils peuvent être la cible d'une attaque.



Le HIDS a pour avantage de n'avoir que peu de faux positifs, permettant d'avoir des alertes pertinentes. Quant à ses inconvénients il faut configurer un HIDS par poste et demande une configuration de chaque système.

Les avantages des IDS hybrides sont la meilleure corrélation et la Possibilité de réaction sur les analyseurs Et leurs inconvénients sont le taux élevé de faux positifs qu'ils génèrent.



B-les IPS

1- Présentation générale des IPS


Un système de prévention d'intrusion (ou IPS, Intrusion Prevention System) est un outil des spécialistes en sécurité des systèmes d'information, similaire aux IDS, permettant de prendre des mesures afin de diminuer les impacts d'une attaque, il peut détecter un balayage automatisé et bloquer les ports automatiquement. Les IPS peuvent donc parer les attaques connues et inconnues, Comme les IDS, ils ne sont pas fiables à 100 % et risquent même en cas de faux positif de bloquer du trafic légitime.

2-Les différents Types des IPS


Les HIPS

(Host-based Intrusion Prevention System) qui sont des IPS permettant de surveiller le poste de travail à travers différentes techniques, ils surveillent les processus, les drivers, les .dll etc. En cas de détection de processus suspect le HIPS peut le tuer pour mettre fin à ses agissements. Les HIPS peuvent donc protéger des attaques de buffer overflow.

Les NIPS


(Network Intrusion Prevention System) sont des IPS permettant de surveiller le trafic réseau, ils peuvent prendre des mesures telles que terminer une session TCP. Une déclinaison en WIPS (Wireless Intrusion Prevention System) est parfois utilisée pour évoquer la protection des réseaux sans-fil.

les KIPS


(Kernel Intrusion Prevention System) sont des IPS permettant de détecter toutes tentatives d'intrusion au niveau du noyau, mais ils sont moins utilisés.

3-les avantages et les inconvénients des IPS






Les Avantages d’un IPS : les attaques sont bloquée immédiatement.

L'IPS peut comporter plusieurs outils et méthodes pour empêcher les attaquant d'accéder au réseau, tels qu'un coupe-feu et un antivirus.

Les inconvénients sont :

Les IPS bloquent tout ce qui parait infectieux à leurs yeux, mais n'étant pas fiable à 100 % ils peuvent donc bloquer malencontreusement des applications ou des trafics légitimes.
Ils laissent parfois passer certaines attaques sans les repérer, et permettent donc aux pirates d'attaquer un PC.

Ils sont peu discrets et peuvent être découverts lors de l'attaque d'un pirate qui une fois qu'il aura découvert l'IPS s'empressera de trouver une faille dans ce dernier pour le détourner et arriver à son but.

4-L’emplacement des IDS/IPS


Devant et derrière le firewall:

Devant : beaucoup d’alertes

Derrière : voir ce que le firewall a laissé passer




Dans la DMZ :

– Protection minimale, cibles en première ligne
– Spécification du trafic autorisé assez simple (HTTP, DNS, mail)




Dans le système d’information, près des utilisateurs:
– HIDS : problème de l’impact sur les hôtes
– NIDS : problème des réseaux switchés
– problème : données personnelles/privées/confidentielles
– Intégration à l’OS





5- Les Solutions IDS/IPS



Chapitre III : SNORT


1-Présentation de SNORT




SNORT est un Système de Détection d’Intrusion de réseau (NIDS) Open Source, capable d’analyser en temps réel le trafic sur les réseaux IP. C’est une application développée en langage C par Martin ROESH en 1998 .

Snort est capable d’effectuer une analyse du trafic réseau en temps réel et est doté de différentes technologies de détection d’intrusions telles que l’analyse protocolaire et le pattern matching, il peut détecter de nombreuses types d’attaques comme : les logiciels malveillants, le buffer overflows (débordements de tampons), scans de ports et le sniffing.

Il est léger, ne dispose pas d’interface graphique, peu coûteux en ressources et peut être déployé dans les environnements Linux et Windows.

Snort est doté d’un langage de règles permettant de décrire le trafic. De plus, son moteur de détection utilise une architecture modulaire de plugins.

Snort est principalement dédié aux acteurs de la sécurité réseaux. En effet, sa fonction IDS permet une surveillance des réseaux permettant de détecter et d’alerter en cas de tentative d’intrusion sur le réseau.

L'IPS Snort Inline est une version modifiée du fameux IDS Snort (Système de détection d'intrusion) pour en faire un IPS (Système de prévention d'intrusion ), une solution capable de bloquer les intrusions/attaques réseau.   


2-Mode de fonctionnement




SNORT peut fonctionner sous trois modes :

Le mode sniffer « hors ligne » qui se contente de lire les paquets qui circulent sur le réseau et de les afficher de manière continue à l’écran.

Il s’agit d’écouter le réseau, en tapant une ou plusieurs lignes de commandes qui indiqueront à SNORT le type de résultat à afficher.


Le mode « packet logger » qui enregistre les paquets sur le disque. Ce mode est en tout point similaire au précédent, à ceci près que les logs ne s’affiche plus à l’écran, mais s’inscrivent directement dans un fichier de log. Le répertoire naturel de log de snort étant /var/log/snort/.

Le mode NIDS Plus configurable, qui permet d’analyser le trafic sur le réseau en suivant des règles définies par l’utilisateur et d’établir des actions à exécuter suivants les cas.



SNORT utilise pour cela des règles pour détecter les intrusions. Il existe aujourd’hui environ 1500 règles différentes, chacune s’adaptant à un cas particulier. On peut créer des règles pour observer une activité particulière sur le réseau : pings, scans, faille dans un script, tentative de prise de contrôle à distance, les alertes peuvent être enregistrées dans un fichier particulier ou directement dans le syslog ou encore dans une base de données.

3-Architecture SNORT


L’architecture de SNORT est organisée en modules qui sont :

Décodeur de paquet (Packet Decoder): il capture les paquets de données des interfaces réseaux, les prépare afin d’être prétraitées ou envoyées au moteur de détection.


Pré processeur (Pre processor) : ce sont des composants utilisés avec SNORT afin d’améliorer les possibilités d’analyse, et de recomposition du trafic capturé. Ils reçoivent les paquets, les retraitent et les envoient au moteur de détection.






Moteur de détection (Detection Engine) : c’est le composant le plus important de SNORT. Son rôle consiste à détecter les éventuelles intrusions qui existent dans un paquet. Pour se faire, le moteur de recherche se base sur les règles de SNORT. En effet, ce moteur consulte ces règles et les compare une à une avec le paquet de données. S’il y a conformité, le détecteur l’enregistre dans le fichier log et/ou génère une alerte. Sinon le paquet est laissé tomber.

Système d’alerte et d’enregistrement des logs (Logging and Alerting System): il permet de générer les alertes et les messages log suivant ce que le moteur de détection a trouvé dans le paquet analysé.

Output modules (ou plugins) : permet de traiter l’intrusion générée par le système d’alertes et de notation de plusieurs manières : envoie vers un fichier log, génère un message d’alerte vers un serveur syslog, ou stocke cette intrusion dans une base de données comme MySQL ou Oracle.

La figure suivante présente un schéma de l’architecture de SNORT :




4- Installation et configuration de SNORT

Les paquets nécéssaire pour l’installations de snort


sudo apt-get install nmap
 sudo apt-get install nbtscan 
sudo apt-get install apache2
 sudo apt-get install php5 
sudo apt-get install php5-mysql 
sudo apt-get install php5-gd 
sudo apt-get install libpcap0.8-dev 
sudo apt-get install libpcre3-dev 
sudo apt-get install g++ 
sudo apt-get install bison 
sudo apt-get install flex 
sudo apt-get install libpcap-ruby 
sudo apt-get install libmysqlclient16-dev





Téléchargement de snort

Apt-get install snort

Lancement de l'utilitaire de configuration de snort:


Sudo dpkg-reconfigure snort

Lancement automatiquement de snort au démarrage du système (boot)



Choisir l'interface d'écoute sur le réseau


Mettre l'adresse IP de l'interface d'écoute



Activer le mode de promiscuité

Il est nécessaire de passer la carte réseau en mode "promiscuous" (mode de promiscuité).

En fonctionnement habituel, la carte réseau rejette tous les paquets qui ne lui sont pas adressés à l'exception des broadcasts (qui sont adressés à tout le monde).Lorsque le mode de promiscuité est activé, la carte réseau traite tous lespaquets qu'elle reçoit permettant ainsi d'analyser la totalité du trafic.




Ajouter l’email de l’administrateure réseau ou du RSSI pour activer l’envoie des journaux et les alerts de l’IDS snort.



Installation de MySQL server

Sudo apt-get install mysql-server


Sécuriser le serveur MySQL avec un mot de passé



Création d’une base de donnée pour enregistrer les alerts de snort


Mysql –uroot –h localhost –pioriiori
>create user ‘snort’@’localhost’ identified by ‘snort’ ;
> grant all privileges on *.* to ‘snort’@’localhost’ identified by ‘snort’;
> flush privileges;

> quit





Installation de snort-mysql pour pour l’IDS envoit les logs au serveur MySQL:

Sudo apt-get install snort-mysql
Sudo dpkg-reconfigure –plow snort-mysql
Cd /usr/share/doc/snort-mysql/

Zcat creat_mysql.gz

Lancement de Snort

Snort –v



5-Les Tests d’intrusions


Exemple : Le Schéma Réseau de l’entreprise








Test de Ping

La première chose qu’un attaquant fait avant d’attaquer une machine cliente ou un serveur c’est de tester son accessibilité, donc je vais tester si snort peut détecter cette intrusion.


Machine attaquante : (son adresse IP est 192.168.1.25)



Serveur ubuntu [IDS Snort] : (son adresse IP est 192.168.1.7)




l’IDS snort a bien détecté l’intrusion.


Test de scan

Lancer un scan simple avec l’outil nmap pour détecter le système d’exploitation du serveur


La commande : nmap –o 192.168.1.7

Nmap est un scanner de ports libre créé par Fyodor et distribué par Insecure.org. Il est conçu pour détecter les ports ouverts, identifier les services hébergés et obtenir des informations sur le système d'exploitation d'un ordinateur distant.


Machine attaquante :



Serveur ubuntu [IDS Snort]





snort a bien détecté le scan

Test de sniffing

Utilisation du logiciel de sniffing wireshark
Exemple de lancement d’une page web : www.google.com sur le navigateur firefox du serveur ubuntu


Machine attaquante :





Serveur ubuntu [IDS Snort]





snort a bien détecté le sniffing sur le réseau.

On peut voir les alertes que snort à détecter dans le fichier log :

cat /var/log/snort/alert



Bonne Chance
mohameddouhaji7@gmail.com