Les attaques Cross Site Request Forgery (CSRF) PDF
Document Details
Uploaded by LuckyOnyx2653
Université Djillali Liabès de Sidi Bel-Abbès
Tags
Summary
Ce document explique les attaques Cross Site Request Forgery (CSRF) sur les sites web. Il décrit comment ces attaques fonctionnent, les différents types d'attaques, et comment se protéger contre elles. Il couvre également une étude comparative avec d'autres types d'attaques comme XSS. L'objectif est de fournir une compréhension des techniques d'attaque et des méthodes de défense.
Full Transcript
Les attaques Cross Site Request Forgery (CSRF) 1. Introduction La relation d’authentification entre le client et le serveur au sein d’une application web constitue un enjeu majeur. La plupart des applications identifient correctement les utilisateurs et comprennent leurs requêtes....
Les attaques Cross Site Request Forgery (CSRF) 1. Introduction La relation d’authentification entre le client et le serveur au sein d’une application web constitue un enjeu majeur. La plupart des applications identifient correctement les utilisateurs et comprennent leurs requêtes. Cependant, certaines ont encore beaucoup de mal à vérifier les origines des requêtes et les intentions réelles des clients. Les attaques CSRF ont toujours existé mais elles restent beaucoup moins connues que les attaques d’injection SQL, de débordement de tampon, ou encore de Cross Site Scripting. Elles peuvent avoir des 2. Qu’est ce que le CSRF?? 2.1 Définition CSRF ou plus communément appelée “Cross Site Request Forgery” est une classe d’attaques propre aux applications Web. Elle reste l’une des moins médiatiques malgré les effets dévastateurs qu’elle peut présenter. Issue d’un problème nommé « Confused deputy » découvert par Norm Hardy en 1988, l’attaque relative aux applications Web fut officiellement révélée en Juin 2001 par Peter Watkins. 2. Qu’est ce que le CSRF?? C’est quoi Confused deputy? Dans le domaine de la sécurité de l'information, Confuse deputy ou l'adjoint confus est un programme informatique qui est escroqué par un autre programme (ayant moins de privilèges ou moins de droits) et qui abuse de son autorité sur le système. Il s'agit d'un type particulier d'escalade des privilèges (Wu et al., 2015). 2. Qu’est ce que le CSRF?? Nommée “Cross Site Request Forgery” abrégée en CSRF (prononcée Sea Surf) Cette technique exploite la confiance qu’une application montre à l’égard de ses clients. Le but est de forcer le navigateur de la victime à envoyer une requête silencieuse sans la connaissance de l’internaute. 2. Qu’est ce que le CSRF?? Au premier abord, cette attaque peut sembler difficile à mettre en place. Alors qu’en réalité elle peut être menée par n’importe qui et d’une manière extrêmement simple. Pour cela il suffit d’insérer un script dans une page web ou de le camoufler dans un e-mail. En suivant le lien contrefait, le navigateur de la victime va exécuter une requête vers un site sur lequel la victime est authentifiée. 2.2 Quelle est la différence entre XSS et CSRF ? Quelle est la différence entre XSS et CSRF ? 1) Le cross-site scripting (ou XSS) permet à un pirate d'exécuter un code JavaScript malveillant dans le navigateur d'un utilisateur victime. 2) La falsification des requêtes intersites (ou CSRF) permet à un pirate d'inciter un utilisateur victime à effectuer des actions qu'il n'a pas l'intention de faire. 2.2 Quelle est la différence entre XSS et CSRF ? La durée de La cible de Protection de Type d’attaque Le but de l’attaque l’attaque l’attaque l’attaque Elle cible un site Injecter du code dans précis qui possède un Elle dure dans le Utilisation d’un un document HTML problème de Attaque XSS temps menée étape filtre sur les afin d’abuser le validation de par étape entrées utilisateur navigateur client certaines entrées utilisateur. L’utilisation de mécanismes tels Exécuter une action Elle cible un site où la que non désirée par le victime possède un l’attribut SameSit Attaque CSRF instantanée client sur un site où la accès privilégié, mais e des cookies, victime possède un au moment de sa l’en-tête Origin et accès privilégié connexion au site. l’en-tête Referer, ou les jetons CSRF Tableau 1. La différence entre une attaque XSS et CSRF 3. Le principe de CSRF Lorsqu’un utilisateur se connecte à un site/application, une session est créée afin de « mémoriser » son état authentifié tout au long de sa navigation. Pour maintenir cette session active, les navigateurs stockent la plupart du temps un identifiant de session au sein d’un cookie : on parle de cookies d’authentification. 3.1 Les étapes d’une attaque utilisant d’une vulnérabilité CSRF L’attaque CSRF peut se résumer en 6 étapes : 1. Lorsqu'un utilisateur se connecte à un site web, il reçoit généralement un cookie de session ou un jeton d'authentification que le site web utilise pour le reconnaître en tant qu'utilisateur connecté. 2. Un pirate crée une page web malveillante ou injecte un code malveillant dans une page web légitime. Ce code contient une requête adressée au site web cible. 3. Le pirate incite l'utilisateur à visiter la page web malveillante ou à interagir avec la page web compromise, souvent par le biais de 3.1 Les étapes d’une attaque utilisant d’une vulnérabilité CSRF 4. Le code malveillant de la page web envoie une requête au site web cible. Cette requête inclut le jeton d'authentification ou le cookie de session de l'utilisateur, que le navigateur attache automatiquement puisqu'il provient de la même origine. 5. Le site web cible reçoit la demande et la traite comme si elle était légitime parce qu'elle contient des informations d'authentification valides. Cela peut conduire à des actions exécutées au nom de l'utilisateur sans son consentement ou sa connaissance. 6. L'attaquant obtient un accès non autorisé au compte de l'utilisateur et peut effectuer des actions telles que transférer des fonds, modifier Les étapes d’une attaque utilisant d’une vulnérabilité CSRF Fig 1. Les étapes d’une attaque CSRF 4. Les objectifs des attaques de type CSRF À partir du moment où le pirate se sert d’un utilisateur légitime, le piratage est difficile à détecter. Ces attaques ne laissent pas de trace, et ils ont divers objectifs allant du simple vol d’identifiants à une prise de contrôle total du site distant. 4. Les objectifs des attaques de type CSRF 1) Obtenir un mot de passe en utilisant la faille CSRF du navigateur d’un utilisateur Un des buts des attaques peut être l’obtention du mot de passe d’un utilisateur. Le pirate va lancer ses attaques contre une application web dont la politique de cookies Samesite est faible. L’attaquant amènera l’utilisateur à modifier son mot de passe et ainsi bloquer l’accès au compte. 4. Les objectifs des attaques de type CSRF 2) Prendre le contrôle d’une application En attaquant l’administrateur d’un site, un pirate peut en prendre le contrôle total. Donc il pourra faire exécuter n’importe quelle action au serveur ou à l’application. C’est le cas le plus grave, bien qu’il soit relativement rare. Ce type de cyberattaque, en cas de réussite (sites non sécurisés), peut totalement détruire les applications ou le site ciblé. 5. L’attaque CSRF par des exemples Exemple 1 : attaque d’une application pour transférer des fonds Application cible : Une application bancaire en ligne. Action ciblée : Transférer de l'argent d'un compte de la victime à celui de l'attaquant. Attaquant : Crée un site web malveillant qui envoie une requête frauduleuse. 5. L’attaque CSRF par des exemples Étape par étape : Exemple d'une attaque CSRF 1. Situation de départ : L'utilisateur (victime) est connecté à l'application bancaire (par exemple : https://bank.com). 2. Requête légitime : Une fonctionnalité de transfert d'argent existe dans l'application. Elle est effectuée via une requête POST comme suit : Cette requête transfère 1000 unités monétaires au compte 123456. 5. L’attaque CSRF par des exemples 3. Préparation par l'attaquant : L'attaquant crée un site web contenant un formulaire caché et malveillant qui imite cette requête : Ici, le compte 654321 appartient à l'attaquant. 5. L’attaque CSRF par des exemples Piégeage de la victime : L'attaquant pousse la victime à visiter le site malveillant (via un lien dans un email, une publicité en ligne, etc.). Exécution de la requête : Lorsque la victime visite le site malveillant, le formulaire est soumis automatiquement grâce au script JavaScript. Comme la victime est déjà connectée à bank.com, son cookie de session est inclus dans la requête, ce qui rend la requête valide pour le serveur. Résultat : Le serveur de la banque traite la requête comme si elle venait de la victime, transférant l'argent au compte de l'attaquant. 5. L’attaque CSRF par des exemples Exemple 2 : Changement de mot de passe 1. Contexte : Une application permet aux utilisateurs de changer leur mot de passe via une requête POST. URL cible : https://example.com/change_password. 2. Requête légitime : Un utilisateur connecté effectue une requête pour changer son mot de passe : 5. L’attaque CSRF par des exemples 3. Attaque CSRF par étapes: 1. L'attaquant crée une page malveillante : 2. Le piège : La victime, déjà connectée à son compte sur example.com, visite la page de l’attaquant. 3. Conséquences : La requête modifie le mot de passe de la victime sans qu’elle le sache, donnant ainsi à l’attaquant un accès direct au compte. 4. Prévenir et lutter contre la vulnérabilité et les attaques CSRF Avant d’aborder l’aspect protection contre les attaques CSFR, l’utilisateur doit savoir une chose. Les attaques Cross Side Request Forgery ne fonctionnent que si sa session est active. En d’autres termes, si l’utilisateur prend la précaution de se déconnecter après utilisation, il complique considérablement la tâche du pirate. En revanche, il doit se rappeler qu’il ne faut jamais cliquer sur un lien dont on n’est pas sûr. Mais il existe d’autres protections pour contrer la faille CSFR d’un navigateur ou d’un serveur. 4. Prévenir et lutter contre la vulnérabilité et les attaques CSRF 4.1 Utiliser un jeton ou un token pour contrer les attaques CSRF Les jetons, ou token en anglais, permettent de sécuriser la relation application web, navigateur et utilisateurs. Lors de chaque cession, un site sécurisé attribue un jeton CRSF à l’utilisateur. Ce token est partagé entre le site et le navigateur de l’internaute. En pareil cas, quand le navigateur lance une requête, le serveur vérifie la présence de ce jeton. S’il n’y est pas ou si le token est erroné, le serveur ne répondra 4. Prévenir et lutter contre la vulnérabilité et les attaques CSRF 4.2 Se protéger des attaques CSRF en utilisant l’attribut Samesite sur les cookies SameSite est une propriété qui peut être définie dans les cookies HTTP pour empêcher les attaques de falsification de requête intersites (CSRF) dans les applications web : Lorsque SameSite est défini sur Lax ou sur strict, le cookie est envoyé dans les requêtes au sein du même site. Il n’est pas envoyé dans les requêtes GET qui sont interdomaines. Par défaut, la valeur SameSite n’est PAS définie dans les navigateurs et c’est la raison pour laquelle il n’existe aucune restriction sur les cookies envoyés dans les requêtes. Une application doit s’abonner à la protection CSRF en paramétrant Lax ou Strict selon leurs exigences. Or, lors d’une attaque CSFR, le pirate ne dispose pas de cet élément. Le défaut de cet attribut Samesite va signaler au serveur que la 4. Prévenir et lutter contre la vulnérabilité et les attaques CSRF 4.3 L’utilisation de l’en-tête Referer pour se prémunir des requêtes de types CSRF Une autre méthode de protection contre une attaque de types CSRF est l’utilisation de l’en-tête referer. Il faut savoir que dans une requête HTTP se trouve un champ qui indique d’où vient la requête. C’est la zone referer. Elle contient l’URL et permet au serveur d’identifier d’où vient une requête. Cette fonction permet de vérifier que les requêtes viennent bien d’un site qui est légitime. 4. Prévenir et lutter contre la vulnérabilité et les attaques CSRF 4. La double authentification : l’arme absolue contre les attaques de type CSFR La double authentification permet à un site de se faire confirmer l’identité de l’internaute désireux de se connecter avec son compte. Lorsque celui-ci cherche à se connecter avec son compte, le site lui fait parvenir un SMS sur son téléphone mobile. L’internaute entre alors le code réceptionné dans le champ dédié. Il confirmera ainsi son identité. Suite à cette opération, il pourra accéder à son compte. Comment les navigateurs modernes contrent les attaques CSRF ? Les premières attaques CSRF ont été observées dès 2000. À l’époque, les mesures de protection étaient encore rudimentaires. Depuis, la donne a changé. Les principaux navigateurs tels que Mozilla Firefox et Google Chrome ont implémenté des mesures anti-CSRF début 2020. En effet, ils fixent l’attribut par défaut des cookies pour « SameSite=Lax » chaque fois qu’il n’est pas défini par une application ou un site web. Cette mesure a considérablement réduit le nombre d’attaques de type CSRF. Par ailleurs, c’est l’une Conclusion La falsification des requêtes intersites (CSRF) est une attaque qui cible les applications qui ne peuvent pas faire la différence entre les requêtes de changement d’état valides et les requêtes falsifiées. L’attaque CSRF ne peut réussir que sur des applications qui s’appuient sur des cookies de session pour identifier les utilisateurs connectés et dont la politique en matière de cookies SameSite est faible. Parmi les solutions à ce problème, le premier réflexe à avoir est de se déconnecter après chaque utilisation. Jeton, attribut Samsite, attribut referer forment de bonnes parades, mais l’arme absolue reste Fin