Archives par mot-clé : ids

Nouvelle version de Prewikka sur debian testing

Plop à tous …

ça fait déjà depuis quelques temps que la version 1.0 de prewikka (le frontend python de l’IDS prelude) est présente dans les dépôts de testing, mais comme je viens seulement de faire la mise à jour … ^^. (Au passage, prelude a aussi été mise à jour 😉 et OSSEC est passé en 2.4 le mois dernier … il était donc temps de mettre à jour l’architecture de mon système de sécurité).
Continuer la lecture de Nouvelle version de Prewikka sur debian testing

Sécuriser un blog WordPress par un IPS avec wpsyslog2 et ossec

Adeptes de l’utilisation du bazooka pour tuer une mouche ? Ou de l’utilisation d’IDS/IPS pour sécuriser votre blog visité par 5 personnes par an ?? wpsyslog2 est l’extension WordPress faite pour vous.

Petite mise en bouche en image (contenu du syslog et screen du module dans wordpress) :

wpsyslog2wpsyslog1

Pour cela, il suffit d’installer la dernière version de l’IPS Ossec (qui peut être couplé avec le manager de prelude).

Ayant déjà installé prelude en suivant mon tuto (‘tention recursivité powaaa!!!), la manip a été la suivante :

apt-get install libprelude-dev
wget http://www.ossec.net/files/ossec-hids-2.2.tar.gz
tar -xvf http://www.ossec.net/files/ossec-hids-2.2.tar.gz
cd ossec-hids-2.2/src
make setprelude
cd ..
sh install.sh

(Pour ceux qui n’ont (et ne veulent) pas installer prelude, il faut juste faire le wget, le sh install.sh et installer le module wpsyslog2 sur votre blog)

Pour l’install.sh, choisir le mode « local », et installer le logiciel où vous voulez.
Ensuite pour accoupler la bestiole avec prelude :

screen -R manager
prelude-adduser registration-server prelude-manager
CTRL+A puis D
screen -R register
prelude-adduser register OSSEC "idmef:w" localhost --uid ossec --gid ossec
CTRL+A puis D
screen -r manager

Attendre la fin de la création de la clé et suivre la manipulation pour le one-time-password généré (voir mon premier tuto pour prelude), puis modifier la configuration de ossec pour sortir les logs dans prelude.
Ajouter :

<prelude_output>yes</prelude_output>
  <prelude_profile>OSSEC</prelude_profile>
  <prelude_log_level>6</prelude_log_level>

Dans le fichier /var/ossec/etc/ossec.conf, entre les balises global.
Puis démarrer par un sympatique /var/ossec/bin/ossec-control start (ou suivant l’install /etc/init.d/ossec start) qui doit renvoyer ceci :

Starting OSSEC HIDS v2.2 (by Trend Micro Inc.)...
21 Sep 15:33:36 (process:25711) INFO: Connecting to 127.0.0.1:4690 prelude Manager server.
21 Sep 15:33:36 (process:25711) INFO: TLS authentication succeed with Prelude Manager.
Started ossec-maild...
Started ossec-execd...
Started ossec-analysisd...
Started ossec-logcollector...
Started ossec-syscheckd...
Started ossec-monitord...
Completed.

Pour montrer qu’il s’est accouplé avec prelude (you’re 4 53X M4ch1N3!!!!).

Ensuite, il suffit d’installer le plugins wpsyslog2 sur votre blog (comme n’importe quel autre plugins), et hop go ban da world 😉 Le must … ça detecte aussi les commentaires refusés (spam), et on peut mettre en place des règles pour bannir les spammeurs 😉

Alors bon … pourquoi préférer Ossec vis-à-vis de prelude-lml ?

Pour ma part (étant un gros noob sur la question ^^), l’intérêt étant la possibilité offerte par défaut d’Ossec de ban les ip incriminés dans les logs (à partir d’un certain niveau de sévérité), alors que prelude se contente de logger les alertes (pas de réponses actives … c’est à peu près la différence entre un IDS avec le D de Détection et IPS avec le P de Prévention qui en plus de détecter, met en place des moyens plus ou moins complexe (ban ^^) pour bloquer les accès suivant de la source).

Pourquoi cette différences entre un IPS et un IDS ? (J’en sais rien ;)), dans certain cas il vaut mieux alerter et ne rien faire (genre un système bancaire qui va commencer à drop les transactions de certains clients ça le fait pas … quoique ;)).

