BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 1
OWASP Top 10OWASP Top 10
8 ­ Falsification de requête intersit...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 2
• • CSRF ?CSRF ?
• • Exemple simpleExemple simple
• • Les vuln...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 3
CSRF ?CSRF ?
Faire une action à un autre utilisateur sans qu'i...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 4
CSRF ?CSRF ?
Cette attaque fonctionne grâce aux Cette attaque ...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 5
ExempleExemple
Sur un forum Sur un forum S S ::
AA souhaite su...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 6
ExempleExemple
L'attaquant La victime Le site victime
A V S
Sa...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 7
ExempleExemple
L'attaquant La victime Le site victime
A V S
Le...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 8
Beaucoup (si ce n'est toutes) les fonctionnalités Beaucoup (si...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 9
Pour réaliser une attaque
Utilisation classique des outils du ...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 10
Reprise de l'exemple :
L'image qui ne se chargeait pas :L'ima...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 11
La méthode de l'image est réutilisable avec 
d'autres balises...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 12
Avec un peu de Avec un peu de JavaScriptJavaScript et de  et ...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 13
Ce qui ne fonctionne pas :Ce qui ne fonctionne pas :
> Les re...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 14
Ce qui fonctionne :Ce qui fonctionne :
> Jetons (ou token) al...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 15
Ce qui fonctionne :Ce qui fonctionne :
> Vérification du > Vé...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 16
Ce qui fonctionne :Ce qui fonctionne :
Quelques solutions en ...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 17
DémonstrationDémonstration
Let's rock !Let's rock !
Upcoming SlideShare
Loading in...5
×

Présentation CSRF (partie orale)

70

Published on

Présentation d'une attaque du type CSRF sans démonstration, juste la partie orale.
Présentation faite lors de ma Licence 3 Informatique à l'Université de Franche-Comté.
Besançon, Novembre 2013.

Published in: Internet
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
70
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Présentation CSRF (partie orale)

  1. 1. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 1 OWASP Top 10OWASP Top 10 8 ­ Falsification de requête intersite (CSRF)8 ­ Falsification de requête intersite (CSRF) Kevin BOULALA – Maxime MARTINKevin BOULALA – Maxime MARTIN
  2. 2. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 2 • • CSRF ?CSRF ? • • Exemple simpleExemple simple • • Les vulnérabilités de cette attaqueLes vulnérabilités de cette attaque • • Comment éviter ces attaquesComment éviter ces attaques • • DémonstrationDémonstration PLANPLAN
  3. 3. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 3 CSRF ?CSRF ? Faire une action à un autre utilisateur sans qu'il le veuille Faire une action à un autre utilisateur sans qu'il le veuille  et qu'il le sacheet qu'il le sache http://www.sitexe.com/?supprmsg=30http://www.sitexe.com/?supprmsg=30 ( (GETGET)) Attaque possible aussi avec la méthode Attaque possible aussi avec la méthode POSTPOST Exemple avec un forum :Exemple avec un forum : > Faire supprimer un message> Faire supprimer un message > S'abonner à un fil de discussion> S'abonner à un fil de discussion Exemple avec un site d'achat :Exemple avec un site d'achat : > Faire acheter quelque chose> Faire acheter quelque chose
  4. 4. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 4 CSRF ?CSRF ? Cette attaque fonctionne grâce aux Cette attaque fonctionne grâce aux navigateursnavigateurs et que l'utilisateur victime est et que l'utilisateur victime est authentifiéauthentifié sur le site sur le site Nécessite peu de compétences très pointuesNécessite peu de compétences très pointues De même, facilement découverte avec un De même, facilement découverte avec un  minimum de connaissancesminimum de connaissances Du point de vue du site attaqué, Du point de vue du site attaqué, la victime est la victime est  le fautifle fautif
  5. 5. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 5 ExempleExemple Sur un forum Sur un forum S S :: AA souhaite supprimer un message. souhaite supprimer un message. AA trouve l'URL type pour supprimer un message. trouve l'URL type pour supprimer un message. AA prépare un mail à envoyer à  prépare un mail à envoyer à VV avec une balise image  avec une balise image  contenant l'adresse censée supprimer le message sur contenant l'adresse censée supprimer le message sur SS.. L'attaquant La victime Le site victime A V S
  6. 6. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 6 ExempleExemple L'attaquant La victime Le site victime A V S Salut ! Tu connais cette blague ?Salut ! Tu connais cette blague ? C'est un mec il rentre dans un bar et C'est un mec il rentre dans un bar et  il crie "COUCOU C'EST MOI !!" il crie "COUCOU C'EST MOI !!"  et enfaite c'était pas lui...et enfaite c'était pas lui... X Mail :Mail : Logo d'image non chargéLogo d'image non chargé Mais c'est ce qui permet Mais c'est ce qui permet  de charger la requête de charger la requête  censé supprimer le censé supprimer le  message sur message sur SS..
  7. 7. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 7 ExempleExemple L'attaquant La victime Le site victime A V S Le navigateur de Le navigateur de VV interprète l'image. interprète l'image. Ce qui exécute la requête et supprime le message.Ce qui exécute la requête et supprime le message. VV ne s'en rend pas compte. ne s'en rend pas compte.
  8. 8. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 8 Beaucoup (si ce n'est toutes) les fonctionnalités Beaucoup (si ce n'est toutes) les fonctionnalités  d'un site sont vulnérablesd'un site sont vulnérables Tout dépend de l'activité du site :Tout dépend de l'activité du site : Transaction boursièreTransaction boursière Vente en ligneVente en ligne Forum de discussionForum de discussion ...... VulnérabilitésVulnérabilités
  9. 9. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 9 Pour réaliser une attaque Utilisation classique des outils du WEBUtilisation classique des outils du WEB HTMLHTML et  et JavaScriptJavaScript Le plus populaire : la Le plus populaire : la balise imgbalise img en HTML  en HTML  (technique utilisé dans l'exemple précédent)(technique utilisé dans l'exemple précédent) VulnérabilitésVulnérabilités
  10. 10. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 10 Reprise de l'exemple : L'image qui ne se chargeait pas :L'image qui ne se chargeait pas : <img src='<img src='http://www.sitexe.com/?supprmsg=30http://www.sitexe.com/?supprmsg=30' /' />> Version JavaScript :Version JavaScript : <script><script> var foo = new image();var foo = new image(); foo.src="http://www.sitexe.com/?supprmsg=30";foo.src="http://www.sitexe.com/?supprmsg=30"; </script></script> Note : selon le navigateur, il ne s'affichera rien ou Note : selon le navigateur, il ne s'affichera rien ou  bien au pire des cas le logo vu plutôt.bien au pire des cas le logo vu plutôt. VulnérabilitésVulnérabilités X
  11. 11. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 11 La méthode de l'image est réutilisable avec  d'autres balises : <<scriptscript src...>, < src...>, <iframeiframe src...>, etc src...>, etc Il est aussi possible de faire cette attaque avec la Il est aussi possible de faire cette attaque avec la  méthode méthode POSTPOST.. La difficulté n'est pas plus grande, il est juste plus La difficulté n'est pas plus grande, il est juste plus  délicat de le mettre en place.délicat de le mettre en place. VulnérabilitésVulnérabilités
  12. 12. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 12 Avec un peu de Avec un peu de JavaScriptJavaScript et de  et de HTML HTML :: <body <body onload="document.getElementById('f').submit()"onload="document.getElementById('f').submit()">> <form id="f" action="<form id="f" action="http://sitexe.com/poster.phphttp://sitexe.com/poster.php" "  method="post" name="form">method="post" name="form"> <input name="titre" <input name="titre" value="Blague pourrie"value="Blague pourrie">> <textarea name="message"><textarea name="message"> C'est un gars qui rentre C'est un gars qui rentre  dans un café et plouf !dans un café et plouf ! </textarea></textarea> <input name="update" value="update"><input name="update" value="update"> </form></body></form></body> Il est nécessaire de lire le code du site victime pour faire Il est nécessaire de lire le code du site victime pour faire  cette attaque.cette attaque. VulnérabilitésVulnérabilités
  13. 13. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 13 Ce qui ne fonctionne pas :Ce qui ne fonctionne pas : > Les requêtes POST (dernière partie : Vulnérabilités)> Les requêtes POST (dernière partie : Vulnérabilités) > Les opérations en plusieurs étapes :> Les opérations en plusieurs étapes : Du moment que l'attaquant peut prévoir les différentes Du moment que l'attaquant peut prévoir les différentes  étapes...étapes... PréventionPrévention
  14. 14. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 14 Ce qui fonctionne :Ce qui fonctionne : > Jetons (ou token) aléatoires ou> Jetons (ou token) aléatoires ou jetons de validités jetons de validités : : Les jetons sont générés aléatoirement dans le temps.Les jetons sont générés aléatoirement dans le temps. Le jeton doit être transmis avec la requête.Le jeton doit être transmis avec la requête. Le serveur pourra vérifier que le formulaire a bien été Le serveur pourra vérifier que le formulaire a bien été  produit quelques minutes auparavant.produit quelques minutes auparavant. PréventionPrévention
  15. 15. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 15 Ce qui fonctionne :Ce qui fonctionne : > Vérification du > Vérification du Referer HeaderReferer Header : : Referer Header correspond à une information transmise à un Referer Header correspond à une information transmise à un  serveur HTTP, indiquant où se trouve le lien qui nous a permis serveur HTTP, indiquant où se trouve le lien qui nous a permis  de le rejoindre.de le rejoindre. Avec une attaque CSRF, cette information est impossible à Avec une attaque CSRF, cette information est impossible à  récupérer.récupérer. Quelques soucis : les navigateurs peuvent désactiver l'envoi.Quelques soucis : les navigateurs peuvent désactiver l'envoi. Si on vient d'un domaine HTTPS aucun referer n'est envoyé.Si on vient d'un domaine HTTPS aucun referer n'est envoyé. PréventionPrévention
  16. 16. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 16 Ce qui fonctionne :Ce qui fonctionne : Quelques solutions en vrac :Quelques solutions en vrac :                                                                                           CAPTCHA CAPTCHA                                                            Ré­authentificationRé­authentification                           Désactiver les scripts dans le Désactiver les scripts dans le  navigateur (& utiliser POST sur le site)navigateur (& utiliser POST sur le site) etcetc PréventionPrévention
  17. 17. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 17 DémonstrationDémonstration Let's rock !Let's rock !
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×