Sécurité des applications Web - Menaces et contre-mesures

Auteur: Mohamed CHINY Durée necessaire pour le cours de Sécurité des applications Web - Menaces et contre-mesures Niveau recommandé pour le cours de Sécurité des applications Web - Menaces et contre-mesures Supports vidéo non disponibles pour ce cours Exercices de renforcement non disponibles pour ce cours Quiz non disponibles pour ce cours

Page 4: Attaque XST (Cross Site Tracing)

Toutes les pages

Cross Site Tracing - XST

Définition

L'attaque XST (pour Cross Site Tracing) est une attaque dérivée du XSS. Elle a pour objectif d'exploiter la méthode HTTP trace qui consiste à renvoyer au client l'écho de sa requête. Il s'agit en fait d'une méthode très rarement utilisée, voir supprimée de nombreux serveurs Web. Cependant, elle est toujours présente sur le serveur Apache.

Cette attaque a été forgée par les pirates pour pouvoir voler les cookies de la victime. En effet, j'avais mentionné que l'attaque XSS permettait jusqu'à un certain moment de subtiliser les cookies des clients, mais cette pratique ne marche plus vu que les cookies sont devenues exclusivement récupérables via des requêtes HTTP (HTTP Only).

XST exploite un script AJAX qui n'est rien d'autre qu'un bout de code Javascript mais qui a la possibilité de passer des requêtes HTTP au serveur (notamment la requête trace). Ce script AJAX est déposé sur le serveur de la même manière qu'un script XSS (via les formulaires ou l'URL). Quand la victime le charge, sans le vouloir, il envoie une requête au serveur avec la méthode trace, sachant que cette requête renferme plein d'informations y compris le cookie propre au site visité. Celui-ci sera renvoyé au client par le serveur (puisque c'est le principe de fonctionnement de la méthode trace: envoyer l'écho de la requête). Le pirate fait alors en sorte de l'intercepter en chemin par d'autres attaques comme TCP Session Hijacking et le tour est joué.

Si le pirate subtilise le cookie du client, alors il peut tout simplement usurper son identité auprès du site qui a généré ce cookie là. Il peut alors se passer de l'authentification et accéder directement à l'espace personnel de la victime.

Comment s'en protéger?

Au niveau du code PHP

On procédera exactement aux mêmes contre-mesures vues pour le XSS qui se base principalement sur le contrôle et le filtrage des entrées des clients

Au niveau de la configuration du serveur.

Puisque la méthode trace n'est plus d'actualité, alors il faut la désactiver sur le serveur Apache. Par défaut elle est désactivée, mais mieux vaut en avoir le coeur net.

Pour ce faire on se rend sur le fichier security (souvent placé sur /etc/apache2/conf.d/security) et on ajoute (modifie) la ligne suivante comme ceci:
TraceEnable Off