Proteggere un dispositivo Android

Android incorpora funzionalità di sicurezza leader del settore e collabora con sviluppatori e implementatori di dispositivi per mantenere sicuri la piattaforma e l'ecosistema Android. Un modello di sicurezza solido è essenziale per consentire un ecosistema vigoroso di app e dispositivi basati sulla piattaforma Android e supportati dai servizi cloud. Di conseguenza, durante l'intero ciclo di vita dello sviluppo, Android è stato sottoposto a un rigoroso programma di sicurezza.

Android è progettato per essere aperto. Le app per Android utilizzano hardware e software avanzati, nonché dati locali e pubblicati, esposti tramite la piattaforma per offrire innovazione e valore ai consumatori. Per realizzare questo valore, la piattaforma offre un ambiente app che protegge la riservatezza, l'integrità e la disponibilità di utenti, dati, app, dispositivo e rete.

La protezione di una piattaforma aperta richiede un'architettura di sicurezza solida e programmi di sicurezza rigorosi. Android è stato progettato con una sicurezza multilivello abbastanza flessibile da supportare una piattaforma aperta, proteggendo al contempo tutti gli utenti della piattaforma. Per informazioni sulla segnalazione di problemi di sicurezza e sulla procedura di aggiornamento, consulta Aggiornamenti e risorse per la sicurezza.

Android è progettato per gli sviluppatori. I controlli di sicurezza sono stati progettati per ridurre il carico di lavoro degli sviluppatori. Gli sviluppatori esperti di sicurezza possono lavorare facilmente con controlli di sicurezza flessibili e fare affidamento su di essi. Gli sviluppatori meno esperti di sicurezza sono protetti da impostazioni predefinite sicure.

Oltre a fornire una piattaforma stabile su cui basarsi, Android offre agli sviluppatori un ulteriore supporto in diversi modi. Il team di sicurezza Android cerca potenziali vulnerabilità nelle app e suggerisce modi per risolvere questi problemi. Per i dispositivi con Google Play, Play Services fornisce aggiornamenti della sicurezza per le librerie software critiche, come OpenSSL, che viene utilizzato per proteggere le comunicazioni delle app. Android Security ha rilasciato uno strumento per testare SSL (nogotofail) che aiuta gli sviluppatori a trovare potenziali problemi di sicurezza sulla piattaforma su cui stanno sviluppando.

Android sfrutta anche il supporto hardware sottostante per la sicurezza. Ad esempio, la tecnologia ARM TrustZone viene utilizzata per fornire spazio di archiviazione sicuro per le chiavi crittografiche e le attestazioni di integrità dell'avvio. DICE viene utilizzato per misurare il firmware caricato prima dell'avvio di Android. Ciò consente la verifica remota che il firmware non sia interessato da vulnerabilità note e critiche che potrebbero essere sfruttate per danneggiare sviluppatori e utenti.

Puoi trovare ulteriori informazioni per gli sviluppatori di app per Android su developer.android.com.

Android è progettato per gli utenti. Gli utenti hanno visibilità sulle autorizzazioni richieste da ogni app e controllo su queste autorizzazioni. Questo design prevede che gli autori degli attacchi tentino di eseguire attacchi comuni, come attacchi di ingegneria sociale per convincere gli utenti dei dispositivi a installare malware e attacchi ad app di terze parti su Android. Android è stato progettato per ridurre la probabilità di questi attacchi e limitarne notevolmente l'impatto in caso di successo. La sicurezza di Android continua a progredire dopo che il dispositivo è nelle mani dell'utente. Android collabora con partner e con il pubblico per fornire patch per qualsiasi dispositivo Android che continua a ricevere aggiornamenti della sicurezza.

Ulteriori informazioni per gli utenti finali sono disponibili nel Centro assistenza Nexus, nel Centro assistenza Pixel o nel Centro assistenza del produttore del dispositivo.

