È disponibile il rilascio della piattaforma mobile sicura GrapheneOS 2024011300, che rappresenta un ramo della base di codice Android (AOSP, Android Open Source Project), ampliato e modificato per aumentare la sicurezza e garantire la privacy. In precedenza, il progetto si sviluppava con il nome AndroidHardening e, prima di ciò, si era distaccato dal progetto CopperheadOS dopo un conflitto tra i suoi fondatori. In GrapheneOS è ufficialmente supportata la maggior parte dei dispositivi Google Pixel attuali (Pixel 4/5/6/7/8, Pixel Fold, Pixel Tablet). I risultati del progetto sono distribuiti con licenza MIT.
GrapheneOS include molte tecnologie sperimentali legate al rafforzamento dell'isolamento delle applicazioni, alla gestione dettagliata degli accessi, al blocco delle vulnerabilità comuni e alla complicazione del funzionamento degli exploit. Ad esempio, nella piattaforma viene utilizzata un'implementazione proprietaria di malloc e una variante modificata di libc con protezione da danneggiamenti della memoria, oltre a una separazione più rigorosa dello spazio degli indirizzi dei processi. Al posto del JIT, nel runtime Android viene utilizzata solo la compilazione anticipata (AOT, ahead-of-time). Nel kernel Linux sono inclusi molti meccanismi di protezione aggiuntivi, ad esempio, nelle strutture slub vengono aggiunti marcatori di canarini per bloccare il buffer overflow. Per aumentare l'isolamento delle applicazioni, vengono utilizzati SELinux e seccomp-bpf.
Esiste la possibilità di fornire accesso alle operazioni di rete, ai sensori, alla rubrica e alle periferiche (USB, fotocamera) solo ad alcune applicazioni selezionate. La lettura dagli appunti è consentita solo alle applicazioni attualmente attive. Di default, è vietato ottenere informazioni su IMEI, indirizzo MAC, numero di serie della SIM e altri identificatori hardware. Sono state adottate misure aggiuntive per isolare i processi legati a Wi-Fi e Bluetooth e prevenire perdite a causa dell'attività wireless. Molti dei meccanismi di sicurezza sviluppati nel progetto sono stati trasferiti alla base di codice principale di Android.
In GrapheneOS viene applicata una verifica crittografica dei componenti caricati e una crittografia avanzata dei dati a livello dei file system ext4 e f2fs (i dati sono cifrati utilizzando AES-256-XTS, mentre i nomi dei file sono cifrati con AES-256-CTS utilizzando HKDF-SHA512 per generare una chiave separata per ogni file), anziché a livello di dispositivi a blocchi. I dati nelle partizioni di sistema e in ciascun profilo utente sono cifrati con chiavi diverse. Vengono utilizzate le capacità hardware disponibili per accelerare le operazioni di crittografia. Sullo schermo di blocco viene visualizzato un pulsante di fine sessione, premendo il quale le chiavi per la decrittazione vengono azzerate e l'archiviazione viene riportata in uno stato non attivato. È disponibile un'impostazione per vietare l'installazione di applicazioni aggiuntive per i profili utente selezionati. Per proteggere contro attacchi di forza bruta, è attivato un sistema di ritardi, che varia in base al numero di tentativi falliti (da 30 secondi a 1 giorno).
In GrapheneOS non vengono inclusi applicazioni e servizi Google, né alternative delle implementazioni dei servizi Google, come microG. È possibile installare i servizi Google Play in un ambiente isolato separato, privo di privilegi speciali. Il progetto include anche lo sviluppo di diverse applicazioni proprietarie focalizzate sulla protezione delle informazioni e della privacy. Ad esempio, è disponibile il browser Vanadium basato su Chromium, una variante modificata del motore WebView, un visualizzatore PDF protetto, un firewall, l'app Auditor per la verifica dei dispositivi e l'identificazione delle intrusioni, un'app per la fotocamera focalizzata sulla riservatezza e un sistema di creazione di backup crittografati chiamato Seedvault.
Tra le novità nella nuova versione:
- È stata completamente ristrutturata l'implementazione del meccanismo di riavvio automatico, che ora utilizza un timer durante il processo di init, anziché durante il processo system_server, il che ha aumentato la sicurezza ed eliminato il riavvio di un dispositivo mai sbloccato. Il tempo di riavvio automatico è stato ridotto da 72 a 18 ore. L'idea principale del riavvio automatico è quella di riportare le partizioni attivate (decrittate) con dati utente nello stato iniziale non decrittato dopo un certo periodo di inattività.
I dati del profilo utente dopo il riavvio del dispositivo sono in forma crittografata e vengono decrittografati solo dopo l'inserimento della password di accesso da parte dell'utente. Se l'utente non sblocca la sessione attivata per più di 18 ore, il dispositivo verrà automaticamente riavviato (il timeout può essere modificato nelle impostazioni Impostazioni > Sicurezza > Riavvio automatico) per prevenire l'analisi delle chiavi che rimangono in memoria nel caso il dispositivo finisca in altre mani.
Come dimostrazione della necessità di applicare la funzione di riavvio automatico, gli sviluppatori di GrapheneOS hanno menzionato vulnerabilità recentemente scoperte nei smartphone Google Pixel e Samsung Galaxy, che consentono alle aziende specializzate in analisi forensi di spiare gli utenti e estrarre dati quando il dispositivo è in stato attivo (quando la sessione è attiva e i dati sono decrittografati).
- È stato aggiunto un visualizzatore di log (Impostazioni > Sistema > Visualizza log), che consente di valutare i problemi emergenti e semplificare la preparazione di rapporti sugli errori.
- Interfaccia rivista per l'invio di rapporti sui malfunzionamenti.
- Supporto per il Pixel Camera Service è stato aggiunto in adevtool, consentendo di utilizzare la modalità notte nelle applicazioni sui smartphone Pixel 6+.
- Il supporto per i dispositivi non supportati in Android 14 è stato rimosso in adevtool.
- Aggiunta la visualizzazione delle notifiche relative all'attivazione del rivelatore di danneggiamento della memoria in malloc.
- Il supporto sysrq è stato disattivato nel kernel Linux.
- Il kernel Linux è stato aggiornato all'ultima versione GKI (Generic Kernel Image) 5.10.206 per i dispositivi Pixel 6, Pixel 6 Pro, Pixel 6a, Pixel 7, Pixel 7 Pro, Pixel 7a, Pixel Tablet, Pixel Fold, e anche alla versione 5.15.145 per i dispositivi Pixel 8 e Pixel 8 Pro. Sono inoltre state preparate build con kernel 6.1.69.
- Il browser Vanadium è stato aggiornato alla base di codice Chromium 120.0.6099.210.0.
Fonte: opennet.ru
