Ogni 3 anni l’OWASP aggiorna la TOP 10 delle vulnerabilità più comuni per le applicazioni Web. La TOP 10 di quest’anno contiene alcune interessanti novità.
Al primo posto rimangono sempre le vulnerabilità
di tipo Injection, seguite dalle problematiche nella Gestione della Sessione e nell’Autenticazione. Indietreggiano di una posizione i Cross Site Scripting.
Il talk, dopo una breve introduzione sulla TOP 10 e sugli
aggiornamenti, si pone lo scopo di descrivere con esempi pratici sia le varie vulnerabilità che i possibili rientri, in pieno spirito “think positive” promosso nella TOP 10 stessa.
16. A10.
Unvalidated
Redirect
e
Forwards
Le
vulnerabilità
di
Gpo
Unvalidated
Redirect
e
Forwards
si
verificano
quando
daO
non
validaO
uGlizzaG
per
gesGre
redirezioni
verso
altre
pagine
o
siG,
permeQendo
di
redirezionare
l’utente
su
pagine
o
siG
terzi.
Tali
vulnerabilità
possono
essere
uGlizzate
da
malware
o
per
aQacchi
di
phishing
come
per
quesGoni
di
Black
SEO
-‐
secondo
il
parGcolare
redirect
uGlizzato
dalla
pagina.
20. A9.
Using
Components
with
Known
VulnerabiliOes
Le
vulnerabilità
di
questo
Gpo
insistono
sulla
configurazione
e
deployment
di
sistemi
e/o
applicazioni.
L’impaQo
varia
secondo
la
problemaGca
specifica,
ad
esempio
dalle
vulnerabilità
presenG
in
un
applicaGon
server
o
una
libreria
applicaGva
non
aggiornata.
La
responsabilità
dell’aggiornamento
è
per
alcuni
aspeZ
sistemisOca,
per
altri
applicaOva;
altri
aggiornamenG
potrebbero
inoltre
dipendere
da
necessità
applicaGve
ma
insistere
sui
sistemi.
24. A8.
Cross
Site
Request
Forgery
(CSRF)
Le
vulnerabilità
di
questo
Gpo,
solitamente
considerate
problemaGche
nella
gesOone
della
sessione,
permeQono
di
far
eseguire
richieste
arbitrarie
ad
un
utente
verso
un’applicazione
potendone
così
sfruQare
l’accesso,
senza
che
l’utente
sia
noGficato
dell’aZvità.
Il
browser,
quando
esegue
una
richiesta
verso
un’applicazione,
invia
automaGcamente
eventuali
cookie
presenG.
La
CSRF
è
parGcolarmente
criGca
per
operazioni
che
modificano
lo
stato
del
sistema.
28. A7.
Missing
FuncOon
Level
Access
Control
Le
vulnerabilità
di
questo
Gpo
consistono
nelle
problemaGche
che
espongono
funzionalità
che
dovrebbero
invece
essere
proteQe
da
un
controllo
accessi.
Riguardano
pertanto
l’autorizzazione,
che
può
essere
gesGta
-‐
secondo
i
contesG
-‐
sia
lato
applicaGvo
che
lato
sistemisGco
(in
questo
caso
tramite
la
configurazione).
L’impaQo
dipende
dal
Gpo
di
funzionalità
cui
si
ha
accesso.
33. A6.
SensiOve
Data
Exposure
Le
vulnerabilità
di
questo
Gpo
consistono
nelle
problemaGche
che
espongono
informazioni
che
dovrebbero
invece
essere
proteQe.
Le
informazioni
devono
essere
proteQe
quando
trasmesse
(sicurezza
della
comunicazione),
quando
memorizzate
sul
server
(cri,ografia)
oppure
quando
vengono
inviate
al
browser
(caching)
37. A5.
Security
MisconfiguraOon
Le
vulnerabilità
di
questo
Gpo
insistono
sulla
configurazione
e
deployment
di
sistemi
e/o
applicazioni.
L’impaQo
varia
secondo
la
problemaGca
specifica,
ad
esempio
di
accedere
alle
interfacce
di
amministrazione
tramite
password
di
default.
La
responsabilità
delle
configurazioni
è
per
alcuni
aspeZ
sistemisOca,
per
altri
applicaOva;
alcune
configurazioni
potrebbero
inoltre
dipendere
da
necessità
applicaGve
ma
insistere
sui
sistemi.
40. A4.
Insecure
Direct
Object
Reference
Le
vulnerabilità
di
Gpo
Insecure
Direct
Object
Reference
posso
riguardare
problemaGche
di
autorizzazione
nei
parametri
di
ingresso
che,
non
controllando
l’effeZvo
possesso
per
l’autorizzazione
di
accesso,
permeQono
l’accesso
ad
oggeZ
altrimenG
non
accessibili.
Per
ogni
risorsa,
bisogna
definire
se
questa
può
essere
accessibile
da
determinaG
utenG
(anche
anonimi),
e
se
si
è
autorizzaG
alla
visualizzazione.
Spesso
questo
Gpo
di
controllo
viene
faQo
tramite
il
principio
della
“sicurezza
tramite
segretezza”,
pertanto
conoscendo
il
valore
del
parametro
è
possibile
accedervi.
44. A3.
Cross
Site
ScripOng
(XSS)
Le
vulnerabilità
di
Gpo
XSS
si
verificano
quando
daO
non
validaO
vengono
resGtuiG
al
browser,
oppure
memorizzaG
dall’applicazione
e
resGtuiG
in
un
secondo
momento,
permeQendo
quindi
di
eseguire
codice
lato
client
all’interno
del
browser
degli
utenG.
L’impaQo
di
queste
vulnerabilità
è
spesso
alto
e
permeQe
di
compromeQere
gli
utenG,
oppure
di
eseguire
dei
defacement.
48. A2.
Broken
AuthenOcaOon
and
Session
Management
Le
vulnerabilità
di
questo
Gpo
possono
riguardare
la
gesOone
della
sessione
o
insistere
sull’autenOcazione,
permeQono
di
accedere
all’applicazione
con
i
permessi
di
altri
utenG.
AutenGcazione
e
Sessione
sono
argomenG
correlaG.
Una
volta
che
l’utente
si
autenGca,
viene
idenGficato
aQraverso
l’id
di
sessione,
che
può
essere
soggeQo
ad
aQacchi
di
svariato
Gpo,
come
anche
le
credenziali,
la
schermata
di
autenOcazione
con
i
rispeZvi
errori
ed
eventuali
pagine
che
gesGscono
le
credenziali
degli
utenG,
come
la
funzionalità
di
cambio
password.
52. A1.
InjecOon
Le
vulnerabilità
di
Gpo
InjecGon
si
verificano
quando
daO
non
validaO
vengono
inviaG
come
parte
di
una
richiesta
verso
un
interprete,
permeQendo
di
eseguire
richieste
o
comandi
normalmente
non
previsG
dall’applicazione.
L’impaQo
di
queste
vulnerabilità
è
spesso
alto
e
permeQe
di
compromeQere
il
sistema
o
i
daG.
53. 2003/2004
(a,acks)
2007
(vulnerabiliOes)
2010
2013
Unvalidated
Input
Cross
Site
ScripOng
(XSS)
InjecOon
InjecOon
Broken
Access
Control
InjecOon
Flaws
Cross-‐Site
ScripOng
(XSS)
Broken
AuthenOcaOon
and
Session
Management
Broken
AuthenOcaOon
and
Session
Management
Malicious
File
ExecuOon
Broken
AuthenOcaOon
and
Session
Management
Cross-‐Site
ScripOng
(XSS)
Cross
Site
ScripOng
(XSS)
Flaws
Insecure
Direct
Object
Reference
Insecure
Direct
Object
References
Insecure
Direct
Object
References
Buffer
Overflows
Cross
Site
Request
Forgery
(CSRF)*
Cross-‐Site
Request
Forgery
(CSRF)
Security
MisconfiguraOon
(risks)
(risks)
InformaOon
Leakage
and
Security
MisconfiguraOon
Improper
Error
Handling
SensiOve
Data
Exposure
Improper
Error
Handling
Broken
AuthenOcaOon
and
Session
Management
Insecure
Cryptographic
Storage
Missing
FuncOon
Level
Access
Control
Insecure
Storage
Insecure
Cryptographic
Storage
Failure
to
Restrict
URL
Access
Cross-‐Site
Request
Forgery
(CSRF)
Denial
of
Service
Insecure
CommunicaOons
Insufficient
Transport
Layer
ProtecOon
Using
Known
Vulnerable
Components
Insecure
ConfiguraOon
Management
Failure
to
Restrict
URL
Access
Unvalidated
Redirects
and
Forwards
Unvalidated
Redirects
and
Forwards
InjecOon
Flaws