Questa pagina illustra gli obiettivi del programma di sicurezza Android, descrive i fondamenti dell'architettura di sicurezza Android e risponde alle domande più pertinenti per gli architetti di sistema e gli analisti della sicurezza. Si concentra sulle funzionalità di sicurezza della piattaforma principale di Android e non tratta problemi di sicurezza specifici di determinate app, ad esempio quelli relativi al browser o all'app per gli SMS.

Sfondo

Android fornisce una piattaforma open source e un ambiente per app per dispositivi mobili.

Le sezioni e le pagine seguenti descrivono le funzionalità di sicurezza della piattaforma Android. La Figura 1 illustra i componenti di sicurezza e le considerazioni sui vari livelli dello stack software Android. Ogni componente presuppone che i componenti sottostanti siano fissati correttamente. Ad eccezione di una piccola quantità di codice del sistema operativo Android in esecuzione come root, tutto il codice sopra il kernel Linux è limitato dalla sandbox delle applicazioni.

Figura 1: stack software Android

Figura 1. Stack software Android

I componenti principali della piattaforma Android sono:

  • Hardware del dispositivo: Android funziona su un'ampia gamma di configurazioni hardware, tra cui cellulari, tablet, orologi, automobili, smart TV, console di gioco OTT e decoder. Android è indipendente dal processore, ma sfrutta alcune funzionalità di sicurezza specifiche dell'hardware, come ARM eXecute-Never.
  • Sistema operativo Android: il sistema operativo principale è basato sul kernel Linux. Tutte le risorse del dispositivo, come le funzioni della fotocamera, i dati GPS, le funzioni Bluetooth, le funzioni di telefonia e le connessioni di rete sono accessibili tramite il sistema operativo.
  • Android Application Runtime:le app per Android vengono scritte più spesso nel linguaggio di programmazione Java e vengono eseguite in Android Runtime (ART). Tuttavia, molte app, tra cui i servizi e le app Android principali, sono app native o includono librerie native. Sia ART sia le app native vengono eseguite nello stesso ambiente di sicurezza, contenuto all'interno della sandbox applicazioni. Le app ottengono una parte dedicata del file system in cui possono scrivere dati privati, inclusi database e file non elaborati.

Le app per Android estendono il sistema operativo Android di base. Esistono due origini principali per le app:

  • App preinstallate:Android include un insieme di app preinstallate, tra cui telefono, email, calendario, browser web e contatti. Funzionano come app utente e forniscono funzionalità chiave del dispositivo a cui possono accedere altre app. Le app preinstallate possono far parte della piattaforma Android open source oppure possono essere sviluppate da un produttore di dispositivi per un dispositivo specifico.
  • App installate dagli utenti:Android fornisce un ambiente di sviluppo aperto che supporta qualsiasi app di terze parti. Google Play offre agli utenti centinaia di migliaia di app.

Servizi di sicurezza di Google

Google fornisce una serie di servizi basati sul cloud disponibili per i dispositivi Android compatibili con i servizi Google Mobile. Sebbene questi servizi non facciano parte dell'Android Open Source Project (AOSP), sono inclusi in molti dispositivi Android. Per ulteriori informazioni su alcuni di questi servizi, consulta la Rassegna del 2018 di Android Security.

I principali servizi di sicurezza di Google sono:

  • Google Play: Google Play è un insieme di servizi che consentono agli utenti di scoprire, installare e acquistare app dal proprio dispositivo Android o dal web. Google Play consente agli sviluppatori di raggiungere facilmente gli utenti Android e i potenziali clienti. Google Play fornisce anche recensioni della community, verifica della licenza dell'app, scansione della sicurezza delle app e altri servizi di sicurezza.
  • Aggiornamenti Android:il servizio di aggiornamento Android offre nuove funzionalità e aggiornamenti della sicurezza a determinati dispositivi Android, inclusi gli aggiornamenti tramite web o over-the-air (OTA).
  • Servizi app:framework che consentono alle app Android di utilizzare funzionalità cloud come il backup di dati e impostazioni delle app e la messaggistica cloud-to-device (C2DM) per la messaggistica push.
  • Verifica app:avvisa o blocca automaticamente l'installazione di app dannose ed esegue la scansione continua delle app sul dispositivo, avvisando o rimuovendo le app dannose.
  • SafetyNet:un sistema di rilevamento delle intrusioni che tutela la privacy per assistere Google nel monitoraggio, mitigare le minacce alla sicurezza note e identificare nuove minacce alla sicurezza.
  • Attestazione SafetyNet:API di terze parti per determinare se il dispositivo è compatibile con CTS. Attestazione può anche identificare l'app per Android che comunica con il server dell'app.
  • Gestione dispositivi Android:un'app web e un'app per Android per localizzare un dispositivo smarrito o rubato.

