CSRF (Cross-site request forgery) : qu’est-ce que c’est ? Comment se protéger ?

-
5
 m de lecture
-

La CSRF (Cross-site request forgery) ou falsification de requête intersite est un type de cyberattaque. Elle consiste à profiter de la session active d’un internaute pour envoyer des requêtes malveillantes à son insu. Découvrez son fonctionnement, ses dangers et comment s’en protéger !

Imaginez que, sans le savoir, en naviguant innocemment sur votre site préféré, vous autorisiez une transaction bancaire ou une modification de vos paramètres personnels sur un autre site où vous êtes connecté. Effrayant, n’est-ce pas ?

C’est exactement le genre de mésaventure que le Cross-Site Request Forgery (CSRF) peut provoquer. Cette attaque insidieuse exploite la confiance que les sites web accordent à votre navigateur, vous transformant en complice involontaire…

Une vulnérabilité permettant d’envoyer des requêtes à votre insu

Pour un cybercriminel, une falsification de requête intersite consiste à inciter un utilisateur authentifié à exécuter des actions non désirées sur une application web où il est connecté.En d’autres termes, le pirate profite de la session active de l’utilisateur pour envoyer des requêtes malveillantes à son insu. Pour mieux comprendre, prenons un exemple concret.

Supposons que vous soyez connecté à votre compte bancaire en ligne. Pendant ce temps, vous visitez un autre site web compromis ou malveillant.Sans que vous le sachiez, ce site pourrait contenir un script caché qui envoie une requête à votre banque pour transférer de l’argent vers le compte de l’attaquant.

Étant donné que vous êtes déjà authentifié, la banque considère la requête comme légitime et l’exécute. C’est là tout le danger du CSRF, qui exploite la confiance établie entre le navigateur de l’utilisateur et le site web ciblé.

Contrairement à d’autres attaques, comme le Cross-Site Scripting (XSS), qui nécessitent l’injection de code malveillant dans le site victime, le CSRF se contente de détourner les autorisations déjà accordées à l’utilisateur !Pour tout développeur web soucieux de la sécurité de ses utilisateurs, comprendre et se prémunir contre le CSRF est donc un impératif.

Comment les hackers exploitent la confiance des sites web ?

Le fonctionnement du CSRF repose sur l’exploitation de la confiance qu’un site web accorde au navigateur de l’utilisateur.Lorsque ce dernier est authentifié sur un site, son navigateur stocke des informations d’identification. En général, sous forme de cookies.

Ces cookies sont automatiquement inclus dans les requêtes HTTP ultérieures vers le même site, permettant une navigation fluide sans nécessiter une réauthentification constante.Cependant, cette commodité présente une faille. Un attaquant peut créer une page web malveillante contenant des requêtes déguisées visant le site où l’utilisateur est authentifié.

Si l’utilisateur visite cette page alors qu’il est connecté au site cible, son navigateur, en toute innocence, enverra la requête avec les cookies d’authentification.Le site cible recevra alors une requête apparemment légitime provenant de l’utilisateur authentifié, exécutant ainsi l’action sans le consentement de ce dernier !

Par exemple, un attaquant pourrait insérer une image invisible dans une page web : « <img src= »http://banque.example.com/transfert?compte=attaquant&montant=1000″ alt= »Transfert en cours »> ». Si un utilisateur authentifié sur « banque.exemple.com » visite cette page, son navigateur interprétera la balise <img> et enverra une requête au site de la banque pour transférer 1000 unités monétaires vers le compte de l’attaquant. Le tout, sans même que l’utilisateur ne s’en aperçoive !

Que peuvent faire les hackers avec un CSRF ?

Les cybercriminels peuvent utiliser les attaques CSRF à différentes fins. Par exemple, un attaquant peut envoyer un lien par e-mail incitant l’utilisateur à cliquer.Or, ce lien peut contenir une requête modifiant le mot de passe de l’utilisateur sur un site où il est authentifié, donnant ainsi accès au compte de la victime.

En outre, comme mentionné précédemment, un utilisateur connecté à son compte bancaire en ligne peut visiter une page web contenant un script initiant un transfert depuis son compte vers celui de l’attaquant.

Une autre possibilité est de forcer un utilisateur à changer l’adresse e-mail associée à son compte sur un service en ligne. Une fois l’adresse modifiée, l’attaquant peut utiliser la fonction « mot de passe oublié » pour réinitialiser le mot de passe et prendre le contrôle du compte.

Ces différents exemples démontrent la diversité des attaques CSRF, et soulignent toute l’importance de mettre en place des mesures de protection adéquates pour préserver la sécurité des utilisateurs en ligne.

Les techniques et méthodes de prévention

Fort heureusement, plusieurs stratégies efficaces permettent de se prémunir contre les attaques CSRF.Le Synchronizer Token Pattern consiste à intégrer un jeton unique et aléatoire dans chaque formulaire ou requête susceptible de modifier des données.

Ce jeton anti-CSRF, généré côté serveur, est vérifié à chaque requête reçue. Si le jeton est absent ou incorrect, la requête est rejetée. Cette technique est largement recommandée pour sa robustesse.Une autre approche consiste à utiliser l’attribut SameSite pour les cookies. Celui-ci indique au navigateur de ne pas envoyer le cookie lors de requêtes cross-site.

En définissant cet attribut à « Strict » ou « Lax », on limite les risques que les cookies de session soient inclus dans des requêtes provenant d’autres sites. Ceci empêche certaines attaques CSRF.Le serveur peut également vérifier l’origine des requêtes en examinant les en-têtes « Referer » ou « Origin ». Si l’origine ne correspond pas au domaine attendu, la requête est refusée.

Toutefois, même si cette méthode ajoute une couche de sécurité, elle peut être contournée et ne doit pas être utilisée comme seule protection.Néanmoins, malgré ces mesures de protection, une connaissance insuffisante des menaces CSRF et des méthodes de prévention conduit à des applications vulnérables. Il est capital de former les équipes de développement aux meilleures pratiques de sécurité web !

Top des meilleurs outils et frameworks pour la protection

De nombreux frameworks modernes intègrent nativement des protections contre les attaques CSRF. Il est toutefois important de s’assurer que ces protections sont correctement configurées et activées dans vos projets.

Le célèbre framework Python, Django, intègre par exemple nativement une protection contre les attaques CSRF. Grâce à un middleware spécifique et des balises de gabarit, Django génère automatiquement des jetons CSRF pour chaque formulaire et assure donc une vérification systématique des requêtes.

Côté PHP, Laravel propose également une protection intégrée contre le CSRF. Chaque formulaire inclut automatiquement un jeton CSRF, et le framework valide ces jetons lors de la soumission des formulaires. Toute requête non authentifiée s’en trouve bloquée.

Pour les tests de sécurité, un outil incontournable est Blurp Suite. Il permet d’analyser les requêtes HTTP, de détecter les vulnérabilités potentielles, y compris les failles CSRF, et d’évaluer l’efficacité des protections mises en place.

Citons aussi le projet open-source OWASP CSRFGuard, qui fournit une bibliothèque Java implémentant des protections contre les attaques CSRF. Il offre une couche supplémentaire de sécurité, en générant des jetons uniques pour chaque session utilisateur.

L’adoption de ces outils et frameworks facilite la mise en œuvre de mesures de protection robustes contre les attaques CSRF, tout en simplifiant le processus pour les développeurs.

Conclusion : CSRF, une cyberattaque aussi sournoise que dangereuse

À l’heure où les interactions en ligne sont omniprésentes, la sécurité des applications web est plus que jamais une priorité.Les attaques CSRF, bien que discrètes, peuvent avoir des conséquences dévastatrices pour les utilisateurs et les entreprises. Il est donc impératif d’adopter une approche proactive en matière de sécurité.

En intégrant des protections anti-CSRF dès les premières phases du développement, en s’appuyant sur des frameworks sécurisés et en sensibilisant continuellement les équipes aux meilleures pratiques, les développeurs peuvent significativement réduire les risques associés à ces vulnérabilités.Une vigilance constante, combinée à l’utilisation d’outils adaptés, constitue la meilleure défense contre ces menaces insidieuses.

Afin d’apprendre à déjouer les CSRF et tous les différents types de cyberattaques, vous pouvez choisir DataScientest.Nos différentes formations vous permettront d’acquérir les compétences requises pour devenir analyste, administrateur, consultant, ou ingénieur en cybersécurité.

Grâce à notre pédagogie tournée vers la pratique, vous pourrez développer une véritable expertise et recevoir un diplôme reconnu par l’État ainsi qu’une certification professionnelle.Nous proposons également des formations de développeur mettant l’accent sur la cybersécurité, pour vous permettre de créer des sites et applications web protégées contre les attaques.

Toutes nos formations se complètent à distance en BootCamp, alternance ou continu et notre organisme est éligible au financement via CPF ou France Travail. Découvrez DataScientest !

Vous savez tout sur les cyberattaques CSRF. Pour plus d’informations sur le même sujet, découvrez notre dossier sur les attaques XSS, et notre dossier généraliste sur les cyberattaques.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?