Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
COMANDI NON AUTORIZZATI
Sfruttamento semplice e impatto notevole
******* ANIMAZIONE *******
Web server ‐> Application ‐> Database
Vulnerabilità form di login
******* ANIMAZIONE *******
Stringa modificata con caratteri speciali
riconosciuti come COMANDI SQL
******* ANIMAZIONE *******
Query
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 4
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
******* ANIMAZIONE *******
Esecuzione comando non autorizzato
SE TEMPO < 8 minuti
Contromisure:
Escape dei caratteri speciali
Differente algoritmo di login
Prima fra tutte troviamo la categoria delle Injection
Flaws, come SQL injection, che si verificano quando
vengono eseguiti comandi non autorizzati.
La prima posizione è dovuta alla facilità di
sfruttamento e al notevole impatto che ha sul
sistema.
* Esempio *
Nell’esempio vediamo un esempio banale di web
server che gestisce un’applicazione associata ad un
database.
Supponiamo una vulnerabilità SQL nel form di login
del pannello di amministrazione.
L’utente inserisce al posto dell’username una stringa
apposita che contiene caratteri speciali interpretabili
dal database.
Vediamo come la query «xxxx» viene manipolata per
eseguire un comando non autorizzato
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 4
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
Cross‐Site Scripting o XSS siti DINAMICI
Sfruttamento medio e impatto moderato
80% delle violazioni è dovuto all’XSS
Sfrutta la fiducia di un utente in un sito web
******* ANIMAZIONE *******
Esecuzione di codice lato server
Raccolta e manipolazione di dati
o Deface sito web
o
Javascript, Vbscript, Flash
STORED
Codice permanente sul server
o
REFLECTED
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 5
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
Codice inserito nel flusso di esecuzione
o (richieste POST e GET)
SE TEMPO < 10
Contromisure:
Escape dei caratteri speciali
Il cross‐site scripting o XSS è una vulnerabilità che
affligge siti web dinamici che hanno un insufficiente
controllo dei form di input. Lo sfruttamento è medio,
tuttavia l’80% degli attacchi è dovuto a questa
violazione. (Symantec 2007)
Esistono due tipi di vulnerabilità:
‐ STORED, ovvero uno script viene memorizzato
permanentemente sul server in maniera permanente
‐ REFLECTED, ovvero quando lo script si inserisce nel
flusso di esecuzione del programma, ad esempio
sfruttando vulnerabilità note del protoccollo http nei
metodi get e post.
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 5
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
Cross‐Site Request Forgery
Sfruttamento medio ma ALTA diffusione
CITAZIONE MITNICK
******* ANIMAZIONE *******
Sfrutta la fiducia del sito nel browser dell’utente
TOTALMENTE INVISIBILE all’utente
******* ANIMAZIONE *******
1. Autenticazione utente su di un sito fidato
2. L’utente può compiere azioni fidate sul sito
3. Il malintenzionato porta l’utente a leggere
contenuti dannosi (email, web)
4. Tramite l’utilizzo del cookie il malintenzionato si
sostituisce all’utente
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 6
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
SE TEMPO < 12
Contromisure:
Campi hidden con codici univoci per ogni
operazione
Richiedere protezioni aggiuntive come ad
esempio
Password
o Pin dispositivi
o
Questa vulnerabilità non è di così facile utilizzo. Tuttavia vista
la grandissima diffusione e la facilità di individuazione merita
un trattamento dettagliato.
Il CSRF è un attacco che consente al malintenzionato di
utilizzare il browser della vittima per eseguire azioni su siti
fidati.
Un utente può cliccare su di un link ed a sua insaputa dare
avvio ad una transazione su un sito malevolo.
* Esempio *
1. L’attaccante attira la vittima a leggere alcuni contenuti
dannosi (web o email)
2. Queste pagine inviano richieste ad un sito vulnerabile,
oppure l’utente è portato ad avviare procedure (phishing)
3. Se l’attacco riesce, la richiesta al sito vulnerabile conterrà
le credenziali di accesso e l’eventuale funzione verrà
portata a compimento.
Indipendentemente dalla riuscita o meno dell’attacco, esso è
completamente invisibile all’utente.
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 6
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
CONTROLLO TEMPO: 12 minuti
Insecure direct object reference
Sfruttamento facile ma impatto moderato
Esposizione di parametri con richieste di tipo GET
******* ANIMAZIONE *******
Codice utente visibile nella barra degli indirizzi
Senza un adeguato controllo il malintenzionato
avrebbe accesso alla pagina della vittima
SE TEMPO < 13
Contromisure:
Utilizzare POST per ogni richiesta sensibile
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 7
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
Questa vulnerabilità si presenta quando un
programmatore espone un riferimento, un file o una
chiave di database alla vista degli utenti.
Questa vulnerabilità salta subito all’occhio in quanto il
malintenzionato vede sul browser parte della logica
dell’applicazione.
* Esempio *
Nel nostro esempio possiamo vedere un account
bancario che mostra il codice utente nella barra degli
indirizzi. Il malintenzionato potrebbe benissimo provare
a sostituire questo codice con quello di un altro conto.
Senza un adeguato controllo egli avrebbe l’accesso
completo al profilo della vittima.
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 7
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
Failure to restrict URL access
Non si effettua il controllo sull’identità
dell’utente
Sfruttamento facile ma impatto moderato
******* ANIMAZIONE *******
Ruolo dell’utente visibile nella barra degli indirizzi
Se non è presente un CONTROLLO DI SESSIONE si
ottengono privilegi amministrativi
Senza un adeguato controllo il malintenzionato
avrebbe accesso a funzioni di amministrazione
SE TEMPO < 15
Contromisure:
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 8
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
URL effettivo nascosto
La vulnerabilità A8 si verifica quando almeno una
pagina non effettua il controllo sull’identità
dell’utente.
* Esempio *
L’applicazione nasconde alcuni elementi di menù
all’utente non autorizzato come admin, tuttavia il
path mostra il ruolo dell’utente in maniera esplicita. Il
malintenzionato proverà quindi a sostituire il ruolo
con uno che non gli compete.
L’attacco ha successo solo se la pagina richiesta non
effettua un controllo di sessione, consentendo a
chiunque di ottenere privilegi amministrativi.
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 8
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
Security Misconfiguration
Lasciare attive le configurazioni di default
Sfruttamento facile ma impatto moderato
******* ANIMAZIONE *******
Mancata/Errata configurazione dei moduli di
base
Cura nel dettaglio ma account di default attivi
Accesso privilegiato
SE TEMPO < 18
Spiegazione nel dettaglio del tipo di attacco. Con
esempio
PASSWORD DEFAULT
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 9
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
Contromisure:
Eliminare tutte le configurazioni di default o
cambiarne i parametri
Esistono tutta una serie di vulnerabilità dovute ad una
configurazione errata, o alla mancanza di
configurazione, dei moduli di base.
I moduli con impostazioni di default non sono sicuri.
* Esempio *
È infatti possibile curare nel dettaglio ogni singolo
aspetto della sicurezza dell’applicazione, tralasciando
magari di eliminare l’account dell’amministratore di
default. Ecco che un malintenzionato proverà le
credenziali pubbliche e otterrà l’accesso al modulo
specifico.
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 9
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
NON SUPERARE 20 MINUTI
Definite quelle che sono le principali vulnerabilità
cerchiamo di capire come fronteggiare queste
situazioni.
La protezione di un’applicazione web è un processo in
più fasi.
Nella prima fase, quella si sviluppo la sicurezza passa
dalla progettazione e l’applicazione di tecniche
precise e metodiche che consentono di minimizzare le
vulnerabilità note.
Si applicano quindi tutta una serie di controlli di
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 10
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
sicurezza standard, come ad esempio il controllo di
tutti i form di input o dei parametri.
Si pianifica correttamente il ciclo di vita del software
in quanto un sistema obsoleto è facilmente
sfruttabile.
Ultima ma non ultima è la formazione dei
programmatori e dei designer dell’applicazione.
Nella fase di test invece è necessaria una revisione
approfondita del codice. Questa operazione è
generalmente lunga e costosa e viene effettuata da
persone che CONOSCONO il software in ogni
dettaglio.
Il penetration testing invece può essere
automatizzato e serve a rendere il sistema a prova di
intrusione da parte di soggetti esterni all’azienda e/o
al gruppo di sviluppo dell’applicazione.
Il penetration testing automatizzato si divide in due
macrogruppi: White‐Box e Black‐Box.
Vedremo nel dettaglio solo gli scannare di tipo black‐
box
Ottobre 2012 Zago Mattia ‐ VR091801 ‐ Bioinformatica 10
Vulnerabilità Web. Analisi e metodi di individuazione automatici.
Per la categoria dei black‐box scanner presenterò un
articolo che introduce i black‐box scanner come
strumento per effettuare un penetration testing in
un’applicazione web creata appositamente per
l’occasione.
<