Panoramica del programma di sicurezza

I componenti chiave del programma di sicurezza Android includono:

  • Revisione della progettazione:il processo di sicurezza di Android inizia nelle prime fasi del ciclo di vita dello sviluppo con la creazione di un modello e una progettazione di sicurezza ricchi e configurabili. Ogni funzionalità principale della piattaforma viene esaminata dalle risorse di ingegneria e sicurezza, con controlli di sicurezza appropriati integrati nell'architettura del sistema.
  • Test di penetrazione e revisione del codice: durante lo sviluppo della piattaforma, i componenti open source e creati per Android sono soggetti a rigorose revisioni della sicurezza. Queste revisioni vengono eseguite dal team di sicurezza di Android, dal team di ingegneria della sicurezza delle informazioni di Google e da consulenti di sicurezza indipendenti. Lo scopo di queste revisioni è identificare punti deboli e possibili vulnerabilità molto prima delle release principali e simulare i tipi di analisi eseguite da esperti di sicurezza esterni al momento del rilascio.
  • Revisione open source e della community: AOSP consente un'ampia revisione della sicurezza da parte di qualsiasi parte interessata. Android utilizza anche tecnologie open source che sono state sottoposte a un'importante revisione della sicurezza esterna, come il kernel Linux. Google Play offre un forum in cui utenti e aziende possono fornire informazioni su app specifiche direttamente agli utenti.
  • Risposta agli incidenti: anche con queste precauzioni, potrebbero verificarsi problemi di sicurezza dopo la spedizione, motivo per cui il progetto Android ha creato una procedura completa di risposta alla sicurezza. I membri del team di sicurezza Android a tempo pieno monitorano la community di sicurezza generale e quella specifica di Android per individuare discussioni su potenziali vulnerabilità ed esaminano i bug di sicurezza segnalati nel database dei bug di Android. Una volta scoperti problemi legittimi, il team Android ha una procedura di risposta che consente la rapida mitigazione delle vulnerabilità per ridurre al minimo il potenziale rischio per tutti gli utenti Android. Queste risposte supportate dal cloud possono includere l'aggiornamento della piattaforma Android (aggiornamenti AOSP), la rimozione di app da Google Play e la rimozione di app dai dispositivi sul campo.
  • Aggiornamenti della sicurezza mensili:il team di sicurezza Android fornisce aggiornamenti mensili ai dispositivi Google Android e a tutti i nostri partner di produzione di dispositivi.

Architettura di sicurezza della piattaforma

Android mira a essere il sistema operativo più sicuro e utilizzabile per le piattaforme mobili riutilizzando i controlli di sicurezza tradizionali del sistema operativo per:

  • Proteggere i dati dell'app e degli utenti
  • Proteggere le risorse di sistema (inclusa la rete)
  • Isolare l'app dal sistema, dalle altre app e dall'utente.

Per raggiungere questi obiettivi, Android fornisce le seguenti funzionalità di sicurezza chiave:

  • Sicurezza affidabile a livello di sistema operativo tramite il kernel Linux
  • Sandbox obbligatoria per tutte le app
  • Comunicazione interprocesso sicura
  • Firma dell'app
  • Autorizzazioni definite dall'app e concesse dall'utente