Désactiver les requetes Trace et Track sur apache2
Par alex206, lundi 10 novembre 2008 à 16:48 :: Informatique :: #32 :: rss
La méthode TRACE est utilisée pour demander un loop-back de la requête émise à l'extrémité applicative distante. Le destinataire final de la requête DEVRAIT refléter le message retourné au client comme une entité du corps de donnée d'une réponse 200 (OK)
TRACK :
C'est une implémentation de la méthode Trace. Elle représente l'avantage énorme de retourner une entité avec un Content-type : message/http et un corps comme Trace, mais ne génère pas de log, contrairement a Trace (la ça se gatte un peu)
On obtiendra ainsi des informations sur le serveur en toute discrétion. En pratique, on pourrait imaginer l'envoi de cette méthode depuis un site de l'attaquant, par exemple en appliquant une exploit quelconque utilisant Trace, mais en remplaçant par Track.
Vous l'aurez compris, sur un serveur de production, il est plus que largement conseillé de désactiver les réponses à ces requêtes. Si vous testez la sécurité de votre serveur avec des outils comme par exemple nessus, il vous feront remarqué avec de jolies warning qu'il y a une vulnérabilité de ce coté ci. Pour apache2, après pas mal de recherche sur la toile d'araignée géante, j'ai trouvé deux possibilités pour bloquer ces requêtes. La première qui me parait la plus simple et accessoirement celle qui me plait le plus, consiste à éditer le fichier de configuration générale d'apache2 (/etc/apache2/apache2.conf sous debian et dérivés, ou httpd.conf chez les autres) pour y ajouter
Une fois ceci fait, le test en telnet nous répond bien par une erreur 403 aussi bien pour TRACE que pour TRACK.
Vous l'aurez compris, sur un serveur de production, il est plus que largement conseillé de désactiver les réponses à ces requêtes. Si vous testez la sécurité de votre serveur avec des outils comme par exemple nessus, il vous feront remarqué avec de jolies warning qu'il y a une vulnérabilité de ce coté ci. Pour apache2, après pas mal de recherche sur la toile d'araignée géante, j'ai trouvé deux possibilités pour bloquer ces requêtes. La première qui me parait la plus simple et accessoirement celle qui me plait le plus, consiste à éditer le fichier de configuration générale d'apache2 (/etc/apache2/apache2.conf sous debian et dérivés, ou httpd.conf chez les autres) pour y ajouter
TraceEnable offAprès un redémarrage de l'indien, si on fait un test avec nessus il nous dit ok c'est bon. Un test en telnet comme ceci :
telnet nomDNS_ou_ip_du_serveur 80 TRACE / HTTP/1.0 entrée 2 foisnous retourne une jolie erreur 403. Là où je deviens frileux, c'est que si je fais le test telnet en mettant TRACK en lieu et place de TRACE, j'obtiens toujours une réponse ok (code retour 200). Pour palier à ça, j'ai mis en place l'autre solution qu'on trouve sur le nid de soie, consistant à bloquer les redirections de type TRACE/TRACK en activant le module rewrite d'apache2 avec une règle qui va bien.
a2enmod rewritepuis soit dans le virtualhost principal, soit dans un fichier htacess à la racine du serveur web, on met :
RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F]N'oubliez pas de relancer l'indien si vous modifiez le vhost. Si vous utilisez le fichier htaccess, inutile de relancer le serveur, les modifications sont prises en compte instantanément. (pour peu que vous ayez redémarrez votre apache après l'ajout du module de redirection).
Une fois ceci fait, le test en telnet nous répond bien par une erreur 403 aussi bien pour TRACE que pour TRACK.
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.