Vulnerabilità delle applicazioni ASP.NET

LHR BSODThai Duong e Juliano Rizzo, due ricercatori nel campo della sicurezza, hanno messo a punto uno schema di attacco che sfrutta un baco del modo in cui le applicazioni realizzate con la piattaforma ASP.NET di Microsoft trattano i cookie di sessione criptati.

Il problema, che riguarda milioni di applicazioni web che utilizzano quella piattaforma, potrebbe essere molto serio e potrebbe essere utilizzato per impersonare un utente di un sito. Il metodo di attacco verrà illustrato in dettaglio alla ekoparty Security Conference che si tiene questa settimana in Argentina.

ASP.NET cripta i cookie con l’algoritmo AES per impedire che gli stessi vengano modificati in maniera fraudolenta, ma questa strategia offre solamente una sicurezza parziale. Inoltre l’implementazione di AES in ASP.NET ha un baco nella gestione degli errori di criptazione.

Quando un cookie viene modificato da un’entità terza, ASP.NET risponde con un errore che rivela alcune informazioni sul sistema di implementazione della cifratura; più errori si generano e più informazioni si raccolgono, fino al punto tale da fornire all’attaccante dati sufficienti per penetrare la sicurezza dell’applicativo.

Il baco di ASP.NET si basa sul un problema dell’implementazione dell’algoritmo crittografico del padding oracle (in crittografia un oracle è un’entità algoritmica che risponde in un determinato modo a certi input secondo regole proprie). Il sistema di criptazione opera su blocchi di byte di lunghezza fissa. Se il messaggio da elaborare non è esattamente un multiplo di quella lunghezza, entra in gioco il padding oracle per riempire i vuoti fino a raggiungere il multiplo della lunghezza fissa. Se si inviano all’applicativo ASP.NET blocchi creati ad arte, questo risponderà con degli errori che rivelano se la parte di riempimento dei vuoti è corretta e se non lo è fornisce informazioni aggiuntive utili per raffinare l’attacco.

Se la strategia di attacco è efficace nel 100% dei casi, sul campo deve fare i conti con la velocità di elaborazione e la banda del server attaccato. Secondo Rizzo e Duong, un attaccante fortunato può riuscire in pochi secondi, un attacco medio viene portato a termine con successo in mezz’ora, mentre lo scenario peggiore provato sul campo è di 50 minuti.

Secondo alcune stime, la piattaforma ASP.NET è utilizzata da circa un quarto dei siti e sicuramente è molto diffusa negli ambienti business.

19 settembre 2010: aggiornamento.

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

Un pensiero riguardo “Vulnerabilità delle applicazioni ASP.NET”

Spazio per un commento