La sicurezza delle autenticazioni con Android: facciamo chiarezza

Nicola Ligas
Nicola Ligas Tech Master
La sicurezza delle autenticazioni con Android: facciamo chiarezza

"Volevamo sapere se fosse possibile realizzare un attacco contro i servizi Google nel quale ci fingiamo qualcuno altro (impersonation attack), e così abbiamo iniziato la nostra analisi. La risposta in breve è: sì, è possibile, e anche piuttosto facile a farsi". Parola dei ricercatori dell' Istituto di informatica dei mezzi di comunicazione dell'Università tedesca di Ulm.

La scoperta si basa su un precedente risultato ottenuto dal Professor Dan Wallach dell'Università di Rice, che lo scorso febbraio affermò di aver trovato simili difetti in termini di privacy su Twitter, Facebook, e Google Calendar, specificando tuttavia che gli attacchi possono essere portati avanti solo quando si è su una rete non sicura, come nel caso di un hotspot WiFi pubblico.

La vulnerabilità avrebbe origine in un'impropria implementazione del protocollo di autenticazione ClientLogin in tutte versioni di Android fino alla 2.3.3 inclusa: dopo che un utente ha inviato le credenziali corrette per accedere a Google Calendar o Contacts, ad esempio, il programma memorizza un authToken non criptato, usato nei successivi 14 giorni ogni qualvolta venga richiesto di autenticarsi; inutile dire che entrare in possesso di questo "cookie" garantirà l'accesso anche ai dati in esso contenuti.

Le soluzioni proposte dai ricercatori teutonici sono molteplici: volendo mantenere l'uso di ClientLogin, esso andrebbe condizionato all'utilizzo di canali sicuri quale l'https; altrimenti sarebbe proprio meglio rimpiazzarlo con oAuth, un protocollo di autenticazione più robusto che non presenta il problema con authToken (sebbene questo non escluda affatto l'utilizzo di https, che anzi è comunque consigliato). In ogni caso potrebbe anche essere saggio diminuire la finestra temporale di validità di authToken e respingere le richieste di accesso effettuate tramite semplici connessioni http.

La falla è stata in effetti arginata nella versione 2.3.4 di Android (e probabilmente anche in Honeycomb, ma su questo punto i ricercatori tedeschi non sono molti chiari), sebbene la sincronizzazione con Picasa avvenga ancora in maniera non criptata (ma sembra che un fix sia attualmente in lavorazione), lasciando quindi anche i dispositivi più aggiornati vulnerabili ad attacchi di tipo sidejacking, in cui l'attaccante s'impossessa del cookie di sessione sniffando il traffico tra client e server: questo non permette di conoscere i dati d'accesso della vittima, ma consente però di "spacciarsi per essa", accedendo quindi ai suoi stessi servizi.

Ma quali sono queste reti non sicure di cui parlavamo prima? Sicuramente tutte quelle pubbliche sulle quali non abbiamo alcuna garanzia, non certo la nostra rete domestica o quella dell'ufficio (si spera). Un tipico esempio di attacco condotto su tali reti è quello dell'Evil Twin, il "gemello malvagio": in pratica l'attaccante crea un access point con lo stesso nome di uno tipico al quale siamo soliti collegarci meccanicamente ogni giorno (un classico: quello dell'università); se chi ha creato il falso punto d'accesso è particolarmente smaliziato, l'ignaro utente si ritroverà a navigare normalmente anche per ore tramite un canale di cui l'attaccante è "padrone" (con le ovvie "insicurezze" che ciò comporta), in caso contrario vedrà respinte le proprie richieste di connessione (e questo dovrebbe far suonare un campanellino d'allarme) e quindi probabilmente cambierà rete a breve (ma i suoi authToken saranno già stati catturati nel frattempo).

Fin qui abbiamo esposto nel modo più oggettivo possibile i fatti che sono stati riportati in molti siti del settore: abbiamo preferito dilungarci un po' perché in questi casi si creano facili allarmismi, che spesso sono invece smentiti da una più attenta analisi della notizia. Se però avete la pazienza di continuare a leggere ancora un po', permetteteci qualche piccola considerazione personale.

  • Chi deve preoccuparsi? Se non vi collegate mai (o solo in rari e brevi casi) ad una rete WiFi tipo quella che abbiamo descritto due paragrafi più sopra, allora potete dormire sonni relativamente tranquilli. E se avrete comunque esigenza di utilizzarne una in futuro, potrebbe essere una cosa saggia disabilitare la sincronizzazione automatica prima di effettuare la connessione (ed ovviamente evitare di forzarla manualmente). In ogni caso stare attenti agli hotspot che sfruttiamo e cambiare periodicamente password non sono proprio pessime idee, no?
  • L'importanza degli aggiornamenti per il proprio dispositivo: non si tratta solo di avere l'ultima versione disponibile di Android perché è più bella e ha nuove funzioni, è una necessità degli utenti per la propria sicurezza (informatica). A questo proposito siamo contenti che al Google I/O si sia parlato di un tempo minimo di 18 mesi di update garantiti, ma ci aspettiamo ora che anche operatori e produttori facciano la loro parte: lo ripetiamo, non è una pretesa ma un diritto di ciascun utente, che spesso versa cifre considerevoli per i propri terminali, cui non sempre corrisponde un servizio adeguato. O forse il "customer care" si ferma al momento della stampa dello scontrino?
  • I facili allarmismi: ci fa piacere che ci sia grande attenzione da parte della comunità anche ai possibili problemi di Android, che ovviamente ciascuno di noi vorrebbe risolti nel più breve tempo possibile, ma raccomandiamo sempre una certa cautela nei confronti di notizie come questa, che sono state per lo più riportate come "il 99% dei dispositivi Android è buggato". Sebbene tale affermazione abbia un suo fondamento e ci aspettiamo una pronta risposta ed una maggiore attenzione da parte di Google, la realtà dei fatti è forse un po' meno drammatica di così e non è proprio il caso di correre a sotterrare il proprio terminale, non pensate?
Fonte: