Correte a risolvere la vulnerabilità Android che permette l'acquisizione dei diritti di root

Grave vulnerabilità presente in un componente di sistema usato sui dispositivi Android facilita l'acquisizione dei privilegi di root da parte delle app di terze parti. Quali sono i rischi concreti per gli utenti.

Sapevate che dell’esistenza del Google Android Red Team? Si tratta di un gruppo di esperti di sicurezza che si occupa nello specifico dell’individuazione e dell’analisi delle vulnerabilità critiche relative al sistema operativo Android. Il team lavora in seno a Google andando costantemente alla ricerca di vulnerabilità zero-day, sviluppando proof-of-concept per confermare la fattibilità dello sfruttamento e valutare l’impatto sui dispositivi, per segnalare internamente all’azienda l’esistenza delle problematiche scoperte e procedere quindi con la loro risoluzione.

Ebbene, con un post spiccatamente tecnico, che noi cerchiamo di riassumere e tradurre in termini più semplici e “abbordabili”, l’Android Red Team informa della scoperta di una vulnerabilità di sicurezza davvero pesante, presente nel sistema operativo del robottino verde. Ha l’identificativo CVE-2023-20938 e può essere sfruttata per acquisire indebitamente i privilegi di root.

Vulnerabilità nell’Android Binder: perché è così pericolosa

Si chiama Binder il principale canale di comunicazione inter-process (IPC) utilizzato su Android. È composto da librerie userspace fornite dalla piattaforma Android e da un driver kernel.

Tutte le app non attendibili sono automaticamente eseguite in Android all’interno di una sandbox e la maggior parte delle comunicazioni IPC avviene appunto tramite l’interfaccia offerta da Binder. Il processo renderer di Chrome per Android utilizza un contesto SELinux restrittivo, ma ha comunque accesso a Binder e a un set limitato di servizi Android.

SELinux su Android implementa un modello di sicurezza basato su politiche che si occupano di controllare l’accesso alle risorse di sistema e le attività dei processi. Questo modello di sicurezza limita le azioni che le app possono eseguire sul dispositivo, riducendo così il rischio di compromissione del sistema attraverso malware o altre minacce.

Un bug nella gestione della memoria da parte di Binder può portare a delle inconsistenze nel conteggio dei riferimenti (reference counting) agli oggetti in memoria. Ancora una volta, si parla di sicurezza della memoria, aspetto al quale sono riconducibili la maggior parte delle vulnerabilità di recente scoperta.

Quando un processo riceve dati da un altro processo, il kernel deve effettuare un’opera di traduzione. Binder utilizza delle regole su come rimuovere gli oggetti quando non sono più in uso ed evitare fenomeni di memory leak. In alcuni casi, Binder si porta dietro puntatori a oggetti già cancellati dalla memoria (dangling pointers): un’applicazione non attendibile può così accedere in modo arbitrario alla contenuto della memoria riservata del kernel. Sfruttando questo bug, un’app potrebbe leggere e persino modificare dati riservati appartenenti ad altre app o componenti del sistema.

Rischi di acquisizione dei privilegi root da parte di app Android non autorizzate

L’identificativo della grave falla di Android è CVE-2023-20938: se “2023” si riferisce all’anno della scoperta, perché se ne parla solamente adesso?

Il motivo è presto detto: l’Android Red Team ha preferito lasciare ai colleghi tutto il tempo necessario per risolvere la problematica e agli utenti un’ampia finestra temporale per applicare le patch correttive. La problematica in questione, infatti, è stata completamente risolta con gli aggiornamenti Android di luglio 2023.

Tuttavia, i dispositivi Android che ad oggi non fossero aggiornati con le patch più recenti (o comunque presentassero un Livello patch di sicurezza antecedente a luglio 2023) restano vulnerabili.

In questo video la dimostrazione concreta dell’acquisizione dei diritti di root sfruttando la falla in questione.

I rischi concreti per gli utenti

La vulnerabilità CVE-2023-20938 individuata in Android Binder, se lasciata irrisolta, espone gli utenti a una serie di rischi:

  • Escalation di privilegi (acquisizione diritti root): Lo sfruttamento della vulnerabilità consente a un’app non attendibile installata sul dispositivo di ottenere privilegi di root. Con i privilegi di root, un’app malevola può eseguire codice a livello kernel, compromettendo completamente l’integrità e la sicurezza del dispositivo.
  • Accesso completo ai dati dell’utente: Con i privilegi di root, un’app potrebbe accedere a tutti i dati personali, credenziali, messaggi, foto, video e altre informazioni private memorizzate sul dispositivo, violando la privacy dell’utente.
  • Installazione di malware persistente. Un malintenzionato potrebbe installare malware o rootkit persistenti che sopravvivono ai riavvii del dispositivo, compromettendo in modo permanente il dispositivo fino alla re-installazione completa del sistema operativo.
  • Esposizione ad attacchi “man-in-the-disk”. Avendo il controllo completo del kernel, un attacco potrebbe intercettare e manomettere il traffico di rete crittografato prima che venga decifrato dal sistema operativo.
  • Disabilitazione di meccanismi di sicurezza. Un attacco che sfruttasse la vulnerabilità in questione, potrebbe disabilitare completamente SELinux, l’isolamento delle app e altri meccanismi di sicurezza di Android, esponendo gli utenti ad ulteriori potenziali vettori di attacco.

Cosa fare per proteggere i propri dispositivi Android e i dati memorizzati

Il primo passo da compiere per controllare di essere protetti nei confronti della vulnerabilità Android in questione, consiste nel verificare se il proprio dispositivo ha ricevuto le patch di sicurezza che risolvono CVE-2023-20938.

Per procedere in tal senso, si deve accedere alle impostazioni, toccare Info sul telefono/tablet e controllare il “Livello di patch di sicurezza Android“. I dispositivi con un livello di patch precedente a luglio 2023 sono da considerarsi vulnerabili.

Poiché CVE-2023-20938 è una vulnerabilità a livello kernel, è utile anche verificare la versione esatta del kernel in uso. I ricercatori Google indicano le versioni kernel vulnerabili: 5.4 e 5.10. Utilizzando queste versioni, è essenziali assicurarsi di aver installato la patch correttiva.

Alcuni produttori di dispositivi Android seguono proprie pianificazioni per il rilascio delle patch di sicurezza. È utile verificare sul sito Web del produttore eventuali bollettini e aggiornamenti di sicurezza specifici relativi a CVE-2023-20938.

Credit immagine in apertura: iStock.com – juniorbeep

Ti consigliamo anche

Link copiato negli appunti