HTML5 è lo standard futuro per lo sviluppo di applicazioni web e mobile che aggiunge molte funzionalità e potenzialità rispetto l'(X)HTML tradizionale. Se per gli sviluppatori sono aumentate le possibilità, In ambito Security aumenta la superficie attaccabile in particolare per gli attacchi lato client. Il talk si pone l'obiettivo di descrivere i nuovi vettori di attacco che insistono sulle API e funzionalità di HTML5.
7. Quali
sono
gli
a=acchi
e
le
minacce?
Events Tag
&
ACributes Thick
Features Abuso
di
funzioni
(es.
Drag
‘n
Drop,
Geloca;on)
Web
Workers
Abusi
su
Widget
Botnet/Spyware XSS
/
Redirect esterni
e
Mashup
Furto
di
Informazioni
ClickJacking Parser/Threads DOM Storage/Database Inserimento
di
informazioni
UI
Redressing malevole/DoS
per
gli
uten;
XHR WebSocket Plug-‐in
Sockets Abuso
della
rete
del
client
tramite
API
e
Socket
(es.
Ddos,
Browser
Na;ve
Network
Services interceCazione,
scansioni)
Sandbox Same
Origin
Policy Abusi
e
CSRF
8. A=acchi
più
o
meno
Bpici
su
HTML5
La
sicurezza
si
sposta
lato
client,
il
bene
principalmente
a3accato
è
l’utente
con
il
suo
disposi7vo.
10. Cross
Site
Request
Forgery
(CSRF)
s
ou
a lici gia
ta
m for
sito est
a
al
chi
ita r i
vis
la
on
a
c
gin
pa
esecuzione
della
richiesta
forgiata
conferma
dell’esecuzione
15. Tags
&
A=ributes
/
DOM
Su
Tag,
A3ribu7
e
nel
DOM
insiste
una
delle
vulnerabilità
più
note
della
sicurezza
delle
applicazioni
web:
il
Cross
Site
ScripBng.
HTML5,
proponendo
nuovi
elemen7
e
a3ribu7
-‐
aumenta
la
superficie
a3accabile.
I
rischi
connessi
sono
molteplici
e
sono
alla
base
di
mol7
scenari
di
abuso
o
ulteriori
problema7che
di
sicurezza.
21. Storage
e
Client-‐side
Database
Storage
locali,
di
sessione
o
i
Client-‐side
Database
possono
mantenere
svariate
quan7tà
di
da7.
E’
possibile
rubare,
cancellare
manipolare
i
daB,
es.
tramite
un
Cross
Site
Scrip7ng
o
semplicemente
accedendo
localmente
al
browser.
I
da7
devono
quindi
essere
sempre
validaB
e
non
uBlizzaB
per
scelte
di
“sicurezza”.
27. il
WebStorage
è
potenzialmente
vulnerabile
alle
SQL
InjecBon,
usare
le
prepared
statement
db.executeSql('SELECT
name FROM names WHERE
id=?',[name]);
29. Web
Messaging
Funzionalità
di
HTML5
che
perme3ere
di
trasme3ere
informazioni
tra
documenB
di
origine
differente
(es.
domini)
per
esempio
a3raverso
iframe
differen7.
30. quando
si
invia
un
messaggio,
indicare
esplicitamente
l’origine
che
ci
aspe`amo.
es.
evitare
window.postMessage("Test"
, "*")
35. Web
Sockets
Protocollo
introdo3o
in
HTML5,
perme3e
una
comunicazione
full-‐duplex
all’interno
di
una
connessione
TCP.
Il
collegamento
con
HTTP
si
limita
all’handshake.
A3enzione:
alcuni
proxy
potrebbero
non
gradire
il
426
Upgrade
Required.
42. Cross
Origin
Resource
Sharing
Perme3e
di
bypassare
la
Same
Origin
Policy
-‐
senza
usare
workaround
come
JSONP
e
comunicare
con
URL
esterni.
Questo
vale
anche
per
l’XMLH3pRequest,
la
policy
si
concre7zza
in
alcuni
header
HTTP
che
vanno
u7lizza7
in
maniera
opportuna
per
evitare
che
i
propri
ogge`
siano
richiama7
da
fon7
esterne
e
u7lizzare
l’Origin
come
potenziale
protezione
di
Cross
Site
Request
Forgery.
50. Sandboxing
U7lizzare
il
sandboxing
per
ges7re
iframe
con
contenu7
dove
non
abbiamo
controllo
per
o3eniamo
così
una
sandbox
rispe3o
l’origin,
form
e
script
disabilita7,
i
link
non
possono
uscire
dal
contesto,
trigger
automa7ci
disabilita7,
plugin
disabilita7,
così
da
isolare
eventuali
Widget
o
Mashup
malevoli
e
mi7gare
il
Clickjacking/UI
Redressing.
52. è
possibile
abilitare
un
controllo
granulare
su
form,
pop-‐up,
same-‐
origin,
script
e
gesBone
del
puntatore
53. Web
Workers
Nuova
funzionalità
di
HTML5,
perme3e
di
eseguire
porzioni
di
codice
Javascript
in
maniera
asincrona,
al
ne3o
del
codice
visualizzato.
Anche
se
non
hanno
accesso
al
DOM
possono
comunque
eseguire
richieste
XHR
ed
essere
abusaB
sfru=ando
eccessivamente
la
CPU
per
eseguire
operazioni
di
calcolo
distribuito
(es.
password
cracking)
oppure
DoS
verso
l’utente
mobile
(es.
consumando
velocemente
la
ba3eria).
54. validare
sempre
i
daB,
sia
per
evitare
che
sia
possibile
inserire
codice
malevolo
nel
worker...
56. Thick
Features
Funzionalità
di
HTML5
che
perme3ono
di
integrarsi
con
il
disposi7vo
u7lizzato
dall’utente
come
la
Goloca7on
API
e
File
API.
Le
problema7che
possono
essere
l’abuso
della
funzionalità
-‐
anche
tramite
ClickJacking/UI
Redressing,
CSRF
o
XSS
-‐
per
so=rarre
informazioni/file
agli
utenB.
57. anche
se
l’RFC
prevede
la
conferma
lato
UA,
prevedere
comunque
un
interazione
prima
dell’invio
dei
daB
58. HTTP
Header
ProtecBon
Se
le
minacce
sono
sul
client,
le
protezioni
sono
negli
HTTP
Header.
I
vari
vendor
hanno
proposto
svaria7
header
di
protezione
che
si
sono
man
mano
diffusi.
Sono
disponibili
header
come
protezione
accessoria
contro
i
Cross
Site
ScripBng,
Clickjacking/UI
Redressing
e
problemaBche
nel
livello
di
trasporto.