L’assistente vocale di Amazon, Alexa, permette agli utenti di accedere a numerosi servizi web attraverso l’uso del linguaggio naturale. Amazon permette agli sviluppatori di creare applicazioni di terze parti (note come Skill) che verranno eseguite attraverso Alexa.
Sebbene queste applicazioni abbiano il merito di favorire l’interazione degli utenti con i loro device intelligenti, esse non di meno sollevano preoccupazioni in merito alla loro sicurezza e al rispetto della privacy.
In questa ricerca – la più ampia mai fatta in questo campo – si sono analizzate 90.194 diverse skill provenienti da 7 diversi store. L’analisi ha rivelato diversi limiti nell’attuale processo di fornitura e utilizzo di queste skill.
Per prima cosa, si è visto che chiunque può pubblicare una skill sotto falso nome, magari utilizzando quello di uno sviluppatore o azienda famosi. Inoltre, anche dopo l’approvazione di Amazon, è possibile per lo sviluppatore malizioso modificare il codice della skill per forzare gli utenti a rivelare informazioni non desiderate.
Sul fenomeno dello skill-squatting, la ricerca ha identificato diverse tecniche e ne ha valutato l’efficacia ma non ha potuto concludere che attualmente vi sia un abuso generalizzato di questo tipo di attacco. Ricordiamo che lo skill squatting, è una tipologia di attacco nella quale si sfruttano gli errori sistematici di riconoscimento vocale (errori di Alexa nel comprendere la parola pronunciata dall’utente) per indirizzare gli utilizzatori a usare applicazioni maliziose senza che se ne accorgano. In una variante di tale attacco, esso viene rivolto esplicitamente ad alcuni gruppi demografici. Se ne parla in una autorevole ricerca.
La ricerca ha poi analizzato le skill dal punto di vista della privacy e dei suoi contenuti in relazione ai permessi richiesti da Alexa per accedere ai dati sensibili degli utenti. Si è trovato che il 23.3 % delle skill analizzate non chiarisce a quali tipologie di dati avrà accesso in seguito alla concessione dei permessi.
Molte skill sono associate alle stesse invocazioni
Negli anni Amazon ha semplificato il modo con cui gli utente possono abilitare determinate skill. Inizialmente, gli utenti potevano abilitare le skill solo attraverso l’app o attraverso il loro account online. Nel 2016 è divenuto possibile abilitare le skill con un comando vocale e da metà del 2017, Alexa abilita automaticamente le skill che sono invocate con il nome corretto, favorendo quelle sviluppate a mantenute da Amazon (skill native).
Amazon, tuttavia, non impedisce che altre skill, non native, condividano la stessa invocazione. Il criterio usato da Amazon per selezionare e avviare automaticamente una skill tra tutte quelle che rispondono alla stessa invocazione, non è pubblico. La ricerca quindi ha tentato di individuare se alcuni attributi delle skill fossero statisticamente correlati con la priorità che Amazon concede all’interno delle skill con la stessa invocazione.
E’ chiaro che la mancanza di trasparenza sui criteri di Amazon, può favorire l’attivazione automatica di una skill errata che risponde alla stessa invocazione. La correlazione riscontrata tra attivazione automatica della skill e il suo rating fornito dagli utenti non è tuttavia causativa, poichè la presenza della skill all’interno della app (possibile solo dopo la sua abilitazione) ne favorisce ovviamente un rating più elevato da parte degli utenti.
Modifiche al codice dopo la pubblicazione
Amazon stabilisce i requisiti perchè un server di backend possa ospitare il codice di una skill. Tali requisiti implicano che il server di backend risponda solo a richieste firmate da Amazon. Durante il processo di verifica, Amazon invia richieste di test per controllare se il server backend risponda anche a richieste non firmate. Tuttavia, non vi è alcuna restrizione alla modifica del codice di backend che può essere fatta in qualsiasi momento successivo al processo di certificazione.
Ad oggi, non vi è alcun controllo su possibili cambiamenti avvenuti nel codice dopo la certificazione. Alexa, ciecamente, riceve la risposta del server backend e la converte in dialogo con l’utente. Questa falla può essere sfruttata da attaccanti maliziosi per modificare il codice – attivando funzioni nascoste – e carpire dati sensibili agli utenti (ad esempio, il loro numero telefonico).
Colui che sviluppa la skill, può registrare un qualsiasi numero di funzioni durante il processo di certificazione, anche se molte funzioni non verranno poi usate. Un attaccante può allora registrare delle funzioni “dormienti” che non verranno mai utilizzate (ovvero non ci saranno invocazioni che le fanno eseguire) durante il processo di certificazione per non destare sospetti. Ma, dopo la certificazione, una modifica del codice può permettere all’attaccante di eseguire proprio quelle funzioni che raccolgono dati sensibili degli utenti.
Accesso ai dati sensibili attraverso le API dei permessi
Le skill di Alexa possono essere configurate per richiedere il permesso di accedere a informazioni personali, come la localizzazione o l’email, dal profilo dell’utente su Alexa. Come accade per gli smartphone, gli utenti devono concedere il permesso di accesso alle skill. Queste informazioni vengono richieste per migliorare l’interazione con l’utente, ad esempio fornendogli le previsioni del tempo nell’area in cui risiede.
I permessi danno accesso a questi dati: indirizzo del device, nome del cliente, email, numero di telefono, informazioni su Amazon Pay, personalizzazioni di Alexa ecc. Tuttavia la ricerca ha scoperto che ci sono casi in cui le skill richiedono queste informazioni direttamente all’utente, senza passare per la concessione di un esplicito permesso.
In sostanza, Alexa non vigila opportunamente sull’accesso a informazioni sensibili. Un attaccante può bypassare la struttura dei permessi e richiedere direttamente all’utente queste informazioni.
Il 24,2% delle skill hanno una privacy policy
Amazon permette agli sviluppatori delle skill di fornire un link a una privacy policy che spieghi il modo in cui i dati dell’utente verranno raccolti e usati. Tuttavia, Amazon non rende obbligatoria questa pratica per tutte le skill, ma solo per quelle che richiedono esplicitamente il permesso di accedere ai dati attraverso le sue API.
In particolare, per alcune categorie quali “bambini” e “salute e fitness”, solo il 13,6% e 42,2% delle skill hanno rispettivamente una privacy policy. La pratica vorrebbe che tali categorie fossero obbligate a rispettare uno standard di privacy più elevato.
Le skill non descrivono nella privacy policy l’uso e la tipologia dei dati acquisiti
Come detto, le skill non sono obbligate ad avere una privacy policy. Tuttavia, quelle che richiedono uno o più permessi attraverso le API di Amazon, devono rendere disponibile nello store la loro privacy policy. Non è tuttavia chiaro se la privacy policy definisca in modo chiaro come i dati verranno raccolti e se essi verranno condivisi con terze parti.
Anche tra le skill, dunque, che accedono ai dati attraverso le API dei permessi, la ricerca ha trovato che il 23,3% di esse presenta una privacy policy che non spiega nel dettaglio a quali dati avrà accesso dopo la concessione del permesso.
La ricerca sarà presentata al Network and Distributed System Security Symposium (NDSS) in Febbraio.