Les attaques de type Cross Site Request Forgery (CSRF)

Les attaques de type Cross Site Request Forgery (CSRF)

Une attaque de type Cross Site Request Forgery (CSRF), utilisée par les pirates, consiste en l'expédition de données ou d'instructions à un site en passant par un utilisateur.

Même si les attaques CSRF représentent moins de 1% des attaques, elles sont extrêmement dangereuses, car elles se font à l'insu de l'utilisateur et s'attaquent directement à la couche applicative des sites.

Une attaque de type Cross Site Request Forgery (CSRF), utilisée par les pirates, consiste en l'expédition de données ou d'instructions à un site en passant par un utilisateur.  Puisque l’utilisateur est connu et qu’il est déjà authentifié sur le site visé par l’attaque, les instructions et données que le site reçoit sont considérées légitimes.

Pour ce faire, le pirate crée des formulaires, du code JavaScript, des images et des liens qu’il insère à différents endroits sur Internet.  Lorsque l’utilisateur consulte ou utilise une page infectée, le navigateur (browser) de l’utilisateur communique avec le site visé par l’attaque.  Il transmet en même temps les informations contenues dans le « cookie » de l’utilisateur, incluant ses informations de session.

Cette forme d’attaque peut entraîner pour l’utilisateur la perte de données, des transactions frauduleuses et le vol de son identité.

Solutions pour l'utilisateur

  • Éviter d’utiliser l’option « Remember Me » présente sur les sites.
  • Utiliser la fonction de déconnexion proposée par les sites sur lesquels l’internaute s’identifie.
  • Ne pas utiliser de formulaire ou ne pas cliquer sur des liens qui ne paraissent pas authentiques.

Solutions pour les développeurs

La première mesure consiste à ne pas utiliser les requêtes de type « PUT » du protocole HTTP afin de provoquer un changement d’état ou la modification de données sur le site.  Ainsi, les paramètres reçus dans l’URL ou en  « Querystring » seront rejetés empêchant ainsi l’utilisation de liens ou d’images dans les attaques.

La seconde mesure consiste à utiliser les requêtes de type « POST » du protocole HTTP, en combinaison avec une clé d’authentification unique (authenticity_token), générée à chaque requête, à partir des informations de session et d’un code secret entreposé sur le serveur.  Si au moment de la réception d’un formulaire, le site Internet considère la clé reçue comme étant invalide, il ignore la transaction.


Références et ressources :

Catégorie : Interactif

Auteur :