Dans cet article, nous plongerons dans le monde complexe du hacking en examinant une faille web particulière. L’attaque CSRF (Cross-Site Request Forgery) est la manifestation parfaite de l’art de l’attaque sournoise. Cette faille, bien qu’elle puisse sembler discrète, peut avoir des conséquences dévastatrices pour les sites web et leurs utilisateurs. En bref, CSRF est une faille qui exploite la confiance que les sites web accordent à l’authenticité des requêtes venant de l’utilisateur. Avec cette attaque, un attaquant peut manipuler un utilisateur afin qu’il effectue des actions indésirables sans même qu’il s’en rende compte.
Une attaque CSRF ordinaire
Pour comprendre cette faille, imaginons une situation où une personne, que nous appellerons Emilie, se retrouve victime d’une attaque CSRF à la suite d’une opération de phishing. Voici comment cela pourrait se dérouler :
– L’attaque de phishing :
Emilie reçoit un e-mail apparemment authentique de sa banque, affirmant qu’il y a un problème avec son compte et qu’elle doit immédiatement se connecter pour résoudre le problème. L’e-mail est bien conçu et semble provenir de la véritable institution financière, avec des logos et des éléments graphiques authentiques. Intriguée par le message et inquiète pour la sécurité de son compte, Emilie clique sur le lien fourni dans l’e-mail.
– La redirection vers un site frauduleux :
Lorsque Emilie clique sur le lien, elle est redirigée vers une page web qui ressemble en tout point au site de sa banque. Cependant, cette page est en réalité un site frauduleux créé par les attaquants pour voler les informations d’identification des utilisateurs. Elle est invitée à saisir son nom d’utilisateur et son mot de passe pour « résoudre le problème de sécurité ».
– L’attaque CSRF :
Pendant qu’Emilie saisit ses informations d’identification sur la page de phishing, des requêtes malveillantes sont simultanément envoyées depuis cette page vers le site réel de la banque, en utilisant ses réponses. Les demandes semblent légitimes à la banque puisqu’elles utilisent les informations d’Emilie. Ces requêtes effectuent des actions indésirables sans que Emilie le sache, telles que la modification de son adresse e-mail de contact, la création d’un nouveau bénéficiaire pour des virements bancaires, ou même l’initiation de transactions non autorisées.
Emilie est piégée : après avoir soumis ses informations d’identification sur la page de phishing, Emilie est redirigée vers une page de confirmation trompeuse indiquant que le problème a été résolu. Elle peut ne pas réaliser immédiatement qu’elle a été victime d’une attaque, car elle pense avoir suivi les instructions de la banque. Emilie ne découvre la fraude que lorsque sa véritable banque la contacte pour l’informer des activités suspectes sur son compte. Elle se rend compte que des transactions non autorisées ont été effectuées en son nom, compromettant ainsi ses finances et sa sécurité.
Dans cette situation, l’attaque CSRF est utilisée pour exploiter la confiance d’Emilie dans la légitimité du site web de sa banque et pour effectuer des actions malveillantes en son nom, tout cela grâce à une attaque de phishing initiale qui lui a fait divulguer ses informations d’identification. C’est un exemple de la manière dont les cybercriminels peuvent combiner différentes méthodes d’attaque pour compromettre la sécurité en ligne des utilisateurs.
Une attaque qui repose sur les cookies de connexion
La compréhension de cette faille est essentielle pour quiconque s’intéresse à la sécurité web, car elle peut toucher un large éventail de sites, des plateformes de médias sociaux aux applications bancaires en ligne, en passant par les sites de commerce électronique. Alors, plongeons dans le monde complexe du CSRF et apprenons à nous défendre contre cette attaque apparemment innocente, mais redoutable.
L’attaque CSRF (Cross-Site Request Forgery) exploite la confiance que les sites web accordent aux cookies de connexion. Les cookies de connexion sont des données stockées côté client (sur l’ordinateur de l’utilisateur) qui permettent à un site web de reconnaître un utilisateur et de le maintenir connecté à son compte, évitant ainsi la nécessité de saisir fréquemment ses informations d’identification. L’attaque CSRF fonctionne en faisant soumettre au navigateur d’un utilisateur possédant les cookies de connexion d’un site tiers des actions sur le site web reconnaissant ces cookies.
Voici comment fonctionne l’attaque CSRF en détail :
Prérequis : pour que l’attaque CSRF fonctionne, l’utilisateur ciblé doit être déjà authentifié sur le site web vulnérable et avoir un cookie de session valide. Le cookie de session est ce qui permet au site de reconnaître l’utilisateur comme étant connecté.
Préparation de l’attaque : l’attaquant crée une page web malveillante contenant du code automatisé qui fera des requêtes web vers le site cible. Ces requêtes peuvent être des liens, des formulaires ou des scripts intégrés dans une page web. L’attaquant diffuse ensuite cette page à des victimes potentielles, généralement via des e-mails, des messages sur les réseaux sociaux ou d’autres canaux.
Mise en place de l’attaque : lorsque la victime, qui est déjà connectée au site cible, clique sur le lien vers la page web malveillante, son navigateur envoie automatiquement toutes les requêtes incluses dans cette page au site cible. Le site cible, recevant les cookies authentifiant l’utilisateur, reçoit ces requêtes comme si elles provenaient de la personne légitime.
Exécution de l’attaque : le site cible, incapable de distinguer les requêtes légitimes des requêtes forgées par l’attaquant, exécute les actions demandées. Cela peut inclure des opérations telles que la modification des informations de compte, l’envoi de messages, ou même l’initiation de transactions financières. Tout cela se produit sans que la victime en ait conscience, car elle est simplement en train de naviguer sur la page web malveillante.
Comment se protéger ?
L’attaque CSRF ne fonctionne que sur des sites web cible qui n’implémentent pas de mécanismes de protection appropriés, tels que les jetons anti-CSRF qui permettent de vérifier l’origine légitime de la requête. Ces jetons doivent être générés aléatoirement et inclus dans les formulaires du site qui cherche à se protéger, de sorte que si le serveur reçoit une requête qui ne contient pas le jeton attendu, il la refusera.
L’attribut SameSite d’un cookie est aussi une mesure de sécurité qui peut contribuer à prévenir les attaques CSRF. Cet attribut contrôle les circonstances dans lesquelles un cookie sera inclus dans une requête HTTP, en spécifiant si le cookie doit être restreint au même site web (site d’origine) à partir duquel il a été défini.
En conclusion, les attaques CSRF représentent une menace sérieuse pour la sécurité en ligne, exploitant la confiance que les sites web accordent aux cookies de session. Comprendre ces vulnérabilités est essentiel pour se prémunir contre les conséquences néfastes qu’elles peuvent entraîner, notamment la modification de données, la divulgation d’informations personnelles, et même des transactions financières non autorisées. Il est impératif pour les utilisateurs de rester vigilants et pour les développeurs de mettre en œuvre des mesures de sécurité, telles que l’attribut SameSite pour les cookies, pour réduire le risque de telles attaques.
Article rédigé par : Baptiste Fraikin, consultant chez Coralium
Si vous voulez en savoir davantage sur nos offres, en lien avec le sujet de l’article, nous vous proposons de découvrir : OSINT et exposition externe