Qualche informazione su Cellebrite: supporto Android a febbraio 2025

16 marzo 2025 - Advocacy

Nel post precedente, abbiamo riassunto parte della storia dei prodotti Cellebrite e riassunto alcune intuizioni sul mercato degli strumenti di sorveglianza rivolte al mobile forensics. In questo post, esploreremo le attuali capacità di sblocco a acquisizione, secondo la documentazione di febbraio 2025 distribuita ai clienti. Introdurremo anche alcuni concetti e terminologie, accennando a mitigazioni di base, sebbene ci occuperemo delle possibili difese nei post successivi.

Per un’analisi molto dettagliata e approfondita per comprendere la crittografia di Android, consigliamo di leggere “Android Data Encryption in depth” di Quarkslab o guardare il loro intervento a RECON23.

Glossario #

Per comprendere il contenuto del materiale di Cellebrite, è utile ricapitolare alcuni dei termini generalmente usati nel settore:

  • Cold: Dispositivo spento, con il contenuto probabilmente crittografato.
  • Warm/Hot: Dispositivo acceso, probabilmente in stato AFU o sbloccato.
  • File Based Encryption (FBE): Un metodo di crittografia che protegge i singoli file anziché l’intero disco, consentendo l’uso di chiavi di crittografia diverse per file differenti in base all’autenticazione dell’utente e allo stato del dispositivo.
  • Full Disk Encryption (FDE): Un metodo di crittografia che protegge l’intero storage del dispositivo e richiede l’inserimento del PIN o della passphrase per la decifratura all’avvio. Utilizzato principalmente prima di Android 7, deprecato da Android 13 in poi.
  • After First Unlock (AFU): Un dispositivo acceso che è stato sbloccato almeno una volta dopo l’avvio.
  • Before First Unlock (BFU): Un dispositivo spento o acceso che non è stato ancora sbloccato dall’ultimo riavvio.
  • Trusted Execution Environment (TEE): Un ambiente sicuro e isolato all’interno di un processore che gestisce le operazioni crittografiche e protegge i dati sensibili dal sistema operativo principale. Se non è presente un secure element, è il principale contesto di sicurezza.
  • Secure Element (SE/eSE/iSE): Un chip hardware di sicurezza, supportato da Android 9 in poi, che esegue operazioni crittografiche e gestisce l’archiviazione delle chiavi in un componente hardware dedicato, come il chip Titan. È complementare al TEE, ma non è un requisito per eseguire Android o FBE.
  • Keystore: Un servizio di sistema in Android che fornisce un modo sicuro per archiviare e gestire chiavi crittografiche. Garantisce che le chiavi non siano accessibili alle applicazioni in spazio utente e possano essere utilizzate solo per operazioni sicure, come crittografia, decifratura e firma. Keystore supporta la sicurezza basata su hardware (secure element) quando disponibile.
  • Keymaster: Un componente di livello inferiore che si interfaccia con Keystore per gestire operazioni crittografiche all’interno di un Trusted Execution Environment (TEE) o di un modulo secure element (es. Titan M/Titan M2).
  • Secure Startup: Una funzione dei dispositivi Samsung Knox che utilizzano FDE e criptano la chiave principale con il PIN o la password dell’utente. Se non è abilitata, le credenziali dell’utente non sono effettivamente necessarie per decriptare i dati.
  • Credential Encrypted (CE) Storage: Un tipo di storage crittografato accessibile solo dopo l’autenticazione dell’utente, garantendo che i dati sensibili rimangano protetti fino allo sblocco del dispositivo.
  • Device Encrypted (DE) Storage: Una forma di crittografia che protegge i dati anche prima dell’accesso dell’utente, ma che è accessibile dopo l’avvio senza richiedere autenticazione. Viene generalmente utilizzata per file critici di sistema.
  • Full File System Extraction (FFS): Una tecnica utilizzata per ottenere una copia completa del file system di un dispositivo, dopo la decifratura del sistema operativo. L’analisi potrebbe anche consentire il recupero di file eliminati.
  • Brute Force (BF): L’attacco brute force su PIN e password varia molto a seconda dell’implementazione software e hardware. Lo scenario peggiore è l’estrazione delle chiavi crittografate per un attacco offline. Altri casi includono il bypass del throttling nel TEE o nei secure elements per tentativi attivi.
  • Security Patch Level (SPL): Indica la data o la versione dell’ultimo aggiornamento di sicurezza applicato a un dispositivo.

Per ulteriori informazioni, leggi il post del forum GrapheneOS che discute le capacità di Cellebrite a luglio 2024, e la descrizione dei sistemi di crittografia di Samsung Knox. Tutti i dispositivi Android moderni hanno un TEE. Alcuni dispositivi, come i Google Pixel, possono avere un secure element aggiuntivo, come il Titan M. Nonostante gli sforzi di Google per rafforzare la sicurezza, lo sfruttamento delle vulnerabilità è estremamente difficile e molto costoso, ma non impossibile.

La documentazione di febbraio 2025 #

Cellebrite, per quanto ne sappiamo, pubblica una matrice che descrive il supporto per dispositivi basati su Android e iOS mensilmente o almeno più volte all’anno. L’ultima versione disponibile che abbiamo trovato è la versione 7.73.1, rilasciata a febbraio 2025.

