Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

LA GUIDA PRATICA

Mobile forensics: cos’è e come usarla per scovare attività malevoli sugli smartphone

La mobile forensics sta assumendo un’importanza crescente nell’ambito della digital forensics e non potrebbe essere altrimenti: la diffusione dei dispositivi mobili fa sì che in ogni “scena del crimine” sia presente almeno uno smartphone. Ecco le tecniche usate dagli investigatori per acquisire dati utili alle indagini

18 Lug 2019
B

Fabio Bucciarelli

Security Senior Advisor


Con il termine mobile forensics si intende lo studio dei dati estratti da dispositivi mobili, come la lista dei contatti, l’elenco delle telefonate fatte e ricevute, gli SMS, le chat, foto e video, documenti prodotti o consultati, navigazioni, dati di geolocalizzazione, dati provenienti dalle varie app installate e così via.

Si tratta di un settore della digital forensics, la branca della scienza forense che si occupa della preservazione, dell’identificazione e dell’investigazione delle informazioni trovate all’interno dei dispositivi digitali, al fine di produrre evidenze che riguardano crimini informatici.

L’importanza crescente della mobile forensics

La mobile forensics sta assumendo un’importanza crescente nell’ambito della digital forensics, in quanto la diffusione dei dispositivi mobili nelle nostre vite fa sì che pressoché in ogni “scena del delitto” sia presente almeno un dispositivo mobile.

Questo non risparmia neanche l’ambito aziendale, visti i cambiamenti a cui è soggetto il nostro modo di lavorare, sempre più orientato alla mobilità, con il dispositivo mobile che sempre più spesso affianca o sostituisce il laptop come dispositivo principale di lavoro.

Per esempio, nei casi di indagine su furti di dati aziendali da parte di dipendenti, potrebbe essere necessario acquisire evidenze anche su dispositivi mobili.

Questo articolo sarà focalizzato sulle evidenze che possono essere estratte da dispositivi mobili e sulle tecniche utilizzate per la mobile forensics di dispositivi Android, piuttosto che sulla raccolta di informazioni relative a crimini informatici da utilizzare in tribunale.

Sfide della Mobile Forensics

La mobile forensics presenta diverse peculiarità che rendono più complessa l’estrazione e l’analisi dei dati da dispositivi mobili rispetto a quelli provenienti da PC. Vediamo un po’ più in dettaglio quali sono le cause:

  • varietà dell’hardware. Sul mercato è disponibili una varietà enorme di modelli di smartphone provenienti da diversi produttori, che differiscono in termini di dimensioni, hardware, sistemi operativi, funzionalità. Inoltre, la velocità con il quale vengono rilasciati nuovi modelli e di nuove funzionalità rende difficile l’adozione e il consolidamento di tecniche di analisi. Si pensi ad esempio ai nuovi modelli sui quali non è più possibile estrarre la batteria, o alla difficoltà nello stabilire, sui nuovi modelli, se il dispositivo è acceso o spento;
  • varietà dei sistemi operativi. Sebbene rispetto a qualche anno fa la situazione sembri essersi stabilizzata, con iOS e Android che coprono buona parte del mercato mondiale, anche all’interno di questi sistemi operativi esiste una grande varietà di versioni, con rilasci molto più frequenti e caratteristiche anche molto diverse tra una versione e l’altra. Se allarghiamo inoltre il campo dagli smartphone e tablet ad altre tipologie di dispositivi sempre più presenti nelle nostre vite (dispositivi indossabili, fotocamere digitali, home assistant ecc.) il discorso si complica ulteriormente;
  • funzionalità di sicurezza presenti nei dispositivi mobili. Le versioni più recenti di dispositivi mobili contengono misure di sicurezza che hanno lo scopo di proteggere i dati e la privacy degli utenti. Queste funzionalità possono essere una sfida per chi deve acquisire e analizzare i dati. Si pensi per esempio ai meccanismi di cifratura hardware e software;
  • alterazione dei dati. Una delle regole fondamentali della digital forensics è quella secondo la quale i dati presenti nel dispositivo non devono essere alterati dall’analisi. Nel caso dei dispositivi mobili questo è il più delle volte impossibile. Per esempio, se il dispositivo è protetto con un pin o una password, è necessario bypassare questo meccanismo. Inoltre, come vedremo nel corso dell’articolo, molte evidenze possono essere estratte solo nel caso in cui il dispositivo sia “rooted”, e quindi potrebbe essere necessario per l’analista effettuare il rooting, alterando quindi i dati. In realtà questa regola è diventata di difficile applicazione anche nel caso di acquisizione di evidenze volatili da PC, come ad esempio l’acquisizione della memoria.

