Introduction au CSRF?

CSRF, XSRF ou Cross Site Reference Forgery est un type d'attaque qui se produit sur un site Web lorsqu'un site Web malveillant délègue sa demande à un autre site Web ou à une application Web disposant d'un utilisateur authentifié. Dans ce type d'attaque, à l'aide du navigateur authentifié de la victime, un attaquant peut accéder au site Web en totalité ou en partie.

Comment ça marche?

  • Cela ne fonctionne que si la victime potentielle est authentifiée.
  • Un attaquant peut accéder à un site Web en contournant le processus d'authentification à l'aide d'une attaque CSRF.
  • Les attaques CSRF sont utilisées, dans les scénarios où une victime disposant de droits supplémentaires effectue une action et que d'autres ne peuvent pas accéder à ces actions ou les exécuter. Par exemple, les services bancaires en ligne.

L'attaque CSRF est exécutée en deux parties principales

  • La première étape consiste à inciter l'utilisateur / la victime à cliquer sur un lien ou à charger une page malveillante. L'ingénierie sociale est utilisée par l'attaquant pour tromper la victime.
  • La deuxième étape consiste à tromper la victime en envoyant une demande falsifiée au navigateur de la victime. Ce lien redirigera les demandes d'apparence légitime vers un site Web. L'attaquant aura les valeurs ou les détails de la victime qu'il doit rechercher, une victime l'aurait rempli en pensant que la demande était légitime. L'attaquant aura également les détails des cookies associés avec le navigateur de la victime.

Concepts clés du CSRF

  • Un attaquant envoie des demandes malveillantes à un site sur lequel l'utilisateur visite un attaquant qui pense que la victime est validée par rapport à ce site particulier.
  • Le navigateur de la victime est authentifié auprès du site cible et est utilisé pour acheminer les demandes malveillantes vers le site cible.
  • Ici, le navigateur d'une victime ou un site sur lequel des méthodes de prévention CSRF sont implémentées ne sont pas vulnérables, un site Web affecté est la principale vulnérabilité.

Comment éviter la falsification de requête intersite (CSRF)?

Il existe un certain nombre de méthodes préventives CSRF, parmi lesquelles:

  • Déconnectez-vous des applications Web sans y travailler.
  • Sécurisez vos noms d'utilisateur et mots de passe.
  • Ne permettez pas aux navigateurs de se souvenir du mot de passe.
  • Pendant que vous travaillez dans une application et que vous y êtes connecté, évitez de naviguer.

Jetons anti-CSRF

L'implémentation la plus courante pour arrêter la contrefaçon de demande intersite (CSRF) consiste à utiliser un jeton lié à un utilisateur sélectionné et qui peut être trouvé sous forme masquée dans chaque état, sous forme dynamique présente sur l'application en ligne.

1. Ce jeton appelé jeton CSRF fonctionne comme suit:

  • Le client demande une page HTML qui a un formulaire.
  • En réponse à cette demande, le serveur ajoute deux jetons. Il en envoie un sous forme de cookie et conserve les autres jetons dans un champ de formulaire masqué. Ces jetons sont générés de manière aléatoire.
  • Le client renvoie le jeton au serveur une fois qu'il a soumis le formulaire. Le jeton de cookie est envoyé en tant que jeton et le jeton de formulaire est envoyé à l'intérieur des données du formulaire
  • Le serveur ne répond pas ou rejette la demande si une demande n'a pas les deux.

Désormais, un attaquant qui tente de falsifier la demande devra deviner les jetons anti-CSRF ainsi que les mots de passe d'authentification de l'utilisateur. Ces jetons sont invalidés après un certain temps et une fois la session terminée. Cela rend l'attaquant difficile à deviner.

2. Cookies du même site

Certains cookies sont associés à une origine ou à un site Web et lorsqu'une demande est envoyée à cette origine particulière, des cookies sont envoyés avec. Ces demandes sont appelées demandes d'origine croisée. Pendant ce processus, les cookies sont envoyés à des tiers, ce qui rend possible les attaques CSRF.

3. Même attribut de cookie de site

  • Pour empêcher les attaques CSRF, le même attribut de cookie de site peut être utilisé. Il désactive l'utilisation par des tiers pour un cookie spécifique.
  • Il est effectué par le serveur lors de la configuration du cookie; il demande ensuite au navigateur d'envoyer le cookie uniquement lorsque l'utilisateur utilise directement l'application Web.
  • Maintenant, si quelqu'un essaie de demander quelque chose à l'application Web, le navigateur n'enverra pas le cookie.
  • Cependant, empêche l'attaque CSRF.

Cela a une limitation, les cookies du même site ne sont pas pris en charge dans les navigateurs modernes, tandis que les applications Web qui utilisent des cookies du même site ne sont pas prises en charge dans les anciens navigateurs.

Exemples de CSRF

Ci-dessous, nous avons expliqué quelques exemples de CSRF:

1. Utilisation des requêtes GET:

Supposons que vous ayez mis en œuvre et conçu un site Web, banking.com, pour effectuer des actions telles que des transactions en ligne à l'aide de demandes GET. Désormais, un attaquant intelligent qui sait créer une URL malveillante peut utiliser élément pour que le navigateur charge silencieusement la page

Exemple d'un élément d'image HTML contenant une URL malveillante:

2. L'une des techniques ci-dessous peut être utilisée pour faire de même:

  • En envoyant un e-mail au contenu HTML
  • En plantant un script ou une URL malveillante sur les pages qu'un utilisateur est susceptible de visiter lors de transactions en ligne.

3. Utilisation des requêtes POST

Il existe une idée fausse générale sur les requêtes HTTP POST selon laquelle les attaques CSRF peuvent être évitées en autorisant les requêtes HTTP POST, ce qui n'est en fait pas vrai. L'attaquant peut créer un formulaire en HTML ou JavaScript et utiliser la fonctionnalité de soumission automatique pour soumettre la demande POST sans obliger l'utilisateur à cliquer sur un bouton de soumission.

Conclusion

Les cookies sont vulnérables car ils sont envoyés automatiquement avec la demande, ce qui permet aux attaquants d'implémenter CSRF et d'envoyer des demandes malveillantes. L'effet d'une vulnérabilité CSRF dépend également du privilège de la victime, dont le cookie est envoyé avec la demande de l'attaquant. Bien que la récupération de données ne soit pas la principale portée d'une attaque CSRF, les changements d'état auront sûrement un effet négatif sur l'application Web exploitée. Il est donc conseillé d'empêcher votre site Web d'utiliser des méthodes préventives pour protéger votre site Web contre la CSRF.

Articles recommandés

Cela a été un guide pour ce qui est CSRF. Ici, nous avons discuté du concept clé, des jetons anti-CSRF, de son fonctionnement et des exemples de CSRF. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Qu'est-ce que Java Hibernate?
  2. Qu'est-ce que ASP.NET?
  3. Qu'est-ce qu'AWS Lambda?
  4. Qu'est-ce que XHTML?