Une attaque par falsification de requête intersite incite la victime à utiliser ses informations d'identification pour invoquer une activité de changement d'état.
Cet article s'articule autour des points suivants :
Contenu associé
Qu'est-ce que la sécurité des applications web ?
En quoi consiste le cross-site scripting ?
Attaque par force brute
violation de données
Tout savoir sur la SQL injection
Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !
Copier le lien de l'article
Une attaque par falsification de requête intersite est un type de cyberattaque * confuse qui incite un utilisateur à utiliser accidentellement ses informations d'identification pour invoquer une activité de changement d'état, telle que le transfert de fonds depuis son compte, la modification de son adresse e-mail et de son mot de passe, ou certaines autre action indésirable.
Si l'impact potentiel sur un utilisateur ordinaire est important, une attaque CSRF réussie contre un compte administratif peut compromettre un serveur entier, ce qui peut entraîner la prise de contrôle complète d'une application web, d'une API ou d'un autre service.
Cette attaque vise à cibler les demandes de changement d'état, c'est-à-dire le type de demande qui entraîne le passage d'une valeur à une autre. Par exemple, une requête ciblée peut effectuer un achat ou modifier une valeur dans un compte. Il est intéressant de noter qu'il s'agit d'une "attaque aveugle", qui ne renvoie pas de données à l'attaquant, ce qui en fait un mauvais choix pour vol de données.
Voici un exemple des 4 étapes d'une attaque de type "cross-site request forgery" :
Les attaques CSRF varient en termes de méthodologie, mais présentent généralement les caractéristiques suivantes :
Les différents verbes HTTP présentent une vulnérabilité variable aux attaques CSRF, ce qui entraîne des stratégies de protection variables. Ceci est dû à la façon dont les navigateurs web traitent les verbes différemment.
Les requêtes HTTP GET contiennent des paramètres intégrés, tels que ceux contenus dans les balises d'image, qui peuvent être manipulés et exploités. En général, les requêtes GET ne modifient pas l'état, ce qui les rend inefficaces comme cibles de CSRF pour une application web ou une autre ressource correctement implémentée.
HTTP POST est utilisé pour changer d'état, ce qui entraîne un besoin accru de protection. À cette fin, les navigateurs web mettent en œuvre des mesures de sécurité appelées "same origin policy" (SOP) et "cross origin resource sharing" (CORS) qui contient la politique de sécurité de l'origine croisée. La politique SOP n'autorise que les demandes provenant de la même origine et la politique CORS n'autorise que certains types de demandes provenant d'une origine différente. La combinaison de ces implémentations permet de prévenir les attaques CSRF (entre autres) en limitant la capacité d'une requête ou d'une page web à interagir avec une origine différente.
D'autres verbes HTTP, tels que PUT et DELETE, ne peuvent être exécutés qu'en utilisant SOP et CORS, ce qui atténue de nombreuses attaques intersites.
Bien que cela soit rare, certains sites Web désactivent explicitement ces mesures de sécurité. Il est également possible de les désactiver dans un navigateur Web.
La méthode la plus courante pour atténuer les attaques CSRF consiste à utiliser des jetons Anti-CSRF selon l'une des deux méthodes suivantes. Bien que les implémentations des jetons soient légèrement différentes, le principe sous-jacent reste le même ; en créant puis en comparant une chaîne de jetons générée de manière aléatoire, un attaquant a moins de chances de pouvoir réaliser une attaque sans une supposition exceptionnellement improbable.
Lorsqu'un utilisateur visite une page Web, telle que celle de la banque qui permet le transfert de fonds, le site Web de la banque intègre un jeton aléatoire dans le formulaire. Lorsque l'utilisateur soumet le formulaire, le jeton aléatoire est renvoyé et la banque est en mesure de vérifier si les deux jetons correspondent. Si les jetons correspondent, le transfert a lieu. L'attaquant n'a aucun moyen d'accéder à la valeur du jeton aléatoire créé dans la page Web, et s'il demande la page, la même politique d'origine l'empêcherait de lire la réponse.
L'inconvénient de cette méthode d'atténuation est qu'elle augmente la charge de travail du serveur qui doit vérifier la validité des jetons à chaque demande. Cela peut également créer des problèmes si un utilisateur a plusieurs fenêtres de navigateur ou d'autres conditions qui impliquent différents logiciels effectuant la demande. En élargissant le champ d'application du jeton à une session plutôt qu'à une demande, certaines de ces difficultés peuvent être évitées.
Une autre méthode consiste à envoyer au navigateur web du visiteur un cookie contenant un jeton aléatoire. Le JavaScript opérant côté client lira la valeur du jeton dans le cookie et la copiera dans un en-tête HTTP qui sera envoyé avec chaque demande. Si une demande authentique est envoyée par l'utilisateur, la valeur de l'en-tête peut être vérifiée par le serveur. Toute autre instance échouera, ce qui atténuera la réussite de l'attaque.
En utilisant des règles personnalisées via un WAF , les utilisateurs peuvent contribuer à prévenir certaines attaques CSRF. Explorez le Web Application Firewall de Cloudflare.
Un adjoint confus fait référence à un programme informatique qui est trompé et qui abuse de son autorité. Le risque associé à ce type de vulnérabilité est la raison pour laquelle la sécurité basée sur les capacités permet de réduire les risques liés à l'abus. Lors de l'installation d'un logiciel, par exemple, la plupart des ordinateurs actuels demandent à l'utilisateur de se connecter. Cela permet d'éviter que du code ne soit exécuté involontairement lorsque l'utilisateur utilise accidentellement son autorité pour autoriser une installation.
Prise en main
À propos de la sécurité des applications Web
Menaces courantes
Ressources VPN
Glossaire de sécurité