Da sempre Google ha avuto un occhio di riguardo relativo alla sicurezza di Android, uno dei capisaldi fin dalla sua creazione, e ha sempre cercato di risolvere tempestivamente ogni problema derivante da qualche falla nel codice. Il fatto che il codice sorgente di Android sia open source consente a chiunque di identificare vulnerabilità o errori e segnalarli a Google, che provvede a correggerli.

Questa serie di correzioni prende il nome di patch di sicurezza, un termine diventato comune da qualche anno a questa parte ma il cui significato è spesso sconosciuto alla gran parte degli utenti. In questa pagina dunque scopriremo cosa sono le patch di sicurezza, come sono nate, come vengono distribuite e quali sono le tipologie di problemi risolti.

Cosa sono le patch di sicurezza

Fin dal 2012 Google informa, attraverso il bollettino di sicurezza, i produttori di smartphone Android, affinché tengano al sicuro i propri utenti correggendo le vulnerabilità emerse nel tempo. Le vulnerabilità, classificate a seconda della loro gravità, sono in sostanza degli errori nella programmazione che possono essere sfruttati per generare comportamenti non previsti dagli sviluppatori, concedendo, nel peggiore dei casi, l’accesso completo al dispositivo Android.

Non sono poche le vulnerabilità, scoperte e corrette nel tempo, che avrebbero consentito a un eventuale attaccante di ottenere i permessi di root, che consentono di eseguire qualsiasi operazione a livello di sistema, con conseguenze che in alcuni casi potrebbero essere catastrofiche. Si va infatti dall’appropriazione dei dati personali contenuti nel dispositivo alla cancellazione completa del contenuto, anche se solitamente i dispositivi infetti vengono utilizzati per acquisire ulteriori dati o per guadagnare illecitamente denaro.

Le vulnerabilità vengono rilevate sia dal team interno di Google ma anche dalla comunità dei ricercatori di sicurezza, libero da sempre di analizzare il codice di Android pubblicato regolarmente sull’AOSP (Android Open Source Project). le più gravi falle di sicurezza sono quasi sempre state scovate da ricercatori di terze parti, grazie anche all’Android Security Rewards Program, che premia gli scopritori di vulnerabilità con ricompense in denaro fino a 200.000 dollari ciascuna.

Nascita delle patch di sicurezza

Le correzioni sono da sempre riportate nel codice AOSP, a cui chiunque può accedere, ma fu necessario Stagefright per cambiare radicalmente il modo in cui le patch di sicurezza sono state distribuite.

Nel luglio 2015 la società di sicurezza Zimperium scoprì una falla legata agli SMS, che consentiva a un eventuale malintenzionato di impossessarsi dei dati contenuti nei dispositivi Android. Se Google in quell’occasione fu rapida a rilasciare un aggiornamento di sistema per mettere una “pezza” (patch in inglese), altri produttori impiegarono parecchio tempo, lasciando alcuni dispositivi, in particolare quelli più datati, completamente privi di protezione.

Il primo passo verso le patch di sicurezza, così come le conosciamo attualmente, arrivò con un Google Group pensato per riportare tutti gli aggiornamenti di sicurezza mensili e dare modo ai produttori di inserirli più rapidamente nel proprio codice.

Google fu ovviamente la prima ad annunciare un nuovo programma che garantì tre anni di aggiornamenti di sicurezza per l’allora linea Nexus, politica ripresa in seguito con la nascita della serie Pixel. Con il rilascio di Android 6.0 Marshmallow, avvenuto nel mese di ottobre del 2015, Google introdusse la possibilità di aggiornare il software di sistema senza effettuare un upgrade completo dello stesso. Nella schermata delle informazioni del sistema comparve anche una voce dedicata alla versione delle patch di sicurezza installate.

In questo modo i produttori ebbero la possibilità di rilasciare piccoli aggiornamenti, a volte solo poche decine di MB, per aumentare la sicurezza dei propri dispositivi e correggere le vulnerabilità emerse nel tempo. Da allora la maggior parte dei produttori, almeno quelli più famosi, garantisce almeno due anni di aggiornamenti di sicurezza, anche se in molti casi e patch vengono rilasciate con cadenza superiore a quella mensile.

Come vengono distribuite le patch di sicurezza

A partire dal 2015, come accennato in precedenza, i produttori di smartphone possono rilasciare degli aggiornamenti, solitamente di tipo OTA (Over The Air) che contengono le patch di sicurezza, In alcuni casi i produttori, Samsung su tutti, aggiungono le correzioni relative alle vulnerabilità specifiche per i propri dispositivi.

Se Google è solita distribuire quasi esclusivamente le patch di sicurezza nei suoi aggiornamenti mensili, per gli altri produttori è prassi comune inserire anche altri miglioramenti e nuove funzioni. Sono pochi i produttori che rilasciano gli aggiornamenti con grande costanza, e nella maggior parte dei casi è necessario attendere qualche mese per ottenere le nuove patch di sicurezza, anche su dispositivi costosi.

Come funziona il programma

Sono sostanzialmente tre le fasi che portano al rilascio di nuove patch di sicurezza, con tempi che variano a seconda della gravità delle vulnerabilità rilevate.

Si parte quindi dallo sviluppo dell’aggiornamento, una serie di modifiche più o meno complesse al codice che dovrebbe chiudere la falla messa in evidenza dal team interno o da ricercatori di terze parti. Successivamente viene emesso un bollettino di sicurezza nel quale Google riassume tutte le correzioni applicate.

