Miglioramenti alla sicurezza

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

Ogni release di Android include dozzine di miglioramenti alla sicurezza per proteggere gli utenti. Ecco alcuni dei principali miglioramenti alla sicurezza disponibili in Android 14:

  • AddressSanitizer con supporto hardware (HWASan), introdotto in Android 10 è uno strumento di rilevamento degli errori di memoria, simile AddressSanitizer. Android 14 apporta miglioramenti significativi a HWASan. Scopri in che modo aiuta a prevenire a introdurre bug nelle release di Android, HWAddressSanitizer
  • In Android 14, a partire dalle app che condividono dati sulla posizione con terze parti, la finestra di dialogo delle autorizzazioni di runtime del sistema ora include una sezione selezionabile che mette in evidenza le pratiche di condivisione dei dati dell'app, incluse informazioni come il motivo per cui un'app potrebbe decidere di condividere dati con terze parti.
  • Android 12 ha introdotto un'opzione per disattivare il supporto del 2G a livello di modem, che protegge gli utenti dal rischio di sicurezza intrinseco del modello di sicurezza obsoleto del 2G. Come riconoscere come La disattivazione critica del 2G potrebbe essere per i clienti aziendali. Android 14 attiva questa funzionalità di sicurezza in Android Enterprise, introducendo il supporto per gli amministratori IT per limitare la possibilità di un dispositivo per eseguire il downgrade alla connettività 2G.
  • È stato aggiunto il supporto per rifiutare le connessioni cellulari con crittografia null, garantendo che il traffico voce e SMS con commutazione di circuito sia sempre criptato e protetto dall'intercettazione passiva over-the-air. Scopri di più sul programma di Android per rafforzare la connettività cellulare.
  • Aggiunta del supporto per più IMEI
  • Da Android 14, AES-HCTR2 è la modalità preferita per la crittografia dei nomi file per i dispositivi con istruzioni di crittografia accelerate.
  • Connettività cellulare
  • Documentazione aggiunta per il Centro per la sicurezza online di Android
  • Se la tua app ha come target Android 14 e utilizza il caricamento di codice dinamico (DCL), tutti i file caricati dinamicamente devono essere contrassegnati come di sola lettura. Altrimenti, il sistema genera un'eccezione. Consigliamo alle app di evitare di caricare dinamicamente il codice, se possibile, in quanto ciò aumenta notevolmente il rischio che un'app possa essere compromessa da un'iniezione o da una manomissione del codice.

Consulta le nostre note di rilascio di AOSP complete. lo sviluppatore Android funzionalità e l'elenco delle modifiche.

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

Ogni release di Android include dozzine di miglioramenti della sicurezza per proteggere gli utenti. Ecco alcuni dei principali miglioramenti alla sicurezza disponibili in Android 12:

  • Android 12 introduce l'API BiometricManager.Strings, che fornisce stringhe localizzate per le app che utilizzano BiometricPrompt per l'autenticazione. Queste stringhe devono essere consapevoli del dispositivo e fornire informazioni più specifiche sui tipi di autenticazione che potrebbero essere utilizzati. Android 12 include inoltre il supporto per i sensori di impronte digitali sotto il display
  • È stato aggiunto il supporto per i sensori di impronte digitali integrati nel display
  • Introduzione del linguaggio Fingerprint Android Interface Definition Language (AIDL)
  • Supporto per il nuovo AIDL di Face
  • Introduzione di Rust come linguaggio per lo sviluppo della piattaforma
  • È stata aggiunta l'opzione che consente agli utenti di concedere l'accesso solo alla loro posizione approssimativa
  • Sono stati aggiunti indicatori della privacy nella barra di stato quando un'app utilizza la fotocamera o il microfono
  • I dati di Android Compute Core (PCC)
  • Aggiunta un'opzione per disattivare il supporto 2G

Android 11

Ogni release di Android include decine di miglioramenti della sicurezza per proteggere utenti. Per un elenco di alcuni dei principali miglioramenti di sicurezza disponibili in Scopri Android 11 Release di Android Note.

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:

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> per ACCESS_FINE_LOCATION o ACCESS_COARSE_LOCATION, il sistema aggiunge automaticamente un elemento <uses-permission> per ACCESS_BACKGROUND_LOCATION durante l'installazione.
  • Se la tua app richiede ACCESS_FINE_LOCATION o ACCESS_COARSE_LOCATION, il sistema aggiunge automaticamente ACCESS_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, imposta targetSdkVersion dell'app o Da compileSdkVersion a 29 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:

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.

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 ha READ_PHONE_STATE autorizzazione. In caso contrario, si verifica un SecurityException.

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:

Android 9

Ogni release di Android include decine di miglioramenti della sicurezza per proteggere utenti. Per un elenco di alcuni dei principali miglioramenti di sicurezza disponibili in Per Android 9, consulta le Release di Android Note.

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'API Build.SERIAL, protetta da un'autorizzazione controllata dall'utente. Miglioramento della randomizzazione dell'indirizzo MAC in alcuni chipset.

Android 7

Ogni release di Android include dozzine di miglioramenti della sicurezza per proteggere gli utenti. Ecco alcuni dei principali miglioramenti della sicurezza disponibili in Android 7.0:

  • Crittografia basata su file. La crittografia a livello di file anziché criptare l'intera area di archiviazione come una singola unità, isola e protegge i singoli utenti e profili (ad esempio, profili di Google) su un dispositivo.
  • Avvio diretto. Attivazione tramite crittografia basata su file, accesso diretto L'avvio consente ad alcune app, come sveglia e funzioni di accessibilità di esegui quando il dispositivo è acceso ma non sbloccato.
  • Avvio verificato. L'Avvio verificato è ora applicato in modo rigoroso impedire l'avvio di dispositivi compromessi; supporta la correzione degli errori migliorare l'affidabilità contro il danneggiamento non dannoso dei dati.
  • SELinux. La configurazione aggiornata di SELinux e l'aumento della copertura di seccomp bloccano ulteriormente la sandbox delle applicazioni e riducono la superficie di attacco.
  • Randomizzazione dell'ordine di caricamento della libreria e ASLR migliorata. Una maggiore casualità rende alcuni attacchi basati sul riutilizzo del codice meno affidabili.
  • Ottimizzazione del kernel. È stata aggiunta una protezione della memoria aggiuntiva per i kernel più recenti contrassegnando parti della memoria del kernel come di sola lettura, limitando l'accesso del kernel agli indirizzi dello spazio utente e riducendo ulteriormente la superficie di attacco esistente.
  • Schema di firma dell'APK v2. È stato introdotto uno schema di firma dell'intero file che migliora la velocità di verifica e rafforza le garanzie di integrità.
  • Archivio CA attendibile. Per semplificare il controllo da parte delle app dell'accesso al loro traffico di rete sicuro, le autorità di certificazione installate dall'utente e quelle installate tramite le API Device Admin non sono più considerate attendibili per impostazione predefinita per le app che hanno come target il livello API 24 e versioni successive. Inoltre, tutti i nuovi dispositivi Android devono essere forniti con lo stesso archivio CA attendibile.
  • Network Security Config. Configurare la sicurezza di rete e TLS tramite un file di configurazione dichiarativa.

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

Ogni release di Android include decine di miglioramenti della sicurezza per proteggere utenti. Ecco alcuni dei principali miglioramenti alla sicurezza disponibili in Android 5,0:

  • Criptati per impostazione predefinita. Sui dispositivi che vengono forniti con L La crittografia completa del disco pronta all'uso è abilitata per impostazione predefinita per migliorare Protezione dei dati su dispositivi smarriti o rubati. I dispositivi aggiornati a L possono essere criptati in Impostazioni > Sicurezza.
  • Crittografia completa del disco migliorata. La password utente è Protezione contro gli attacchi di forza bruta utilizzando scrypt e, dove se disponibile, la chiave è associata all'archivio chiavi hardware per impedire attacchi esterni al dispositivo. Come sempre, il segreto del blocco schermo di Android e la chiave di crittografia del dispositivo non vengono inviati dal dispositivo né esposti a nessuna applicazione.
  • Sandbox Android rafforzata con SELinux . Android adesso richiede SELinux in modalità di applicazione forzata per tutti i domini. SELinux è uno strumento di controllo dell'accesso obbligatorio (MAC) nel kernel Linux, utilizzato per aumentare l'attuale modello di sicurezza del controllo dell'accesso discrezionale (DAC). Questo nuovo livello fornisce protezione aggiuntiva contro potenziali vulnerabilità di sicurezza.
  • Smart Lock. Android ora include trustlet che offrono maggiore flessibilità per sbloccare i dispositivi. Ad esempio, i trustlet possono consentire di sbloccare automaticamente i dispositivi quando sono nelle vicinanze di un altro dispositivo attendibile (tramite NFC, Bluetooth) o quando vengono utilizzati da una persona con un volto attendibile.
  • Modalità multiutente, profilo con limitazioni e modalità ospite per smartphone e tablet. Android ora fornisce a più utenti di smartphone e include una modalità ospite che può essere utilizzata per fornire un accesso temporaneo e semplice ai tuoi dispositivo senza concedere l'accesso ai tuoi dati e alle tue app.
  • Aggiornamenti a WebView senza OTA. Ora WebView può essere aggiornati indipendentemente dal framework e senza sistema OTA. In questo modo è possibile rispondere più rapidamente a potenziali problemi di sicurezza in WebView.
  • Crittografia aggiornata per HTTPS e TLS/SSL. TLS 1.2 e TLS 1.1 sono ora attivati, la crittografia lato client è ora preferita, AES-GCM è ora attivato e le suite di crittografia deboli (MD5, 3DES e suite di crittografia di esportazione) sono ora disattivate. Per ulteriori dettagli, visita la pagina https://developer.android.com/reference/javax/net/ssl/SSLSocket.html.
  • supporto del linker non PIE rimosso. Android ora richiede eseguibili collegati dinamicamente per supportare PIE (eseguibili indipendenti dalla posizione). Questa funzionalità migliora lo spazio degli indirizzi di Android dell'implementazione di randomizzazione del layout (ASLR).
  • Miglioramenti a FORTIFY_SOURCE. Le seguenti funzioni libc ora implementano le protezioni FORTIFY_SOURCE: stpcpy(), stpncpy(), read(), recvfrom(), FD_CLR(), FD_SET() e FD_ISSET(). Questo fornisce protezione contro le vulnerabilità di corruzione della memoria queste funzioni.
  • Correzioni di sicurezza. Android 5.0 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, alcuni dispositivi con funzionalità di Android potrebbero includere anche queste correzioni.

Android 4 e versioni precedenti

Ogni release di Android include decine di miglioramenti della sicurezza per proteggere utenti. Di seguito sono riportati alcuni dei miglioramenti della sicurezza disponibili in Android 4.4:

  • Sandbox Android rafforzata con SELinux. Android ora utilizza SELinux in modalità di applicazione. SELinux è un sistema di controllo obbligatorio dell'accesso (MAC) nel kernel di Linux utilizzato per migliorare il modello di sicurezza basato sul controllo dell'accesso discrezionale (DAC) esistente. Ciò fornisce una protezione aggiuntiva contro potenziali vulnerabilità di sicurezza.
  • VPN per utente. Sui dispositivi multiutente, ora le VPN vengono applicate per singolo utente. In questo modo, un utente può instradare tutto il traffico di rete tramite una VPN senza influire sugli altri utenti del dispositivo.
  • Assistenza per i fornitori ECDSA in AndroidKeyStore. Android ora dispone di un fornitore di archivi chiavi che consente l'uso di ECDSA e Algoritmi DSA.
  • Avvisi relativi al monitoraggio del dispositivo. Android fornisce agli utenti un avviso se è stato aggiunto al magazzino dei certificati del dispositivo un certificato che potrebbe consentire il monitoraggio del traffico di rete criptato.
  • FORTIFY_SOURCE. Android ora supporta FORTIFY_SOURCE di livello 2 e tutto il codice viene compilato con queste protezioni. FORTIFY_SOURCE è stato migliorato per funzionare con clang.
  • Blocco dei certificati. Android 4.4 rileva e previene l'utilizzo fraudolento di contenuti Google certificati utilizzati nelle comunicazioni SSL/TLS sicure.
  • Correzioni di sicurezza. Android 4.4 include anche correzioni per vulnerabilità specifiche di Android. Le informazioni su queste vulnerabilità sono state fornite a Open Membri della Handset Alliance e correzioni disponibili nell'open source di Android progetto. Per migliorare la sicurezza, alcuni dispositivi con versioni precedenti di Anche Android potrebbe includere queste correzioni.

每个 Android 版本中都包含数十项用于保护用户的安全增强功能。以下是 Android 4.3 中提供的一些安全增强功能:

  • 通过 SELinux 得到增强的 Android 沙盒。此版本利用 Linux 内核中的 SELinux 强制访问权限控制系统 (MAC) 增强了 Android 沙盒。SELinux 强化功能(用户和开发者看不到它)可提高现有 Android 安全模型的可靠性,同时与现有应用保持兼容。为了确保持续兼容,此版本允许以宽容模式使用 SELinux。此模式会记录所有政策违规行为,但不会中断应用或影响系统行为。
  • 没有 setuid/setgid 程序。针对 Android 系统文件添加了对文件系统功能的支持,并移除了所有 setuid/setgid 程序。 这可以减小 root 攻击面,并降低出现潜在安全漏洞的可能性。
  • ADB 身份验证。从 Android 4.2.2 起,开始使用 RSA 密钥对为 ADB 连接进行身份验证。这可以防止攻击者在实际接触到设备的情况下未经授权使用 ADB。
  • 限制 Android 应用执行 SetUID 程序。/system 分区现在针对 Zygote 衍生的进程装载了 nosuid,以防止 Android 应用执行 setuid 程序。这可以减小 root 攻击面,并降低出现潜在安全漏洞的可能性。
  • 功能绑定。在执行应用之前,Android Zygote 和 ADB 现在会先使用 prctl(PR_CAPBSET_DROP) 舍弃不必要的功能。这可以防止 Android 应用和从 shell 启动的应用获取特权功能。
  • AndroidKeyStore 提供程序。Android 现在有一个允许应用创建专用密钥的密钥库提供程序。该程序可以为应用提供一个用于创建或存储私钥的 API,其他应用将无法使用这些私钥。
  • KeyChain isBoundKeyAlgorithm。Keychain API 现在提供了一种方法 (isBoundKeyType),可让应用确认系统级密钥是否已绑定到设备的硬件信任根。该方法提供了一个用于创建或存储私钥的位置,即使发生 root 权限被窃取的情况,这些私钥也无法从设备中导出。
  • NO_NEW_PRIVS。在执行应用代码之前,Android Zygote 现在会先使用 prctl(PR_SET_NO_NEW_PRIVS) 禁止添加新权限。这可以防止 Android 应用执行可通过 execve 提权的操作。(此功能需要使用 3.5 或更高版本的 Linux 内核)。
  • FORTIFY_SOURCE 增强功能。Android x86 和 MIPS 上启用了 FORTIFY_SOURCE,并增强了 strchr()、strrchr()、strlen() 和 umask() 调用。这可以检测潜在的内存损坏漏洞或没有结束符的字符串常量。
  • 重定位保护。针对静态关联的可执行文件启用了只读重定位 (relro) 技术,并移除了 Android 代码中的所有文本重定位技术。这可以深度防范潜在的内存损坏漏洞。
  • 经过改进的 EntropyMixer。除了定期执行混合操作之外,EntropyMixer 现在还会在关机/重新启动时写入熵。这样一来,便可以保留设备开机时生成的所有熵,而这对于配置之后立即重新启动的设备来说尤其有用。
  • 安全修复。Android 4.3 中还包含针对 Android 特有漏洞的修复。有关这些漏洞的信息已提供给“开放手机联盟”(Open Handset Alliance) 成员,并且 Android 开放源代码项目中提供了相应的修复。为了提高安全性,搭载更低版本 Android 的某些设备可能也会包含这些修复。

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 utente installd, riducendo la potenziale superficie di attacco per l'escalation dei privilegi di installd.
  • Rafforzamento degli script init: gli script init ora applicano la semantica O_NOFOLLOW per prevenire attacchi correlati ai collegamenti simbolici.
  • FORTIFY_SOURCE: Android ora implementa FORTIFY_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 su false 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 fornisce un modello di sicurezza multilivello descritto nella Panoramica della sicurezza Android. Ogni aggiornamento di Android include decine di miglioramenti alla sicurezza per proteggere gli utenti. Ecco alcune delle funzionalità di sicurezza Miglioramenti introdotti nelle versioni di Android dalla 1.5 alla 4.1:

Android 1.5
  • ProPolice per evitare gli overrun del buffer dello stack (-fstack-protector)
  • safe_iop per ridurre i valori in eccesso degli interi
  • Estensioni a dlmalloc di OpenBSD per evitare vulnerabilità di doppio free() e per difendersi dagli attacchi di consolidamento dei chunk. Gli attacchi di consolidamento dei chunk sono un un modo comune per sfruttare il danneggiamento dell'heap.
  • Calloc OpenBSD per impedire gli overflow interi durante l'allocazione della memoria
Android 2.3
  • Protezioni per le vulnerabilità delle stringhe di formato (-Wformat-security -Werror=format-security)
  • No eXecute (NX) basato sull'hardware per impedire l'esecuzione di codice nello stack e nell'heap
  • Linux mmap_min_addr per mitigare il privilegio di rimozione del puntatore nullo Riassegnazione (migliorata ulteriormente in Android 4.1)
Android 4.0
ASLR (Address Space Layout Randomization) per randomizzare le posizioni delle chiavi in memoria
Android 4.1
  • Supporto di PIE (Position Independent Executable)
  • Trasferimenti di sola lettura / associazione immediata (-Wl,-z,relro -Wl,-z,now)
  • dmesg_restrict abilitato (evita la perdita degli indirizzi kernel)
  • kptr_restrict abilitato (evita la perdita degli indirizzi kernel)