Вы находитесь на странице: 1из 19

Universit de science technologique Houari Boumediene

Prlude-IDS
Un IDS hybride

Belhocine Mhamed Nacereddine & Hariti Badis 20/12/2013

Chapitre 1 - Installation
Prelude, ou Prelude-IDS, est un systme de dtection dintrusion hybride compos de plusieurs plugins, sondes. Prelude a t conu dans le but dtre modulaire, souple, et rsistant aux attaques. Sa modularit permet notamment de lui rajouter facilement de nouveaux types de dtecteurs dintrusion, danalyseurs de logs et dune solution de corrlation, le tout au format et la norme IDMEF (Intrusion Detection Message Exchange Format), bien que de nombreux autres formats de logs sont compatibles. Le format IDMEF dcrit une alerte de faon objet et exhaustive. Une alerte est le message qui est mis depuis un analyseur, qui est une sonde en langage IDMEF, vers un collecteur. Le but dIDMEF est de proposer un standard permettant davoir une communication htrogne quel que soit l environnement ou les capacits dun analyseur donn. Ces alertes sont dfinies au format XML, offrant une possibilit de validation de chaque message. En gnral, les implmentations restent binaires, afin dviter les problmes connus dajout dinformation inutiles en dehors dXML lorsque lon envoie un message sur le rseau. IDMEF offre aussi un vocabulaire prcis, quil est courant dutiliser dans le domaine de la dtection dintrusions. Par exemple, une classification correspond au nom dune alerte, un impact celui dun niveau dattaque. Lintrt de Prelude est de pouvoir centraliser les alertes dans sa base de donnes et de les normaliser au format IDMEF, puis visualisable dans une interface web. Prelude peut intgrer : un NIDS (Network Intrusion Detection System, par exemple Snort) un HIDS (Host Intrusion Detection System, par exemple Ossec) un LML (Log Monitoring Lackey, module Prelude : Prelude-LML) un corrlateur (module Prelude : Prelude-Correlator)

une interface web (module Prelude : Prelude-Prewikka) Lapplication Prelude est disponible uniquement sous Linux, bien quil ait une offre payante (support, fonctionnalits supplmentaires, ), le logiciel est gratuit.

Composants Prelude
Libprelude
Libprelude est une bibliothque permettant une communication scurise entre diffrentes sondes et un serveur Prelude (Prelude-Manager). De plus, il fournit une API (Application Programming Interface) afin de permettre la gnration dalertes au format standard IDMEF (par exemple, libprelude traduit une alerte Ossec en IDMEF). La bibliothque permet galement dautomatiser lenregistrement et la retransmission des alertes en cas de perte dun des composants.

LibpreludeDB
La librairie LibpreludeDB permet la gestion du type et du format de la base de donnes utilise pour stocker les alertes au format IDMEF. Elle offre aussi la possibilit de grer la base de donnes sans utiliser du SQL, grce lusage de commandes, spcialement dveloppes pour interagir depuis un terminal Linux.

Prelude-Manager
Prelude-Manager est le composant principal de Prelude, il joue le rle de serveur. En effet, il rceptionne les alertes IDMEF provenant de ses sondes ou de ses composants (Prelude-Correlator).

Prelude-Correlator
Cest un outil de corrlation multiflux, utilisant des rgles crites en Python pour corrler les alertes IDMEF reues par Prelude-Manager.

Prelude-LML
Prelude-LML est un analyseur de fichiers de logs. En agissant comme sonde auprs de Prelude-Manager, il collecte et analyse les informations issues de tous types dapplications mettant des vnements sous forme de journaux systmes, de massages syslog, etc. Il dtecte des activits suspectes lors de ses analyses, puis gnre des alertes au format IDMEF et les transmet au serveur Prelude.

Prewikka
Interface web de Prelude. Prewikka permet de visualiser les alertes reues par PreludeManager.

Compatibilits Prelude
AuditD Snort SanCP Nagios (check_prelude) Ossec Nepenthes PAM NuFW Samhain

Chapitre 2 - Prise en main


Administration des composants Prelude
Libprelude
Rappel
Libprelude est la librairie de Prelude. Elle permet les inscriptions des sondes, la gnration des certificats des composants et leur communication avec un serveur Prelude. De plus la librairie contient les donnes ncessaires pour la gestion du format IDMEF (gnration des alertes en IDMEF par les sondes).

Utilisation
libprelude-config Commande permettant de prciser des paramtres de base (rpertoire dinstallation, etc). prelude-admin Cette commande est utilise pour raliser les inscriptions des sondes. prelude-admin gnre les certificats denregistrement selon les profils (ajout,suppression, etc), puis en mode coute sur le serveur, elle accepte ou non les certificats envoyes par les sondes. Voici un exemple dutilisation pour lister les certificats utiliss:
$ sudo prelude-admin list

Afin dobtenir plus dinformations sur lusage et les options de cette commande:
$ sudo prelude-admin --help

prelude-adduser prelude-adduser a le mme rle que prelude-admin, elle est en quelque sorte, lancienne commande utilise pour les inscriptions des sondes. Dailleurs lavenir, cette commande sera normalement supprime.

LibpreludeDB
Rappel
La librairie LibpreludeDB permet dajouter lutilisation dune base de donnes dans une architecture Prelude.

Utilisation
libpreludedb-config Cette commande permet de prciser des paramtres tel que le chemin o se trouve linstallation de Prelude. preludedb-admin Afin de pouvoir agir, modifier la base de donnes de Prelude, savoir prelude (nomme lors de linstallation), il existe une commande permettant de supprimer des alertes, de les copier sur une autre base de donnes, etc. Pour cela, il suffit dutiliser la commande preludedb-admin. Voici un exemple dutilisation pour supprimer des alertes antrieures une date :
# preludedb-admin delete alert --criteria "alert.create_time < "2009-0924"" "type=mysql name=prelude user=prelude pass=password"

Pour dobtenir plus dinformations sur lusage et les options de cette commande:
$ sudo preludedb-admin --help

Prelude-Manager
Rappel
Prelude-Manager est le module principal de Prelude-IDS. En effet, cest lui qui reoit et traite les alertes (stockage dans une base de donnes, dans un fichier, etc). Il gre galement les certificats des diffrentes sondes (inscriptions des sondes).

Utilisation
prelude-manager Il sagit de la commande dadministration de Prelude-Manager. Elle permet dans un premier temps de dmarrer le serveur Prelude, et ainsi recevoir les alertes provenant des sondes enregistres. Dans un second temps, elle peut servir dans de multiples usages pour par exemple, relayer les alertes reues vers un autre Prelude-Manager (centralisant les alertes provenant de plusieurs serveurs Prelude), ou encore appliquer des filtres sur les critres des alertes IDMEF. Voici un exemple dutilisation, dmarrant Prelude-manager en mode daemon, et prcisant un fichier de configuration:
$ sudo prelude-manager -d --config=/usr/local/etc/prelude-manager/preludemanager.conf

Afin dobtenir plus dinformations sur lusage et les options de cette commande:

$ sudo prelude-manager --help

Prelude-Correlator
Rappel
Prelude-Correlator est le module (optionnel) de Prelude permettant de grer la corrlation des alertes reues par Prelude-Manager. Pour cela, il utilise des rgles dveloppes en Python. par dfaut, le paquet ne contient quune dizaine de rgles. Donc il faudra en crire des supplmentaire en fonction de vos besoins.

Utilisation
prelude-correlator Il ny a quune seule commande utiliser pour grer le corrlateur de Prelude, cest preludecorrelator. Celle-ci permet de dmarrer le module, et tout comme une sonde, ce dernier sauthentifie au dmarrage auprs du Prelude-Manager avec un certificat (pralablement enregistr). Voici un exemple dutilisation, avec dmarrage du corrlateur en mode deamon, et criture des alertes IDMEF traites (par Prelude-Correlator) en entre et en sortie dans des fichiers de logs:
$ sudo prelude-correlator -d --print-input=/etc/preludecorrelator/logs/input.log --print-output=/etc/preludecorrelator/logs/output.log

