AccueilđŸ‡«đŸ‡·Chercher

Cross-site request forgery

En sécurité des systÚmes d'information, le cross-site request forgery, abrégé CSRF (parfois prononcé sea-surf en anglais) ou XSRF, est un type de vulnérabilité des services d'authentification web.

L’objet de cette attaque est de transmettre Ă  un utilisateur authentifiĂ© une requĂȘte HTTP falsifiĂ©e qui pointe sur une action interne au site, afin qu'il l'exĂ©cute sans en avoir conscience et en utilisant ses propres droits. L’utilisateur devient donc complice d’une attaque sans mĂȘme s'en rendre compte. L'attaque Ă©tant actionnĂ©e par l'utilisateur, un grand nombre de systĂšmes d'authentification sont contournĂ©s.

Illustration

Supposons qu'Alice soit l'administratrice d'un forum et qu'elle soit connectĂ©e Ă  celui-ci par un systĂšme de sessions. Malorie est un membre de ce mĂȘme forum, elle veut supprimer un des messages du forum. Comme elle n'a pas les droits nĂ©cessaires avec son compte, elle utilise celui d'Alice grĂące Ă  une attaque de type CSRF.

  • Malorie arrive Ă  connaitre le lien qui permet de supprimer le message en question.
  • Malorie envoie un message Ă  Alice contenant une pseudo-image Ă  afficher (qui est en fait un script). L'URL de l'image est le lien vers le script permettant de supprimer le message dĂ©sirĂ©.
  • Alice doit avoir une session ouverte dans son navigateur pour le site visĂ© par Malorie. C'est une condition requise pour que l'attaque rĂ©ussisse de façon silencieuse sans requĂ©rir une demande d'authentification qui alerterait Alice. Cette session doit disposer des droits requis pour exĂ©cuter la requĂȘte destructrice de Malorie. Il n'est pas nĂ©cessaire qu'un onglet du navigateur soit ouvert sur le site cible ni mĂȘme que le navigateur soit dĂ©marrĂ©. Il suffit que la session soit active.
  • Alice lit le message de Malorie, son navigateur utilise la session ouverte d'Alice et ne demande pas d'authentification interactive. Il tente de rĂ©cupĂ©rer le contenu de l'image. En faisant cela, le navigateur actionne le lien et supprime le message, il rĂ©cupĂšre une page web texte comme contenu pour l'image. Ne reconnaissant pas le type d'image associĂ©, il n'affiche pas d'image et Alice ne sait pas que Malorie vient de lui faire supprimer un message contre son grĂ©.

Caractéristiques

Les caractéristiques du CSRF sont un type d'attaque qui :

  • implique un site qui repose sur l'authentification globale d'un utilisateur ;
  • exploite cette confiance dans l'authentification pour autoriser des actions implicitement ;
  • envoie des requĂȘtes HTTP Ă  l'insu de l'utilisateur qui est dupĂ© pour dĂ©clencher ces actions.

Pour résumer, les sites sensibles au CSRF sont ceux qui acceptent les actions sur le simple fait de l'authentification à un instant donné de l'utilisateur et non sur une autorisation explicite de l'utilisateur pour une action donnée.

Il est important de souligner que ces attaques peuvent aussi ĂȘtre menĂ©es sur des intranets pour permettre Ă  un attaquant de rĂ©cupĂ©rer des informations sur ledit intranet.

Prévention

  • Demander des confirmations Ă  l'utilisateur pour les actions critiques, au risque d'alourdir l'enchaĂźnement des formulaires.
  • Demander une confirmation de l'ancien mot de passe Ă  l'utilisateur pour changer celui-ci ou changer l'adresse mail du compte.
  • Utiliser des jetons de validitĂ© (ou Token) dans les formulaires. Ce systĂšme d'autorisation est basĂ© sur la crĂ©ation d'un token via le chiffrement d'un identifiant utilisateur, un nonce et un horodatage. Le serveur doit vĂ©rifier la correspondance du jeton envoyĂ© en recalculant cette valeur et en la comparant avec celle reçue[1].
  • Éviter d'utiliser des requĂȘtes HTTP GET pour effectuer des actions : cette technique va naturellement Ă©liminer des attaques simples basĂ©es sur les images, mais laissera passer les attaques fondĂ©es sur JavaScript, lesquelles sont capables trĂšs simplement de lancer des requĂȘtes HTTP POST.
  • Effectuer une vĂ©rification du rĂ©fĂ©rent dans les pages sensibles : connaĂźtre la provenance du client permet de sĂ©curiser ce genre d'attaques. Ceci consiste Ă  bloquer la requĂȘte du client si la valeur de son rĂ©fĂ©rent est diffĂ©rente de la page d'oĂč il doit thĂ©oriquement provenir.

Notes et références

  1. (en) « CSRF Prevention Cheat Sheet », sur https://github.com, (consulté le )

Voir aussi

Articles connexes

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.