Indice dei contenuti
Introduzione
Dopo aver rilasciato e descritto il modulo di parsing per la versione iOS di Waze Comprehensive Waze Forensic Parsing for iOS, ho completato lo sviluppo del parser specifico per la controparte Android, integrandolo nativamente all'interno del framework open-source ALEAPP (Android Logs, Events, And Plists Parser) di Alexis Brignoni.
Dal punto di vista investigativo, il valore probatorio, la tipologia di artefatti (cronologia ricerche, preferiti, eventi pianificati, navigazione text-to-speech, ecc.) e le logiche di normalizzazione e deduplicazione temporale ricalcano quanto già discusso per iOS. Anche i payload binari Protocol Buffers (cached_data) mantengono la medesima organizzazione strutturale dei dati.
Per evitare inutili ripetizioni, questo articolo si concentra esclusivamente sulla mappatura dei percorsi Android e sulle specifiche modalità di gestione dei log diagnostici correnti e d'archivio implementate nello script waze.py.
Per una panoramica completa delle funzionalità dell’applicazione:
https://www.waze.com/en/apps
Google Play:
https://play.google.com/store/apps/details?id=com.waze
Percorsi
Per semplicità, nel documento verrà utilizzata la seguente abbreviazione per indicare il percorso dei dati privati nell'archiviazione interna (Internal Storage) dell'applicazione:
<IAP>=/USERDATA/data/com.waze/ (Internal App Path)
Strutture di interesse forense:
| Path | File name | File type |
|---|---|---|
| <IAP>/ | user.db | SQLite |
| <IAP>/ | user | Text (Key-Value) |
| <IAP>/ | session | Text (Key-Value) |
| <IAP>/ | waze_log.txt | Log (Text) |
| <IAP>/ | spdlog.*logdata | Log (Text) |
| <IAP>/ | *__spdlog.*logdata.gz | Compressed Log (Text) |
| <IAP>/waze/ |
cached_data |
Protobuf |
| <IAP>/waze/tts/ | tts.db | SQLite |
Track GPS Quality
Una particolarità tecnica affrontata durante lo sviluppo riguarda la struttura e la varietà dei registri diagnostici dell'applicazione su Android. A differenza di quanto riscontrato su iOS, l'ambiente Android presenta elementi specifici sia per quanto riguarda i file correnti in chiaro, sia per la conservazione della memoria storica.
Nello specifico, sul piano corrente lo script estende l'analisi al file flat waze_log.txt, un registro testuale non presente su iOS che coesiste insieme ai classici file .logdata. Sul piano storico, si evidenzia la presenza di file di log ruotati (riscontrati in analisi di release datate) che l'applicazione memorizza in formato compresso Gzip (*__spdlog.logdata.gz).
Per garantire che l'analista possa recuperare anche questi dati retrospettivi sulla telemetria e sulla qualità del segnale GPS senza dover estrarre e decomprimere manualmente i file dal dump, il modulo include il supporto nativo alla libreria gzip.
Il parser agisce identificando gli eventuali archivi storici compressi presenti nella directory ed eseguendo la decompressione on-the-fly direttamente in memoria, evitando così la scrittura di file temporanei sul disco di analisi. Infine, invia il flusso di testo decompresso alla stessa logica di parsing che elabora i log correnti (inclusi waze_log.txt e i file .logdata), consolidando tutta la timeline temporale recuperabile in un unico flusso unificato e privo di ridondanze.
ALEAPP/LAVA 💖
Lo script waze.py è ora pienamente integrato all'interno del progetto open-source ALEAPP (Android Logs, Events, And Plists Parser) di Alexis Brignoni.
L'interfaccia di LAVA (LEAPP Artifact Viewer App) presenta i dati estratti in tabelle strutturate, facilitandone l'analisi e la consultazione. Di seguito sono riportati alcuni screenshot rappresentativi dei risultati ottenuti dal modulo su Android.





0 comments:
Posta un commento