GESI Application Assessment Applicazione ARCO Milano Hacking Team S.r.l. http://www.hackingteam.it Via della Moscova, 13 info@hackingteam.it 20121 MILANO (MI) - Italy Tel. +39.02.29060603 Fax +39.02.63118946 2006 Hacking Team Proprietà Riservata Numero Allegati: 0 Pagina 1 di 8
Descrizione delle attività L attività ha avuto come oggetto il testing della sicurezza dell applicazione ARCO in due modalità differenti: Black Box: simulando un tentativo d attacco da parte di un intrusore che non sia in possesso di informazioni o credenziali relative all applicazione, sono stati effettuati svariati tentativi di accesso non autorizzato o Login bypass: Sono state utilizzate tecniche come SQL injection, parameter tampering, etc., nel tentativo di accedere all applicazione aggirando il processo di login. o Brute Force: Sono stati utilizzati dei tool automatici allo scopo di individuare delle coppie username/password valide, sulla base di un grosso numero di tentativi d accesso. White Box: simulando il comportamento malizioso di un utente effettivo dell applicazione, sono stati tentati degli attacchi allo scopo di: o Accedere/manipolare direttamente i dati presenti nel back-end applicativo o Incrementare i privilegi a disposizione dell utente o Impersonificare altri utenti dell applicazione Data la mole di componenti applicative presenti, alcune parti di questa attività sono state effettuate avvalendosi di tool di assessment automatici. 2006 Hacking Team Proprietà Riservata Numero Allegati: 0 Pagina 2 di 8
Conoscenze pregresse Per la fase di analisi black-box non sono state fornite dal Cliente informazioni pregresse, ad esclusione dell indirizzo del server da analizzare (promotore.rasbank.it). Per la fase di analisi white-box il Cliente ha fornito un utenza di test valida nell ambiente di pre-produzione. Problematiche riscontrate Durante lo svolgimento delle attività sono state incontrate alcune problematiche che hanno rallentato o inficiato l analisi di alcune componenti applicative: Lentezza nelle risposte da parte del server Alcune componenti non risultavano presenti nell ambiente testato (es: Impersonificazione) Presenza di errori applicativi non deterministici (es: login dispositiva) Sicurezza lato server - Risultati In questo paragrafo vengono presentati i risultati relativi all analisi di sicurezza del lato server dell applicazione. E importante evidenziare come nessuno degli attacchi effettuati abbia permesso di accedere all applicazione in maniera non autorizzata o di ottenere privilegi superiori a quelli permessi dal profilo dell utente utilizzato per i test. 2006 Hacking Team Proprietà Riservata Numero Allegati: 0 Pagina 3 di 8
- Attacco brute force sul form di login Gli attacchi brute force effettuati su sistemi applicativi diventano efficaci quando si possono effettuare almeno due livello di scrematura, al fine di diminuire le possibili coppie username/password da provare. Il primo livello di scrematura normalmente avviene sullo username. Per questo motivo, dati sensibili come i nomi degli utenti devono essere protetti. Da questo punto di vista ARCO risulta sicuro, utilizzato dei codici interni per identificare gli utenti. Il secondo livello di scrematura avviene sulle password, utilizzando wordlist contenenti le password più comuni per la realtà oggetto dell analisi. ARCO richiedere una password numerica di 8 o 9 cifre: nonostante il campo teorico sia più ristretto rispetto ad una password comprensiva di lettere e simboli, lo sforzo di risorse richiesto all attaccante diventa insostenibile, considerando anche i tempi di risposta rilevati per ogni tentativo di login. - Analisi del trattamento dati in input In applicativi fortemente dinamici e interattivi è necessaria una corretta gestione dell input. Attacchi come SQL-injection e Cross Site Scripting (XSS) possono compromettere la sicurezza di un server se non adeguatamente prevenuti. L applicativo ARCO risulta sicuro da questo punto di vista, effettuando un corretto trattamento anche delle stringhe più insidiose contenenti caratteri speciali (es: ; < > *, etc.). - Sicurezza ed analisi della sessioni stabilite Le sessioni applicative sono identificate e tracciate tramite l utilizzo di cookie. Alcuni sistemi rilasciano dei cookie che possono essere predicibili: avendo cioè a disposizione uno storico dei cookie rilasciati, è possibile prevedere, con buona approssimazione, quali saranno quelli associati alle sessioni successive. In questo modo potrebbe essere possibile impadronirsi della sessione applicativa relativa ad un altro utente. I cookie 2006 Hacking Team Proprietà Riservata Numero Allegati: 0 Pagina 4 di 8
rilasciati dall applicativo ARCO risultano non predicibili, come evidenziato dal seguente grafico. - Gestione degli errori Una gestione dei messaggi d errore corretta incrementa notevolmente la sicurezza di un applicativo. Un attaccante, cercando di causare malfunzionamenti, ha bisogno di riscontri per valutare il proprio operato. L applicativo ARCO redirige sulla pagina di login qualsiasi richiesta HTTP che non vada a buon fine, rendendo di fatto difficile verificare la reale presenza di determinate condizioni d errore o vulnerabilità. Questo rende anche inutilizzabile una parte dei tool automatici di scanning che non è in grado, se non correttamente configurata, di rilevare la redirezione come un errore. 2006 Hacking Team Proprietà Riservata Numero Allegati: 0 Pagina 5 di 8
- Analisi sorgente della form di login L analisi del template di login non ha prodotto risultati di rilievo, confermando i risultati dell analisi black-box. Sicurezza lato client - Risultati L analisi effettuata ha messo in evidenza una serie di criticità che potrebbero esporre l utente al rischio di furto d identità qualora l applicazione venisse usata in un ambiente non controllato (es: PC personale utilizzato anche per la normale navigazione internet, postazioni condivise come in un internet cafè, etc.). In questo tipo di contesti il rischio di contrarre infezioni da parte di virus o spyware è particolarmente elevato, e l applicazione non fornisce delle adeguate misure di sicurezza per far fronte a queste minacce. In uno scenario di questo tipo è infatti molto semplice, per un software automatico (es: spyware), catturare credenziali e dati sensibili relativi all applicazione; la mancanza di misure di sicurezza mirate rende inoltre possibile il riutilizzo di questi dati, da parte di uno spyware, per una finestra temporale sufficientemente grande da poter permettere frodi o manomissioni. Modalità di inserimento delle credenziali: Username e password di accesso vengono inseriti in una normale edit box, digitandoli tramite tastiera. Questo rende molto facile la cattura delle credenziali da parte di software di tipo keylogger (componente presente in molti spyware attualmente in circolazione), che registra le sequenze di tasti battute. Utilizzo di credenziali statiche: L uso di password statiche come unica discriminante d accesso rende molto semplice il riutilizzo delle credenziali eventualmente catturate. Nonostante le password possano avere un tempo di validità più o meno lungo, questa finestra temporale è comunque sufficiente ad 2006 Hacking Team Proprietà Riservata Numero Allegati: 0 Pagina 6 di 8
un attaccante per utilizzare le credenziali d accesso all applicazione per compiere frodi o manomissioni. Funzionalità di cambio password: L utente è in grado di cambiare la password di accesso a piacimento. Sebbene il cambio periodico di password possa rappresentare un punto di forza per la sicurezza, permette all utente di impostare password numeriche di banale inferenza (es: date nel formato gg-mm-aaaa). In uno scenario di questo tip, un attacco di tipo brute force (vedere paragrafi precedenti) potrebbe risultare enormemente efficace. Mancata invalidazione dei cookie durante il logout: Anche in seguito alla fase di logout, i cookie utilizzati dall applicazione per tenere traccia delle sessioni non vengono invalidati. In questo modo, un software di tipo spyware che sia stato in grado di intercettare tali cookie, ha a disposizione una finestra temporale più grande per poterli riutilizzare ed accedere all applicazione senza dover fornire credenziali. Inoltre, se in seguito al logout il browser non viene chiuso per qualche motivo, è sufficiente premere il tasto back per rientrare nella sessione applicativa. 2006 Hacking Team Proprietà Riservata Numero Allegati: 0 Pagina 7 di 8
Conclusioni finali In seguito all analisi effettuata, la parte server dell applicazione ha denotato un buon livello di sicurezza in rapporto alla criticità delle informazioni trattate. Le principali vulnerabilità rilevate riguardano infatti la sicurezza lato client e l esposizione dell utente al furto di identità (da parte di software malizioso che potrebbe essere installato sul PC dell operatore, qualora esso venga utilizzato in un ambiente non controllato). Sebbene risulti tecnicamente impossibile ottenere un livello di sicurezza assoluto sul client, è possibile implementare una serie di accorgimenti che possono rendere più complicati la cattura e il riutilizzo di credenziali in maniera automatica da parte di uno spyware: Utilizzo di form di login con tastierini numerici (ad esempio scritti in javascript) per l inserimento delle password numeriche. La disposizione dei tasti può essere casuale per impedire ad un software automatico di tracciare il codice digitato. Utilizzo di One Time Password che rendono minime le possibilità di successo di un attacco di tipo brute force e non rendono possibile il riciclo delle credenziali catturate. Corretta gestione della procedura di logout (con invalidamento dei cookies), per non permettere il riciclo di una sessione catturata e per evitare di rendere inutili gli accorgimenti sopra elencati. 2006 Hacking Team Proprietà Riservata Numero Allegati: 0 Pagina 8 di 8