La sicurezza dei sistemi Android

Di - 14 December 2012 - in

Un tempo, i problemi di sicurezza dei device mobili erano per lo più limitati allo smarrimento ed al pericolo che altre persone potessero leggere la vostra rubrica personale od i messaggi privati. Con l’avvento degli smartphone, sempre più simili a veri e propri computer tascabili, problemi di privacy e sicurezza si sono moltiplicati, addirittura superando quelli dei sistemi operativi con cui ormai siamo abituati a lavorare su laptop e desktop. I device mobili infatti non hanno solo ereditato i problemi propri dei classici S.O. ma li hanno amplificati a causa dell’enorme quantità di dati che custodiscono, raccolta proprio grazie alle funzionalità che rendono uno smartphone così comodo: messaggi, profili personali, foto private e persino abitudini.

Tema sempre attuale, la protezione dei sistemi operativi mobile ha nelle ultime settimane generato interesse per vari motivi, tra cui i principali sono la campagna marketing di Microsoft contro Android sui social network (nata #DroidRage e velocemente tramutatasi in #WindowsRage) e l’introduzione in Jelly Bean di un nuovo layer di sicurezza, garantendo l’utilizzo della protezione che Google fornisce per le app disponibili su Google Play direttamente sui device ed anche per applicazioni installate manualmente.

Approfittando dell’occasione andiamo quindi ad esplorare la situazione della sicurezza su device Android e degli strumenti che Google utilizza o ci mette a disposizione per la protezione dell’utente.

Partiamo dal principio, ovvero: le basi del sistema di sicurezza di Android

Grazie all’alto numero di applicazioni disponibili nell’ecosistema Android arrivare ad avere decine od addirittura qualche centinaio di app installate allo stesso momento non è affatto una cosa insolita. Trattando con volumi così elevati è però importante fare in modo che le applicazioni non vadano in conflitto l’una con l’altra, che i dati raccolti non siano accessibili senza permesso e che l’utente non perda il controllo del proprio device. Questi tre problemi sono tutti affrontati grazie all’uso di una tecnica chiamata sandboxing: ogni applicazione viene lanciata e fatta girare in una sandbox propria, ovvero non le è possibile vedere nulla al di fuori di se stessa.

Grazie a questa tecnica risulta impossibile per un’applicazione andare ad interagire (positivamente o negativamente) con altri processi attivi, mettendo in sicurezza tanto il sistema operativo quanto le altre applicazioni installate ed in uso. Un malware (in generale un software progettato per rubare informazioni, impattare negativamente sull’utilizzo del S.O. o per guadagnare accesso a funzioni privilegiate) non potrà quindi effettuare telefonate, terminare altre applicazioni, leggerne i dati o far bloccare Android. Quando un’applicazione termina in maniera inaspettata, inoltre, Android ci avviserà tramite un pop-up ma continuerà a funzionare normalmente: non è quindi possibile per applicazioni difettose creare problemi all’intero sistema.

Limitarsi ad utilizzare solo la tecnica del sandboxing pone però grandi limiti a ciò che le varie applicazioni possono fare. Leggendo il paragrafo precedente potreste esservi chiesti come possano esistere app malevole in un sistema simile o come facciano alcune applicazioni a lavorare insieme. Per poter offrire all’utente funzionalità avanzate è necessario permettere alle app di estendersi oltre ai limiti sopra elencati senza però andarne ad inficiare l’efficacia. A questo scopo è stato pensato ed implementato un secondo livello di protezione: i permessi.

Aprire il recinto, ovvero: i permessi per lavorare al di fuori delle sandbox

Come sicuramente avrete notato se avete installato applicazioni Android, ogni app richiede un numero di permessi relativi a come potrà andare a comunicare con il sistema operativo sottostante. Ognuno di questi permessi rimuove un particolare limite imposto dal sistema di sandboxing precedentemente visto: sarà quindi possibile trovare applicazioni che possono collegarsi ad internet, modificare la memoria (interna od esterna) del device, utilizzare il GPS od addirittura effettuare chiamate e mandare messaggi in modo automatico. Tutto questo è necessario affinchè le applicazioni possano svolgere i compiti che si prefiggono: sarebbe infatti impossibile per un sistema di navigazione dare indicazioni all’utente senza poter accedere alla sua posizione tramite GPS o rete dati. Sebbene questa soluzione aumenti la complessità del sistema e vada, in un certo modo, a pesare sull’utente, risulta comunque un ottimo modo per contenere eventuali problemi: un eventuale malware con il solo permesso di mandare SMS, per esempio, non sarà in grado di fare altri tipi di danno nè di prendere possesso del sistema operativo.

L’utilizzo di questo tipo di sistema è automatico: su installazione di un’applicazione (tanto tramite Google Play quanto tramite apk) all’utente verrà presentata la lista di permessi richiesti, che dovranno quindi essere approvati in toto per poter procedere. Per verificare i permessi richiesti da applicazioni già installate è sufficiente andare nel menu Impostazioni – Applicazioni e selezionare l’app che si vuole esaminare. L’opzione è disponibile su tutte le versioni di Android ma con Jelly Bean Google ne ha migliorato la presentazione in modo da permettere all’utente una visione facilitata di ciò che ogni applicazione può fare.

Per leggere la spiegazione dettagliata del significato di ogni permesso è possibile (su Google Play, durante l’installazione di un apk e mentre si sta visionando un’applicazione dal menu Impostazioni) toccare il nome del permesso od il riassunto mostrati e si aprirà un pop-up contenente tutte le informazioni del caso. Dato che le applicazioni possono evolversi e venire modificate Google Play ne permette l’update automatico; tuttavia come misura di sicurezza aggiunta ogni volta che l’aggiornamento di un’applicazione ne modifica i permessi aggiungendone di nuovi, la richiesta di aggiornamento dovrà essere obbligatoriamente visionata dall’utente che potrà quindi decidere se approvare o meno l’update.

Il buttafuori di Google, ovvero: come Google combatte le applicazioni malevole

A causa del sistema di permessi abbiamo visto com’è possibile che esistano malware su Android. Abbiamo però visto che tali permessi sono una parte necessaria del funzionamento e della protezione del sistema operativo e che spesso anche applicazioni che richiedono permessi apparentemente sospetti possano averne bisogno per scopi del tutto legittimi.

Senza andare ad esplorare il codice dell’applicazione la sola lista di permessi nella maggioranza dei casi non è sufficiente per distinguere tra software legittimo e malware: per questo Google si fa carico dell’ispezione delle applicazioni offerte su Google Play, bloccando alla porta app che andrebbero a danneggiare l’utente. Nessun software di scansione è perfetto, tuttavia l’incidenza di malware nello Store di Google è estremamente bassa (nel Q3 del 2012 solo lo 0.5% dei malware presenti in rete è riuscito a passare i controlli ed arrivare sullo Store), il che significa che l’utilizzo di Google Play Store unito ad un pizzico di attenzione dovrebbe garantirvi un device Android privo di qualsiasi software malevolo.

Con Jelly Bean 4.2 Google ha inoltre esteso il suo impegno nel proteggere l’utente da malware anche alle applicazioni installate tramite apk. È infatti disponibile un’opzione apposita in Impostazioni – Sicurezza che garantisce ad Android il permesso di comunicare con Google per determinare se l’app che si sta installando fa parte di una lista di malware conosciuti, nel qual caso il sistema ne terminerà l’installazione avvertendo l’utente. Se l’applicazione non viene identificata né come sicura né come malevola il sistema avvertirà l’utente chiedendogli come procedere.

Bisogna notare che questo sistema di protezione, sebbene faccia uso del “buttafuori” che Google ha implementato nel suo Store, lavora in maniera molto differente: per permettere allo scanner di Google di controllare l’applicazione dovremmo infatti farne l’upload completo, il che comporterebbe attese anche di lunga durata oltre a richiedere una connessione capace di trasferire una quantità importante di dati. Per ridurre al minimo tanto l’attesa quanto la quantità di dati trasmessa Android fa avere ai server di Google la sola firma digitale del file apk, ovvero una stringa di caratteri univocamente legati al file in questione.

Questa soluzione non è però esente da difetti, come dimostrato dal professor Xuxian Jiang della North Carolina State University: eseguendo un test su 1260 malware il professor Jiang ha infatti riportato che solo 193 sono state bloccate da questo sistema, ovvero un misero 15.32%, di molto inferiore ai risultati di altri anti-virus disponibili per Android.

Alla base di questi risultati ci sono due grandi problemi: per prima cosa dato l’altissimo numero di malware per Android disponibili su Internet non è realistico pensare che Google possa mantenere un database aggiornato con cui effettuare i riscontri sulla firma digitale ricevuta, inoltre la firma stessa è facilmente modificabile (è infatti sufficiente che due versioni dello stesso malware abbiano minime differenze nel file apk perché le loro firme risultino differenti). Il professor Jiang ha comunque indicato che crede che il servizio offerto da Google potrà migliorare implementando le soluzioni offerte da VirusTotal, uno scanner anti-virus online, recentemente acquistato da Google.

Tirando le somme, ovvero: come mantenere un device sano

Abbiamo quindi visto come funzionano i tre livelli di sicurezza implementati in Android (le sandbox, i permessi e lo scanner di Google) e che, come qualsiasi altro sistema operativo, anche Android non è perfetto; ci rimane quindi da vedere che accorgimenti adottare per neutralizzare la minaccia posta dai malware, per l’utente un problema tanto attuale quanto facilmente evitabile.

Per cominciare, dove possibile è consigliabile acquistare ed installare applicazioni dal Google Play Store e mantenere attiva l’opzione di scansione dei file apk da parte di Google sui device Jelly Bean 4.2. Installando applicazioni esterne al Play Store è bene fare attenzione alla fonte dell’apk ed evitare siti che possono sembrare sospetti.

Per una protezione aggiuntiva è anche possibile scaricare un anti-virus per Android, di cui alcuni esempi sono (senza un particolare ordine) avast! Mobile Security, AntiVirus FREE e Lookout Security & Antivirus.

Anche con tutti questi accorgimenti il miglior consiglio rimane sempre quello di porre attenzione ai permessi richiesti dalle varie applicazioni ed usare il proprio buon senso: è questo l’unico passo davvero necessario per evitare di infettare il proprio smartphone o tablet con malware e software malevolo.

Via | Google Support, Ars Technica, The Next Web

Leave a Reply

Daniel Monza Articolo scritto da

Da sempre appassionato di tecnologia è passato dal mondo videoludico ad un interesse generale per l'informatica, eventualmente abbracciando Slackware, Android ed i servizi online di Google. Gli piace ascoltare musica e leggere libri e fumetti, con una predilizione per racconti dell'orrore e del mistero. Si improvvisa scrittore e disegnatore per divertimento personale.

Contatta l'autore

Previous post:

Next post: