App, artefatti e report
Analizzare i dati delle app e presentare i risultati.
App, artefatti e report è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 4 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.
Panoramica degli artefatti delle app
Nella maggior parte dei casi, le app di terze parti generano le prove più ricche. Ogni app memorizza i dati a modo proprio, ma alcuni schemi ricorrono.
- Database SQLite per messaggi, cronologia e metadati.
- Property list (plist) su iOS e XML shared_prefs su Android per impostazioni e stato.
- Protobuf / JSON incorporati nelle colonne dei database.
- Cartelle di cache e contenuti multimediali per miniature e allegati.
Il Suo compito è analizzare questi dati in modo coerente, attribuirli a un utente e a un momento preciso e presentarli in modo difendibile.
Artefatti delle app di messaggistica
Le app di messaggistica sono fonti frequenti di prove. Ognuna conserva un archivio principale dei messaggi, oltre a tabelle per i contatti e i gruppi.
- WhatsApp (Android): msgstore.db (messaggi), wa.db (contatti).
- Signal: database SQLCipher cifrato; la chiave si trova nel keystore/keychain.
- Telegram: cache4.db con contenuti codificati in protobuf.
Ricostruisca una conversazione WhatsApp dall'archivio dei messaggi:
sqlite3 -readonly msgstore.db
sqlite> SELECT datetime(timestamp/1000,'unixepoch') ts,
...> key_remote_jid, key_from_me, data
...> FROM messages
...> WHERE key_remote_jid LIKE '%@s.whatsapp.net'
...> ORDER BY timestamp;Database cifrati delle app
Alcune app cifrano il proprio database con SQLCipher (ad esempio Signal e alcune app bancarie). Non è possibile aprire questi database con sqlite3 standard.
- La chiave è generalmente memorizzata nel keystore/keychain della piattaforma e può essere recuperata solo da un'estrazione sufficientemente approfondita.
- Una volta ottenuta la chiave, apra il database tramite SQLCipher PRAGMA prima di eseguire le query.
Apertura di un database SQLCipher dopo il recupero della chiave:
sqlcipher signal.db
sqlite> PRAGMA key = "x'6f3b...c91a'"; -- recovered raw key
sqlite> PRAGMA cipher_compatibility = 4;
sqlite> SELECT * FROM sms LIMIT 5;Decodifica dei blob incorporati
I database delle app nascondono spesso dati strutturati nelle colonne BLOB sotto forma di protobuf, plist o JSON. Le colonne visibili rappresentano solo una parte delle informazioni.
- I blob BPLIST (plist binario Apple) si decodificano con plistlib o plutil.
- I blob Protobuf si decodificano con protoc o blackboxprotobuf.
Converta un blob plist binario estratto da una colonna:
# Apple binary plist -> readable XML
plutil -convert xml1 -o decoded.plist attachment_blob.bin
# Unknown protobuf -> field tree
python3 -m blackboxprotobuf decode message_blob.binArtefatti di posizione e geolocalizzazione
Le prove relative alla posizione collegano una persona a un luogo e a un momento, quindi devono essere gestite con particolare rigore.
- Tag GPS EXIF delle foto, cronologia delle ricerche nelle app di mappe, tile memorizzate nella cache.
- Su iOS le posizioni significative (cache di routined), su Android la cronologia delle posizioni e i registri Wi-Fi/rete cellulare.
Distinga il luogo in cui si trovava il dispositivo da un luogo che l'utente si è limitato a cercare. Estragga le coordinate GPS EXIF da una foto:
exiftool -GPSLatitude -GPSLongitude -DateTimeOriginal \
IMG_0421.HEICCloud, sincronizzazione e stato multi-dispositivo
Le app moderne sincronizzano i dati tra dispositivi, quindi i dati presenti sul dispositivo possono essere incompleti o duplicati.
- Un messaggio eliminato dal telefono può persistere su un tablet collegato o in una sessione web.
- I metadati di sincronizzazione possono mostrare quale dispositivo ha creato un messaggio.
Annoti l'attribuzione al dispositivo nella Sua analisi e acquisisca dati dal cloud o da dispositivi associati solo con una distinta e adeguata autorizzazione legale. Non dia mai per scontato che il telefono sequestrato contenga l'intero archivio.
Validazione degli artefatti
Prima che un artefatto venga inserito in un rapporto, lo convalidi in tre modi.
- Origine: confermi il file, la tabella e la colonna esatti da cui proviene.
- Decodifica: verifichi l'epoca del timestamp e il significato del campo, idealmente confrontandoli con un messaggio di riferimento noto come corretto.
- Corroborazione: verifichi l'artefatto confrontandolo con un secondo artefatto (ad esempio, una voce nel registro delle chiamate corrispondente a un contatto).
Un artefatto che non può essere corroborato in modo indipendente o attribuito con precisione a una fonte deve essere indicato come a bassa affidabilità, non presentato come un fatto.
Creazione di una super-timeline
Una super-timeline riunisce gli eventi provenienti da molti artefatti in un'unica vista cronologica, normalizzata in UTC.
- Combini messaggi, chiamate, utilizzo delle app, posizioni ed eventi di sistema.
- Contrassegni ogni riga con il relativo artefatto di origine per garantirne la tracciabilità.
Strumenti come log2timeline/plaso o script degli analisti assemblano questi dati. Concettualmente, ogni riga contiene l'ora, l'evento e la provenienza:
timestamp_utc | source | event
2026-06-01 09:14:02 | sms.db | iMessage sent to +1555...
2026-06-01 09:15:40 | knowledgeC.db | App in foreground: Maps
2026-06-01 09:16:05 | Photos.sqlite | Photo captured (GPS present)Struttura del rapporto
Un rapporto forense deve consentire a un esaminatore indipendente di riprodurre e verificare il Suo lavoro. Sezioni standard:
- Riepilogo — ambito, autorizzazione, risultati principali.
- Evidenze trattate — dispositivi, identificativi, catena di custodia.
- Metodologia — strumenti, versioni, comandi esatti, hash.
- Risultati — artefatti con citazioni delle fonti.
- Conclusioni — interpretazione, chiaramente separata dai fatti grezzi.
Ogni affermazione deve poter essere ricondotta a una fonte con hash e a un passaggio documentato.
Fatti e opinioni
La credibilità di un rapporto dipende dalla separazione tra osservazione e interpretazione.
- Fatto: la riga 482 di sms.db contiene il testo X con la data Y (UTC).
- Interpretazione: ciò suggerisce che l'utente intendesse incontrarsi presso la posizione Z.
Esponga i fatti in modo neutrale e indichi le deduzioni come tali, includendo spiegazioni alternative. Esagerare il grado di certezza (ad esempio, attribuire un'intenzione sulla base di un solo messaggio) indebolisce l'intero rapporto e può essere contestato in tribunale.
Etica, ambito e privacy
I dispositivi mobili contengono dati estremamente privati. Chi opera in questo campo deve rispettare i limiti legali ed etici.
- Operi esclusivamente nell'ambito autorizzato (termini del mandato o del consenso).
- Riduca al minimo l'esposizione di dati privati non pertinenti.
- Mantenga l'obiettività — riporti anche le evidenze a discarico, non solo quelle a carico.
- Protegga i dati estratti con la stessa cura riservata al dispositivo originale.
Una solida etica non è facoltativa: è ciò che rende le evidenze digitali affidabili e ammissibili.
Verifica rapida
Il Suo rapporto afferma: «L'utente intendeva commettere l'atto, come dimostra il messaggio 482.» Un revisore obietta. Qual è il problema fondamentale?
Riepilogo: app, artefatti e rapporti
Ora è in grado di trasformare le estrazioni grezze in un rapporto difendibile.
- I dati delle app sono costituiti da SQLite + plist/XML + blob protobuf/JSON; decodifichi esplicitamente i blob.
- Gli archivi crittografati (SQLCipher) richiedono chiavi ottenute tramite un'estrazione approfondita.
- Gestisca con attenzione le evidenze relative alla posizione; distingua la presenza da una semplice ricerca.
- Tenga conto della sincronizzazione tra più dispositivi e acquisisca dati dal cloud solo con la dovuta autorizzazione.
- Convalidi l'origine, la decodifica e la corroborazione prima di riportare i risultati.
- Costruisca una super-timeline in UTC, strutturi il rapporto per renderlo riproducibile e mantenga separati i fatti dalle opinioni.
- Rispetti l'ambito autorizzato e agisca eticamente: è questo che rende le evidenze ammissibili.
Domande Frequenti
La lezione «App, artefatti e report» è gratuita?
Sì — il testo completo di «App, artefatti e report» è 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 «App, artefatti e report»?
Analizzare i dati delle app e presentare i risultati. 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 4 di 4.
Quanto tempo richiede la lezione «App, artefatti e report»?
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
- Fondamenti di informatica forense mobile
- Acquisizione e analisi di Android
- Acquisizione e analisi di iOS
- App, artefatti e report