Nel bollettino di sicurezza mensile oltre alle modifiche apportate da Google, che vengono inserite nell’AOSP entro 24-48 ore, sono presenti anche correzioni relative al kernel Linux e quelle realizzate dai produttori di chipset, che si occupano di renderle disponibili per i produttori.

Dopo la fase di test, nella quale viene verificata la bontà delle soluzioni realizzate e la loro compatibilità con l’intero sistema, inizia la fase della distribuzione vera e propria. Solitamente Google rilascia una prima serie di patch con la data del primo del mese, e una seconda, più completa, il 5 di ogni mese.

I produttori che scelgono di utilizzare le patch del primo del mese devono garantire l’inclusione delle soluzioni per quel livello di patch, incluse tutte quelle indicate nei precedenti bollettini di sicurezza. Chi invece offre le patch del 5 garantisce che tutte le vulnerabilità segnalate nei precedenti bollettini di sicurezza sono stati risolti.

Livelli di severità delle vulnerabilità

Le vulnerabilità di Android, che siano state evidenziate da terze parti o scoperte da Google stessa, sono racchiuse in cinque diversi livelli. È scontato che il team di sviluppo si occuperà innanzitutto delle vulnerabilità più pericolose, e potrebbe impiegare qualche mese per correggere quelle meno importanti, difficili da sfruttare o con un impatto potenziale sul sistema minimo.

  • Critica si tratta del livello di vulnerabilità più pericoloso per la stabilità del sistema e per l’integrità dei dati. Include:
    • accesso non autorizzato ai dati protetti da Android SE (Security Enhancements)
    • esecuzione arbitraria di codice nel TEE (Trusted Execution Environment) o nel SE
    • esecuzione di codice arbitrario in processi privilegiati, nel bootloader o nel TCB (Trusted Computing Base)
    • DoS (Denial of Service) remoti permanenti che costringono a reset di fabbrica o alla reinstallazione del sistema operativo
    • bypass remoto dei requisiti di interazione con l’utente nell’installazione di pacchetti o nella modifica di impostazioni di sicurezza e privacy
    • bypass dei meccanismi di sicurezza disegnati per prevenire malfunzionamenti hardware (ad esempio sistemi di protezione termica)
  • Alta In questa categoria troviamo vulnerabilità legate a:
    • bypass del sistema di avvio sicuro o delle funzioni come SELinux
    • esecuzione remota di codice arbitrario in un processo non privilegiato
    • esecuzione locale di codice arbitrario in processi privilegiati, nel bootloader o nella TCB
    • accessi non autorizzati ai dati protetti da TEE
    • attacchi contro Android SE per renderlo meno sicuro
    • bypass locale dei requisiti di interazione con l’utente per l’installazione di pacchetti o nella modifica di impostazioni di sicurezza e privacy
    • accesso remoto a dati protetti
    • DoS locali
    • bypass remoto dei requisiti di interazione con l’utente
    • trasmissione di dati sensibili attraverso protocolli di rete non sicuri
    • bypass delle difese e dei sistemi di protezione legati al bootloader
    • vulnerabilità crittografiche nel TLS (Transport Layer Security) che permettono attacchi di tipo man-in-the-middle
    •  bypass della schermata di sblocco e delle restrizioni per la protezione dal ripristino di fabbrica
  • Moderata In questa categoria troviamo vulnerabilità che consentono:
    • esecuzione remota di codice arbitrario su processi limitati
    • riavvio o blocco dei servizi (DoS) da remoto
    • esecuzione locale di codice arbitrario in un processo non privilegiato
    • accesso locale a dati protetti
    • esecuzione arbitraria di operazioni che richiedono l’interazione con l’utente
    • vulnerabilità della crittografia che permettono la lettura dei file di testo
    • bypass della crittografia o dell’autenticazione WiFi che consentano attacchi di tipo MITM (Man in the middle)
  • Bassa Si tratta della categoria meno pericolosa per il sistema e include:
    • esecuzione locale di codice arbitrario in un processo limitato
    • vulnerabilità crittografiche in usi fuori standard
    • sfruttamento della tecnologia di mitigazione degli exploit in processi non privilegiati
  • Nessun impatto di sicurezza Fanno parte di questa categoria le vulnerabilità declassate dagli sviluppatori e quelle legate all’architettura esclusiva di alcune versioni non più supportate. In questo caso i problemi al codice rimangono e non saranno corretti.

Importanza delle patch di sicurezza

Nonostante l’utente medio abbia la cattiva abitudine di non installare gli aggiornamenti di sistema, per paura di rallentamenti o per semplice ignoranza, è buona abitudine procedere con l’installazione delle patch di sicurezza al fine di mantenere sempre il più protetto possibile il proprio dispositivo Android.

Va altresì detto che non sempre i produttori di smartphone sono virtuosi. C’è chi, come la maggior parte dei produttori minori (soprattutto quelli cinesi) abbandona i dispositivi al loro destino senza rilasciare alcun aggiornamento, c’è chi invece si limita a modificare la stringa relativa al livello delle patch e non aggiunge il relativo codice, creando un falso senso di sicurezza nell’utente, che crede di essere protetto ma invece è ancora vulnerabile a certi tipi di attacchi.

In questo caso spetta a Google indagare e assicurarsi il rispetto delle regole stabilite e la continuità nel rilascio degli aggiornamenti di sicurezza che, nel caso degli smartphone Google, è garantito per almeno 36 mesi dalla data di commercializzazione.