Professional Documents
Culture Documents
Matteo Meucci
OWASP-Italy Chair
ICT Security Consultant – CISSP
Business-e
matteo.meucci@business-e.it
OWASP
Italy http://www.owasp.org/local/italy.html
Copyright © 2005 - The OWASP Foundation
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
License.
The OWASP
http://www.owasp.org
Foundation
Web Application Security e OWASP Top
10
Il progetto OWASP
OWASP-Italy: Progetti e sviluppi futuri
Le dieci vulnerabiltà più comuni: OWASP Top10
Meccanismi di autenticazione non adeguati
Crash del servizio: Buffer overflow
Furto di credenziali di autenticazioni: Cross Site Scripting
Manipolazione dei dati aziendali: SQL Injection
Furto di identità: Errata gestione delle sessioni
// Trend
Sempre più aziende sono on-line
Sempre più utenti sono on-line: everyone, everywhere, everytime
// Conseguenze
• New Business
• New security risk: confidential data, thief of identity
// Quali problemi?
• Why good people write bad code -Graff e van Wyk in “Writing secure
code”
• No sviluppo “sicuro” degli applicativi web
• Firewall and SSL non sono soluzioni di sicurezza completi
Fonte: http://www.internetworldstats.com/stats.htm
Computer Crime – Milano, 18 Mag 05 OWASP 3
Italy 2005
Misure tradizionali e incidenti di
sicurezza
Gli Incidenti di sicurezza coinvolgono aziende che utilizzano:
Firewall: dal momento in cui sia consentito il protocollo HTTP in ingresso sul web
server, un attaccante puo’ inserire qualsiasi informazione nelle richieste
IDS:
sono facilmente bypassati a livello HTTP
non bloccano un attacco ma lo segnalano solamente
non possono fare nulla contro una richiesta cifrata
non sono in grado di rilevare nuovi attacchi
VPN: realizzano reti virtuali tra ambienti eterogenei garantendo riservatezza e
autenticazione tra i due peer.
AV: analizzano file ed e-mail per vedere se sono stati colpiti da nuovi virus; non sono
rilevanti per quanto riguarda l’HTTP
75% incidenti avviene via HTTP www.incidents.org
Encryption transport layer (SSL) + FW non risolvono il problema di
sviluppare un applicativo web “sicuro”
Risposta
Linee guida:
Guida per la progettazione di applicativi web “sicuri”
OWASP Top Ten Vulnerability
Checklist per Web Application Vulnerability Assessment
Tool per Pentester e code reviewer:
WebScarab
WebGoat
Stinger,…
Articoli, standard
Prima regola: non “fidarsi” mai di qualsiasi informazioni fornita dal client
nella HTTP Request (cookie, IDSessione, parametri, header, referer)
Altero il
valore in
4.999
Meccanismo di autenticazione?
Meccanismo di gestione della sessione?
Livello di sicurezza del sistema?
Computer Crime – Milano, 18 Mag 05 OWASP 22
Italy 2005
A.3: Gestione della sessione web
--Procedura di autenticazione--
Web Server
Mario Rosssi
[1] https://www.mia-banca.it
Verifica credenziali: se ok
[3] inserisce username/password via HTTPS client autenticato
Username/password
Generazione del cookie
--Richieste seguenti--
Verifica del cookie:
[5] Richiesta dell’estratto CC (https://www. mia-banca.it/cont.jsp) Identifica il mittente
Cookie=TWFyaW8123 Invio del contenuto al
DEST
Mario Rossi
Per implementare
Se altero una
la GETcorretta gestione
HTTP, “forgiando” delle
il cookie sono insessioni è
necessario proteggere
grado di accedere sia le credenziali
al contenuto di
di un’altra persona
Cookie poisoning
Cookie guessable
Cookie:aefdsg6757nb90 ; M.Rossi
Cookie:aefdsg6757nb92 ; G.Verdi
Cookie:aefdsg6757nb9? ; V.Bianchi
[1] Richiesta
Internet
Attacke [2] Risposta DataBase
r
[3] Invio malicious code mascherato Web server App. server
da informativa della banca
www.my-banca.it
[6]
Internet
[4] www.my-banca.it/VulnApp.jsp?
e=<script “malizioso”> WebApp vulnerabile al
XSS
user
[6] Invio di token di
autenticazione
all’attaccante
[5] Risposta: pagina voluta
dall’attaccante eseguita sul browser
dell’utente
Computer Crime – Milano, 18 Mag 05 OWASP 26
Italy 2005
A.4: Cross-Site-Scripting (2)
GET /welcome.cgi?
name=<script>alert(document.cookie)</script>
HTTP/1.0
Host: www.my-banca.it
...
La risposta del sito vulnerabile sarà la seguente (interpretata
sul browser dell’utente ignaro):
<HTML>
<Title>Welcome!</Title>
Hi <script>alert(document.cookie)</script>
<BR> Welcome to our system
...
</HTML>
Redirezione del contenuto del cookie dell’utente ignaro verso il server dell’attaccante
Computer Crime – Milano, 18 Mag 05 OWASP 28
Italy 2005
XSS esempio (1)
Username: ‘ OR ‘’=’
Password: ‘ OR ‘’=’
SQLQuery = “SELECT Username FROM Users WHERE Username =
‘“& strUsername &“’ AND Password =’”&strPassword”’ “
SELECT Username FROM
If (StrAuthCheck = “”)Users
then WHERE
Username = ‘’ OR ‘’=’’ AND Password
BoolAuthenticated = false =’’ OR
Else
‘’=’’
BoolAuthenticated = true
[1] Richiesta
Internet
Attacke [2] Risposta
r
App. server