martedì 1 agosto 2023

Published agosto 01, 2023 by Django Faiola

Android Backup APK Downgrade

Introduzione

Il backup nativo di Android è stato per anni uno dei metodi più comuni di raccolta dei dati delle app utilizzato dagli esperti forensi. Ad oggi e più precisamente dalla versione 5.0 (Lollipop) tale metodo produce una raccolta molto limitata dei possibili dati acquisibili in quanto la maggior parte degli sviluppatori di applicazioni di terze parti, tenuto conto della sicurezza dei dati personali, hanno disabilitato l'autorizzazione di backup; vedi per esempio WhatsApp, Facebook, etc.

Cos'è l'APK downgrade?

Gli investigatori ed esaminatori per poter bypassare questo ostacolo hanno messo a punto un metodo detto APK downgrade che consiste, detto in parole semplici, nello scalare l'app con una vecchia versione che ha la proprietà di backup abilitataallowBackup='true' nel file AndroidManifest.xml.

Il metodo può essere schematizzato nei seguenti passi:

  1. copia dell'app originale sulla workstation;
  2. disinstallazione dell'app originale dal dispositivo preservando i dati dell'utente;
  3. installazione temporanea della vecchia versione compatibile che consente il backup;
  4. backup;
  5. ripristino dell'app originale sul dispositivo.

Il passaggio chiave di questo metodo forense è quello di preservare i dati utente durante la disinstallazione dell'app originale. Nel caso di whatsapp per esempio, la riga comando è: 

adb shell pm uninstall -k com.whatsapp

dove -k è il parametro che permette di preservare i dati e com.whatsapp è il package che si vuole disinstallare. 

Purtroppo il downgrade delle applicazioni installate di terze parti non è sempre possibile e soprattutto non è infallibile. Esistono molte variabili in gioco, le forti personalizzazioni dell'Android stock, incompatibilità delle ABIs (Application Binary Interface), cambio del "package name" nel tempo, app con permesso di backup disabilitato sin dalla prima versione, etc. sono solo alcuni dei problemi che non permettono l'utilizzo di questo metodo.

Come ha ben illustrato Heather Mahalik (Senior Director of Digital Intelligence and Forensics at Cellebrite) nel suo blog When to Use the Android APK Downgrade Feature in Cellebrite UFED il downgrade deve essere utilizzato come una sorta di "ultima spiaggia" dopo aver esaurito tutti gli altri metodi di estrazione con scarsi risultati.

L'APK downgrade permette di ottenere dati rilevanti da svariate applicazioni senza avere i privilegi di root, ma come ho detto sopra ha i suoi limiti: 

  • Bisogna essere in possesso di un dispositivo sbloccato o quantomeno con PIN e/o password di sblocco noti (richiesti durante la fase di riavvio);
  • Possibile perdita delle autenticazioni su alcune app (è richiesto di nuovo il login anche dopo aver ripristinato l'originale);
  • Perdita delle posizioni delle app nella schermata home (rimosse durante la disinstallazione);
  • Alcuni dati potrebbero andare persi (non dell'utente).

Conclusioni

Il downgrade delle app è un metodo fantastico, la sua utilità non si discute e le migliori case software del settore forense lo hanno inserito nei loro prodotti con svariati nomi: Belkasoft X (APK downgrade), Cellebrite UFED (Android Backup APK Downgrade), Magnet Acquire/Axiom (ADB con l'opzione "Try do downgrade it to..."), Oxygen Forensic Detective (APK downgrade), MOBILedit Forensic (App downgrade), GMDSOFT MD Next (Android App Downgrade) e XRY (App downgrade).

Nella comunità forense, open-source e freeware, vi sono alcuni software/script che "vantano" di eseguire il downgrade delle app ma il mio "piccolo" strumento forense user-friendly dfAPKdngrader (freeware) fa davvero il suo dovere.