Bé voilà bloggez bien 😉

PS: Un des autres trucs sympa, c’est les check system qui vérifient si des fichiers de configurations ont été modifiés depuis le dernier check (modifications du fichier host, de la config d’apache, des certificats d’openvpn, …). Si vous êtes plusieurs à administrer un serveur, ça peut être sympa pour avoir le suivi de l’administration de la bête.

[DEFCON17] Slides sur le Cross Site Scripting (XSS reminder)

Plop à tous

Un rapide lien today sur les XSS « favoris », je vais pas revenir sur les XSS, tout le monde sait ce que c’est ;), mais le ppt en question permet d’avoir une rapide vue d’ensemble des techniques (certaine plus avancée comme le  HPP – HTTP Parameter Pollution pour l’evasion d’IDS … moi qui était content du couple prelude/modsecurity ^^).

Bon bien sûr, le but de ce ppt n’était pas d’enseigner toutes les techniques, mais seulement d’informer pour permettre à son lecteur de faire ses propres recherches sur le domaine ;).

Sinon, les dernières diapos parlent d’elles-mêmes sur la sécurité (relative) qu’offrent les IDS dans le domaine du web, avec des règles comme :

utiliser ‘ or 2=2 — à la place de ‘ or 1=1 —
nommer les shells rofl.php à la place de c99.php
utiliser prompt(‘xss’) à la palce de alert(‘xss’)

C’est vrai que quand on regarde les filtres de modsecurity, il suffit de changer les noms ou les commandes balancés en paramètre et certaines attaques passent :s (je suis tout de même déçu par le modsecurity pour le HPP, un simple « join » du paramètre suffirait à bloquer l’attaque …).

Donc au lieu d’utiliser des sytèmes energivore pour sécuriser des sites web, il suffit de bien coder son site et comme ça on dort tranquille et on gagne en performance … (utopie quand tu nous tiens^^).

Sécurité : IDS Prelude et SNORT

Bijour …

Bé voilà … la dernière partie (ou pas) concernant l’IDS Prelude, et donc ici ben verra juste comment compiler SNORT et le connecter au prelude-manager.

Comme d’hab :
[sourcecode language=bash]
apt-get install make libpcre3-dev libpcap0.8-dev gcc libprelude-dev
cd /usr/src
wget http://dl.snort.org/snort-current/snort-2.8.4.1.tar.gz
tar -xvf snort-2.8.4.1.tar.gz
cd snort-2.8.4.1
./configure -enable-dynamicplugin –enable-prelude
make &amp;&amp; make install
mkdir /etc/snort
cp etc/* /etc/snort/
apt-get install snort-rules-default
[/sourcecode]
Ensuite il vous faut modifier le fichier /etc/snort/snort.conf et modifier les lignes concernant :
[sourcecode language=bash]
var RULE_PATH ../rules
var PREPROC_RULE_PATH ../preproc_rules
[/sourcecode]
et les remplacez par :
[sourcecode language=bash]
var RULE_PATH rules
var PREPROC_RULE_PATH preproc_rules
[/sourcecode]
Ensuite … c’est pareil que pour la synchronisation avec prelude-lml et prelude-correlator, ce qui donne :
[sourcecode language=bash]
screen -S registration
prelude-admin registration-server prelude-manager
[/sourcecode]
Notez le mot de passe, puis faites Ctrl+a puis d

screen
prelude-adduser register snort "idmef:w" 127.0.0.1 --uid 0 --gid 0

Après 15-20 minutes, donnez-lui le mot de passe demandé, ensuite faites Ctrl+a puis d, lancez un screen -r registration répondez y et si la réponse est « Registration successful » c’est bon … vous pouvez configurer snort et voir apparaitre les alertes sur prewikka (si vous l’avez configuré comme dans l’un de mes derniers tuto …).

Sécurité : Coupler l’IDS Prelude avec mod_security

Bijour …

Une (très)+ petite suite avec l’IDS Prelude (toujours pas snort ^^), pour pouvoir profiter des logs qu’écrit le mod-security, il faut mettre à jour un fichier :
/etc/prelude-lml/ruleset/modsecurity.rules
et le remplacer par celui que l’on peut trouver ici

Pour ce faire :
Il faut modifier le fichier /etc/prelude-lml/prelude-lml.conf
Cherchez la ligne :
qui correspond à :
file = /var/log/apache2/access.log
copiez-là en-dessous et changez access par error
ce qui devrait vous donner :
file = /var/log/apache2/access.log
file = /var/log/apache2/error.log
Puis :
[sourcecode language=bash]
cd /etc/prelude-lml/ruleset/
mv modsecurity.rules modsecurity.rules.bak
wget https://dev.prelude-ids.com/repositories/entry/prelude-lml/plugins/pcre/ruleset/modsecurity.rules?format=raw –no-check-certificate
mv modsecurity.rules\?format\=raw modsecurity.rules
/etc/init.d/prelude-lml restart
[/sourcecode]
Et ensuite, en allant sur l’url de votre prewikka (installé précédemment), vous devriez voir apparaitre toutes les erreurs/tentatives de hack/… qui sont effectuées sur votre serveur web.

Sécurité : Installation de l’IDS Prelude sur debian

Plop à tous …
Aujourd’hui je suis en forme alors … je fait un « gros tuto » ^^ from scratch, comme très peu de tuto sont à jour de ce côté là autant tout faire de zéro ;).

[La super intro trop naze]
Je dois tout d’abord avouer que je savais pas trop ce que c’était un IDS avant que je l’installe ^^ (enfin j’avais une petite idée, mais je ne m’attendais pas à un truc aussi complet avec prelude). Donc voilà ça sert à quoi ?? ça permet d’avoir une idée des menaces/évènement en « temps réel » sur votre réseau/machine, et avec prelude on peut faire pas mal de chose, que ce soit suivre l’authentification des utilisateurs sur le réseau jusqu’à la détection d’attaque sur un service en particulier (http, avec la possibilité de coupler la chose avec le mod_security), ou bien la « préparation » d’une attaque avec la détection des « Services Recognition » et encore plein d’autre réjouissance.

Pourquoi j’installe ça ?? C’est toujours et encore pour le super projet de licence en Dev ^^ (et ouai on fait du réseau en Dev :D). Et comme je savais que j’allais faire un tuto dessus, je me suis mis de côté la manipulation (ça peut toujours me servir).

Donc voilà, pour ce tuto il nous faut au moins un serveur (avec plusieurs se serait le pied, car on peut faire un truc tentaculaire en connectant plusieurs sondes/logger sur le prelude-manager, ce qui peut être très intéressant sur un grand réseau).
[/La super intro trop naze]

Pour commencer l’installation … tout débute par un gentil apt-get install comme toutes les histoires d’amour à la debian … par contre je vous conseil pas d’éxecuter la commande direct … autant y aller paquet par paquet (en suivant le tuto quoi …), parce que certain mettent pas mal de temps à s’installer.

Sinon, pour les barbares …
[sourcecode language=bash]apt-get install mysql-server prelude-manager prelude-lml prelude-correlator prewikka libapache2-mod-python librelude-dev snort-rules-default arpwatch screen[/sourcecode]

Donc vous remarquerez qu’il faut :

  • Un serveur apache (pas vraiment obligatoire, mais c’est super sympa avec prewikka) avec le mod python (et le mod_security si votre serveur est destiné à héberger des applications web)
  • Un serveur mysql (ça c’est malheureusement obligatoire, j’aurais bien voulu m’en passer mais bon …).
  • Prelude-lml est un logiciel qui va parser tous les logs (ou presque … faut configurer la chose quoi) de votre machine (on peut l’installer sur tous les serveurs d’un réseau, histoire d’avoir un bon suivi)
  • Prelude-manager est un logiciel qui s’occupe de tous centraliser (la logique voudrait qu’on en install qu’un seul ^^).
  • ArpWatch permet de détecter certaine attaque de type arp poisonning (assez sympa …)
  • Snort-rules-default qui contient pas mal de règle de détection …
  • Screen qui sera juste utilisé pour l’installation qui peut être longue … très longue 😉

Vous aurez remarqué que l’on installe pas snort … on compilera la version dont on a besoin dans un autre tuto plus tard.
Donc première chose que l’on fait :

[sourcecode language=bash]apt-get install mysql-server prewikka libapache2-mod-python librelude-dev snort-rules-default arpwatch screen[/sourcecode]

Répondez bien à toutes les questions (genre mots de passe de base de données, gardez-les dans un coin)

Installation de prelude-manager
[sourcecode language=bash]
apt-get install prelude-manager
[/sourcecode]
Lorsqu’il en est à :
prelude-manager
ça peut durer plusieurs minutes (pour ma part 20 minutes) … donc vous pouvez aller jouer à WoW … (on peut pas avancer sans lui …).

Installation de prelude-lml
Une fois le truc d’au-dessus terminé :
[sourcecode language=bash]
screen -S registration-lml
prelude-admin registration-server prelude-manager
[/sourcecode]
Cette commande vous donne un mot de passe qu’il faudra noter (c’est un One Time Password, c’est un mdp unique … c’est pour ça qu’il est resté dans le screenshot, il n’est plus valable ;)) … ce qui doit vous donner :
prelude-registration-server
On fait un Ctrl+a et ensuite d pour détacher la console et lancez

screen -S register-lml
apt-get install prelude-lml
prelude-admin register prelude-lml "idmef:w admin:r" 127.0.0.1 --uid 0 --gid 0

et voilà … vous pouvez jouer à WoW pendant une heure ou deux, puis lorsque la dernière commande vous demande un mot de passe :
prelude-otp-lml
Rentrez le mot de passe que vous avez noté, puis faites faite de nouveau Ctrl+a puis d et faite un screen -r registration-lml.
Il vous demandera si vous voulez autoriser la connexion, répondez y :
prelude-manager-otp-registration
Qui vous donnera normalement ceci :
registration-prelude-manager-ok

Tapez exit puis screen -r register-lml et si vous avez un beau Successful qui s’affiche c’est bon …
successful-prelude-lml
Tapez exit et passez à la suite …
C’est bon z’avez suivi ??? On continu ^^.

Installation de prelude-correlator

C’est pareil qu’au-dessus (et il ne me semble pas très utile donc vous pouvez zapper ^^), sinon :
[sourcecode language=bash]
screen -S registration-correlator
prelude-admin registration-server prelude-manager
[/sourcecode]
Notez le mot de passe et faites Ctrl + a puis d pour détacher le terminal et faites :

screen -S register-correlator
apt-get install prelude-correlator
prelude-admin register prelude-correlator "idmef:w admin:r" 127.0.0.1 --uid 0 --gid 0

et voilà … vous pouvez ENCORE jouer à WoW pendant une heure ou deux, puis lorsque la dernière commande vous demande un mot de passe rentrez celui que vous venez de noter.
Puis faites Ctrl + a et d puis screen -r registration-correlator et répondez y … si vous avez un beau Successfull qui s’affiche c’est bon … Je vous avez prévenu c’est du déjà vu ^^.

Donc maintenant on peut faire :
[sourcecode language=bash]
/etc/init.d/prelude-manager start
/etc/init.d/prelude-lml start
/etc/init.d/prelude-correlator start #si vous l’avez installé
[/sourcecode]
Et maintenant on passe à un truc cool histoire de se détendre les yeux avant de passer à la compilation de snort …

Installation de prewikka :

C’est un superbe frontend écrit en perl qui permet d’avoir l’ensemble des informations récupéré d’un coup d’oeil. Normalement, vous l’avez installé avec l’apt-get d’avant donc y’a juste à rajouter le module python dans apache (a2enmod python) et rajouter ce superbe VirtualHost à faire pâlir grand-mère :

Changez bien sûr le servername …


ServerName prewikka.mondomaine.org
ServerAdmin admin@domain.com

SetHandler mod_python
PythonHandler prewikka.ModPythonHandler
PythonOption PrewikkaConfig /etc/prewikka/prewikka.conf


SetHandler none

Alias /prewikka /usr/share/prewikka/htdocs
Alias /htdocs /usr/share/prewikka/htdocs

C’est violent hein ?? AVANT de redémarrer apache (sinon vous tomberez sur une page blanche qui boucle) ouvrez le fichier /etc/prewikka/prewikka.conf donnez les info de votre base de données renseignez normalement lors de l’installation de prelude-manager (si vous ne vous souvenez plus du mot de passe, regardez du côté de /etc/prelude-manager/prelude-manager.conf).

puis un gentil /etc/init.d/apache2 restart et logguez vous sur la page via le compte admin avec le mdp admin. Vous ne devriez pas avoir grand chose pour le moment … si ce n’est les deux logiciels « prelude-manager » et « prelude-lml ».

Voilà … la suite sera pour plus tard … sinon c’est l’indigestion …