Consapevoli delle difficoltà da affrontare, vediamo ora quali sono le principali tecniche di acquisizione ed analisi dei dati, con particolare attenzione al mondo Android.

Acquisizione dei dati

Acquisizione dei dati nell’ambito della mobile forensics è il processo attraverso il quale viene creata un’immagine, o vengono comunque estratti dati, dal dispositivo mobile. Vediamo quali sono i principali tipologie di acquisizione dei dati, dalla più completa (e complessa) a quella più parziale (ma facile).

Acquisizione fisica dei dati

Nella digital forensics l’acquisizione fisica è la copia bit a bit di un dispositivo elettronico. Declinata sui dispositivi mobili, l’acquisizione fisica avviene accedendo direttamente alla memoria flash e creando un’immagine bit a bit del suo contenuto. In questo modo avremo a disposizione un’immagine completa di tutto il file system, permettendo di aver accesso ad eventuali dati contenuti in file cancellati e al contenuto dello spazio non allocato.

Visto che si tratta dell’acquisizione più completa, perché non viene effettuata sempre? In primo luogo, essendo un’operazione piuttosto dispendiosa in termini di tempo, potrebbe essere sovradimensionata rispetto allo scopo dell’acquisizione: se sappiamo già cosa stiamo cercando, potremmo optare per un’acquisizione meno dispendiosa in termini di tempo.

In secondo luogo, l’acquisizione fisica dei dati via software richiede i privilegi di root sul dispositivo; il rooting del dispositivo potrebbe essere un’operazione distruttiva e comunque invasiva (vedi alla voce alterazione dei dati).

Un’altra possibile via per effettuare un’acquisizione fisica dei dati è quella di accedere fisicamente al chip della memoria estraendolo fisicamente dal dispositivo (chip-off), ma anche questa operazione richiede molto tempo ed è potenzialmente distruttiva, ancora più del rooting del dispositivo.

Acquisizione logica dei dati

Con questa modalità vengono estratti oggetti logici del dispositivo mobile, come ad esempio file e directory, attraverso un’interazione con il sistema operativo. Si tratta certamente di un’operazione più facile rispetto all’acquisizione fisica, ma ha la controindicazione di non permettere l’accesso a file cancellati o contenuti all’interno dello spazio non allocato.

Data la natura dei sistemi mobili tuttavia, vista la quantità di dati conservati all’interno di database SQLite, è possibile ripristinare alcuni dati cancellati a partire da un’acquisizione logica. La quantità di dati presenti in un’immagine risultato di acquisizione logica dipende fortemente dal fatto che l’acquisizione venga effettuata mediante un accesso di tipo root o meno.

Il sistema di sicurezza presente in Android non permette infatti l’accesso alle directory di sistema.

Acquisizione manuale dei dati

L’acquisizione manuale dei dati avviene interagendo con il dispositivo mobile attraverso l’interfaccia utente, ad esempio il touchscreen, cercando i dati di interesse e fotografando lo schermo che mostra tali dati.

Si tratta certamente di un metodo molto facile per l’acquisizione dei dati, ma introduce il rischio di errore umano che potrebbe portare alla cancellazione dei dati. Inoltre, può essere utilizzato come conferma delle evidenze estratte da un’acquisizione fisica o logica.

Acquisizione della RAM

Come già detto in un precedente articolo, tutto quello che viene eseguito in un sistema “passa” dalla RAM e quindi le informazioni presenti all’interno della RAM possono essere preziose per capire cosa sta avvenendo al suo interno.

Sebbene questo sia vero anche per i dispositivi mobili, l’acquisizione della RAM viene effettuata raramente, in quanto per essere effettuata è necessario essere dotati di un accesso root al dispositivo, cosa che può essere effettuata solo dopo un riavvio del dispositivo. Il riavvio del dispositivo causa l’azzeramento del contenuto della RAM, rendendo inutile l’acquisizione rispetto agli scopi per la quale si era intenzionati ad effettuarla.

Tale acquisizione può avere senso quando ci si trova davanti ad un dispositivo per il quale il rooting era già stato effettuato. In tal caso ha senso effettuare l’acquisizione, ma, per i motivi detti prima, i tool di analisi della RAM non sono così evoluti: l’unica analisi possibile è la ricerca di specifiche stringhe all’interno dell’immagine della RAM.

Tecniche di acquisizione in Android

Rooting del dispositivo

Abbiamo visto come l’acquisizione fisica dei dati e l’acquisizione della RAM possano essere effettuati solo se si dispone di accesso root al dispositivo. Anche se si opta per l’acquisizione logica, i dati delle applicazioni possono essere estratti solo se in possesso dell’accesso root.

Un altro motivo per il quale l’analista forense mobile ha necessità di conoscere le implicazioni di un dispositivo “rooted” è la possibilità di trovarsi ad analizzare un dispositivo con tali caratteristiche, cosa tutt’altro che infrequente.

Nei sistemi Unix o derivati, come appunto Android, l’utente amministratore, che ha i permessi per avviare o fermare i processi, modificare o cancellare qualsiasi file, modificare i privilegi degli altri utenti, è detto root. Normalmente, per ragioni di sicurezza, sui sistemi Android l’accesso come root non è possibile.

Il rooting del dispositivo Android è quindi l’operazione attraverso la quale viene guadagnato l’accesso al dispositivo come utente root, allo scopo di eseguire azioni normalmente non permesse sul dispositivo.

Essendo un’operazione generalmente non prevista dal produttore, per effettuare il rooting sono stati trovati diversi sistemi, dipendenti sostanzialmente dal dispositivo sottostante, ma generalmente basati sullo sfruttamento di una qualche vulnerabilità del firmware del dispositivo e sulla copia del tool su (super user) sul filesystem del dispositivo (generalmente in /system/xbin/su) e concedendogli i permessi di esecuzione.

Le modalità pratiche attraverso le quali questo può essere ottenuto sono fortemente dipendenti dal dispositivo: si va da dall’installazione/esecuzione di un’app sul dispositivo, all’installazione di un software di recovery modificato nella partizione di recovery, all’utilizzo di un tool per PC che permette il rooting del dispositivo connesso al PC via USB.

Un esempio di tool di quest’ultimo tipo, piuttosto semplice da utilizzare, è KingoRoot, di cui mostriamo una schermata:

Una volta che il dispositivo è rooted, è possibile utilizzare app come Superuser per concedere o negare i privilegi di root, come mostrato nel seguente screenshot:

Come già accennato, è importante capire che il rooting del dispositivo è un’operazione che presenta alcuni rischi:

  • se qualcosa andasse storto durante il rooting del dispositivo, il dispositivo stesso potrebbe diventare inutilizzabile;
  • l’operazione invalida la garanzia del dispositivo;
  • un dispositivo “rooted” è più esposto a malware o altri attacchi; un malware o un attaccante a disposizione di privilegi di root potrebbe causare molti più danni;
  • dal punto di vista forense, si tratta di un’alterazione dei dati del dispositivo da sottoporre ad analisi, che, come abbbiamo visto, potrebbe essere inevitabile, ma che costituisce comunque una contravvenzione ad uno dei principi cardine della digital forensics.

Acquisizione di dati attraverso ADB: Android Debug Bridge

L’Android Debug Bridge, o ADB, è un tool che fa parte degli Android SDK tools, un insieme di tool rivolti agli sviluppatori che permette di costruire, testare, effettuare il debug di app Android. Android SDK tools è disponibile per Windows, MacOS, Linux.

L’ADB è uno strumento fondamentale per la Mobile Forensics in Android, in quanto permette la comunicazione via USB fra il dispositivo mobile e un host computer, ovvero il computer utilizzato dall’analista forense per l’acquisizione dei dati dal dispositivo mobile.

Al fine di permettere la comunicazione via USB, sul dispositivo mobile deve essere abilitata la modalità sviluppatori e il debugging USB. Nei dispositivi più recenti la modalità sviluppatori potrebbe essere nascosta: le modalità con cui può essere abilitata variano da dispositivo a dispositivo.