Plus dinformations sur lusage et les options de cette commande:


$ sudo prelude-correlator --help

Prewikka
Rappel
Prewikka est linterface Web de Prelude. Elle permet dafficher les alertes reues par PreludeManager. Interactions Prelude-Manager Lorsque Prelude, plus prcisment Prelude-Manager, reoit une alerte IDS, il lajoute dans la base de donnes de Prelude. Ainsi, Prewikka, lorsquil va ractualiser sa page daffichage

dalertes, relancera un SELECT sur les tables de la base de donnes et affichera alors cette nouvelle alerte. Prelude-Correlator Arps la rception et lajout dune nouvelle alerte par Prelude-Manager, le corrlateur, savoir Prelude-Correlator va en fonction de ses rgles, intercepter certaines alertes pour en gnrer une nouvelle, corrle. Cette dernire sera renvoye au Prelude-Manager, qui la verra comme une nouvelle alerte, mais corrle. En aucun cas, le corrlateur ne supprime les alertes partir desquelles il a gnr sa corrlation. Ainsi, dans Prewikka, il sera possible de voir les nouvelles alertes reues directement par le Prelude-Manager, avec aussi la nouvelle alerte corrle, en gnral un niveau de gravit plus lev.

Description et utilisation de l'interface


Lancement de l'interface Etant une interface graphique web, Prewikka se lance donc dans un navigateur internet. Pour cela, il suffit dentrer dans la barre dadresse url du navigateur (Firefox, IE, Opera, ), cette adresse : http://adresse_ip/prewikka Ici, adresse_ip tant remplacer par ladresse rel ou le nom du serveur o est install Prelude (et Prewikka en toute logique). Selon la configuration du virtual host dans Apache, il nest pas indispensable dajouter prewikka la fin de ladresse web. En cas de problmes pour afficher linterface, ne pas hsiter pas vrifier, pour commencer les connexions rseaux, puis ensuite revoir la configuration dApache pour Prewikka, ou bien encore en contrlant le fichier de configuration de Prewikka (/etc/prewikka/prewikka.conf). Si tout va bien, une interface graphique apparat dans le navigateur avec un formulaire dauthentification. Il faut entrer le login et le password en fonction de la configuration de Prewikka (dfinition de ladministrateur par dfaut dans le fichier de configuration /etc/prewikka/prewikka.conf, avec les champs initial_admin_user et initial_admin_pass). Si vous navez rien chang, par dfaut, le login est admin et le password admin . Il est possible de supprimer cette phase dauthentification dans le fichier de configuration.

Une fois authentifi (ou non), saffiche alors la page principale de Prewikka, savoir la visualisation des alertes. Description de l'interface Linterface de Prewikka est compose dune fentre principale, centrale o sont affiches les alertes transmises par les sondes de Prelude.

Sur la gauche, on peut trouver le menu avec les diffrentes parties : Evnements, Agents, Paramtres et A propos. La partie Evnements correspond donc la visualisation des alertes IDS. Cest la page principale (par dfaut) de Prewikka. Sur cette page, il y a 3 onglets disponibles pour spcifier, voir plutt filtrer laffichage des alertes. On a donc le choix entre Alertes, Alertes de Corrlation et Alertes doutils. Le premier onglet Alertes (par dfaut), affiche la totalit des alertes (corrles, ), le second, comme lindique son nom, sert visualiser que les alertes corrles par Prelude-Correlator. Quant au troisime, il affiche les alertes concernant les outils (sondes). Quelque soit longlet choisi, il est possible (en gnral) de voir en dtail les alertes en cliquant dessus, sur le titre de lalerte ou bien, en cliquant sur le nombre ct du titre dans le cas o il y en aurait plusieurs.

Aprs avoir cliqu sur une alerte, Prewikka affiche alors le contenu de lalerte, savoir le format IDMEF avec une mise en forme HTML, plus sympathique lire que dans un fichier de logs.

Pour revenir sur laffichage des alertes, elles utilisent des couleurs pour pouvoir en faciliter la recherche sur les niveaux de gravits, de danger de chacune dentre elles. Ainsi, le code des couleurs est :
Bleu niveau dinformation info Vert niveau le plus faible low Orange niveau intermdiaire medium Rouge niveau dalerte maximum high

Les alertes sont affiches sous la forme dun tableau, avec comme colonnes, la classification (nom de lalerte, ), la source ayant provoque lalerte, puis la destination de lvnement, ensuite le nom de la sonde ayant fait remonte cette alerte Prelude, et enfin le temps (heure) sur lequel lalerte t reue par le Prelude-Manager. Pour chacun des ses onglets (Evnements), un bouton se trouvant en bas de page (Effacer), permet aprs slection des alertes (globale, ou cible), de les supprimer. Sur le menu, gauche il y a aussi un autre choix, le bouton Agents. Ce dernier permet de visualiser lensemble des agents constituant larchitecture rseau de notre projet, savoir les diffrentes sondes connectes au serveur Prelude, ainsi que ses composants, comme le Prelude-Manager, le Prelude-Correlator. Il est possible donc de voir ltat des sondes et des composants de Prelude en temps rel, cest--dire si ils sont connectes ou pas (dmarres).

A partir de cette fentre, les alertes et les pulsations (2me onglet) peuvent tre supprimes, afin de nettoyer Prewikka, pour repartir avec une interface neuf. Lorsquune sonde est dconnecte, il est galement possible de supprimer son profil partir de linterface. Comme pour le bouton Evnements, la partie Agents contient deux onglets, le premier nomm aussi Agents correspond donc laffichage des statuts des sondes comme nonc prcdemment. Pour le deuxime onglet Pulsations, il permet de voir les diffrentes vrifications de connexions entre les sondes, avec lheure exacte de chaque test de statuts des agents. Troisime bouton du menu ( gauche de linterface), les Paramtres de Prewikka. Cest ici, que lon peut crer ou diter des filtres pour laffichage des alertes, en prcisant par exemple de nafficher que les alertes provenant dune sonde en particulier, etc. Principal avantage de cet diteur de filtre, cest quil repose sur le format IDMEF, ce qui donne une multitude de possibilits, condition bien sr de matriser un minimum la norme IDMEF, pour pouvoir utiliser les diffrents champs dune alerte IDS.

Pour appliquer un filtre, il suffit lorsque lon est sur la page daffichage des alertes dutiliser loutil disponible tout en bas gauche (sous le menu), puis de choisir lun des filtres pralablement crs et lappliquer.

Cet outil (sorte de menu) dispose en plus de pouvoir appliquer des filtres, des boutons pour faire dfiler les pages des alertes classes par priode dune heure. Permettant ainsi de voir un historique des alertes reues. Il est aussi possible dappliquer des filtres spcifiques sur chaque colonne daffichage dalertes, en cliquant sur le nom dune des colonnes.

Par rapport au deuxime onglet des Paramtres, cest--dire Mon compte, ainsi que pour le dernier onglet Utilisateurs, ici, peut tre cr ou modifi des utilisateurs autoriss se connecter Prewikka, en indiquant les droits de chaque utilisateur, et la langue de linterface. Et enfin, le dernier bouton du menu A propos donne des informations gnrales sur la solution Prelude-IDS, la version utilise de Prewikka, et les diffrentes adresses pour contacter la socit, ditrice de Prelude.

Inscriptions des composants Prelude et des sondes


Prelude pouvant utiliser des sondes et des plugins (composants) rpartis sur tout un rseau, doit pour plus de scurit, mettre en place des changes crypts. Ainsi, pour lajout dun plugin comme Prelude-Correlator par exemple, en local comme sur un autre serveur, ce dernier doit tre enregistr et authentifi auprs du Prelude-Manager.

Prelude-Manager
Pour cela, Prelude intgre un outil prelude-admin, cest avec cette commande quil va tre possible denregistrer les composants supplmentaires.

Cration du profil Prelude-Manager

Tout dabord, il faut commencer par crer le profil du Prelude-Manager.


$ sudo prelude-admin add "prelude-manager" --uid 0 --gid 0

Cette commande gnre une cl pour le Prelude-Manager afin quil puisse mettre en place ses changes crypts.
le temps de cration de la cl peut tre trs long, mais vraiment trs long ! Pour rduire le dlai de gnration, il est conseill de faire travailler le systme. Il existe par exemple lentropie :
$ sudo cat /dev/urandom > /dev/null

Mais cette mthode nest pas la plus rapide car cela peut prendre tout de mme plusieurs heures (maximum 24h en gnral). Heureusement, il y a une autre solution, quest linstallation dun paquet assez lourd. Exemple :
$ sudo apt-get install gimp

Avec cette mthode le temps de cration passe une vingtaine de minutes (1h maximum). Bien entendu, un autre paquet peut faire laffaire, vrifier tout de mme selon les paquets. Ensuite, ce paquet tlcharg et install nest plus ncessaire, donc dsinstallation :
$ sudo apt-get autoremove gimp

Enregistrement
Une fois la cl gnre, il faut dmarrer le Prelude-Manager :
$ sudo prelude-manager

Et taper cette commande dans un autre terminal pour mettre le serveur Prelude en mode coute pour enregistrer une sonde ou un plugin :
$ sudo prelude-admin registration-server prelude-manager

La commande gnre alors un mot-de-passe usage unique et reste en coute. Il ne reste plus qu enregistrer un composant.
ce mot-de-passe est usage unique. Cest--dire quil ne peut servir que pour lenregistrement dun seul composant. Pour linscription dun autre plugin ou dune sonde, il faudra tout simplement la relancer chaque fois, pour obtenir un nouveau mot-de-passe et mettre le serveur en coute.

Prelude-Correlator
En local tout comme sur un serveur diffrent du Prelude-Manager, il faut effectuer lenregistrement du Prelude-Correlator avec une commande qui gnre galement une cl pour le plugin :

$ sudo prelude-admin register prelude-correlator "idmef:rw" localhost --uid 0 --gid 0

Si le plugin nest pas install sur le mme poste, modifier localhost par ladresse ip du serveur hbergeant le Prelude-Manager. Tout comme la gnration de la cl du Prelude-Manager, le temps de cration est trs long, donc il faut galement faire travailler le systme (voir prcdemment). Lorsque la cl est cre, il est demand dentrer un mot-de-passe. Ce dernier est tout simplement celui gnrer par le Prelude-Manager auparavant.
Rappel : ce mot-de-passe est usage unique. Prelude-Manager doit tre en coute (voir la section au-dessus).

Une fois le mot-de-passe entr, lenregistrement est en attente dune rponse du PreludeManager. Donc il faut se rendre sur le terminal de ce dernier, o est lanc la commande prelude-admin registration-server prelude-manager, et accepter (ou pas) la connexion et donc linscription du Prelude-Correlator. Lenregistrement du plugin est alors termin.

Prelude-LML
La dmarche est la mme que pour le Prelude-Correlator, il y a juste adapter la commande :
$ sudo prelude-admin register prelude-lml "idmef:w admin:r" localhost --uid 0 --gid 0

Dans le cas o Prelude-LML nest pas install sur le mme serveur que Prelude-Manager, il faut alors remplacer localhost par ladresse ip du manager. Prelude-LML tant considr comme une sonde.

Exemples d'enregistrement de sondes NIDS et HIDS


La commande de base :
$ prelude-admin register <profile_name> <requested_permission> <prelude_manager_address> --uid <uid> --gid <gid>

Snort
Pour la sonde Snort, la commande est :
$ sudo prelude-admin register snort "idmef:w admin:r" 192.168.100 --uid 0 -gid 0

Ossec
La commande dOssec est similaire celle de Snort :

$ sudo prelude-admin register ossec "idmef:w admin:r" 192.168.1.100 --uid 0 --gid 0

Dmarrage de Prelude
Pour lancer le serveur Prelude, il faut dmarrer dans un premier temps Prelude-Manager : $ sudo prelude-manager Ensuite Prelude-Correlator, Prelude-LML, et enfin les sondes (Snort et Ossec) : $ sudo prelude-correlator $ sudo prelude-lml

