Nous allons voir comment cacher la version d’Apache et du système d’exploitation (version de Linux activée) envoyée dans les entêtes HTTP lors qu’une requête.
Pourquoi cacher la version d’Apache ou du Linux ?
Lorsqu’un pirate (ou un robot) tente de s’attaquer à votre système, l’une des informations la plus importante pour lui est la version des logiciels que vous utilisez. En effet, ceci est un bon indicateur si des failles de sécurité existent (même si votre système est à jour, vous n’êtes pas à l’abri d’une faille 0-DAY) .
Comme nous allons le voir, cacher la version de son serveur web Apache est très simple, alors nous vous conseillons de le faire dès que vous êtes en production.
Comment savoir si j’affiche la version de mon serveur Web ou OS ?
Depuis un Linux distant, avec la commande curl
Il existe plusieurs méthodes pour voir la version de serveur Web renvoyée par votre serveur. La première est de lancer une simple commande depuis un serveur Linux distant :
curl -I ADRESSE_OU_IP
Vous aurez dans le résultat une ligne commençant par Server
Par exemple :
Server: Apache/2.4.10 (Debian)
Dans ce cas, nous voyons non seulement la version d’Apache, mais également qu’il s’agit d’un serveur Debian.
Note : il est possible d’avoir la commande curl sur MacOSX ou Windows.
Dans une page d’erreur
Il est en général possible de générer une page d’erreur sur le serveur en appelant une page qui n’existe pas depuis son navigateur.
Dans notre cas, on voit la version d’apache et Debian apparaitre.
Autre
Il est également possible d’utiliser des plugins de navigateur ou outils en ligne nous pouvons citer par exemple https://www.wappalyzer.com/
Les outils de Hacking comme Nessus ou Nmap permettent également de récupérer cette information
Cacher les informations de version dans Apache
Pour modifier l’option d’affichage de la version il faut changer la configuration d’Apache.
Sur Debian et ubuntu, il faudra modifier le fichier /etc/apache2/conf-enable/security.conf pour changer l’option ServerTokens et la passer en mode production (Prod)
ServerTokens Prod
Il faut également modifier l’option ServerSignature :
ServerSignature Off
Les différentes options
ServerTokens Full
Server: Apache/2.4.48 (Debian) OpenSSL/1.1.1k
ServerTokens OS
Server: Apache/2.4.48 (Debian)
ServerTokens Minimal
Server: Apache/2.4.48
ServerTokens Minor
Server: Apache/2.4
ServerTokens Major
Server: Apache/2
ServerTokens Prod
Server: Apache
Et pour le PHP
Il est conseillé de changer également le paramétrage de PHP en modifiant les options suivantes dans le fichier php.ini
expose_php = Off error_reporting =E_ALL & ~E_DEPRECATED & ~E_STRICT
TODO : FAIRE UN Outils EN LIGNE