En voilà une drôle d’idée. Ce petit hack va vous permettre de sécuriser votre serveur web. En effet des petits malins scan en permanence le web à la recherche de serveurs à pirater. Avec ce hack ceux qui tomberont sur le vôtre vont faire une drôle de tête.
Il existe de nombreux sites web, scripts à utiliser pour déterminer le type de serveur web (apache, IIS, Nginx, Litespeed, ..) ainsi que leurs versions. Cela permet d’adapter et de préparer son attaque ou de rechercher des failles. Mais si ces scripts retournent un nom fantaisiste ou erroné la tâche du hacker sera plus rude. Démonstration.
CentralOps est un site web qui permet de tester beaucoup de choses sur un serveur. Notamment les ports ouverts. Donc passons notre serveur de test à la moulinette.
Vous pouvez accéder au site via cette URL : http://centralops.net/co/DomainDossier.aspx
L’utilisation est très simple, saisissez votre adresse ip (1), sélectionner Service Scan (2), puis cliquer sur GO (3). Au bout de quelques secondes vous avez des informations sur les principaux services d’un serveur web , pop, smtp, ftp, …
Nous voyons ici que le serveur web est un serveur apache V2.2.15 tournant sous CentOS. Juste avec ces infos un hackeur peut préparer et adapter son attaque en fonction des failles de la version et de l’OS. Il faut donc sécuriser votre serveur web.
Voyons maintenant comme modifier l’en-tête d’un serveur Apache en utilisant le module ModSecurity.
- Etape 1 : Posséder un serveur LAMP sous CentOS (Avec les autres versions cela fonctionnent, juste l’emplacement des fichiers peuvent changer).
- Etape 2: Installer le module ModSecurity.
Pour installer ce module vous devez préalablement installer des dépendances.
#yum install gcc make #yum install libxml2 libxml2-devel httpd-devel pcre-devel curl-devel
Ensuite on télécharge la dernière version du module Mod_Security à cette adresse : http://www.modsecurity.org/download/. Actuellement (01/05/2018), nous en sommes à la version V3.0, ce tutoriel se base sur la version V2.7.7
#cd /temp #wget https://www.modsecurity.org/tarball/2.7.7/modsecurity-apache_2.7.7.tar.gz
Ensuite on procède à l’extraction et à la compilation du module.
# tar xzf modsecurity-apache_2.7.7.tar.gz
#cd modsecurity-apache_2.7.7 #./configure
#make install
Une fois votre module installé, copier le fichier modsecurity.conf-recommended dans le répertoire de configuration de votre serveur Apache.
#cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
Maintenant vous devez charger ce nouveau module dans la configuration Apache de votre serveur. Pour cela il suffit d’éditer le fichier httpd.conf (/etc/httpd/conf/) et de rajouter la ligne suivante :
#LoadModule security2_module modules/mod_security2.so
- Etape 3 : Installer le module OWASP CRS
Nous allons utiliser l’utilitaire git pour télécharger la dernière version du module OWASP CRS. Par défaut il n’est pas installé sous CentOS. Vous pouvez le faire via la commande : yum install git-core.
Avant d’installer le module, vous devez aller dans le répertoire /etc/httpd/. Ensuite utiliser la commande git pour télécharger OWASP CRS.
# git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
Ensuite renommer le répertoire comme indiqué ci-dessous :
# mv owasp-modsecurity-crs modsecurity-crs
Ensuite créer un fichier de configuration en utilisant le fichier de configuration existant :
# cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf
Enfin éditer le fichier /etc/httpd/conf/httpd.conf. Aller à la fin du fichier et ajouter ces lignes :
<IfModule security2_module> Include modsecurity-crs/modsecurity_crs_10_config.conf Include modsecurity-crs/base_rules/*.conf </IfModule>
Vous pouvez maintenant redémarrer Apache :
#service httpd restart
Le module OWASP CRS vous permet de :
- de détecter les violations du protocole http.
- définir en temps réel une blacklist d’IP en fonction de leur réputation.
- d’identifier le contenu web malveillant.
- d’identifier les erreurs de configuration des applications.
- de se protéger contre les attaques de déni de service (DOS).
- d’automatiser la détection des bots, robots, scanners et autre scripts malveillants.
- de détecter la présence de cheval de Troie.
- de vérifier les fichiers uploader.
- de cacher ou modifier les erreurs renvoyées par le serveur.
En ce qui nous concerne dans ce tutoriel, nous voulons changer la signature du serveur web Apache. Maintenant nous avons tous les modules nécessaires d’installés.
Editer le fichier modsecurity_crs_10_config.conf et ajouter la ligne suivante à la fin de la section Rule Version.
#vim /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf #SecServerSignature votre_nom
Changer votre_nom par ce qui vous plait, par exemple (attention à ne pas mettre trop long comme nom sinon la chaine ne sera pas prise en compte).
Enfin redémarrer le serveur apache. Et connectez-vous sur le site CentralOps pour vérifier si la signature de votre serveur web a bien changé.
Même si cette protection ne fera pas reculer les plus pro des hackers, ils peuvent savoir quel logiciel vous utiliser pour votre serveur web avec d’autres méthodes notamment en générant une page d’erreur. Ce module permet de sécuriser votre site web lorsqu’on joue un peu avec les différentes options. Ce module est largement utilisé chez les hébergeurs.
That’s All.