Una delle modalità più comuni è quella di fare tap per 7 volte sul campo “build number” situato in Settings/System/Info. Una volta collegato il dispositivo ad un PC, occorre concedere esplicitamente il permesso.

Una volta attivato il debugging USB, all’interno del dispositivo mobile verrà avviato il demone ADB (adbd), il quale si occuperà della connessione USB con la workstation. Il demone è in esecuzione mediante un account non privilegiato: questo comporta che, se il dispositivo non è rooted, adb non permetterà né l’acquisizione fisica dei dati, né l’accesso ai dati interni delle applicazioni.

Sulla workstation dove sono installati gli Android SDK tool è presente un tool a riga di comando (adb) il quale, una volta lanciato, verificherà la presenza del demone ADB sulla workstation; se tale demone non è in esecuzione lo avvierà. Il client comunica con il demone attraverso una connessione TCP sulla porta 5037.

Attraverso ADB è possibile:

  • copiare file da e verso il dispositivo;
  • eseguire il debug di app in esecuzione sul dispositivo;
  • eseguire comandi di shell sul dispositivo;
  • ottenere i log di sistema e applicazioni;
  • installare e rimuovere app.

Per esempio, attraverso adb può essere ottenuta una shell sul dispositivo:

fabio@buccia ~ $ adb shell
shell@B706:/ $

Se il dispositivo è rooted, attraverso il comando su può essere ottenuta una shell di root:

shell@B706:/ $ su
root@B706:/ #

L’acquisizione fisica dei dati da un dispositivo Android può essere effettuata da adb utilizzando il comando dd, un comando linux che permette la copia bit a bit; normalmente è presente sui sistemi Android.

La sintassi di dd prevede l’opzione if= per indicare il dispositivo (file) di input della copia, mentre l’opzione of= per indicare il dispositivo (file) di output della copia. Nel nostro caso il dispositivo di cui vogliamo effettuare la copia bit a bit è la flash memory del dispositivo.

Generalmente si tratta del dispositivo mmcblk0, ma è comunque possibile verificare leggendo il contenuto di /proc/partitions, che contiene l’elenco delle partizioni.

È possibile lanciare il comando dd sul dispositivo e salvare l’immagine sulla workstation dell’analista nel seguente modo.

fabio@buccia ~/analisys $ adb shell su -c dd if=/dev/block/mmcblk0 > mmcblk0.img
7514112+0 records in
7514112+0 records out
3847225344 bytes transferred in 1287.118 secs (2989023 bytes/sec)
fabio@buccia ~/analisys $

Attraverso una shell adb può essere anche effettuata un’acquisizione logica.

Nell’esempio seguente viene copiato il contenuto della directory /data (dove ci sono i dati delle applicazioni) in una nostra scheda SD inserita all’interno del dispositivo. Naturalmente questo può essere fatto se sul dispositivo non è già presente una scheda SD e la scheda utilizzata deve essere precedentemente ripulita. È possibile utilizzare tecniche per scrivere il risultato sulla workstation dell’analista, ma questo potrebbe richiedere l’installazione di tool aggiuntivi sul dispositivo mobile oggetto dell’analisi.

root@B706:/ # mkdir /storage/sdcard1/logical_extraction
root@B706:/ # cp -Rp  /data /storage/sdcard1/logical_extraction
root@B706:/ #

Analisi dei dati

Le evidenze contenute all’interno dei dispositivi mobili e che possono essere estratte dai dati acquisiti sono molteplici e di diverso tipo. Riportiamo di seguito un elenco non esaustivo di categorie di evidenze che possono essere estratto da un dispositivo mobile:

  • elenco dei contatti. Nomi, numeri di telefono, indirizzi e-mail;
  • registro delle chiamate: chiamate effettuate, ricevute, durata delle chiamate;
  • SMS e MMS: messaggi inviati e ricevuti;
  • e-mail: e-mail ricevute, inviate, bozze, compresi gli allegati;
  • cronologia della navigazione: cronologia dei siti web visitati;
  • foto, video: foto e video prodotti dal dispositivo mobile oppure scaricati da Internet o da trasferiti altro dispositivo;
  • musica e documenti: file musicali oppure documenti scaricati da Internet o trasferiti da altro dispositivo;
  • agenda: appuntamenti registrati in agenda;
  • posizioni: elenco delle posizioni GPS;
  • mappe: elenco delle mappe scaricate, dei luoghi e degli itinerari ricercati;
  • dati di social network: dati registrati da applicazioni come WhatsApp, Facebook, Twitter, Instagram Linkedin ecc.;
  • dati cancellati: dati cancellati dal dispositivo.

