0Pricing
Cyber Security Academy · Lezione

Acquisizione e analisi di Android

Estrarre e analizzare i dati Android.

Acquisizione e analisi di Android è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.

Architettura dello storage Android

Per estrarre efficacemente i dati Android, è necessario sapere dove si trovano.

  • /data/data/<package>/ — sandbox di ciascuna app: database, shared_prefs, file e cache.
  • /data/media/0/ — memoria dell'utente (foto, download).
  • /data/system/ — account, impostazioni di blocco e statistiche di utilizzo.

La maggior parte delle evidenze delle app si trova nei database SQLite e nei file XML delle preferenze all'interno del sandbox di ogni app, che non è leggibile senza root o un meccanismo di backup.

ADB e prerequisiti per il debugging

Android Debug Bridge (ADB) è il principale canale per l'acquisizione logica. Richiede che il debug USB sia abilitato e che la chiave dell'host sia autorizzata.

  • Senza il debugging abilitato e lo schermo sbloccato, l'accesso ADB è bloccato.
  • La richiesta di autorizzazione modifica già lo stato del dispositivo: la documenti.

Verifichi prima la connettività e acquisisca le proprietà del dispositivo:

adb devices -l
adb shell getprop ro.build.version.release   # Android version
adb shell getprop ro.product.model           # Device model
adb shell getprop ro.crypto.state            # encrypted / unencrypted

Acquisizione logica tramite ADB Backup

adb backup produce un archivio .ab dei dati delle app che supportano il backup. Non richiede root ed è ampiamente disponibile, ma presenta dei limiti: molte app impostano allowBackup=false.

  • Acquisisce i dati delle app, gli APK (con -apk) e la memoria condivisa.
  • Non include le app che rinunciano al backup né i record eliminati.

Crei e converta un backup per l'analisi:

# Create a full backup (user must confirm on device)
adb backup -apk -shared -all -f android_backup.ab

# Convert the .ab to a readable tar (android-backup-extractor)
java -jar abe.jar unpack android_backup.ab android_backup.tar
tar -xvf android_backup.tar

Estrazione del file system

Un'estrazione del file system copia l'albero delle directory, inclusi i sandbox delle app e i file journal SQLite WAL/SHM che contengono i record non sincronizzati.

  • Richiede root, un agente forense o un metodo basato su exploit/bootloader.
  • Conserva i file -wal e -shm: sono fondamentali, perché le righe più recenti potrebbero trovarsi solo al loro interno.

Quando estrae database SQLite, recuperi sempre anche i file journal associati:

adb pull /data/data/com.whatsapp/databases/msgstore.db ./out/
adb pull /data/data/com.whatsapp/databases/msgstore.db-wal ./out/
adb pull /data/data/com.whatsapp/databases/msgstore.db-shm ./out/

Realtà dell'acquisizione fisica

Un'immagine fisica è una copia bit per bit della NAND, incluso lo spazio non allocato in cui potrebbero persistere dati eliminati. Sui moderni dispositivi Android è il metodo più difficile da ottenere.

  • La crittografia FBE fa sì che un dump grezzo della NAND sia testo cifrato senza la chiave dell'utente.
  • I metodi includono exploit del produttore, modalità EDL/bootloader o chip-off (ultima risorsa, distruttivo).
  • In pratica, un'estrazione del file system nello stato AFU fornisce spesso più dati utilizzabili di un dump fisico crittografato.

Scelga l'acquisizione fisica solo quando è giustificata e la decrittografia è possibile.

SQLite: il cuore delle evidenze Android

La maggior parte degli artefatti Android è costituita da database SQLite. Gli analisti li interrogano direttamente per recuperare messaggi, registri delle chiamate e timestamp.

  • Li apra in sola lettura per evitare di modificare il file delle evidenze.
  • I timestamp sono spesso espressi in millisecondi dall'epoca Unix.

Ispezioni il database dei contatti da un'estrazione:

sqlite3 -readonly contacts2.db
sqlite> .tables
sqlite> SELECT display_name, data1
   ...> FROM view_v_contacts LIMIT 20;

Recupero dei record SQLite eliminati

L'eliminazione di una riga in SQLite spesso si limita a contrassegnare come libero lo spazio della relativa pagina. I residui recuperabili si trovano in:

  • Pagine della freelist e aree non allocate del file .db.
  • Il write-ahead log -wal, che conserva versioni delle righe precedenti al checkpoint.

