domenica 9 gennaio 2011

MUMBLE - La sicurezza di Android

Gli apparati mobili sono diventati i contenitori delle nostre informazioni più preziose, in ogni smartphone troviamo infatti: l'elenco e i riferimenti delle persone con cui siamo in contatto, tutta la storia delle nostre comunicazioni (telefonate, SMS ed email), una serie di account e password con i quali accediamo a vari servizi Internet ed inoltre le applicazioni che installiamo sono lo specchio di quello che ci piace e che ci appassiona.

Una vera miniera di informazioni personali altamente critiche

La sicurezza di questi apparati però non è certamente adeguata alla loro criticità. Come ricordava Fabio Pietrosanti in un intervento al SecuritySummit dell'anno scorso, ci sono una serie di motivi hardware, software e di sistema operativo che rendono la sicurezza degli smartphone più "labile" rispetto ad altri apparati quali i PC.

Ogni piattaforma mobile, poi, ha il proprio approccio alla sicurezza. Android, il sistema operativo mobile open source sviluppato da Google, ad esempio, fonda gran parte della propria sicurezza su due fattori:
- l'esplicita approvazione da parte degli utenti delle autorizzazioni per le applicazioni
- un ambiente di "esercizio" isolato (sandboxed environment).

Il primo, in particolare, è un aspetto che caratterizza in modo unico l'approccio di Google; in questo paradigma, infatti, l'unico soggetto titolato ad autorizzare un'applicazione a eseguire determinati task è l'utente. Questa grande libertà però deve essere però contemperata da una grande chiarezza nelle dichiarazioni di richiesta dei permessi e da una grande attenzione e sensibilità da parte degli utenti.

E qui entriamo nel vivo di questo post, nel quale volevo condividere alcune perplessità e stimolare una riflessione generale su questo tema.

Figura 1 - I permessi prima dell'installazione 
Possiedo, infatti, un telefono Android da circa un anno e sono stato sempre molto attento alle applicazioni che ho installato, privilegiando quelle che presentavano richieste di autorizzazione compatibili con le funzionalità applicative effettivamente erogate. Dal punto di vista della privacy, sono stato anche molto attento nel limitare l'installazione di applicazioni che richiedono il permesso di accedere alle telefonate ed in particolare allo "stato e identità del telefono" (numero di telefono, codice IMEI e versione del software, ecc.). Potrete quindi facilmente capire l'amara sorpresa che mi è capitata qualche giorno fa.

Veniamo ai fatti... volevo installare un'applicazione che consentisse di fare l'editing di file .txt (mi è utile per postare sul blog in mobilità). Dopo una rapida ricerca sul Market ufficiale di Android ho scelto un'applicazione gratuita che si chiama "TextEdit". Guardando ai permessi che richiede ero molto contento perché, come si vede dalla Fig. 1, la schermata riportava la consolante risposta: "L'applicazione non richiede autorizzazioni particolari".

Quindi era l'applicazione ideale per me. Fa quello che mi serve, non presenta rischi per la privacy ed è gratuita. 

La installo subito...

Qualche giorno dopo, smanettando nel menu "Gestione applicazioni" del telefono, ho trovato un'amara sorpresa...
Fig. 2 - I permessi
dopo l'installazione

Come si vede dalla Fig. 2, i permessi che l'applicazione realmente utilizza infatti sono due: il primo consente all'applicazione di accedere alla memoria SD, e fin qui ci posso anche stare, il secondo, invece, è il famigerato "Telefonate" quello che consente di accedere allo stato e all'identità del telefono (numero di telefono, codice IMEI e versione del software). 

Questa situazione mi ha molto colpito, se avessi saputo fin dall'inizio che l'applicazione richiedeva il permesso "Telefonate" avrei valutato molto approfonditamente se installarla o meno. Inoltre, mi chiedo se questa sorta di giochino delle tre carte dove non vengono richiesti permessi prima dell'installazione e poi invece si ritrovano accordati dopo l'installazione sia effettivamente compatibile con l'approccio alla sicurezza "consapevole" di Android.

A mio modo di vedere questa situazione è inaccettabile! E penso che ci siano solo due tipi di letture per questo comportamento:
1 l'applicazione sfrutta un qualche "baco" di sicurezza per cui riesce ad aggirare la presentazione della richiesta dei permessi
2 il sistema di presentazione delle richieste dei permessi presenta delle lacune dal punto di vista della comunicazione ed induce anche un utente attento a installare applicazioni che accedono a dati importanti in modo inconsapevole.

Io non sono in grado di determinare quale delle due letture sia quella giusta, anzi invito chiunque a postare dei commenti in tal senso (Fabio Pietrosanti, illuminaci tu...), in ogni caso mi sembra che la situazione sia inaccettabile e vada sanata al più presto.

Voi cosa ne pensate...
-----------------------------------------------------------------------------------------------
Aggiornamento 11 gennaio 2011

Quando ho scritto questo post ero consapevole che la risposta più probabile fosse semplicemente che c'era qualche "feature" che consentiva questo comportamento. Ho preferito comunque scrivere il post con un atteggiamento mentale da utente. Quello che volevo mettere in evidenza è che, per un utente, anche attento e informato, era praticamente impossibile capire se si era imbattuto in qualche applicazione che aveva intenti malevoli o se invece era tutto normale.
Al fine di chiarire in modo completo la situazione mi sono rivolto al supporto di Lookout, una applicazione di sicurezza per smartphone che ho installato da tempo (e che consiglio a tutti di considerare...). Nel giro di un giorno ho ottenuto una risposta... eccola:
"Ciao Matteo,
il Market non esplicita all'utente tutte le autorizzazioni effettivamente concesse alle applicazioni, menziona solo le autorizzazioni che richiedono un espresso consenso da parte dell'utente stesso. Se un'applicazione è stata costruita per una versione del sistema operativo che non ha bisogno di un permesso (quei 2 permessi non esistono in Android 1.5) Google, piuttosto che trovarsi nella condizione di avere applicazioni che non funzionano nelle versioni successive di Android, ha deciso di aggiungere automaticamente i permessi a TUTTE le applicazioni che sono state costruite per Android 1.5. Proprio per questo motivo ci sono così tante applicazioni nella sezione "Read Identity Info" del nostro Privacy Advisor.

Grazie per utilizzare Lookout!"

Proviamo quindi a fare il punto... il versioning di Android è il seguente:
il 13 aprile 2009 esce la versione 1.5, nota come Cupcake
il 16 settembre 2009 viene rilasciata la 1.6, chiamata anche Donut
il 27 ottobre 2009 Google rilascia la versione 2.0, Eclair
il 12 gennaio 2010 arriva 2.1, sempre nota come Eclair
il 20 maggio 2010 esce la 2.2, nome in codice Froyo
il 6 dicembre 2010 è stata presentata la 2.3, Gingerbread
il prossimo rilascio atteso in primavera è la 3.0, Honeycomb

Quindi, per garantire che un'applicazione possa girare su un telefono di due anni fa e 5 versioni indietro di sistema operativo, Google ha scelto di autorizzare di default alcuni permessi, che in tutte le versioni successive sono invece espressamente richiesti agli utenti. E di questa scelta non c'è nessuna traccia visibile per l'utente... lasciandolo quindi alla mercè degli sviluppatori che possono scegliere di bypassare uno dei punti fermi del sistema di sicurezza di Android

Mi chiedo quali sarebbero stati i commenti se una situazione del genere fosse stata adottata sui sistemi operativi per PC da qualche altro colosso dell'informatica come Microsoft, Apple o Oracle, avremmo tutti gridato allo scandalo e ci saremmo indignati per l'indifferenza mostrata nei confronti della privacy degli utenti.

Credo quindi di poter ribadire la conclusione del mio post...

A mio modo di vedere questa situazione è inaccettabile!

6 commenti:

Fabio Pietrosanti (naif) ha detto...

Matteo, veramente una bella analisi!

Aimè il legacy permea i sistemi informativi di ogni tipo.
Prova a pensare a un paragone con l'autenticazione NTLM nel mondo microsoft in cui l'NTLMv1 è sempre accettato in luogo dell'NTLMv2 per questioni di compatibilità, solo che lo cracchi di rainbowtable in 2 minuti.

Magari però la consumerizzazione dell'IT che porta anche ambienti militari ad adottare hardware/software consumer sarà una buona spinta a raffinare sempre di più i sistemi di access control e gestione dei privilegi autorizzativi.

Fabio

Matteo Cavallini ha detto...

Ciao Fabio,

grazie per i complimenti e per essere un frequentatore di Punto 1.

Sono d'accordo su tutto, spero proprio che tu abbia ragione anche sulla spinta al miglioramento altrimenti, in futuro, ne vedremo delle belle!

Un caro saluto e... restiamo in contatto!!
Matteo

white-rabbit ha detto...

Il punto di forza Android su queste cose sono le custom rom... Tra le tante una delle piu famose, conoscerai di sicuro, è CyanogenMOD. Proprio Cyanogen nella prossima versione della sua Rom introdurrà la gestione dei permessi per le applicazioni, potendo revocare quelli che non ci "aggradano" :-)
http://www.youtube.com/watch?v=71UL9LIicTU

Matteo Cavallini ha detto...

Ciao white-rabbit,

grazie per essere passato a leggere questo post, spero che tornerai a trovarmi.

Rispetto alle rom, penso che l'atteggiamento debba essere di grande attenzione, perché se è vero che si trovano rom fatte da professionisti che sono in grado di competere e a volte superare le interfacce "ufficiali" dei vari produttori di hardware è anche vero che non esiste nessun tipo di controllo su questi importantissimi pezzi di codice.

Se i "cattivi" sono riusciti a prendere delle applicazioni originali, inserirci del malware e poi reinserirle nel market ufficiale di Google, mi chiedo che cosa sia possibile fare con le rom che non hanno nessun tipo di controllo e che stanno a monte di tutto il resto del codice.

Fatta questa considerazione non ho nessuna intenzione di demonizzare le rom che sono uno dei punti forti di Android, dico solo che la sana prudenza è e rimane il vero punto di forza degli utenti.

Un saluto e a presto,
Matteo

white-rabbit ha detto...

Sicuramente il rischio c'è, e sicuramente non è consigliabile installare la prima rom che capita.. Ma con comunità come CyanogenMod, Modaco etc., solo per fare gli esempi piu conosciuti a livello mondiale, il rischio cala drasticamente.. Specialmente se scaricate dalle fonti originali, è ovvio che qualcuno può manomettere anche quella fonte.. E' cosi con qualsiasi cosa si scarichi dal web però..

https://github.com/CyanogenMod

Il punto che volevo toccare però era come Android fosse in vantaggio rispetto ad altri sistemi come iOS, anche solo per il fatto che gli utenti possono mettere mano al codice e realizzare quelle features che nel sistema originale non ci sono, vedi appunto la gestione dei permessi sulle applicazioni..

Matteo Cavallini ha detto...

Ciao White-rabbit,

sono assolutamente d'accordo con te. La mia precisazione era solo legata alla necessità di fare queste operazioni in maniera "consapevole". Spesso, purtroppo, sui forum si trovano "consigli" veramente poco "consigliabili" su questi temi.

La valutazione sulle potenzialità di Android mi trova assolutamente d'accordo.

Un caro saluto e... continua a seguirmi,
Matteo

Posta un commento

http://www.wikio.it