CAPITOLO PRIMO
“SOCIAL” IMAGE FORENSICS: STATUS E PROSPETTIVE
Sebastiano Battiato, Oliver Giudice, Antonino Paratore
Sommario: 1. Introduzione – 2. Le Immagini JPEG: Definizioni e caratteristiche –3. Un Dataset di immagini da Social Network –4. Analisi delle tracce lasciate dai Social Networks –5. Social Image Forensics: Image Ballistics – 6. Conclusioni.
1. INTRODUZIONE
L’Image Forensics, nell’ambito della più vasta area del Multimedia Forensics [1][2], si occupa di analizzare le immagini digitali al fine di esibire elementi di prova in ambito forense per ciò che riguarda l’autenticità e integrità dei dati e l’identificazione della sorgente di acquisizione [3]. Ci si riferisce ad esempio a casi di contraffazioni di immagini (Forgery Detection) [4] o alla ricostruzione della cosiddetta “storia”
di un’immagine fin dalla sua acquisizione (Image Ballistics).
L’Image Ballistics, il cui termine deriva dalla ben nota balistica forense
1, fu definita per la prima volta da Farid [5]. Obiettivo di tale disciplina è l’estrazione e l’interpretazione delle caratteristiche intrinseche presenti nelle immagini, per poter ricostruire avvenimenti di interesse giuridico o probatorio, in cui hanno un ruolo predominante i dispositivi di acquisizione di immagini digitali e i software di elaborazione di immagini.
Il problema dell’identificazione del dispositivo di acquisizione (Camera Source Identification) è stato nel tempo affrontato attraverso numerosi approcci tra cui, fra i più efficaci, menzioniamo il PRNU [6][7] (Photo Response Non-Uniformity) ovvero l’estrazione di un segnale di rumore invisibile presente sulle immagini digitali, dovuto principalmente a piccole imperfezioni, di natura elettronica, presenti nel sensore che le acquisisce. Il PRNU rappresenta una sorta di impronta lasciata dal sensore sull’immagine e quindi legata in maniera univoca al dispositivo che ha acquisito l’immagine stessa.
La questione si complica quando le immagini subiscono alterazioni di vario genere a seguito di processamenti da parte di applicativi software.
E’ stato ormai dimostrato come la Camera Source Identification basata su PRNU, non risulta essere sufficientemente valida su immagini elaborate anche con semplici editing (quali rescaling, cropping, ecc.) attraverso software di pubblico dominio quali ad esempio Photoshop o GIMP. Inoltre, le operazioni di ricodifica che vengono operate a valle, da uno qualunque di tali software, alterano pesantemente i valori del PRNU compromettendone l’efficacia[8].
1
Balistica forense: branca della scienza forense che tenta di ricostruire avvenimenti relativi a delitti in cui sono state
utilizzate delle armi da fuoco.
Oggi, i Social Network consentono ai loro utenti di caricare e condividere un’enorme quantità di immagini:
basti pensare che quotidianamente, si stima che su Facebook vengano caricate più di 300 milioni di immagini. Si definisce “Social Image Forensics” lo studio delle caratteristiche intrinseche delle immagini, pubblicate su un Social Network, al fine di identificare una sorta di “fingerprint” che tiri fuori delle evidenze, chiare e documentabili, tali da ricostruirne la “storia digitale” dell’immagine fin dall’acquisizione.
Lo studio delle tematiche della “Social Image Forensics” è molto utile sia a scopo forense che investigativo:
conoscere l’origine di una determinata immagine può infatti essere determinante in molti contesti. A tal fine però risulta fondamentale comprendere nel dettaglio le peculiarità che il processo di upload e di condivisione di tali informazioni genera sui Social Network.
In questo articolo verrà illustrato un possibile protocollo per l’Image Ballistics basato su caratteristiche intrinseche riscontrabili sulle immagini dopo i processi di upload/download delle stesse sulle piattaforme Social di uso più comune. Nei prossimi paragrafi verranno descritti i dettagli tecnici di tali caratteristiche mentre a seguire alcuni casi di studio ne illustreranno le potenzialità.
2. LE IMMAGINI JPEG: DEFINIZIONI E CARATTERISTICHE
In questo paragrafo verranno presentati brevemente i fondamenti delle immagini in formato JPEG: il formato più comune e maggiormente utilizzato all’interno dei Social Network e non solo.
In ambito forense lo studio delle anomalie di codifica, presenti in immagini manipolate, ha dato origine ad un filone di ricerca promettente soprattutto nel caso della individuazione di manipolazioni locali (es. cloning, splicing, ecc.) seguite in genere da ricodifiche nel dominio DCT (Discrete Cosine Transform)[9][10].
2.1 La compressione JPEG
La compressione delle immagini digitali affronta il problema della riduzione del numero di bit necessari alla rappresentazione delle stesse. Da un punto di vista matematico, si attua una trasformazione in grado di realizzare un mapping tra la matrice di pixel ed un insieme di dati non correlati. Per le immagini digitali è possibile individuare due differenti tipi di compressione: lossless e lossy. La compressione lossless comprime tutte le informazioni di un’immagine, in modo tale che la stessa, una volta decompressa, sia identica a quella originale, senza alcuna perdita di informazioni e di conseguenza senza riduzione della qualità. La compressione di tipo lossy, invece, scarta opportunamente alcune delle informazioni poco visibili all’occhio umano (es. alte frequenze) comprimendo le rimanenti informazioni. L’immagine compressa ottenuta, risulta essere in genere, rispetto al livello/fattore di qualità, una buona approssimazione dell’immagine originale.
JPEG è l’acronimo di “Joint Photographic Experts Group”, un gruppo di lavoro che ha definito l’omonimo
standard internazionale di compressione per le immagini [11].
La conversione di uno stream di byte in formato JPEG avviene attraverso le seguenti fasi: Trasformazione, Quantizzazione e Codifica come mostrato in Figura 1.
(inserire qui fig1.)
Figura 1 – Fasi della compressione di un immagine in formato JPEG
Attraverso la prima fase si ottiene una rappresentazione del segnale che ne facilità la compressione. Le operazioni coinvolte sono: conversione di spazio di colori, sotto-campionamento, suddivisione in blocchi e DCT. Successivamente, attraverso il processo di quantizzazione, vengono eliminate le informazioni trascurabili, ovvero quelle informazioni che non sono essenziali per la ricostruzione dell’immagine originale.
Per fare ciò si divide ogni componente della matrice dei coefficienti delle frequenze per una costante fissata, e si arrotonda il valore così ottenuto. Il risultato di questa operazione è una matrice contenente un numero elevato di valori nulli in corrispondenza delle alte frequenze ed una serie di valori interi vicini allo zero. La matrice così elaborata può essere codificata con un elevato fattore di compressione. Questo passo dell’algoritmo JPEG è quello che maggiormente degrada la qualità dell’immagine, poiché ne elimina definitivamente alcune componenti.
Lo standard JPEG non specifica i valori da utilizzare nelle tabelle (matrice 8x8 contenenti i valori di cui sopra) in quanto queste dovrebbero essere generate per ogni immagine ed il processo risulterebbe oneroso.
Le tabelle sono spesso quindi dipendenti dai dispositivi utilizzati o dai software di elaborazione di immagini [12].
2.2 Struttura di un file JPEG
Lo standard JPEG definisce anche il formato del file la sua estensione e ovviamente la sua struttura che definisce le modalità con cui vengono memorizzate le varie parti di un’immagine.
La parte iniziale del file è costituita dai cosiddetti marker [13]. Tali marker vengono utilizzati per segnalare la tipologia di dati inserita nel file ed hanno una lunghezza di 2 Byte. I marker possono essere di due tipi:
Stand-alone che non contengono dati oltre i due byte del marker stesso e quelli che non rientrano in questa categoria che sono immediatamente seguiti da un valore di due Byte che segnala il numero di Byte di dati che il marker contiene.
I dati compressi sono l’unica parte che nel file non sono inseriti tra specifici marker e sono sempre seguiti
immediatamente dal marker “Start of Scan” (SOS). I diversi tipi di marker che è possibile trovare in un file
JPEG sono elencati in Tabella 1 mentre un esempio di struttura file JPEG, con esclusione dei dati compressi,
viene riportato in Tabella 2.
MARKER DESCRIZIONE SOI (Start Of Image) Indica l’inizio del file JPEG.
AP
0– APP
15Tengono traccia dell’applicazione utilizzata per elaborare l’immagini in fase di compressione.
COM Delimita, se presenti, la stringa per i commenti (es. copyright).
DHT (Define Huffman Table) Definisce le tabelle di Huffman utilizzate.
DRI (Define Restart Interval) Identifica il punto da dove riprendere la decodifica nel caso in cui il decodificatore interrompe la scansione.
DQT (Define Quantization Table) Definisce le tabelle di quantizzazione usate nell’immagine EOI (End Of Image) Delimita la fine del file JPEG.
RST
nVengono utilizzati per delimitare blocchi di dati indipendenti dalla codifca di compressione.
SOF
n: (Start Of Frame) Stabilisce l’inizio di un frame.
SOS: (Start of Scan) Delimita l’inizio dei dati compressi.
Tabella 1- Marker presenti in un file JPEG
Start of Image
JFIF APP0 marker: version 1.01, density 1x1 0 Miscellaneous marker 0xed, length 130 Define Quantization Table 0 precision 0
11 8 7 11 17 28 36 43 8 8 10 13 18 41 42 39 10 9 11 17 28 40 48 39 10 12 15 20 36 61 56 43 13 15 26 39 48 76 72 54 17 25 39 45 57 73 79 64 34 45 55 61 72 85 84 71 50 64 67 69 78 70 72 69 Define Quantization Table 1 precision 0
12 13 17 33 69 69 69 69 13 15 18 46 69 69 69 69 17 18 39 69 69 69 69 69 33 46 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69
Start Of Frame 0xc2: width=540, height=720, components=3 Component 1: 2hx2v q=0
Component 2: 1hx1v q=1 Component 3: 1hx1v q=1 Define Huffman Table 0x00
0 2 3 1 1 1 1 0 0 0 0 0 0 0 0 0 Define Huffman Table 0x01
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 Start Of Scan: 3 components
Component 1: dc=0 ac=0
Component 2: dc=1 ac=0
Component 3: dc=1 ac=0
Ss=0, Se=0, Ah=0, Al=0 Define Huffman Table 0x10
0 2 2 2 1 2 3 6 5 4 2 2 3 1 1 0 Start Of Scan: 1 components
Component 1: dc=0 ac=0 Ss=1, Se=7, Ah=0, Al=1 Define Huffman Table 0x11
0 2 1 3 4 2 3 0 3 1 0 0 0 0 0 0 Start Of Scan: 1 components
Component 2: dc=0 ac=1 Ss=1, Se=63, Ah=0, Al=0 Define Huffman Table 0x11
0 2 2 1 2 7 0 2 2 2 3 0 0 0 0 0 Start Of Scan: 1 components
Component 3: dc=0 ac=1 Ss=1, Se=63, Ah=0, Al=0
End Of Image
Tabella 2- Esempio struttura di un file JPEG
2.3 I metadati di un file JPEG
La stragrande maggioranza delle macchine fotografiche moderne, incapsula dei meta-dati nel file JPEG, composto da un’intestazione (header) ed un corpo principale contenente l’immagine.
(inserire fig2)
Figura 2 – Suddivisione dei dati all’interno di un file JPEG
L’intestazione di un file immagine contiene numerosi dati sull’immagine stessa (meta-dati) in un formato chiamato formato EXIF [14].
Le specifiche EXIF definiscono sia dei campi comuni alla maggior parte dei produttori, che campi personalizzati e difficilmente decodificabili. Un dispositivo moderno può salvare all’interno dei metadati diverse informazioni [1], quali ad esempio: dati contenenti informazioni dettagliate associate alle foto digitali, produttore e modello di fotocamera, informazioni legate alla data e all'ora di generazione e di salvataggio del file, informazioni sulle caratteristiche dell'immagine (risoluzione in pixel, dpi, profondità del colore, ecc.), impostazioni di scatto (tempo di scatto, apertura, flash, focale, ecc.), Coordinate GPS, seriale del dispositivo ed altre ancora.
Le analisi sugli EXIF consentono di stabilire se un’immagine è stata generata o meno da un particolare modello di fotocamera che si tratti di una reflex, di una compatta, di un telefono cellulare o di un tablet.
L’Image Ballistics basato sugli EXIF risulta però essere un approccio fragile che non garantisce l'autenticità
di un'immagine in quanto tali meta-dati appaiono in chiaro, in forma testuale risultando facilmente alterabili.
A tal proposito esistono diversi applicativi, anche open source, in grado di estrapolare tali informazioni, a titolo esemplificativo citiamo in questa sede i seguenti: Jpegsnoop
2, Authenticate
3, Exif dataViewer
4, ExifToolGUI
5.
2
http://www.impulseadventure.com/
3
http://www.impulseadventure.com/
4
http://www.exifdataviewer.com/
5
http://exiftoolgui.software.informer.com/
3. UN DATASET DI IMMAGINI DA SOCIAL NETWORK
Le procedure di condivisione di dati ed in particolare di immagini digitali sulle piattaforme Social, introducono vari e diversi processi di editing già durante il processo di upload. Queste vere e proprie alterazioni sono principalmente attuate al fine di ridurre lo spazio fisico di archiviazione o ancora lo spreco di banda necessario per il trasferimento o per la fruizione da parte degli utenti finali. Tutto ciò fa decadere del tutto la cosiddetta integrità del file e rende ancora più complessa la fase di ricostruzione della storia dell’immagine, fino a distruggere del tutto ogni informazione sull’acquisizione originaria.
Risulta altresì chiaro come tali alterazioni dipendano da una molteplicità di fattori legati sia alla specifica piattaforma Social, su cui si realizza il caricamento dell’immagine, che alle caratteristiche delle immagini in termini di contenuto e di risoluzione; si è quindi deciso di comprendere meglio il fenomeno, collezionando un dataset di immagini aventi particolari caratteristiche come di seguito specificato.
In prima istanza sono stati utilizzati i seguenti dispositivi: Canon Eos 650D, Qumox SJ4000, Sony Powershot A2300, Samsung Note 3 Neo, HTC Desire 526g, Huawei G Play mini, iPhone 5 and iPad mini 2 e sono state acquisite 2720 immagini rappresentanti scenari diversi, avendo cura di gestire sia la massima (High Quality) che la minima (Low Quality) risoluzione consentita da ogni dispositivo.
In Tabella 3 vengono descritti in dettaglio i dispositivi utilizzati e le rispettive risoluzioni utilizzate durante l’acquisizione.
Model Low Quality High Quality
(“inserire qui fig3”) Canon Eos 650D
720x480 5184x3456
(inserire qui fig4) Qumox SJ4000
640x480 4032x3024
(inserire qui fig5) Sony Powershot A2300
640x480 4608x3456
(inserire qui fig6) Samsung Note 3 Neo
640x480 3264x2448
(inserire qui fig7) HTC Desire 526g
640x480 3264x2448
(inserire qui fig8) Huawei G Play mini
640x480 4208x3120
(inserire qui fig9) iPhone 5
640x480 2448x3254
(inserire qui fig10) iPad mini 2
640x480 800x600
Tabella 3- Dispositivi utilizzati
Una volta creato il dataset, sono state identificate 5 categorie di piattaforme Social su cui è possibile
condividere immagini e per ognuna sono stati scelti i 2 Social Network più popolari. In Tabella 4 vengono
riportati i Social Network presi in considerazione in questo lavoro.
Categoria Social
Social Network Classici (inserire qui fig11) (inserire qui fig12) Piattaforme di Micro-Blogging (inserire qui fig13) (inserire qui fig14) Piattaforme di condivisione di foto artistiche (inserire qui fig15) (inserire qui fig16) Piattaforme di condivisione immagini generiche (inserire qui fig17) (inserire qui fig18) Piattaforme di messaggistica mobile (inserire qui fig19) (inserire qui fig20)
Tabella 4- Categorie di piattaforme Social e rispettivi Social Network utilizzati
Definite le piattaforme Social, oggetto di studio, sono state caricate su di esse le immagini collezionate precedentemente. Per l’operazione di upload si è creato un apposito account di test su ognuna delle piattaforme e si è utilizzata la modalità di default di upload fornita dai Social selezionati. La conseguente operazione di download, è stata realizzata attraverso la ricerca dell’URL dell’immagine all’interno del sorgente HTML.
Il processo di upload e successivo download è stato eseguito attraverso 4 differenti browser web (Safari, Google Chrome, Mozilla Firefox and Opera).
4. ANALISI DELLE TRACCE LASCIATE DAI SOCIAL NETWORK
Le immagini ottenute dalle operazioni descritte nel paragrafo precedente, sono state collezionate allo scopo di analizzare le differenze tra il dato originale e quello ottenuto dopo il processo di upload e download da uno dei Social Network considerati.
L’analisi ha individuato delle tipiche tracce riguardanti ogni Social Network. Tali tracce sono state principalmente evidenziate nelle alterazioni del formato JPEG di un’immagine quali:
-nome file,
-dimensione immagine, -EXIF,
-struttura file,
-informazioni relative alla compressione.
Le alterazioni che le immagini subiscono non sono dipendenti dal browser ma solo dalla piattaforma Social.
Pertanto, non è stata fatta alcuna distinzione sul browser utilizzato. I dettagli delle alterazioni osservate per
ogni piattaforma verranno riportati nei prossimi paragrafi.
4.1 Alterazione del nome del file
La valutazione effettuata, si è basata sulle alterazioni che ogni piattaforma effettua sul nome del file.
Tutte le piattaforme Social rinominano il file di input ad eccezione di Google+, che mantiene il nome del file immagine originale.
Nella tabella 5 vengono riportati i nuovi nomi dei file generati da ogni piattaforma per la corrispondente immagine avente come nome originale “IMG_2641.jpg”.
Il nuovo nome, contiene al suo interno alcune informazioni utili tra cui l’ID dell’immagine ovvero un identificativo univoco che consente di costruire un URL che punta a “dove” l’immagine è memorizzata sulla piattaforma stessa (Image Lookup).
In particolare, per Facebook, Flickr, Tumblr e Instagram è possibile usare tale ID insieme alle API pubbliche (ad esempio Graph
6per Facebook) per costruire il corrispondente URL [15] e risalire cosi all’immagine e all’account corrispondente.
Per quanto riguarda Imgur, è possibile risalire all’immagine avente nome “01- 8dmatWj.jpg” semplicemente navigando all’indirizzo http://imgur.com/8dmatWj , mentre Twitter consente di risalire all’immagine avente nome “Cdp0a0qWoAAtKfd.jpg” navigando all’indirizzo https://pbs.twimg.com/media/Cdp0a0qWoAAtKfd.jpg . Le restanti piattaforme non codificano l’ID immagine all’interno dei nomi che vengono assegnati.
Altre informazioni utili presenti nel nome del file sono: la data di ricezione (WhatsApp) e la risoluzione dell’immagine (Facebook, Flickr, Tumblr e Instagram). A queste ultime informazioni si può risalire attraverso la presenza di particolari suffissi presenti all’interno del nome file (es. _n per Facebok).
Social Image Lookup Esempio
Facebook Si 11008414_746657488782610_8508378989307666639_n.jpg
Google+ no IMG_2641.jpg
Flickr Si 26742193671_8a63f10c85_h.jpg
Tumblr Si tumblr_o3q9ghRCRh1vnf44lo9_1280.jpg
Imgur Si 04 - Dw0KXG2.jpg
Twitter Si CdqCPQ-WAAAzrHI.jpg
whatsApp No IMG-20160314-WA0038.jpg
Tinypic No 1zqdirm.jpg
Instagram Si 1689555_169215806798447_744040439_n.jpg Telegram no 422114602_5593965449613038107.jpg
Tabella 5- tabella riepilogativa dell’alterazione dei nomi
Il nome file può da solo risolvere il problema di identificare la piattaforma da cui proviene un’immagine ma tale evidenza risulta essere molto debole; il nome di un file infatti, può essere facilmente modificato da un utente anche nel preciso istante in cui decide di scaricare un’immagine da un Social Network.
6