Gli strumenti di carving ricostruiscono questi record. Esegua un passaggio di recupero su un database:

# Carve deleted rows from freelist + WAL
python3 sqlite_carver.py --db msgstore.db --wal msgstore.db-wal \
  --out recovered_messages.csv

# Cross-check live vs recovered counts in your notes

Timeline e decodifica dei timestamp

La creazione di una timeline mette in relazione gli eventi tra le app. La difficoltà sta nei numerosi formati di timestamp utilizzati da Android.

  • Unix epoch (ms) — la maggior parte dei database dei messaggi.
  • Unix epoch (s) — molti log di sistema.
  • WebKit/Chrome time — microsecondi dal 1601 (cronologia del browser).

Normalizzi sempre in UTC e annoti il fuso orario del dispositivo. Esempio di conversione in SQLite:

-- Convert epoch milliseconds to readable UTC
SELECT datetime(timestamp/1000, 'unixepoch') AS sent_utc,
       key_remote_jid, data
FROM messages
ORDER BY timestamp DESC LIMIT 25;

Artefatti chiave del sistema

Oltre ai dati delle app, gli artefatti del sistema Android rivelano il comportamento dell'utente e l'utilizzo del dispositivo.

  • usagestats — quali app sono state eseguite e quando.
  • accounts.db / accounts_ce.db — account Google e account delle app collegati.
  • net stats / netpolicy — utilizzo dei dati per app.
  • Wi-Fi config (WifiConfigStore.xml) — reti note, utili per il contesto della geolocalizzazione.

Questi dati confermano o contraddicono le dichiarazioni su chi ha utilizzato il dispositivo e quando.

Analisi automatizzata con ALEAPP

L'analisi manuale non è scalabile. ALEAPP (Android Logs Events And Protobuf Parser) acquisisce un'estrazione del file system e produce un report strutturato in formato HTML/CSV.

  • Analizza usagestats, attività recenti, notifiche, autorizzazioni delle app e altro.
  • Lo utilizzi per una prima selezione, quindi verifichi manualmente i risultati principali nei database originali.

Esegua ALEAPP su una directory di estrazione:

python3 aleapp.py -t fs -i ./android_filesystem/ -o ./aleapp_report/
# Open ./aleapp_report/index.html to review parsed artifacts

Convalida e protezione dalle manomissioni

Non si fidi mai di un singolo strumento. Convalidi i risultati automatizzati rispetto ai dati sorgente e tra strumenti diversi.

  • Esegua nuovamente manualmente le query principali in sqlite3 per confermare i risultati dell'analizzatore.
  • Presti attenzione ai segnali anti-forensi: log cancellati, timestamp modificati, app per la cancellazione sicura o app di chat con impostazioni per i messaggi a scomparsa.
  • Verifichi che l'hash dell'immagine corrisponda ancora prima e dopo l'analisi.

La riproducibilità e la convalida incrociata rendono le conclusioni difendibili.

Verifica rapida

Sta estraendo il database SQLite di un'app di chat. Quali file associati deve raccogliere per evitare di perdere i messaggi inviati di recente?

Riepilogo: acquisizione e analisi di Android

Ora è in grado di acquisire e analizzare le prove Android dall'inizio alla fine.

  • I dati delle app risiedono in sandbox separate per ogni app, sotto forma di database SQLite e preferenze XML.
  • ADB backup = semplice acquisizione logica; l'estrazione del file system (root) conserva il WAL; l'acquisizione fisica è la più difficile con FBE.
  • Recuperi i record eliminati dalle pagine freelist e dal WAL.
  • Normalizzi i timestamp in UTC; decodifichi i formati epoch e WebKit.
  • Utilizzi ALEAPP per la prima selezione, quindi convalidi manualmente con sqlite3.
  • Presti attenzione alle manomissioni anti-forensi e verifichi nuovamente l'hash dell'immagine.

Prossimo argomento: iOS.

Domande Frequenti

La lezione «Acquisizione e analisi di Android» è gratuita?

Sì — il testo completo di «Acquisizione e analisi di Android» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.

Cosa imparerò in «Acquisizione e analisi di Android»?

Estrarre e analizzare i dati Android. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cyber Security Academy?

Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Acquisizione e analisi di Android»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?

Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Fondamenti di informatica forense mobile
  2. Acquisizione e analisi di Android
  3. Acquisizione e analisi di iOS
  4. App, artefatti e report
← Torna a Cyber Security Academy