From 1abad4aa5f862c5ec58fc2fdefa2060ac7f8de43 Mon Sep 17 00:00:00 2001 From: Francois Lesueur Date: Sun, 24 Oct 2021 11:14:52 +0200 Subject: [PATCH] =?UTF-8?q?r=C3=A9int=C3=A9gration=20prewikka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tp2-idps.md | 100 +++++++++++++++++++++++++--------------------------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/tp2-idps.md b/tp2-idps.md index 4dd2a41..32b3d6f 100644 --- a/tp2-idps.md +++ b/tp2-idps.md @@ -1,6 +1,6 @@ # TP 2 : IDPS -_François Lesueur ([francois.lesueur@univ-ubs.fr](mailto:francois.lesueur@univ-ubs.fr))_, avec des bouts récupérés de [Sébastien Mériot](https://github.com/PandiPanda69/edu-insa-srs/blob/main/tp3-ids.md) +_François Lesueur ([francois.lesueur@univ-ubs.fr](mailto:francois.lesueur@univ-ubs.fr))_ Ce TP sera réalisé dans la VM MI-LXC disponible [ici](https://filesender.renater.fr/?s=download&token=a692402f-90c7-4882-a93e-7123842ca5ec). L'infrastructure déployée simule plusieurs postes dont un SI d'entreprise (firewall, DMZ, intranet, authentification centralisée, serveur de fichiers, quelques postes de travail internes de l'entreprise _Target_), une machine d'attaquant "isp-a-hacker" et quelques autres servant à l'intégration de l'ensemble. @@ -140,7 +140,54 @@ Il est aussi possible d'analyser les logs : [doc](https://ossec.github.io/docs/m Relancez depuis la machine "isp-a-hacker" le bruteforce sur le mot de passe de l'admin du wiki avec la commande : `python3 tp/intrusion/dokuwiki.py www.target.milxc` et observez les alertes OSSEC. -Mise en place d'un proxy HTTP +Prelude-manager (concentrateur) +------------------------------- + +Prelude-manager est un concentrateur d'alertes. Il utilise le format d'alerte IDMEF et Suricata et OSSEC savent lui remonter leurs alertes. Le jumelage entre le manager et les sondes est réalisé via un échange [TLS SRP](https://en.wikipedia.org/wiki/TLS-SRP) géré par `prelude-admin`. + +Lors du jumelage, chaque sonde conserve un profil local (`/etc/preludes/profiles//`) contenant sa configuration et son matériel cryptographique (certificat, clés). Le manager, lui, a signé le certificat (avec sa clé privée) mais ne conserve pas de liste des sondes enregistrées. `prelude-admin list -l` permet de lister les profils actuellement configurés sur la machine locale. + +Pour jumeler une sonde au manager, il faut : + +* côté manager (router) : `prelude-admin registration-server prelude-manager` +* côté sonde : `prelude-admin register "idmef:w" --uid 0 --gid 0`, avec + * `` : nom du profil, suricata pour Suricata et OSSEC-DMZ pour OSSEC + * `` : l'IP du manager + + + + +Prewikka (interface web de visualisation) (non fonctionnel sur MI-LXC-v20211014, fonctionnel sur MI-LXC-v1.3.1 et v20211022) +----------------------------------------- + +Prewikka est une application web permettant la visualisation de l'état des sondes enregistrées ainsi que des alertes. Il est installé sur la machine `target-router`. Il doit être démarré avec `prewikka-httpd` et est ensuite accessible depuis le navigateur d'un poste de travail interne (par exemple `target-admin`) à l'URL `http://router:8000`. Le compte est admin/admin (bien sûr, la première étape dans un vrai déploiement est de changer cela...). + +Il faut ensuite lancer prelude-manager (sur router) : `service prelude-manager start`. + +Par défaut, la liste des agents (les sondes), accessible dans le menu en haut à gauche, est vide. Il faut ajouter Suricata (activer prelude dans la configuration suricata `/etc/suricata/suricata.yaml` en y cherchant la chaîne "prelude" puis `service suricata restart`) puis OSSEC (activer prelude dans la configuration OSSEC `/var/ossec/etc/ossec.conf` en y cherchant la chaîne "prelude" puis `service ossec restart`). + +Vous pouvez ensuite visualiser des événements. Si tout n'apparaît pas, quelques restarts de services peuvent faire tomber en marche ! + +Prelude-correlator (corrélation) +-------------------------------- + +Jumelage avec le manager : `prelude-admin register prelude-correlator "idmef:rw" 127.0.0.1 --uid 0 --gid 0` (accès read/write cette fois-ci car la corrélation nécessite la lecture des alertes remontées et l'écriture de nouvelles alertes). Puis relancer le service prelude-correlator. + +Une règle de corrélation est en fait un script python. Vous trouverez un exemple dans `/usr/share/doc/prelude-correlator/examples`. Pour l'installer, tapez : + +* `python setup.py build` +* `python setup.py install` + +Puis dans `/etc/prelude-correlator/prelude-correlator.conf`, ajoutez : +``` +[MyPlugin] +disable=false +``` + +Enfin, relancez prelude-correlator. Une documentation plus complète est disponible [ici](https://www.prelude-siem.org/projects/prelude/wiki/PreludeCorrelator). YOLO ! + + +Mise en place d'un proxy HTTP (récupéré de [Sébastien Mériot](https://github.com/PandiPanda69/edu-insa-srs/blob/main/tp3-ids.md)) ----------------------------- ### Installation @@ -257,53 +304,4 @@ A présent, ouvrez les préférences de Firefox puis dans l'onglet _General_, ch Cette configuration n'est pas très sécurisée. En effet, un utilisateur peut décider facilement de contourner la politique de sécurité en supprimant l'utilisation du proxy. Comment feriez-vous pour que l'utilisation de ce proxy ne soit pas contournable ? - - -Prelude-manager (concentrateur) -------------------------------- - -Prelude-manager est un concentrateur d'alertes. Il utilise le format d'alerte IDMEF et Suricata et OSSEC savent lui remonter leurs alertes. Le jumelage entre le manager et les sondes est réalisé via un échange [TLS SRP](https://en.wikipedia.org/wiki/TLS-SRP) géré par `prelude-admin`. - -Lors du jumelage, chaque sonde conserve un profil local (`/etc/preludes/profiles//`) contenant sa configuration et son matériel cryptographique (certificat, clés). Le manager, lui, a signé le certificat (avec sa clé privée) mais ne conserve pas de liste des sondes enregistrées. `prelude-admin list -l` permet de lister les profils actuellement configurés sur la machine locale. - -Pour jumeler une sonde au manager, il faut : - -* côté manager (router) : `prelude-admin registration-server prelude-manager` -* côté sonde : `prelude-admin register "idmef:w" --uid 0 --gid 0`, avec - * `` : nom du profil, suricata pour Suricata et OSSEC-DMZ pour OSSEC - * `` : l'IP du manager - - - - -Prewikka (interface web de visualisation) (non fonctionnel sur MI-LXC-v20211014, fonctionnel sur MI-LXC-v1.3.1) ------------------------------------------ - -Prewikka est une application web permettant la visualisation de l'état des sondes enregistrées ainsi que des alertes. Il est installé sur la machine `target-router`. Il doit être démarré avec `prewikka-httpd` et est ensuite accessible depuis le navigateur d'un poste de travail interne (par exemple `target-admin`) à l'URL `http://router:8000`. Le compte est admin/admin (bien sûr, la première étape dans un vrai déploiement est de changer cela...). - -Il faut ensuite lancer prelude-manager (sur router) : `service prelude-manager start`. - -Par défaut, la liste des agents (les sondes), accessible dans le menu en haut à gauche, est vide. Il faut ajouter Suricata (activer prelude dans la configuration suricata `/etc/suricata/suricata.yaml` en y cherchant la chaîne "prelude" puis `service suricata restart`) puis OSSEC (activer prelude dans la configuration OSSEC `/var/ossec/etc/ossec.conf` en y cherchant la chaîne "prelude" puis `service ossec restart`). - -Vous pouvez ensuite visualiser des événements. Si tout n'apparaît pas, quelques restarts de services peuvent faire tomber en marche ! - -Prelude-correlator (corrélation) --------------------------------- - -Jumelage avec le manager : `prelude-admin register prelude-correlator "idmef:rw" 127.0.0.1 --uid 0 --gid 0` (accès read/write cette fois-ci car la corrélation nécessite la lecture des alertes remontées et l'écriture de nouvelles alertes). Puis relancer le service prelude-correlator. - -Une règle de corrélation est en fait un script python. Vous trouverez un exemple dans `/usr/share/doc/prelude-correlator/examples`. Pour l'installer, tapez : - -* `python setup.py build` -* `python setup.py install` - -Puis dans `/etc/prelude-correlator/prelude-correlator.conf`, ajoutez : -``` -[MyPlugin] -disable=false -``` - -Enfin, relancez prelude-correlator. Une documentation plus complète est disponible [ici](https://www.prelude-siem.org/projects/prelude/wiki/PreludeCorrelator). YOLO ! - - _Crédits : certaines parties ont été inspirées de sujets de [Guillaume Hiet](http://guillaume.hiet.fr/)_