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
# cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
# 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
# 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
# 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 :
L’exploit a bien extrait le hash de mon password d’administration, en voici la preuve :
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 :
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 ;)