Queste evidenze contengono generalmente timestamp di creazione, modifica e accesso.

Una trattazione completa di dove si trovino e come possano essere estratte queste evidenze richiederebbe troppo tempo: ci limiteremo quindi a qualche esempio di tecniche di analisi.

Analisi di dati con tool a riga di comando

Il file system con cui sono formattate le partizioni all’interno della immagini della flash memory acquisite da sistemi Android è solitamente di tipo ext4, come quello di molti sistemi Linux. Le tecniche di analisi che possono essere utilizzate, per esempio per il recovery dei file cancellati, l’analisi dei timestamp di apertura e/o modifica di file, la creazione della timeline, sono le stesse utilizzate per l’analisi forense di sistemi Linux.

Per esempio, può essere utilizzato Sleuthkit, una collezione di tool open source per l’analisi forense di filesystem e dispositivi: una trattazione completa di questi temi potrà essere oggetto di un articolo successivo.

Considerato però che le evidenze che possono essere estratte dai dispositivi mobili spesso sono contenute all’interno di database SQLIte, vediamo un esempio di come estrarre i dati sugli sms inviati e ricevuti. Il database contenente le informazioni sugli sms si trova in: /data/data/com.android.providers.telephony/databases/mmssms.db.

Se abbiamo effettuato un’acquisizione fisica della flash memory del dispositivo l’accesso a tale file non è così immediata, vediamo quindi come in un sistema Linux sia possibile, a partire dall’acquisizione fisica, analizzare il database degli SMS.

Con il tool mmls, parte di Sleuthkit, vediamo quali sono le partizioni contenute all’interno della nostra immagine:

buccia@sabayonx86-64 ~/analisys $ mmls mmcblk0.img
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

