Centreon : Protégez votre front-end des 0-day avec mod_security

0day exploit

Votre front-end centreon est disponible sur le web pour que vos client puissent accéder à leur supervision. Pour cela, Vous avez placé un reverse proxy en DMZ qui communique avec votre Centreon, mis en place des règles sur votre firewall pour vous protéger contre les vilains pirates. Pour aller plus loin, je vous propose de mettre en place un WAF (Web Application Firewall), qui, comme son nom l’indique, scrutera tout ce qui entrera et qui sortira de votre application afin de prévenir d’un bon nombre d’attaques. Nous utiliserons Mod_security, un module apache, capable de détecter les attaques connues : XSS (cross site scripting), SQL injections … mais également de détecter les attaques encore inconnues : Zero-Day. Mod_security permet également de logger toutes les attaques & de faire du monitoring temps réel. Trêve de blabla, voyons comment installer mod_security et l’utiliser pour Centreon.

Pour ce tutorial, j’ai utilisé la version 2.3.8 de centreon, qui est une version faillible aux injections SQL.

Installation de Mod_security

On commence par installer les pré-requis :

# yum install gcc make libxml2 libxml2-devel httpd-devel pcre-devel curl-devel git

Puis, nous installons la dernière version de mod_security :

# wget https://www.modsecurity.org/tarball/2.7.5/modsecurity-apache_2.7.5.tar.gz
# tar xvzf modsecurity-apache_2.7.5.tar.gz
# cd modsecurity-apache_2.7.5
# ./configure
# make
# make install

La dernière version de mod_security est installée, passons maintenant à la configuration.

Configuration de Mod_security

Nous exportons les fichiers de configuration par défaut vers le répertoire de mod_security.
# cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
Ensuite, nous ajoutons le module mod_security dans le fichier de configuration d’apache :
# vim /etc/httpd/conf/httpd.conf
// Ajouter la ligne suivante dans la section des modules :
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so
Maintenant, nous allons utiliser les fichiers de configuration fournis par l’OWASP pour mod_security qui permettent de se protéger contre un grand nombre d’attaques. l’OWASP est une communauté ayant pour objectif la sécurité. Ils proposent une multitude de standards et de best-practices pour se prémunir d’un grand nombre d’attaques.
# cd /etc/httpd
# git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
# mv owasp-modsecurity-crs modsecurity-crs
# cd modsecurity-crs
# cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf
Puis, nous éditons notre fichier de configuration apache pour mod_security:
# vim /etc/httpd/conf.d/mod_security.conf
<IfModule security2_module>
Include modsecurity-crs/modsecurity_crs_10_config.conf
Include modsecurity-crs/base_rules/*.conf
# Default action set
SecFilterDefaultAction “deny,log,status:406”
</IfModule>

On redémarre apache :

# service httpd restart

Test de mod_security avec Centreon

Pour tester le bon fonctionnement de mod_security, j’ai désactivé le module, et lancé un exploit sur mon front-end Centreon. L’exploit utilisé demande un PHPSESSID valide (en cours d’utilisation sur centreon). A partir de ce PHPSESSID, l’exploit va lancer une injection SQL sur une page faillible et extraire le HASH du password administrateur. Voici le résultat :

exploit Centreon

L’exploit a bien extrait le hash de mon password d’administration, en voici la preuve :

exploit centreon 2.3.X

Aucune difficulté, ça nous a pris 700 secondes, il ne reste plus qu’à utiliser un MD5 cracker ou une rainbowtable :).

Maintenant nous activons mod_security et répétons l’opération :

Nous ouvrons les logs de mod_security et pouvons-voir une attaque de type injection SQL :

sql injection mod_security

Maintenant que les attaques sont détectées, il ne reste plus qu’à installer fail2ban, et à créer une règle relative à mod_security.

Notre Front-End Centreon est maintenant sécurisé grâce à Mod_Security;)

N’hésitez pas à commenter, faire vos remarques et partager ;)

About Alexandre Nogard

Check Also

Owncloud 9.X : Sécurisez votre serveur avec Fail2Ban sur Centos 7.X – Part3

Dans ce tuto, nous allons voir comment protéger Owncloud 9.X des brutes-forces sur les tentatives …

Centreon : EventHandler Restart de Borne Wifi / DECT automatique Cisco & Ascom

Vous est il déjà arrivé d’avoir des bornes Wifi / DECT qui perdent la connexion, …

OpenVAS : Configuration & Utilisation sur CentOs 7 – Part 2

OpenVAS est installé sur notre CentOs 7, nous allons maintenant aborder la partie configuration et …

Leave a Reply

Your email address will not be published. Required fields are marked *