Android migliora continuamente le proprie funzionalità e offerte in materia di sicurezza. Consulta le di miglioramenti per release nel riquadro di navigazione a sinistra.
Android 14
Every Android release includes dozens of security enhancements to protect users. Here are some of the major security enhancements available in Android 14:
- Hardware-assisted AddressSanitizer (HWASan), introduced in Android 10, is a memory error detection tool similar to AddressSanitizer. Android 14 brings significant improvements to HWASan. Learn how it helps prevent bugs from making it into Android releases, HWAddressSanitizer
- In Android 14, starting with apps that share location data with third-parties, the system runtime permission dialog now includes a clickable section that highlights the app's data-sharing practices, including information such as why an app may decide to share data with third parties.
- Android 12 introduced an option to disable 2G support at the modem level, which protects users from the inherent security risk from 2G's obsolete security model. Recognizing how critical disabling 2G could be for enterprise customers, Android 14 enables this security feature in Android Enterprise, introducing support for IT admins to restrict the ability of a managed device to downgrade to 2G connectivity.
- Added support to reject null-ciphered cellular connections, ensuring that circuit-switched voice and SMS traffic is always encrypted and protected from passive over-the-air interception. Learn more about Android's program to harden cellular connectivity.
- Added support for multiple IMEIs
- Since Android 14, AES-HCTR2 is the preferred mode of filenames encryption for devices with accelerated cryptography instructions.
- Cellular connectivity
- Documentation added for Android Safety Center
- If your app targets Android 14 and uses Dynamic Code Loading (DCL), all dynamically-loaded files must be marked as read-only. Otherwise, the system throws an exception. We recommend that apps avoid dynamically loading code whenever possible, as doing so greatly increases the risk that an app can be compromised by code injection or code tampering.
Check out our full AOSP release notes and the Android Developer features and changes list.
Android 13
Ogni release di Android include dozzine di miglioramenti della sicurezza per proteggere gli utenti. Ecco alcuni dei principali miglioramenti alla sicurezza disponibili in Android 13:
- Android 13 aggiunge il supporto delle presentazioni con più documenti. Questa nuova interfaccia Sessione di presentazione consente a un'app di eseguire una presentazione di più documenti, cosa non possibile con l'API esistente. Per ulteriori informazioni, consulta Credenziale di identità
- In Android 13, gli intent provenienti da app esterne vengono inviati a un componente esportato se e solo se corrispondono ai relativi elementi di filtro intent dichiarati.
- Open Mobile API (OMAPI) è un'API standard utilizzata per comunicare con l'elemento di sicurezza di un dispositivo. Prima di Android 13, solo le app e i moduli di framework avevano a questa interfaccia. Convertendolo in un'interfaccia stabile del fornitore, I moduli HAL sono anche in grado di comunicare con gli elementi sicuri attraverso il servizio OMAPI. Per ulteriori informazioni, consulta OMAPI Vendor Stable Interface.
- A partire da Android 13-QPR, gli UID condivisi sono deprecati. Gli utenti di Android 13 o versioni successive devono "android:sharedUserMaxSdkVersion="32"" nel file manifest. Questa voce impedisce ai nuovi utenti di ricevere un UID condiviso. Per ulteriori informazioni sugli UID, consulta Firma dell'app.
- Android 13 ha aggiunto il supporto delle primitive crittografiche simmetriche degli archivi chiavi, come AES (Advanced Encryption Standard), HMAC (Keyed-Hash Message Authentication Code), e algoritmi crittografici asimmetrici (tra cui Elliptic Curve, RSA2048, RSA4096, e curva 25519)
- Android 13 (livello API 33) e versioni successive supportano un'autorizzazione di runtime per l'invio di notifiche non esenti da un'app. In questo modo, gli utenti hanno il controllo sulle notifiche di autorizzazione che visualizzano.
- Aggiunta per uso richiesta di app che richiedono l'accesso a tutti i log del dispositivo offrendo agli utenti la possibilità di consentire o negare l'accesso.
- ha introdotto il Framework di virtualizzazione di Android (AVF), che riunisce diversi hypervisor in un unico framework con API standardizzate. Fornisce ambienti di esecuzione sicuri e privati per l’esecuzione di carichi di lavoro isolati dall’hypervisor.
- Introdotto lo schema di firma dell'APK v3.1 Tutte le nuove rotazioni della chiave che usano apksigner usano lo schema di firma v3.1 per impostazione predefinita per scegliere come target la rotazione per Android 13 e versioni successive.
Consulta le nostre note di rilascio di AOSP complete. lo sviluppatore Android funzionalità e l'elenco delle modifiche.
Android 12
Every Android release includes dozens of security enhancements to protect users. Here are some of the major security enhancements available in Android 12:
- Android 12 introduces the BiometricManager.Strings API, which provides localized strings for apps that use BiometricPrompt for authentication. These strings are intended to be device-aware and provide more specificity about which authentication types might be used. Android 12 also includes support for under-display fingerprint sensors
- Support added for under-display fingerprint sensors
- Introduction of the Fingerprint Android Interface Definition Language (AIDL)
- Support for new Face AIDL
- Introduction of Rust as a language for platform development
- The option for users to grant access only to their approximate location added
- Added Privacy indicators on the status bar when an app is using the camera or microphone
- Android's Private Compute Core (PCC)
- Added an option to disable 2G support
Android 11
Every Android release includes dozens of security enhancements to protect users. For a list of some of the major security enhancements available in Android 11, see the Android Release Notes.
Android 10
Ogni release di Android include decine di miglioramenti della sicurezza per proteggere utenti. Android 10 include diversi miglioramenti per la sicurezza e la privacy. Consulta le note di rilascio di Android 10 per un elenco completo delle modifiche in Android 10.
Sicurezza
Igienizzante per confini
Android 10 implementa BoundsSanitizer (BoundSan) in Bluetooth e codec. BoundSan utilizza il disinfettante per i limiti di UBSan. Questa mitigazione è abilitata a livello di modulo. Aiuta a mantenere componenti di Android e non devono essere disattivati. BoundSan è abilitato nei seguenti codec:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
libaac
libxaac
Memoria di sola esecuzione
Per impostazione predefinita, le sezioni di codice eseguibile per i binari di sistema AArch64 sono contrassegnate come di sola esecuzione (non leggibili) come misura di mitigazione del rafforzamento contro gli attacchi di riutilizzo del codice just-in-time. Il codice che mescola dati e codice e il codice che esamina intenzionalmente queste sezioni (senza prima rimappare i segmenti di memoria come leggibili) non funziona più. App con SDK target di Android 10 (livello API 29 o successive) sono interessati se l'app tenta di leggere sezioni di codice di tipo solo esecuzione per le librerie di sistema abilitate per la memoria (XOM) senza prima contrassegnare il come leggibile.
Accesso esteso
Gli agenti di attendibilità, il meccanismo di base utilizzato dai meccanismi di autenticazione terzi come Smart Lock, possono estendere lo sblocco solo in Android 10. Affidabilità Gli agenti non possono più sbloccare un dispositivo bloccato e possono solo tenerlo sbloccato per un massimo di quattro ore.
Autenticazione volti
L'autenticazione del volto consente agli utenti di sbloccare il dispositivo semplicemente guardando la parte anteriore del dispositivo. Android 10 aggiunge il supporto di una nuova autenticazione dei volti in grado di elaborare in modo sicuro i fotogrammi delle videocamere, tutelando la sicurezza e la privacy durante l'autenticazione dei volti su hardware supportato. Android 10 offre inoltre un modo semplice per le implementazioni conformi alla sicurezza di attivare l'integrazione delle app per transazioni come l'internet banking o altri servizi.
Sanificazione per overflow di numeri interi
Android 10 attiva la sanificazione per overflow di interi (IntSan) nei codec software. Assicurati che le prestazioni di riproduzione è accettabile per tutti i codec non supportati dall'hardware del dispositivo. IntSan è abilitato nei seguenti codec:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
Componenti di sistema modulari
Android 10 modularizza alcuni componenti del sistema Android e consente di aggiornarli al di fuori del normale ciclo di rilascio di Android. Alcuni moduli includono:
- Ambiente di runtime Android
- Conscrypt
- Resolver DNS
- DocumentsUI
- Servizi esterni
- Media
- ModuleMetadata
- Networking
- Titolare di autorizzazioni
- Dati sul fuso orario
OEMCrypto
Android 10 utilizza la versione 15 dell'API OEMCrypto.
Scudo
Scudo è un l'allocatore di memoria in modalità utente dinamico progettato per essere più resiliente vulnerabilità correlate all'heap. Fornisce le primitive di allocazione e sallocazione C standard, nonché le primitive C++.
ShadowCallStack
ShadowCallStack
(SCS)
è una modalità di ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
�
WPA3 e Enhanced Open Wi-Fi
Android 10 aggiunge il supporto del Wi-Fi Standard di sicurezza Protected Access 3 (WPA3) e Wi-Fi Advanced Open per migliorare la privacy e la robustezza contro gli attacchi noti.
Privacy
Accesso alle app quando si sceglie come target Android 9 o versioni precedenti
Se la tua app funziona su Android 10 o versioni successive, ma ha come target Android 9 (livello API 28) o versioni precedenti, la piattaforma applica il seguente comportamento:
- Se la tua app dichiara un elemento
<uses-permission>
perACCESS_FINE_LOCATION
oACCESS_COARSE_LOCATION
, il sistema aggiunge automaticamente un elemento<uses-permission>
perACCESS_BACKGROUND_LOCATION
durante l'installazione. - Se la tua app richiede
ACCESS_FINE_LOCATION
oACCESS_COARSE_LOCATION
, il sistema aggiunge automaticamenteACCESS_BACKGROUND_LOCATION
alla richiesta.
Limitazioni delle attività in background
A partire da Android 10, il sistema applica limitazioni all'avvio di attività in background. Questo cambiamento del comportamento aiuta
ridurre al minimo le interruzioni per l'utente e permettere all'utente di avere maggiore controllo su
mostrato sullo schermo. Se la tua app avvia attività come risultato diretto della interazione dell'utente, molto probabilmente non è interessata da queste limitazioni.
Per scoprire di più sull'alternativa consigliata all'avvio di attività da
sullo sfondo, consulta la guida su come effettuare un avviso
utenti di eventi urgenti nella tua app.
Metadati della videocamera
Android 10 modifica l'ampiezza delle informazioni restituite per impostazione predefinita dal metodo getCameraCharacteristics()
. In particolare, la tua app deve avere l'CAMERA
per accedere a metadati potenzialmente specifici del dispositivo,
incluso nel valore restituito di questo metodo.
Per scoprire di più su queste modifiche, consulta la sezione sui campi della fotocamera che richiedono l'autorizzazione.
Dati appunti
A meno che la tua app non sia l'input predefinito Method Editor (IME) o l'app attualmente attiva, la tua app non può accedere ai dati degli appunti su Android 10 o versioni successive.
Posizione del dispositivo
Per supportare il controllo aggiuntivo degli utenti sull'accesso di un'app a
dati sulla posizione, Android 10 introduce ACCESS_BACKGROUND_LOCATION
autorizzazione.
Non mi piace più ACCESS_FINE_LOCATION
e ACCESS_COARSE_LOCATION
autorizzazioni, l'autorizzazione ACCESS_BACKGROUND_LOCATION
influisce solo
l'accesso di un'app alla posizione quando viene eseguita in background. Un'app viene considerata
di accedere alla posizione in background, a meno che una delle seguenti opzioni
se le condizioni sono soddisfatte:
- È visibile un'attività appartenente all'app.
- L'app esegue un servizio in primo piano che è stato dichiarato in primo piano
tipo di servizio di
location
.
a dichiarare il servizio in primo piano digita per un servizio nella tua app, impostatargetSdkVersion
dell'app o DacompileSdkVersion
a29
o superiore. Scopri di più su come i servizi in primo piano possono continuare le azioni avviate dall'utente che richiedono l'accesso alla posizione.
Memoria esterna
Per impostazione predefinita, alle app che hanno come target Android 10 e versioni successive viene concesso l'accesso con ambito allo spazio di archiviazione esterno o lo spazio di archiviazione con ambito. Queste app possono vedere i seguenti tipi di file all'interno di un dispositivo di archiviazione esterno senza la necessità per richiedere eventuali autorizzazioni utente relative allo spazio di archiviazione:
- File nella directory specifica dell'app, a cui si accede utilizzando
getExternalFilesDir()
. - Foto, video e clip audio creati dall'app dal media store.
Scopri di più sull'archiviazione con ambito, nonché su come condividere, accedere modificare i file salvati su dispositivi di archiviazione esterni, consulta le guide su come per gestire nella memoria esterna e all'accesso e modificare i file multimediali.
Randomizzazione degli indirizzi MAC
Sui dispositivi con Android 10 o versioni successive, il sistema trasmette gli indirizzi MAC randomizzati
per impostazione predefinita.
Se la tua app gestisce un caso d'uso aziendale,
fornisce API per varie operazioni relative agli indirizzi MAC:
- Ottieni l'indirizzo MAC casuale: le app di proprietà del dispositivo e le app di proprietà del profilo possono recuperare l'indirizzo MAC casuale assegnato a una rete specifica chiamando
getRandomizedMacAddress()
. - Ottenere l'indirizzo MAC di fabbrica effettivo: le app di proprietà del dispositivo possono recuperare l'indirizzo MAC hardware effettivo di un dispositivo chiamando
getWifiMacAddress()
. Questo metodo è utile per monitorare flotte di dispositivi.
Identificatori dei dispositivi non reimpostabili
A partire da Android 10, le app devono avere
READ_PRIVILEGED_PHONE_STATE
autorizzazione privilegiata per
accedere agli identificatori non reimpostabili del dispositivo, che includono sia IMEI che
il numero di serie.
Build
TelephonyManager
Se la tua app non dispone dell'autorizzazione e provi a chiedere informazioni sugli identificatori non reimpostabili comunque, la risposta della piattaforma varia in base versione SDK target:
- Se la tua app ha come target Android 10 o versioni successive, un
SecurityException
. - Se la tua app ha come target Android 9 (livello API 28) o versioni precedenti, il metodo restituisce
null
o dati segnaposto se l'app haREAD_PHONE_STATE
autorizzazione. In caso contrario, si verifica unSecurityException
.
Riconoscimento dell'attività fisica
Android 10 introduce l'android.permission.ACTIVITY_RECOGNITION
autorizzazione di runtime per le app che devono rilevare il numero di passi dell'utente o
classificare la sua attività fisica, ad esempio camminata, ciclismo o movimento in un
veicolo. Questa funzionalità è progettata per offrire agli utenti visibilità su come vengono visualizzati i dati dei sensori dei dispositivi
usata in Impostazioni.
Alcune librerie di Google Play Services, come l'API Activity Recognition e l'API Google Fit, non forniscono risultati a meno che l'utente non abbia concesso alla tua app questa permission.
Gli unici sensori integrati sul dispositivo che richiedono di dichiarare questa autorizzazione sono i sensori contatore passi e rilevamento passi.
Se la tua app ha come target Android 9 (livello API 28) o versioni precedenti, il sistema concede automaticamente l'autorizzazione android.permission.ACTIVITY_RECOGNITION
all'app, se necessario, se l'app soddisfa tutte le seguenti condizioni:
- Il file manifest include l'autorizzazione
com.google.android.gms.permission.ACTIVITY_RECOGNITION
. - Il file manifest non include
Autorizzazione
android.permission.ACTIVITY_RECOGNITION
.
Se il servizio system-auto concede
Autorizzazione android.permission.ACTIVITY_RECOGNITION
, la tua app
conserva l'autorizzazione dopo aver aggiornato l'app in modo che abbia come target Android 10. Tuttavia,
l'utente può revocare questa autorizzazione in qualsiasi momento nelle impostazioni di sistema.
Restrizioni del file system /proc/net
Sui dispositivi con Android 10 o versioni successive, le app non possono accedere a /proc/net
, che include informazioni sullo stato della rete di un dispositivo. Le app che hanno bisogno di accedere a queste informazioni, come le VPN, devono utilizzare la classe NetworkStatsManager
o ConnectivityManager
.
Gruppi di autorizzazioni rimossi dall'interfaccia utente
A partire da Android 10, le app non possono cercare le autorizzazioni sono raggruppate nell'interfaccia utente.
Rimozione dell'affinità dei contatti
A partire da Android 10, la piattaforma non tiene traccia dell'affinità dei contatti
informazioni. Di conseguenza, se la tua app esegue una ricerca sui contatti dell'utente,
i risultati non sono ordinati in base alla frequenza di interazione.
La guida su ContactsProvider
contiene una nota che descrive i metodi e i campi specifici obsoleti su tutti i dispositivi a partire da Android 10.
Accesso limitato ai contenuti sullo schermo
Per proteggere i contenuti dello schermo degli utenti, Android 10 impedisce l'accesso silenzioso ai contenuti dello schermo del dispositivo modificando l'ambito delle autorizzazioni READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
e CAPTURE_SECURE_VIDEO_OUTPUT
. A partire da Android 10,
Le autorizzazioni sono di accesso con firma
.
Le app che devono accedere ai contenuti sullo schermo del dispositivo devono usare lo
MediaProjection
API, che visualizza un messaggio in cui viene chiesto all'utente di fornire il consenso.
Numero di serie del dispositivo USB
Se la tua app ha come target Android 10 o versioni successive, non può leggere il numero di serie finché l'utente non ha concesso all'app l'autorizzazione ad accedere al dispositivo o all'accessorio USB.
Per ulteriori informazioni sull'utilizzo dei dispositivi USB, consulta la guida alla configurazione
Host USB.
Wi-Fi
Le app che hanno come target Android 10 o versioni successive non possono attivare o disattivare il Wi-Fi. La
WifiManager.setWifiEnabled()
restituisce sempre false
.
Se devi chiedere agli utenti di attivare e disattivare il Wi-Fi, utilizza le impostazioni
riquadro.
Limitazioni relative all'accesso diretto alle reti Wi-Fi configurate
Per proteggere la privacy degli utenti, configura manualmente l'elenco di reti Wi-Fi
è limitato alle app di sistema e ai criteri relativi ai dispositivi
controller (DPC). Un determinato DPC può essere il proprietario o il
proprietario del profilo.
Se la tua app ha come target Android 10 o versioni successive e non è un'app di sistema o un'app con accesso in background, i seguenti metodi non restituiscono dati utili:
- Il metodo
getConfiguredNetworks()
restituisce sempre un elenco vuoto. - Ogni metodo di operazione di rete che restituisce un valore intero:
addNetwork()
eupdateNetwork()
, sempre restituisce -1. - Ogni operazione di rete che restituisce un valore booleano:
removeNetwork()
,reassociate()
,enableNetwork()
,disableNetwork()
,reconnect()
, edisconnect()
, sempre restituiscefalse
.
Android 9
Every Android release includes dozens of security enhancements to protect users. For a list of some of the major security enhancements available in Android 9, see the Android Release Notes.
Android 8
Ogni release di Android include decine di miglioramenti della sicurezza per proteggere utenti. Ecco alcuni dei principali miglioramenti alla sicurezza disponibili in Android 8,0:
- Crittografia. Aggiunto il supporto per la rimozione della chiave nel profilo di lavoro.
- Avvio verificato. È stato aggiunto l'avvio verificato di Android (AVB). Base di codice di avvio verificata che supporta la protezione del rollback per l'utilizzo nei bootloader aggiunti ad AOSP. Consiglia il supporto del bootloader per la protezione dal rollback per l'account HLOS. I bootloader consigliati possono essere sbloccati solo se l'utente interagisce fisicamente con il dispositivo.
- Schermata di blocco. È stato aggiunto il supporto per l'utilizzo di hardware antimanomissione per verificare la credenziale della schermata di blocco.
- KeyStore. È richiesta l'attestazione della chiave per tutti i dispositivi forniti con Android 8.0 e versioni successive. È stato aggiunto il supporto dell'attestazione dell'ID per migliorare la registrazione zero-touch.
- Limitazione tramite sandbox. Molti componenti più rigidamente controllati in sandbox utilizzando l'interfaccia standard di Project Treble tra il framework e i componenti specifici del dispositivo. seccomp applicato filtrando tutte le app non attendibili per ridurre la superficie di attacco del kernel. WebView viene ora eseguito in un processo isolato con accesso molto limitato al resto del sistema.
- Kernel hardening. Implementata tecnologia protetta usercopy, emulazione PAN, sola lettura dopo init e KASLR.
- Rafforzamento dello spazio utente. È stato implementato il CFI per lo stack multimediale. Gli overlay delle app non possono più coprire le finestre di sistema critiche e gli utenti hanno un modo per ignorarli.
- Aggiornamento del sistema operativo per i flussi di dati. Aggiornamenti attivati su dispositivi con poco spazio su disco.
- Installa app sconosciute. Gli utenti devono concedere per installare app da una fonte diversa da uno store proprietario.
- Privacy. L'ID Android (SSAID) ha un valore diverso per ogni app e per ogni utente sul dispositivo. Per le app browser web, Widevine Client ID
restituisce un valore diverso per il nome del pacchetto dell'app e l'origine web.
net.hostname
è ora vuoto e il client DHCP non invia più un nome host.android.os.Build.SERIAL
è stato sostituito con l'APIBuild.SERIAL
, protetta da un'autorizzazione controllata dall'utente. Miglioramento della randomizzazione dell'indirizzo MAC in alcuni chipset.
Android 7
Every Android release includes dozens of security enhancements to protect users. Here are some of the major security enhancements available in Android 7.0:
- File-based encryption. Encrypting at the file level, instead of encrypting the entire storage area as a single unit, better isolates and protects individual users and profiles (such as personal and work) on a device.
- Direct Boot. Enabled by file-based encryption, Direct Boot allows certain apps such as alarm clock and accessibility features to run when device is powered on but not unlocked.
- Verified Boot. Verified Boot is now strictly enforced to prevent compromised devices from booting; it supports error correction to improve reliability against non-malicious data corruption.
- SELinux. Updated SELinux configuration and increased seccomp coverage further locks down the Application Sandbox and reduces attack surface.
- Library load-order randomization and improved ASLR. Increased randomness makes some code-reuse attacks less reliable.
- Kernel hardening. Added additional memory protection for newer kernels by marking portions of kernel memory as read-only, restricting kernel access to userspace addresses and further reducing the existing attack surface.
- APK signature scheme v2. Introduced a whole-file signature scheme that improves verification speed and strengthens integrity guarantees.
- Trusted CA store. To make it easier for apps to control access to their secure network traffic, user-installed certificate authorities and those installed through Device Admin APIs are no longer trusted by default for apps targeting API Level 24+. Additionally, all new Android devices must ship with the same trusted CA store.
- Network Security Config. Configure network security and TLS through a declarative configuration file.
Android 6
Ogni release di Android include dozzine di miglioramenti della sicurezza per proteggere gli utenti. Ecco alcuni dei principali miglioramenti alla sicurezza disponibili in Android 6,0:
- Autorizzazioni di runtime. Le app richiedono le autorizzazioni in fase di esecuzione anziché al momento dell'installazione. Gli utenti possono attivare e disattivare le autorizzazioni sia per la versione M sia per quella pre-M app.
- Avvio verificato. Un insieme di controlli crittografici del sistema vengono condotti prima che per assicurare che lo smartphone sia integro dal bootloader tipo e quantità di spazio di archiviazione necessari e sistema operativo.
- Sicurezza isolata dall'hardware. Nuovo livello di astrazione hardware (HAL) utilizzato dall'API Fingerprint, dalla schermata di blocco, dalla crittografia del dispositivo e dai certificati client per proteggere le chiavi da compromissione del kernel e/o attacchi fisici locali
- Impronte. Ora i dispositivi possono essere sbloccati con un solo tocco. Gli sviluppatori possono inoltre sfruttare le nuove API per l'utilizzo delle fingerprint per bloccare e sbloccare le chiavi di crittografia.
- Adesione alla scheda SD. I contenuti multimediali rimovibili possono essere adottato su un dispositivo ed espandere lo spazio di archiviazione disponibile per dati locali dell'app, foto, video e così via, ma essere comunque protetti dall'impostazione la crittografia.
- Traffico di testo non cifrato. Gli sviluppatori possono utilizzare un nuovo StrictMode per assicurarsi che la loro app non utilizzi il testo non cifrato.
- Rafforzamento del sistema. Rafforzamento del sistema tramite criteri applicato da SELinux. In questo modo viene offerto un migliore isolamento tra gli utenti, il filtro IOCTL, la riduzione della minaccia dei servizi esposti, un ulteriore rafforzamento dei domini SELinux e un accesso estremamente limitato a /proc.
- Controllo dell'accesso USB: gli utenti devono confermare di consentire l'accesso USB a file, spazio di archiviazione o altre funzionalità sullo smartphone. Il valore predefinito ora è Solo addebito con accesso allo spazio di archiviazione che richiede l'approvazione esplicita dell'utente.
Android 5
5,0
Every Android release includes dozens of security enhancements to protect users. Here are some of the major security enhancements available in Android 5.0:
- Encrypted by default. On devices that ship with L out-of-the-box, full disk encryption is enabled by default to improve protection of data on lost or stolen devices. Devices that update to L can be encrypted in Settings > Security .
- Improved full disk encryption. The user password is
protected against brute-force attacks using
scrypt
and, where available, the key is bound to the hardware keystore to prevent off-device attacks. As always, the Android screen lock secret and the device encryption key are not sent off the device or exposed to any application. - Android sandbox reinforced with SELinux . Android now requires SELinux in enforcing mode for all domains. SELinux is a mandatory access control (MAC) system in the Linux kernel used to augment the existing discretionary access control (DAC) security model. This new layer provides additional protection against potential security vulnerabilities.
- Smart Lock. Android now includes trustlets that provide more flexibility for unlocking devices. For example, trustlets can allow devices to be unlocked automatically when close to another trusted device (through NFC, Bluetooth) or being used by someone with a trusted face.
- Multi user, restricted profile, and guest modes for phones and tablets. Android now provides for multiple users on phones and includes a guest mode that can be used to provide easy temporary access to your device without granting access to your data and apps.
- Updates to WebView without OTA. WebView can now be updated independent of the framework and without a system OTA. This allows for faster response to potential security issues in WebView.
- Updated cryptography for HTTPS and TLS/SSL. TLSv1.2 and TLSv1.1 is now enabled, Forward Secrecy is now preferred, AES-GCM is now enabled, and weak cipher suites (MD5, 3DES, and export cipher suites) are now disabled. See https://developer.android.com/reference/javax/net/ssl/SSLSocket.html for more details.
- non-PIE linker support removed. Android now requires all dynamically linked executables to support PIE (position-independent executables). This enhances Android's address space layout randomization (ASLR) implementation.
- FORTIFY_SOURCE improvements. The following libc
functions now implement FORTIFY_SOURCE protections:
stpcpy()
,stpncpy()
,read()
,recvfrom()
,FD_CLR()
,FD_SET()
, andFD_ISSET()
. This provides protection against memory-corruption vulnerabilities involving those functions. - Security Fixes. Android 5.0 also includes fixes for Android-specific vulnerabilities. Information about these vulnerabilities has been provided to Open Handset Alliance members, and fixes are available in Android Open Source Project. To improve security, some devices with earlier versions of Android may also include these fixes.
Android 4 e versioni precedenti
Every Android release includes dozens of security enhancements to protect users. The following are some of the security enhancements available in Android 4.4:
- Android sandbox reinforced with SELinux. Android now uses SELinux in enforcing mode. SELinux is a mandatory access control (MAC) system in the Linux kernel used to augment the existing discretionary access control (DAC) based security model. This provides additional protection against potential security vulnerabilities.
- Per User VPN. On multi-user devices, VPNs are now applied per user. This can allow a user to route all network traffic through a VPN without affecting other users on the device.
- ECDSA Provider support in AndroidKeyStore. Android now has a keystore provider that allows use of ECDSA and DSA algorithms.
- Device Monitoring Warnings. Android provides users with a warning if any certificate has been added to the device certificate store that could allow monitoring of encrypted network traffic.
- FORTIFY_SOURCE. Android now supports FORTIFY_SOURCE level 2, and all code is compiled with these protections. FORTIFY_SOURCE has been enhanced to work with clang.
- Certificate Pinning. Android 4.4 detects and prevents the use of fraudulent Google certificates used in secure SSL/TLS communications.
- Security Fixes. Android 4.4 also includes fixes for Android-specific vulnerabilities. Information about these vulnerabilities has been provided to Open Handset Alliance members and fixes are available in Android Open Source Project. To improve security, some devices with earlier versions of Android may also include these fixes.
Every Android release includes dozens of security enhancements to protect users. The following are some of the security enhancements available in Android 4.3:
- Android sandbox reinforced with SELinux. This release strengthens the Android sandbox using the SELinux mandatory access control system (MAC) in the Linux kernel. SELinux reinforcement is invisible to users and developers, and adds robustness to the existing Android security model while maintaining compatibility with existing apps. To ensure continued compatibility this release allows the use of SELinux in a permissive mode. This mode logs any policy violations, but will not break apps or affect system behavior.
- No
setuid
orsetgid
programs. Added support for filesystem capabilities to Android system files and removed allsetuid
orsetgid
programs. This reduces root attack surface and the likelihood of potential security vulnerabilities. - ADB authentication. Starting in Android 4.2.2, connections to ADB are authenticated with an RSA keypair. This prevents unauthorized use of ADB where the attacker has physical access to a device.
- Restrict Setuid from Android Apps.
The
/system
partition is now mounted nosuid for zygote-spawned processes, preventing Android apps from executingsetuid
programs. This reduces root attack surface and the likelihood of potential security vulnerabilities. - Capability bounding.
Android zygote and ADB now use
prctl(PR_CAPBSET_DROP)
to drop unnecessary capabilities prior to executing apps. This prevents Android apps and apps launched from the shell from acquiring privileged capabilities. - AndroidKeyStore Provider. Android now has a keystore provider that allows apps to create exclusive use keys. This provides apps with an API to create or store private keys that cannot be used by other apps.
- KeyChain
isBoundKeyAlgorithm
. Keychain API now provides a method (isBoundKeyType
) that allows apps to confirm that system-wide keys are bound to a hardware root of trust for the device. This provides a place to create or store private keys that can't be exported off the device, even in the event of a root compromise. NO_NEW_PRIVS
. Android zygote now usesprctl(PR_SET_NO_NEW_PRIVS)
to block addition of new privileges prior to execution app code. This prevents Android apps from performing operations that can elevate privileges through execve. (This requires Linux kernel version 3.5 or greater).FORTIFY_SOURCE
enhancements. EnabledFORTIFY_SOURCE
on Android x86 and MIPS and fortifiedstrchr()
,strrchr()
,strlen()
, andumask()
calls. This can detect potential memory corruption vulnerabilities or unterminated string constants.- Relocation protections. Enabled read only relocations (relro) for statically linked executables and removed all text relocations in Android code. This provides defense in depth against potential memory corruption vulnerabilities.
- Improved EntropyMixer. EntropyMixer now writes entropy at shutdown or reboot, in addition to periodic mixing. This allows retention of all entropy generated while devices are powered on, and is especially useful for devices that are rebooted immediately after provisioning.
- Security fixes. Android 4.3 also includes fixes for Android-specific vulnerabilities. Information about these vulnerabilities has been provided to Open Handset Alliance members and fixes are available in Android Open Source Project. To improve security, some devices with earlier versions of Android may also include these fixes.
Android fornisce un modello di sicurezza multilivello descritto nella Panoramica della sicurezza Android. Ogni aggiornamento di Android include decine miglioramenti di sicurezza per proteggere gli utenti. Di seguito sono riportati alcuni dei miglioramenti della sicurezza introdotti in Android 4.2:
- Verifica app: gli utenti possono scegliere di attivare la Verifica app e di far esaminare le app da un verificatore di app prima dell'installazione. La verifica delle app può avvisare l'utente se tenta di installare un'app che potrebbe essere dannoso; se un'app è particolarmente scadente, può bloccare l'installazione.
- Maggiore controllo sugli SMS premium: Android fornisce una notifica se un l'app tenta di inviare SMS a un codice breve che usa servizi premium che potrebbero comportare costi aggiuntivi. L'utente può scegliere se consentire o meno per inviare il messaggio o bloccarlo.
- VPN sempre attiva:la VPN può essere configurata in modo che le app non abbiano l'accesso alla rete finché non viene stabilita una connessione VPN. In questo modo, le app non possono inviare dati su altre reti.
- Blocco dei certificati: le librerie principali di Android ora supportano blocco dei certificati. I domini bloccati ricevono un errore di convalida del certificato se il certificato non è collegato a un insieme di certificati previsti. Questo meccanismo protegge da possibili compromissioni delle autorità di certificazione.
- Visualizzazione migliorata delle autorizzazioni Android: le autorizzazioni sono organizzate in gruppi più facilmente comprensibili dagli utenti. Durante la revisione del autorizzazioni, l'utente può fare clic sulle autorizzazioni per visualizzare informazioni informazioni sull'autorizzazione.
- Ottimizzazione di installd: il daemon
installd
non viene eseguito come utenteinstalld
, riducendo la potenziale superficie di attacco per l'escalation dei privilegi diinstalld
. - Rafforzamento degli script init: gli script init ora applicano la semantica
O_NOFOLLOW
per prevenire attacchi correlati ai collegamenti simbolici. FORTIFY_SOURCE
: Android ora implementaFORTIFY_SOURCE
. Questo è utilizzato da librerie di sistema e app per evitare il danneggiamento della memoria.- Configurazione predefinita di ContentProvider: per impostazione predefinita, le app che hanno come target il livello 17 dell'API hanno
export
impostato sufalse
per ogni ContentProvider, riducendo la superficie di attacco predefinita per le app. - Crittografia: sono state modificate le implementazioni predefinite di SecureRandom e Cipher.RSA per utilizzare OpenSSL. È stato aggiunto il supporto delle socket SSL per TLSv1.1 e TLSv1.2 utilizzando OpenSSL 1.0.1
- Correzioni di sicurezza: le librerie open source di cui è stato eseguito l'upgrade con le correzioni di sicurezza includono WebKit, libpng, OpenSSL e LibXML. Android 4.2 include anche correzioni per Vulnerabilità specifiche di Android. Le informazioni su queste vulnerabilità hanno fornita ai membri di Open Handset Alliance e le correzioni sono disponibili in Progetto open source Android. Per migliorare la sicurezza, alcune versioni precedenti di Android potrebbero includere anche queste correzioni.
Android provides a multi-layered security model described in the Android Security Overview. Each update to Android includes dozens of security enhancements to protect users. The following are some of the security enhancements introduced in Android versions 1.5 through 4.1:
- Android 1.5
- ProPolice to prevent stack buffer overruns (-fstack-protector)
- safe_iop to reduce integer overflows
- Extensions to OpenBSD dlmalloc to prevent double free() vulnerabilities and to prevent chunk consolidation attacks. Chunk consolidation attacks are a common way to exploit heap corruption.
- OpenBSD calloc to prevent integer overflows during memory allocation
- Android 2.3
- Format string vulnerability protections (-Wformat-security -Werror=format-security)
- Hardware-based No eXecute (NX) to prevent code execution on the stack and heap
- Linux mmap_min_addr to mitigate null pointer dereference privilege escalation (further enhanced in Android 4.1)
- Android 4.0
- Address Space Layout Randomization (ASLR) to randomize key locations in memory
- Android 4.1
- PIE (Position Independent Executable) support
- Read-only relocations / immediate binding (-Wl,-z,relro -Wl,-z,now)
- dmesg_restrict enabled (avoid leaking kernel addresses)
- kptr_restrict enabled (avoid leaking kernel addresses)