Masquage d'identité du serveur
Le changement d'identité du serveur Web est souvent une technique qui aide souvent à ralentir et à confondre les attaquants. Les serveurs Web envoient généralement leur identité avec chaque réponse HTTP dans l'en-tête Server. Apache est particulièrement utile ici, non seulement en envoyant son nom et sa version complète par défaut, mais il permet également aux modules de serveur d'ajouter leurs versions également.
Pour changer l'identité du serveur Web Apache, vous devez entrer dans le code source, trouver où le nom "Apache" est codé en dur, le changer et recompiler le serveur. Le même effet peut être obtenu en utilisant
Directive SecServerSignature:
SecServerSignature "Microsoft-IIS/5.0"
Il convient de noter que même si cela fonctionne assez bien, des attaquants (et outils) qualifiés peuvent utiliser d'autres techniques pour "prendre les empreintes digitales" du serveur Web. Par exemple, les fichiers par défaut, les messages d'erreur, l'ordre des en-têtes sortants, la façon dont le serveur répond à certaines demandes et similaires - peuvent tous révéler la véritable identité. Je chercherai à améliorer encore la prise en charge du masquage d'identité dans les futures versions de mod_security.
Si vous modifiez la signature Apache mais que vous êtes ennuyé par l'étrange message dans le journal des erreurs (certains modules sont toujours visibles - cela n'affecte que le journal des erreurs, de l'extérieur, il fonctionne toujours comme prévu):
[Fri Jun 11 04:02:28 2004] [notice]
Microsoft-IIS/5.0 mod_ssl/2.8.12
OpenSSL/0.9.6b \ configured --
resuming normal operations
Ensuite, vous devez réorganiser l'ordre de chargement des modules pour permettre à mod_security de s'exécuter en dernier, exactement comme expliqué pour le chrootage.
Remarque
Pour que cette directive fonctionne, vous devez laisser / définir ServerTokens sur Full.
Lorsque la directive SecServerSignature est utilisée pour modifier la signature du serveur public, ModSecurity commencera à écrire la vraie signature dans le journal des erreurs, pour vous permettre d'identifier le serveur Web et les modules utilisés.
Si vous définissez
ServerTokens
sur "Prod
", vous pouvez réduire l'en-tête sur "Server: Apache
". Voir la documentation pour la liste complète des options:Documentation pour Apache 2.2
Documentation pour Apache 2.4
Remarque: Les paramètres sont les mêmes dans les deux versions, mais la documentation 2.4 ajoute cette note:
Si vous souhaitez supprimer complètement le mot "Apache", vous devrez modifier la source.
la source