
Strumento forense portatile per dispositivi Android che raccoglie dati rilevanti tramite USB debugging per identificare potenziali spyware o tracce di compromissione, con crittografia age opzionale per il trasporto sicuro.
NOTA: questo progetto attualmente non è mantenuto. Un fork indipendente può essere trovato presso il MVT Project.
androidqf (Android Quick Forensics) è uno strumento portatile per semplificare l'acquisizione di dati forensi rilevanti da dispositivi Android.

I binari eseguibili per Linux, Windows e Mac dovrebbero essere disponibili nell'ultima release. In caso di problemi nell'esecuzione del binario, potresti volerlo compilare da solo.
Per compilare androidqf avrai bisogno di Go 1.18+ installato. Dovrai anche installare make. Quando sei pronto, puoi clonare il repository ed eseguire uno dei seguenti comandi, per la piattaforma di tua scelta:
make linux
make darwin
make windows
Questi comandi genereranno binari in una cartella build/.
Prima di avviare androidqf devi avere il dispositivo Android di destinazione collegato al computer tramite USB e aver abilitato il debug USB. Fai riferimento alla documentazione ufficiale su come fare, ma tieni presente che i telefoni Android di diversi produttori potrebbero richiedere passaggi di navigazione diversi da quelli predefiniti.
Una volta abilitato il debug USB, puoi procedere ad avviare androidqf. Innanzitutto tenterà di connettersi al dispositivo tramite il ponte USB, che dovrebbe far sì che il telefono Android ti chieda di autorizzare manualmente le chiavi host. Assicurati di autorizzarle, idealmente in modo permanente in modo che la richiesta non appaia più.
Ora androidqf dovrebbe essere in esecuzione e creare una cartella di acquisizione nello stesso percorso in cui hai inserito il binario di androidqf. A un certo punto dell'esecuzione, androidqf ti farà alcune scelte: questi prompt metteranno in pausa l'acquisizione finché non fornisci una selezione, quindi presta attenzione.
Una volta completata l'acquisizione, assicurati di disabilitare il debug USB e le opzioni sviluppatore, o comunque ripristinare la configurazione originale del dispositivo.
Trasportare le acquisizioni di androidqf su un'unità non crittografata potrebbe esporre te stesso, e ancor di più coloro a cui hai acquisito i dati, a rischi significativi. Ad esempio, potresti essere fermato a una frontiera problematica e la tua unità androidqf potrebbe essere sequestrata. I dati grezzi potrebbero non solo esporre lo scopo del tuo viaggio, ma conterranno probabilmente anche dati molto sensibili (ad esempio l'elenco delle applicazioni installate o persino messaggi SMS).
Idealmente dovresti avere l'unità completamente crittografata, ma potrebbe non essere sempre possibile. Potresti anche considerare di posizionare androidqf all'interno di un contenitore VeraCrypt e portare con te una copia di VeraCrypt per montarlo. Tuttavia, i contenitori VeraCrypt sono tipicamente protetti solo da una password, che potresti essere costretto a fornire.
In alternativa, androidqf permette di crittografare ogni acquisizione con una chiave pubblica age fornita. Preferibilmente, questa chiave pubblica appartiene a una coppia di chiavi di cui l'utente finale non possiede, o almeno non porta con sé, la chiave privata. In questo modo, l'utente finale non sarebbe in grado di decrittare i dati acquisiti nemmeno sotto coercizione.
Se inserisci un file chiamato key.txt nella stessa cartella dell'eseguibile androidqf, androidqf tenterà automaticamente di comprimere e crittografare ogni acquisizione e cancellare le copie originali non crittografate.
Una volta recuperato un file di acquisizione crittografato, puoi decrittarlo con age in questo modo:
$ age --decrypt -i ~/path/to/privatekey.txt -o <UUID>.zip <UUID>.zip.age
Tieni presente che è sempre possibile che almeno una parte dei dati non crittografati possa essere recuperata tramite tecniche forensi avanzate - anche se stiamo lavorando per mitigare questo problema.
Lo scopo di androidqf è facilitare l'analisi forense consensuale dei dispositivi di coloro che potrebbero essere bersaglio di sofisticati attacchi spyware mobili, specialmente membri della società civile e comunità emarginate. Non vogliamo che androidqf consenta violazioni della privacy di individui non consenzienti. Pertanto, l'obiettivo di questa licenza è proibire l'uso di androidqf (e di qualsiasi altro software con la stessa licenza) per scopi di forensica avversaria.
Per raggiungere questo obiettivo, androidqf è rilasciato sotto MVT License 1.1, un adattamento della Mozilla Public License v2.0. Questa licenza modificata include una nuova clausola 3.0, "Consensual Use Restriction" che permette l'uso del software concesso in licenza (e qualsiasi "Larger Work" derivato da esso) esclusivamente con il consenso esplicito della persona o delle persone di cui i dati vengono estratti e/o analizzati ("Data Owner").