Cloak & Dagger: una falla nel sistema Android

2 Giu 2017

Gente, questa non è un’esercitazione. Tutto questo vale per tutte le versioni Android e al momento della pubblicazione di questo post, Google non ha ancora risolto le vulnerabilità. Utilizzando questa vulnerabilità, i criminali possono rubare dati (incluse le password), installare le applicazioni con un set completo di autorizzazioni, controllare cosa fa un utente e cosa sta digitando sulla tastiera di qualsiasi smartphone o tablet Android. Lo ripetiamo: questa non è un’esercitazione…

Cloak and Dagger: A hole in Android

L’attacco, soprannominato “Cloak & Dagger”, è stato dimostrato dai ricercatori del Georgia Institute of Technology e dell’University of California, Santa Barbara. Questi, hanno provato tre volte a richiamare l’attenzione di Google sul problema, ma ogni volta Google rispondeva dicendo che tutto funzionava normalmente. I ricercatori non hanno avuto quindi altra scelta se non quella di pubblicare le loro scoperte: a tal fine, hanno anche creato un sito web, cloak-and-dagger.org.

L’essenza dell’attacco Cloak & Dagger

In poche parole, l’attacco si riduce all’utilizzo di un’app da Google Play. Sebbene l’app non richieda all’utente autorizzazioni particolari, i criminali ottengono i diritti per mostrare l’interfaccia dell’app su altre app, non consentendo la loro corretta visualizzazione, e per cliccare pulsanti per conto dell’utente, in modo tale che questo non noti nulla di sospetto.

L’attacco è possibile perché all’utente non viene chiesto esplicitamente di consentire alle app di avere accesso alle funzioni SYSTEM_ALERT_WINDOW quando si installano app da Google Play e l’autorizzazione ad accedere alla funzione ACCESSIBILITY_SERVICE (A11Y) è abbastanza semplice da ottenere.

Di che tipi di autorizzazioni si tratta?  La prima autorizzazione permette a un’app di sovrapporre la propria interfaccia su altre app, mentre la seconda fa accedere a una serie di funzioni (Servizio di Accessibilità) per persone con una disabilità visiva o auditiva. La seconda autorizzazione è in grado di fare tante cose diverse al dispositivo, anche pericolose, consentendo a un’applicazione sia di controllare cosa succede in altre app sia di interagire con esse per conto dell’utente.

Cosa potrebbe andar storto?

Un livello invisibile

In poche parole, gli attacchi che usano la prima autorizzazione, SYSTEM_ALERT_WINDOW, sovrappongono la propria interfaccia a quella di altre app senza richiederlo all’utente. Inoltre, le finestre che può mostrare possono essere di qualsiasi forma (anche con parti mancanti); sono anche in grado di registrare premendo sul display o possono non essere utilizzate in maniera tale che l’app sottostante possa registrare.

Ad esempio, i criminali possono creare un livello trasparente che si sovrappone alla tastiera virtuale di un dispositivo Android e che memorizza tutto quello che si digita sullo schermo. Confrontando le coordinate del luogo da cui l’utente ha digitato sullo schermo e la posizione dei caratteri della tastiera, il criminale è in grado di scoprire cosa stava digitando esattamente l’utente sulla tastiera. I programmi pericolosi di questo tipo vengono chiamati keylogger. Questo è uno degli esempi che sono stati presentati dai ricercatori per dimostrare l’attacco.

In generale, anche l’autorizzazione SYSTEM_ALERT_WINDOW è abbastanza pericolosa e Google ritiene che debba essere utilizzata in poche app. Dal momento che app famose come Facebook Messenger (oh sì, si tratta delle chat che si sovrappongono su tutto il resto), Skype e Twitter richiedono questa autorizzazione, il team di Google a quanto pare ha deciso che sarebbe più facile se Google Play concedesse questa autorizzazione senza comunicarlo all’utente. Sfortunatamente, semplicità e sicurezza sono quasi sempre agli antipodi.

I pericoli delle funzionalità di Accessibilità

La seconda autorizzazione, quella dell’Accessibilità, è stata inizialmente pensata per un buon motivo: permette alle persone con disabilità visive o auditive di interagire facilmente con i dispositivi Android. Ad ogni modo, questa funzionalità fornisce un così alto numero di autorizzazioni all’app che viene spesso usata per altri scopi (dalle app che devono svolgere qualche azione che spesso non è permessa su Android).

