Nuove norme per sviluppare applicazioni più sicure su Android 4.2.2

Programmare Android

È ormai noto come Google abbia incrementato notevolmente la sicurezza di Android a partire dalla prima versione di Jelly Bean 4.1, ma, evidentemente, a Mountain View si preferisce dare un'ulteriore giro di vite in questo senso, coinvolgendo anche gli sviluppatori di applicazioni che andranno poi a diffondersi attraverso il Play Store.

Ed appunto in merito a questa problematica, il team di sviluppo del robottino verde ha pubblicato sul proprio blog un interessante ed esaustivo post che illustra quali novità siano state implementate con la recente patch 4.2.2: partendo dalla più visibile agli occhi degli utenti più esperti, troviamo la connessione sicura ad ADB, che permette solo ad host autenticati tramite una chiave RSA di inviare comandi al terminale tramite il bridge; qualora l'autenticazione fallisse o non fosse ancora accettata, il dispositivo apparirebbe collegato ma in modalità offline, non accettando nessun tipo di stringa eseguibile da remoto.

Proseguendo verso lo specifico ambito dello sviluppo di applicazioni, la squadra di Google ha prestato particolare attenzione al contenuto delle WebView: se prima, tramite la riflessione, era possibile per uno script malevolo effettuare la scansione dei metodi pubblici implementati nel software che contiene l'oggetto web e sfruttarli, ora questo tipo di attacco viene disturbato dall'implementazione dei nuovi criteri di protezione che rendono richiamabili solamente i metodi pubblici etichettati con l'apposita annotazione, nascondendo tutti gli altri.

Per quanto riguarda la protezione dei dati, attraverso una modifica ai Content Provider ora, quando non espressamente concessi i relativi permessi, l'impostazione di default sarà quella di non fornire ad altre applicazioni la possibilità di invocare questi componenti, anche se viene consigliato di impostare sempre la visibilità che preferiamo per questa funzionalità.

L'ultima (ma non meno importante) modifica riguarda invece la generazione dei numeri pseudo-casuali tramite la classe SecureRandom, che si basa ora su OpenSSL: questa nuova implementazione ne impedisce l'utilizzo, conosciuto un determinato seme, come fonte generatrici di dati deterministici; a tal proposito, gli sviluppatori consigliano di generare una chiave AES veramente casuale al primo avvio e conservarla sullo storage del dispositivo, rimandando una più approfondita discussione ad un futuro articolo circa la crittografia su Android.

Purtroppo, la maggior parte di queste funzionalità richiede l'utilizzo come SDK target (o minimo, a seconda dei casi) la versione 17 delle API del robottino verde, ovvero quelle relative proprio ad Android 4.2.

Se siete interessati all'argomento o volete implementare qualcuna di queste direttive, basta un salto al link in calce.

Fonte: