Appena qualche giorno fa avevamo parlato (ved. questo nostro articolo) della vulnerabilità che affligge tutte le versioni di ASP.NET e che potrebbe essere sfruttata da un malintenzionato per raccogliere dati personali ed informazioni utili per violare le applicazioni eseguite su un server IIS. Nell’attesa di rilasciare una patch risolutiva, Microsoft aveva messo a disposizione dei propri utenti e degli amministratori di sistema, alcune indicazioni per ridurre i rischi di attacco. Come avevamo spiegato, l’intervento consigliato dai tecnici del colosso di Redmond consisteva nell’abilitazione degli “errori personalizzati” in ASP.NET mediante la modifica del file di configurazione “web.config
” di ciascuna applicazione .Net ospitata dal server.
Il ricercatore argentino Juliano Rizzo, di concerto con i suoi collaboratori, hanno mostrato – pubblicando un video su YouTube – come sia possibile violare un’applicazione .Net pur nelle configurazioni in cui gli “errori personalizzati” risultino disabilitati lato server. Il codice exploit impiegato da Rizzo fa leva sugli algoritmi che l’esperto ha implementato in “POET“, un software gratuito capace di individuare automaticamente e prendere di mira le vulnerabilità “padding oracle” talvolta insite nelle applicazioni web.
ASP.NET utilizza tecniche crittografiche per nascondere dati importanti e proteggerli dai tentativi di alterazione da parte dei sistemi client. Una vulnerabilità nell’implementazione degli algoritmi crittografici in ASP.NET, tuttavia, può cambiare le carte in tavola ed esporre il sistema a rischi d’attacco. A seconda della specifica applicazione web presa di mira da un aggressore, quest’ultimo potrebbe essere in grado di leggere nomi utente e password conservati nell’oggetto “ViewState” oppure richiedere la lettura del contenuto di file arbitrari, con tutte le spiacevoli conseguenze che ne possono derivare.
Nel campo della crittografia, si chiama “oracle” il meccanismo che fornisce dei suggerimenti quando si pone un quesito. Rizzo ha preso di mira una vulnerabilità di ASP.NET che funge proprio da “padding oracle“: un aggressore, cioè, può inviare del testo cifrato al server e stabilire se è stato decodificato in modo corretto esaminando il codice d’errore restituito dallo stesso server. Inviando migliaia di richieste, un aggressore può così raccogliere sufficienti elementi per decifrare tutti i messaggi.
Per mettere a tacere l'”oracolo”, sintanto che non verrà messa a disposizione un aggiornamento ufficiale, i tecnici di Microsoft hanno dapprima consigliato di personalizzare e rendere unico i messaggi d’errore restituiti da ASP.NET (ved. questo articolo).
Nelle scorse ore, probabilmente proprio in forza del video pubblicato da Juliano Rizzo, Microsoft ha aggiornato le linee guida per difendersi da eventuali attacchi.
Come spiega il bollettino ufficiale, commentato anche da Scoot Guthrie e Feliciano Intini, il nuovo “workaround” consiste nell’installazione e nell’abilitazione di “URLScan“, modulo aggiuntivo per IIS che consente di esaminare il contenuto degli URL e delle richieste provenienti dai sistemi client collegati al server web.
Una volta terminata l’installazione di URLScan, Microsoft indica di editare il file UrlScan.ini
, memorizzato nella cartella %windir%system32inetsrvurlscanUrlScan.ini
, individuare al suo interno la direttiva [DenyQueryStringSequences]
(posizionata quasi alla fine del file) ed aggiungere il seguente parametro addizionale: aspxerrorpath=
.
Così facendo, IIS rigetterà gli URL che contengano l’attributo “aspxerrorpath=
” all’interno delle “querystring” evitando che possano essere gestiti dall’applicazione web ASP.NET.
Dopo aver applicato la modifica al file di configurazione di URLScan, è necessario operare un riavvio del server web ricorrendo al comando IISRESET /restart
.