Cross-site cooking

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Dans une attaque cross-site cooking, l'attaquant utilise un bug du navigateur pour envoyer un cookie non valide au serveur.

Le cross-site cooking est un type d'exploit des navigateurs Web, dans lequel un site Web crée un cookie dans le domaine d'un autre site, ce qui n'est normalement pas réalisable. En effet, lorsqu'un navigateur accepte un cookie provenant d'un serveur, il accepte en même temps des informations qui lui permettent d'identifier le serveur et de lui associer le cookie, afin que seul le site web correspondant ait accès au cookie. Le cross-site cooking repose donc sur une interaction entre deux sites Web.

Cet exploit permet notamment l'usurpation d'identité au moyen d'attaque par fixation de session.

Origine[modifier | modifier le code]

Le nom et le concept de cross-site cooking a été présenté par Michal Zalewski en 2006[1]. Le nom est un mélange entre cookie et cross-site, afin d'exprimer la manipulation des cookies entre sites web.

Dans son article de 2006, Michal Zalewski attribue la découverte de cette faille à Benjamin Franz, et déplore que la gestion de la sécurité des cookies soit seulement du côté client, c'est-à-dire que les serveurs acceptent les headers de cookie communiqués par les navigateurs via les requêtes HTTP sans aucune vérification.

Exemple[modifier | modifier le code]

Une attaque cross-site-cooking pourrait se dérouler ainsi. Alice utilise régulièrement le site A sur lequel elle s'identifie de manière sécurisée (site bancaire par exemple).

  1. Oscar incite Alice à visiter le site B, qui envoie au navigateur un cookie d'identifiant de session au nom du site A.
  2. Oscar incite Alice à visiter le site A.
  3. Lorsque Alice se connecte sur le site A avec l'identifiant de session que lui a communiqué le site B, Oscar a alors accès au compte d'Alice grâce à l'identifiant de session.

Ce type d'attaque peut être couplé à du phishing. Par exemple, le site B pourrait être fortement semblable au site A et rediriger Alice vers le site A après lui avoir communiqué l'identifiant de session.

Exemples de contre-mesure[modifier | modifier le code]

  • Associer à l'identifiant de session l'adresse IP. Cela empêcherait Oscar de se connecter au compte d'Alice à moins qu'il n'ait la même adresse IP.
  • Générer une nouvelle session à chaque connexion. Oscar n'aurait alors plus le bon identifiant de session.
  • Permettre à Alice de se déconnecter du site, et détruire alors le cookie d'identifiant de session.

Références[modifier | modifier le code]

  1. (en) Browsers face triple threat(Techworld.com)

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]

  • Cross-Site Cooking article de Michal Zalewski. Les détails du principe, trois bugs qui permettent le cross-site cooking.