Slot                       Start                     End                       Length                 Description
000: Meta          0000000000     0000000000     0000000001     Primary Table (#0)
001: ——-         0000000000     0000018431       0000018432      Unallocated
002: Meta          0000001024      4294968318       4294967295       DOS Extended (0x05)
003: Meta          0000001024      0000001024      0000000001     Extended Table (#1)
004: 000:001    0000018432      0000038911       0000020480     Linux (0x83)
005: 000:002   0000038912       0000059391      0000020480      Linux (0x83)
006: ——-         0000059392      0000113151        0000053760      Unallocated
007: 000:003    0000113152        0001444351       0001331200       Linux (0x83)
008: 001:000    0001444352       0002214399       0000770048     Linux (0x83)
009: 001:001     0002214400      0004311551        0002097152       Linux (0x83)
010: 001:002     0004311552       4294968318        4290656767       Linux (0x83)

Se in fase di acquisizione avevamo preso dati relativi al partizionamento della flash memory, avremmo visto che la partizione /data era quella evidenziata, in caso contrario è possibile procedere per tentativi. Ora procediamo al mount della partizione, considerando che la dimensione dei settori è di 512 bytes:

fabio@buccia ~/analisys $ sudo mount -o loop,offset=$((2214400*512)) mmcblk0.img /mnt/usb/ -t ext4
fabio@buccia ~/analisys $

Quindi, attraverso il tool sqlite3 e una query SQL sulla tabella sms, visualizziamo gli sms presenti:

fabio@buccia ~/analisys $ sudo sqlite3 /mnt/usb/data/com.android.providers.telephony/databases/mmssms.db
SQLite version 3.28.0 2019-04-16 19:49:53
Enter “.help” for usage hints.

sqlite> .tables
addr                                     pdu                           thread_settings
android_metadata           pending_msgs        threads
attachment                        quicktex                   wappush
canonical_addresses       rate                           words
cellbroadcast                     raw                           words_content
drm                                     sms                           words_segdir
part                                     sr_pending             words_segments

sqlite> select address, date, type, body, seen from sms;
+39XXXXXXXXXX|1455709266891|2|Grazie!|1
+39XXXXXXXXXX|1455709590851|2|Umm … |1
+39XXXXXXXXXX|1455709845786|1|Ha detto che …|1
+39XXXXXXXXXX|1455710125518|2|Naturalmente …
+39XXXXXXXXXX|1455710163950|1|Ok buona vacanza|1

sqlite> .quit
fabio@buccia ~/analisys $

Il campo address contiene il numero di telefono del destinatario o mittente dell’sms, il campo date contiene il timestamp in formato unix (facilmente convertibile in formato leggibile, utilizzando anche tool online, come ePochConverter), il campo type vale 1 se si tratta di sms ricevuto e 2 se si tratta di sms inviato, il campo body contiene il testo del messaggio e il campo seen vale 0 se il messaggio non è stato letto e 1 in caso contrario.

Infine, come già accennato in precedenza, all’interno del database possono essere conservati record marcati per la cancellazione ma non rimossi. Esistono tool attraverso i quali fare il recovery di tali record e recuperare sms che l’utente aveva cancellato, come ad esempio il tool Sqlite-Parser (). Vediamo un esempio di utilizzo:

fabio@buccia ~/analisys $ sudo python2 sqlparse.py
Usage: Parse deleted records from an SQLite file into a TSV File or text file
Examples:
-f /home/sanforensics/smsmms.db -o report.tsv
-f /home/sanforensics/smssms.db -r -o report.txt

Options:
-h, –help show this help message and exit
-f smsmms.db, –file=smsmms.db
sqlite database file
-o output.tsv, –output=output.tsv
Output to a tsv file. Strips white space, tabs and
non-printable characters from data field
-r, –raw                                    Optional. Will out put data field in a raw format and
text file.
-p, –printpages                      Optional. Will print any printable non-whitespace
chars from all non-leaf b-tree pages (in case page has
been re-purposed). WARNING: May output a lot of string
data.
fabio@buccia ~/analisys $ sudo python2 sqlparse.py -f /mnt/usb/data/com.android.providers.telephony/databases/mmssms.db
-o report.tsv
fabio@buccia ~/analisys $

All’interno del file report.tsv sono contenuti, tra le altre cose, contenuti di sms cancellati.

Analisi di dati con Autopsy

Autopsy è un tool open source di analisi forense inizialmente nato come interfaccia grafica web based per il tool Sleuthkit, ma diventato poi un tool standalone per sistemi Windows.

Autopsy è a conoscenza di dove trovare le evidenze sui sistemi Android, per cui è possibile caricare un’immagine derivante da acquisizione fisica o logica di un dispositivo Android affinché un certo numero di informazioni venga estratto automaticamente, comprese informazioni sui file cancellati.

Dopo aver creato un nuovo caso, si aggiunge un nuovo data source, per esempio di tipo “Disk Image or VM File” se abbiamo disponibile un’immagine proveniente da un’acquisizione fisica. Selezionato il file, ci viene chiesto quale tipo di analisi effettuare.

Come si vede dallo screenshot, è presente un modulo specifico per Android, che quindi nel nostro caso va certamente selezionato.

Terminata l’apertura dell’immagine, è possibile visualizzare le informazioni sulle partizioni e sui documenti trovati all’interno dell’immagine.

È possibile inoltre navigare i filesystem delle varie partizioni.

Infine, è possibile ottenere informazioni su file cancellati, contatti, cronologia della chiamate, messaggi.

Conclusioni

Lo scopo di questo articolo era quello di mostrare le potenzialità e accennare alle tecniche di mobile forensics su sistemi Android, con la speranza di creare curiosità e aumentare la consapevolezza.

Come avviene in generale per la digitale forensics, si tratta di tematiche poco conosciute all’interno delle aziende, che le ritengono di esclusiva competenza delle forze dell’ordine.

Se è vero che non tutte le aziende devono avere competenze tecniche come quelle illustrate in casa, è vero che occorre prepararsi a gestire eventuali incidenti anche sviluppando competenze di questo tipo all’interno dell’azienda o individuandole all’esterno, definendo policy e procedure, dotandosi di strumenti che permettano all’azienda di essere pronta in caso di incidente di qualsiasi tipo.

@RIPRODUZIONE RISERVATA

Articolo 1 di 4