Ad esempio, per leggere ad alta voce cosa sta succedendo sullo schermo per le persone con una disabilità visiva, un’app con l’accesso alla funzione Accessibilità potrebbe ottenere informazioni come sapere quale app è stata aperta, cosa digita l’utente o quando viene visualizzata una notifica. Questo vuol dire che l’app conosce l’intero contesto di quello che sta succedendo. E non è tutto: oltre a controllare le attività, l’app è anche in grado di compiere varie azioni per conto dell’utente.

Dopo tutto, Google è consapevole del fatto che l’autorizzazione alla funzione Accessibilità fornisce alle applicazioni la capacità di fare praticamente qualsiasi cosa sul dispositivo; pertanto, si deve abilitare la funzione Accessibilità per ogni applicazione individuale in un menu speciale nelle impostazioni di uno smartphone.

Il problema è che usando la prima autorizzazione SYSTEM_ALERT_WINDOW e mostrando abilmente le finestre che si sovrappongono alla maggior parte dello schermo tranne che al pulsante “OK”, i criminali possono convincere gli utenti ad attivare la funzione di Accessibilità e possono farli pensare di aver dato il loro consenso per qualcosa di innocuo.

Successivamente, dal momento che la funzionalità Accessibilità può carpire il contesto e agire per conto degli utenti, includendo gli acquisti sullo store di Google Play, per i criminali sarà un gioco da ragazzi utilizzare Google Play per scaricare una speciale app spia e darle ogni tipo di autorizzazione. Inoltre, tutto questo si può fare anche quando lo schermo è spento o, ad esempio, quando viene visualizzato un video, bloccando tutte le applicazioni in funzione.

Phishing finale

Accedere a SYSTEM_ALERT_WINDOW e a ACCESSIBILITY_SERVICE permette ai criminali di effettuare anche attacchi phishing senza insospettire l’utente.

Ad esempio, quando un utente apre l’app di Facebook e prova ad inserire le proprie credenziali d’accesso, un’altra app con i permessi di Accessibilità potrebbe sapere cosa sta succedendo e potrebbe interferire. Successivamente, utilizzando SYSTEM_ALERT_WINDOW e grazie alla capacità di sovrapporsi ad altre app, l’applicazione può mostrare all’utente una finestra di phishing che sembra proprio la pagina d’accesso di Facebook, in cui l’ignaro utente inserirà le credenziali d’accesso del suo account.

In questo caso, conoscere il contesto permette agli sviluppatori di mostrare la schermata di phishing nel punto giusto solo quando l’utente sta per inserire la password. Dal punto di vista dell’utente, le credenziali d’accesso di Facebook funzioneranno come sempre, quindi non ci sarà alcun motivo per sospettare che sia successo qualcosa di strano.

Attacchi come quelli appena descritti non sono nuovi ai ricercatori di sicurezza e hanno anche un nome: tapjacking. Google ha dato agli sviluppatori delle app Android un modo per reagire: una possibilità per controllare se un’app viene sovrapposta, in quali casi non è permesso agli utenti di compiere alcune azioni. Ecco perché molte app bancarie sono protette dagli attacchi con sovrapposizioni come Cloak & Dagger. Ad ogni modo, l’unico modo per essere sicuri al 100% che un’app non sia vulnerabile ad attacchi simili è contattare lo sviluppatore.

Come proteggere il vostro dispositivo da Cloak & Dagger

Gli autori della ricerca su Cloak & Dagger hanno testato l’attacco sulle tre versioni Android più famose: Android 5, Android 6 e Android 7, che da sole costituiscono il 70% dei dispositivi Android. Sembra che tutte le versioni siano vulnerabili all’attacco e che, molto probabilmente, lo siano anche le versioni precedenti. In altre parole, se disponete di un dispositivo Android, tutto questo riguarda anche voi.

Quindi, ecco cosa potete fare per proteggervi:

1. Provate a non installare le app sconosciute da Google Play e da altri store, in particolare le app gratuite. Le app legittime non vi attaccheranno utilizzando Cloak & Dagger. Tuttavia, il problema su come distinguere un’app sospetta da una innocua non è stato ancora risolto.

2. Controllate regolarmente quali sono le autorizzazioni delle app del vostro dispositivo ed eliminate quelle non necessarie. Potete leggere questo articolo per scoprire come fare.

Infine, non dimenticatevi di installare soluzioni di sicurezza per i dispositivi Android. Esiste una versione gratuita di Kaspersky Internet Security per Android e se non disponete di una soluzione di sicurezza sul vostro smartphone o sul vostro tablet, installarla è un buon inizio.