Architecture Scurit OSS

d'une

solution
dune

Dans ce qui suit, figure une prsentation architecture de solutions Scurit OSS.

Rles de la solution
Ossec
Tout dabord, afin de sassurer du bon fonctionnement des postes informatiques surveiller, linstallation dun logiciel comme Ossec, un HIDS, est trs utile. En effet, Ossec permet de vrifier la modification de fichiers, de dtecter des attaques (rootkits, ) et de gnrer des alertes.

Fonctionnement
Topologie Physique
Voici une topologie rseau de base, forme en toile :

Topologie logique

Explications
Larchitecture mise en place doit permettre lacheminement dune alerte, provenant dun poste client, jusqu son affichage dans la console de supervision de Nagios. Le schma ci-dessus, offre une vision plus claire du trajet parcouru par une alerte. Ce parcours peut tre divis en plusieurs tapes : Pour commencer, il y a un poste client (nomm tout simplement CLIENT), ce dernier est intgr un domaine (serveur PDC, nomm LDAP) et dispose dun antivirus administr par un serveur (soit nomm ANTIVIRUS.

1. Un problme x sur CLIENT survient, selon la nature du problme (authentification, virus, ), le contrleur de domaine LDAP, ou bien le serveur ANTIVIRUS affiche cet vnement dans un fichier log, fichier qui grce Ossec est analys. 2. OSSEC dtecte alors le problme selon ses propres rgles et fait remonter lalerte (si besoin) sous forme de message IDMEF au serveur PRELUDE. Le serveur PRELUDE, rceptionnant lalerte, ajoute alors un vnement dans sa base de donnes au format IDMEF, respectant ainsi toujours la norme. 3. De son ct, le serveur SNORT, dtecte une attaque y sur le rseau, identifie par ses rgles, et transmet alors une alerte IDMEF PRELUDE. Tout comme pour une alerte provenant dOSSEC, PRELUDE stocke lvnement dans la base de donnes. 4. Le serveur de supervision NAGIOS, afin dafficher les alertes, check rgulirement le serveur PRELUDE, et ds quil dtecte une ou des alertes dans la base de donnes, il affiche un statut CRITICAL ou WARNING pour le service grant le check de Prelude (soit check_prelude). Ainsi, il dtecte les alertes x dOssec et y de Snort, qui selon leur priorit, leur niveau dimportance change le statut du service de check_prelude. Les alertes sont alors correctement affiches dans la console du serveur NAGIOS.

Cas pratique

Dans cet exemple, le poste CLIENT tente une authentification auprs du contrleur de domaine LDAP. Le mot-de-passe ntant pas le bon, aprs plusieurs tentatives, que LDAP a pris soin de stocker dans ses

logs, lapplication Ossec cliente qui les analyse, par exemple aprs trois checs, transmet alors une alerte au serveur OSSEC. OSSEC, rceptionne lvnement et linscrit dans ses propres logs tout en le transfrant au format IDMEF au serveur PRELUDE. Prelude-Manager, la rception de lalerte, lajoute dans sa base de donnes. NAGIOS, comme son habitude, check la base de donnes de PRELUDE toutes les cinq minutes, ainsi, au bout des cinq minutes, le service configur utilise la commande check_prelude pour compter la prsence dalertes. Si la priorit de cette alerte, savoir, lchec dauthentification ldap, est de type CRITICAL, le statut du service sous NAGIOS passe alors ltat CRITICAL.

Pour visualiser les dtails des alertes, il faut utiliser linterface Web de PRELUDE, cest--dire Prewikka, qui affiche les alertes de la base de donnes de Prelude.

Ensuite, il est possible de visualiser plus en dtail les informations :

Comme le montre cette capture dcran, lalerte est beaucoup plus prcise, et dtaille en indiquant le problme rencontr, la sonde quil a gnre, etc. Ainsi, il est possible de trouver lorigine du problme et donc de le rsoudre.