Di seguito è riportata una descrizione del processo automatizzato. Chiaramente, se il telefono è sbloccato o se il PIN o la password sono già noti, il processo è semplice.

Descrizione ad alto livello del processo automatizzato per ottenere dump del file system

Lo sblocco dei dispositivi non di fascia alta è solitamente più semplice per diverse ragioni:

  • Molti produttori non rilasciano tempestivamente gli aggiornamenti di sicurezza, o in alcuni casi, non li rilasciano affatto.
  • I diversi processori hanno stack di sicurezza e misure di protezione differenti. Un secure element aggiunge protezioni significative rispetto a un dispositivo con solo un TEE, ma non è un requisito e spesso non è presente.
  • È noto che alcuni processori MTK (MediaTek) sono vulnerabili a exploit per la bootrom e che l’intera trust chain può essere compromessa da chiunque, incluso il TEE. Per gli exploit delle bootrom non si possono applicare patch.
  • Se un produttore non ha investito nella sicurezza dei propri dispositivi, potrebbe disabilitare mitigazioni di sicurezza comuni o introdurre software con privilegi elevati che indebolisce la sicurezza complessiva.

Matrice di supporto, panoramica per chipset e produttore

Come si vede nelle slide, c’è una ragione per cui quasi tutti i dispositivi non-Pixel e non-Samsung sono considerati sbloccabili, con poche eccezioni. Anche utilizzare LineageOS, che di solito garantisce almeno un certo livello di aggiornamenti di sicurezza, non fa una grande differenza se la piattaforma sottostante e i binary blob non sono sicuri, cosa che accade quasi sempre.

Matrice di supporto, distinzione tra cold e hot per produttore.

Il brute-force può assumere forme diverse. Un root exploit potrebbe consentire il brute-force attivo, utilizzando metodi per bypassare il throttling o accelerare notevolmente il processo in vari modi. Un exploit del TEE (o, per esempio, un bypass del secure boot come mostrato nei chip MediaTek da Quarkslab) potrebbe consentire il brute-force offline, rendendo qualsiasi PIN numerico di almeno 10 cifre (ma possibilmente anche più lunghi) inutile. Questo è un buon promemoria sul fatto che un PIN a 6 cifre o un pattern saranno sempre compromessi. Aumentare la lunghezza e la complessità, idealmente usando una password invece di un PIN, fornisce un livello significativo di mitigazione.

Matrice di supporto, dispositivi basati su MediaTek ed Exynos.

Come anticipato, se possiedi un dispositivo basato su MediaTek, pur essendo utile utilizzare una password lunga, non esistono praticamente mitigazioni possibili, se non cambiarlo.

Matrice di supporto, dispositivi Pixel più vecchi fino ai 5/5a.

I dispositivi Pixel rimangono una scelta solida se mantenuti aggiornati. Sebbene sembri che per la ROM standard di Google esistano exploit funzionanti per eseguire l’estrazione FFS in stato AFU, il rafforzamento e le protezioni aggiuntive di GrapheneOS si sono dimostrate efficaci sin dal 2022. Il brute-force generalmente non è possibile, poiché le credenziali dell’utente sono archiviate nel secure element e non possono essere estratte, e i tentativi attivi sono fortemente limitati.

Matrice di supporto, dispositivi Pixel più recenti fino ai 9.

Come probabilmente avrai intuito, la scelta più solida per un dispositivo Android è un Pixel più recente, con GrapheneOS e una password robusta. L’autenticazione biometrica funziona in modo diverso e generalmente non è l’obiettivo principale di questi attacchi, il che significa che, a meno che il tuo il tuo threat model non implichi che potresti essere costretto fisicamente a sbloccare il dispositivo, è sicuro utilizzarla. Detto questo, usare una password complessa è un piccolo disagio quotidiano: ti verrà richiesta solo dopo un riavvio. Applicazioni che offrono password separate e crittografia, come Signal o molti gestori di password, dovrebbero avere questa opzione attivata per massimizzare le protezioni nel caso in cui tutto il resto fallisca.

Conclusioni #

Se pensi di trovarti in una situazione in cui il tuo dispositivo potrebbe essere sequestrato, è sempre consigliabile spegnerlo immediatamente. Dovresti anche cambiare il tuo PIN, se ne usi uno, il prima possibile, sostituendolo con una password complessa. Lo stesso vale se il tuo dispositivo attualmente non ha un PIN o se stai utilizzando un pattern. Se ritieni che ci sia un’alta probabilità di essere preso di mira, dovresti passare a un dispositivo Pixel con GrapheneOS, anche solo un modello di seconda mano (dal 6a in poi).

Come abbiamo affermato nel primo post, questo mercato è privo di regolamentazione ed è soggetto a innumerevoli abusi nei confronti della società civile, come ampiamente documentato anche da Amnesty. Tuttavia, ci sono casi che potrebbero essere più difficili da documentare, come la sorveglianza legata alla violenza di genere o a dosieraggi politici. Sebbene attualmente non abbiamo prove dirette di questi episodi, chiunque con una licenza potrebbe offrire questi servizi, e sappiamo che solo in Italia ne sono stati venduti in numeri a due cifre.