Proteggere un dispositivo Android

Android integra funzionalità di sicurezza leader del settore e collabora con sviluppatori e implementatori di dispositivi per mantenere al sicuro la piattaforma e l'ecosistema Android. Un modello di sicurezza solido è essenziale per creare un ecosistema dinamico 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 sufficientemente flessibile da supportare una piattaforma aperta, proteggendo al contempo tutti gli utenti della piattaforma. Per informazioni su come segnalare 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 degli sviluppatori. Gli sviluppatori esperti di sicurezza possono lavorare facilmente con i controlli di sicurezza flessibili e fare affidamento su di essi. Gli sviluppatori meno familiari con la sicurezza sono protetti da valori predefiniti sicuri.

Oltre a fornire una piattaforma stabile su cui lavorare, Android offre agli sviluppatori un supporto aggiuntivo in diversi modi. Il team di sicurezza di Android cerca potenziali vulnerabilità nelle app e suggerisce modi per risolvere i problemi. Per i dispositivi con Google Play, Play Services fornisce aggiornamenti della sicurezza per le librerie software critiche, come OpenSSL, che viene utilizzata per proteggere le comunicazioni delle app. Il team di sicurezza di Android ha rilasciato uno strumento per il test di SSL (nogotofail) che aiuta gli sviluppatori a trovare potenziali problemi di sicurezza su qualsiasi piattaforma in 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, nonché per le attestazioni dell'integrità dell'avvio. DICE viene utilizzato per misurare il firmware caricato prima dell'avvio di Android. In questo modo è possibile verificare da remoto che il firmware non sia interessato da vulnerabilità critiche note che potrebbero essere sfruttate per danneggiare sia gli sviluppatori sia gli 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 possono controllarle. Questo design prevede che gli aggressori provino a eseguire attacchi comuni, come quelli di ingegneria sociale per convincere gli utenti del dispositivo a installare malware, e attacchi ad app di terze parti su Android. Android è stato progettato per ridurre la probabilità di questi attacchi e limitare notevolmente l'impatto dell'attacco nel caso in cui avesse esito positivo. La sicurezza di Android continua a progredire dopo che il dispositivo è nelle mani dell'utente. Android collabora con partner e 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 di Android, descrive i fondamenti dell'architettura di sicurezza di 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 di base di Android e non tratta i problemi di sicurezza specifici di app specifiche, come quelli relativi al browser o all'app di messaggistica.

Sfondo

Android fornisce una piattaforma e un ambiente per app open source 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 relative ai vari livelli dello stack software di Android. Ogni componente presuppone che i componenti riportati di seguito siano fissati correttamente. Con l'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 per videogiochi 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 di base è basato sul kernel Linux. A 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, si accede tramite il sistema operativo.
  • Runtime dell'applicazione Android:le app per Android sono spesso scritte nel linguaggio di programmazione Java e vengono eseguite nel runtime Android (ART). Tuttavia, molte app, inclusi i servizi e le app Android di base, sono app native o includono librerie native. Sia ART sia le app native vengono eseguite nello stesso ambiente di sicurezza, contenuto nella sandbox applicazioni. Le app ricevono 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 principali origini per le app:

  • App preinstallate: Android include un insieme di app preinstallate, tra cui Telefono, Email, Calendar, browser web e Contatti. Queste funzionano come app utente e forniscono funzionalità di base del dispositivo a cui possono accedere altre app. Le app preinstallate possono far parte della piattaforma Android open source o essere sviluppate da un produttore di dispositivi per un dispositivo specifico.
  • App installate dall'utente: 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 un insieme di servizi basati su cloud disponibili per i dispositivi Android compatibili con Google Mobile Services. Sebbene questi servizi non facciano parte dell'Android Open Source Project (AOSP), sono inclusi su molti dispositivi Android. Per ulteriori informazioni su alcuni di questi servizi, consulta il riepilogo dell'anno 2018 di Android Security.

I principali servizi di sicurezza di Google sono:

  • Google Play: Google Play è una raccolta di servizi che consente agli utenti di trovare, 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 inoltre revisione della community, verifica delle licenze delle app, scansione della sicurezza delle app e altri servizi di sicurezza.
  • Aggiornamenti Android:il servizio di aggiornamento Android fornisce nuove funzionalità e aggiornamenti della sicurezza a dispositivi Android selezionati, inclusi aggiornamenti tramite il web o over-the-air (OTA).
  • Servizi per app:framework che consentono alle app Android di utilizzare funzionalità cloud come il backup dei dati e delle impostazioni delle app e la messaggistica cloud-to-device (C2DM) per i messaggi push.
  • Verifica app:avvisa o blocca automaticamente l'installazione di app dannose e analizza continuamente le app sul dispositivo, avvisando dell'eventuale presenza di app dannose o rimuovendole.
  • SafetyNet:un sistema di rilevamento delle intrusioni che rispetta la privacy per aiutare Google a monitorare, 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. L'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 il dispositivo smarrito o rubato.

Panoramica del programma di sicurezza

I componenti chiave del programma Android Security includono:

  • Revisione del design:il processo di sicurezza di Android inizia all'inizio del ciclo di vita dello sviluppo con la creazione di un modello e un design di sicurezza completi e configurabili. Ogni funzionalità principale della piattaforma viene esaminata da risorse di progettazione 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 da Android sono soggetti a rigorose revisioni di 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'attenta revisione della sicurezza esterna, come il kernel Linux. Google Play offre un forum per consentire agli utenti e alle aziende di fornire informazioni su app specifiche direttamente agli utenti.
  • Risposta agli incidenti: anche con queste precauzioni, possono verificarsi problemi di sicurezza dopo la spedizione, motivo per cui il progetto Android ha creato una procedura di risposta alla sicurezza completa. I membri a tempo pieno del team di sicurezza Android monitorano la community di sicurezza specifica per Android e quella generale per discutere di potenziali vulnerabilità e esaminano i bug di sicurezza registrati nel database dei bug di Android. Al momento della scoperta di problemi legittimi, il team di Android ha un processo di risposta che consente di attenuare rapidamente le vulnerabilità per garantire che il potenziale rischio per tutti gli utenti Android sia ridotto al minimo. 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 di 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 mobile riutilizzando i controlli di sicurezza dei sistemi operativi tradizionali per:

  • Proteggere i dati utente e delle app
  • Proteggere le risorse di sistema (inclusa la rete)
  • Fornire l'isolamento delle app dal sistema, da altre app e dall'utente

Per raggiungere questi obiettivi, Android offre le seguenti funzionalità di sicurezza principali:

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