
Miglioramenti significativi alla sicurezza delle recenti versioni principali di Android.
Miglioramenti significativi della sicurezza delle principali versioni recenti di Android, a partire da Android 5.0 Lollipop (API 21).
Security Enhancements - Android 5
WebView è un pacchetto separato, vedi Security Enhancements in Android 5.0 e The Updatable WebView on Android 5.0 Lollipop What Is It and Why Should You Care?Security Enhancements in Android 6
isInsideSecureHardware) per verificare se una chiave KeyStore è archiviata in hardware sicuro (ad esempio, Trusted Execution Environment (TEE) o Secure Element (SE)), vedi isInsideSecureHardware method of KeyInfoSecurity Enhancements - Android 7
Security Enhancements - Android 8
WebView così il codice JavaScript non può accedere facilmente alla memoria dell'app, vedi What’s new in WebView security e Security section of Android 8.0 Behavior Changes for All AppsWebView rispetta Network Security Config e il flag cleartextTrafficPermitted (sulle versioni precedenti di Android carica siti HTTP anche se il traffico in chiaro non dovrebbe essere consentito dalla configurazione), vedi Security section of Android 8.0 Behavior Changes for Apps Targeting Android 8.0WebView così gli utenti vengono avvisati quando tentano di navigare verso un sito potenzialmente non sicuro (verificato da Google Safe Browsing) se abilitata, vedi WebView APIs section of Android 8.0 Features and APIsFLAG_SECURE della Window è supportato maggiormente e impedisce di catturare screenshot dello schermo dove è impostatoAndroid 9 release notes - Security features
cleartextTrafficPermitted su true nella loro Network Security Config se vogliono ancora usarlo (sconsigliato), vedi Network TLS enabled by default section of Behavior changes: apps targeting API level 28+ e Android: Cleartext HTTP traffic not permitted Android 9Security Enhancements - Android 10
Android 10 release notes - Security features
WebView, vedi setAllowFileAccess method of WebSettingsAndroid 11 release notes - Secure
taskAffinity sulla stessa dell'app target per indurre l'utente ad avviarla anche se intendeva avviare l'app target e usava la sua icona legittima) non è più possibile, vedi StrandHogg Attack / Task Affinity Vulnerability e Strandhogg VulnerabilityrequestLegacyExternalStorage, vedi Storage updates in Android 11 e Opt out in your production app section of Android storage use cases and best practicesNote di rilascio di Android 12
android:exported deve essere definito esplicitamente nei Manifest per i componenti (Activities, Content Provider, ecc.) che dichiarano Intent Filter, vedere sezione Safer component exporting di Behavior changes: app destinate ad Android 12requestLegacyExternalStorage; vedere Miglioramenti della sicurezza - Android 13
Note di rilascio di Android 13 - Sicurezza
POST_NOTIFICATIONS per l'invio di notifiche non esenti (incluse quelle dei Foreground Services (FGS)) da un'app; vedere Notification runtime permission e android.permission.POST_NOTIFICATIONSMiglioramenti della sicurezza - Android 14
Note di rilascio sulla sicurezza di Android 14
targetSdk: le app destinate a versioni di Android precedenti ad Android 6 (API 23) non possono più essere installate. Questo significa che si può presumere che le restrizioni di sicurezza (in particolare la gestione dei permessi runtime in questo caso) introdotte con Android 6 (API 23) si applichino ora a tutte le app installate sul dispositivo (si prevede che questo minimo aumenti con ogni futura versione di Android); vedere sezione Minimum installable target API level di Behavior changes: all appsQUERY_ALL_PACKAGES - che richiede una speciale revisione manuale da parte di Google Play per essere ottenuto); vedere sezione Media owner package names might be redacted di Behavior changes: all appsNote di rilascio sulla sicurezza di Android 15
PendingIntent ora bloccano per impostazione predefinita l'avvio di Activity in background se la tua app è destinata ad Android 15 (API 35); vedere sezione Other changes di Behavior changes: app destinate ad Android 15 o versioni successivePendingIntent non consenta i privilegi di avvio di Activity in background o il mittente non abbia tali privilegi, se la tua app è destinata ad Android 15 (API 35); vedere Note di rilascio sulla sicurezza di Android 16* Aggiunta sicurezza predefinita contro gli attacchi di reindirizzamento degli Intent, bloccando l'avvio di Intent ricevuti da altre app, ad esempio inclusi come extra nell'Intent che avvia l'app corrente, vedi Sezione sulla sicurezza migliorata contro gli attacchi di reindirizzamento degli Intent di Modifiche del comportamento: tutte le app
Nuova protezione per la privacy della posizione dell'utente da app dannose, durante il flusso di associazione dei dispositivi companion. Tutte le app companion in esecuzione su Android 16 non vengono più notificate direttamente del timeout di discovery tramite RESULT_DISCOVERY_TIMEOUT. Al contrario, l'utente viene notificato degli eventi di timeout con un dialogo visivo. Quando l'utente chiude il dialogo, l'app viene avvisata del fallimento dell'associazione con RESULT_USER_REJECTED, vedi Sezione sulle app companion non più notificate dei timeout di discovery di Modifiche del comportamento: tutte le app
MediaStore#getVersion() ora sarà univoco per ogni app. Questo elimina le proprietà identificative dalla stringa di versione per prevenire abusi e l'uso per tecniche di fingerprinting, vedi Sezione sul blocco della versione di MediaStore di Modifiche del comportamento: app che hanno come target Android 16 o versioni successive e metodo getVersion di MediaStore
Le app possono aderire volontariamente (opt-in) alla risoluzione rigorosa degli Intent tramite il proprio manifest. Gli Intent più sicuri (introdotti originariamente in Android 15 come parte di StrictMode) implicano che gli Intent debbano avere un'action non nulla e corrispondere al filtro degli Intent dell'app di destinazione per essere recapitati. È ora possibile applicare entrambe queste regole, oppure solo la corrispondenza del filtro degli Intent, vedi Sezione sugli Intent più sicuri di Modifiche del comportamento: app che hanno come target Android 16 o versioni successive e più specificamente la
Note di rilascio sulla sicurezza di Android 17
Viene introdotto Android Contact Picker, un'interfaccia standardizzata e navigabile che consente agli utenti di condividere contatti con la tua app, senza bisogno del permesso READ_CONTATCS, vedi Sezione sul selettore contatti Android di Funzionalità e API
Non è più consentito il traffico loopback tra profili, vedi Sezione sul blocco del traffico loopback tra profili di Modifiche del comportamento: tutte le app
Applicato un limite (50.000 chiavi per le app non di sistema che hanno come target Android 17) al numero di chiavi che un'app può creare in Android Keystore, per proteggere questa risorsa condivisa, poiché questa memoria è limitata e condivisa tra le app. Se un'app tenta di creare chiavi oltre il limite, la creazione fallisce con una KeyStoreException, vedi Sezione sui limiti del keystore per app di Modifiche del comportamento: tutte le app
Nuove capacità di rilevamento per StrictMode (questo sarà applicato per impostazione predefinita in Android 18): attualmente, se un'app lancia un intent con un URI che ha l'azione ACTION_SEND, ACTION_SEND_MULTIPLE o ACTION_IMAGE_CAPTURE, il sistema concede automaticamente le autorizzazioni di lettura e scrittura dell'URI all'app di destinazione. A partire da Android 18, il sistema non concederà più automaticamente queste autorizzazioni, vedi Sezione sulla restrizione delle concessioni implicite di URI di Modifiche del comportamento: tutte le app
Abilitazione di Certificate Transparency per impostazione predefinita per le app che hanno come target Android 17 o versioni successive, vedi Sezione sull'abilitazione di CT per impostazione predefinita di Modifiche del comportamento: app che hanno come target Android 17 o versioni successive
setView) non possono più essere lanciati dallo sfondo. Questo serve a mitigare alcuni attacchi Tapjacking che si basavano su tali viste per oscurare la UI di un'app vittima. Si noti che l'intero metodo setView è deprecato in Android 11 (API 30). Vedi documentation of setView method of ToastBiometricPrompt per l'autenticazione.FLAG_SECURE viene aggiunto per i prompt di credenziali biometriche o del dispositivo (PIN, pattern o password), sia per lo sblocco del dispositivo che per BiometricPrompt nelle app: questo significa che non è possibile catturare screenshot di queste schermate e che appaiono annerite anche nelle condivisioni dello schermo; vedere codice sorgente per com.android.systemui.biometrics.AuthContainerView su Android Code Searchapksigner useranno lo schema di firma v3.1 come predefinito per la rotazione mirata ad Android 13 e versioni successive.Exception; vedere sezione Safer dynamic code loading di Behavior changes: app destinate ad Android 14 o versioni successivenull) non corrisponderanno più ad alcun intent-filter. Questo significa che gli intent usati per avviare activity o servizi devono avere un'azione chiaramente definita; vedere sezione Safer Intents di Behavior changes: app destinate ad Android 15 o versioni successivePendingIntent viene trattato come mittente dell'intent contenitore, non come mittente del pending intent; vedere sezione Safer Intents di Behavior changes: app destinate ad Android 15 o versioni successiveBiometricPrompt: non può più "ripiegare" sulle credenziali del dispositivo dopo il fallimento biometrico per completare comunque l'autenticazione dell'utente. Nota che l'utente può comunque usare le credenziali del dispositivo per scelta tramite un pulsante sul prompt se tale autenticatore è consentito (e se non ha già fallito il prompt troppe volte). Quando il dispositivo viene bloccato, il prompt verrà annullato e sarà necessario attivare un nuovo prompt dopo lo sblocco del dispositivo per completare l'autenticazione. Vedere Android 15 fa sì che i ladri non possano prosciugare il tuo conto bancario se rubano il tuo telefono sbloccatoQuando un'app richiede le autorizzazioni per foto e video, gli utenti che scelgono di limitare l'accesso ai supporti selezionati vedranno tutte le foto di proprietà dell'app preselezionate nel selettore di foto. Gli utenti possono deselezionare uno qualsiasi di questi elementi preselezionati, revocando così l'accesso dell'app a quelle foto e a quei video, vedi Sezione sulle foto di proprietà dell'app di Modifiche del comportamento: app che hanno come target Android 16 o versioni successive
Aggiunto il supporto per i certificati di attestazione KeyMint (precedentemente Keymaster) versione 4.0. I certificati KeyMint 4.0 includono un nuovo campo moduleHash nella struttura KeyDescription, che può essere utilizzato per verificare l'integrità dei moduli APEX caricati, vedi Sezione sull'integrità del dispositivo delle note di rilascio di Android 16 e Attestazione di chiavi e ID
Consente di aderire alla Certificate Transparency, che è disabilitata per impostazione predefinita, ma sarà abilitata in Android 17, vedi Sezione sull'esclusione dalla certificate transparency della configurazione di sicurezza di rete