Steganalisi, ossia trovare messaggi nascosti con la Steganografia

Tempo di lettura: 6 minuti
Data pubblicazione: September 21, 2016
stego
stego

La Steganalisi è il processo inverso della Steganografia. L’obiettivo della steganalisi è determinare se un mezzo o file contiene un messaggio e nel caso l’esito sia positivo, trovare quali sono le informazioni nascoste. Prendendo spunto dalla lezione del prof. Battiato, si hanno diversi tipi di attacchi:

  • stego only: l’attaccante riesce ad intercettare il frammento stego e lo analizza;
  • stego attack: il file originale viene comparato con il file steganografato e vengono rilevate le differenze;
  • cover stego attack: l’attaccante riesce ad intercettare il frammento stego e sa quale cover è stato usato per crearlo;
  • chosen stego attack: il software e l’oggetto stenografato sono conosciuti e viene quindi trovato il messaggio nascosto;
  • manipulating the stego/cover data: l’attaccante può manipolare i frammenti stego/il cover.

Il cover è quindi il mezzo con cui viene nascosto il messaggio segreto; i più utilizzati e interessanti da analizzare sono le immagini, i file audio e video.

Le tecniche più comuni per nascondere i messaggi sono:

  • aggiungere il messaggio alla fine di quel file;
  • nascondere il messaggio nella porzione dell’header non utilizzata (solitamente all’inizio);
  • usufruire di un algoritmo che disperde il messaggio all’interno del file. Il più famoso è la Modifica del LSB (Least Significant Bit).

I metodi principali per trovare un file steganografato sono quindi:

  1. Rilevazione visuale consiste nell’osservare i file immagine come Jpeg, Bmp, Gif e trovare le differenze;
  2. Rilevazione sonora nei file audio come Wav, Mpeg, etc;
  3. Rilevazione statistica (analizzando LSB) o analisi dell’istogramma;
  4. Rilevazione strutturale osservando le proprietà come il peso del file e il checksum.

Esempio di rilevazione strutturale base

La rilevazione strutturale cerca quindi di scoprire se in un file immagine sono presenti informazioni nascoste e prova ad estrarle. In rete ci sono molto software per verificarlo e anche distribuzioni linux specifiche per l’analisi forense (come Deft Linux, Cyborg o Caine).

Steganografia: Con StegoSuite inserisco il messaggio nascosto in un immagine Jpeg. Per farlo basta cliccare su File->Open, inserire il messaggio che si vuole, proteggerlo opzionalmente con password e cliccare su Embed

screenshot-from-2016-09-21-17-51-12
screenshot-from-2016-09-21-17-51-12

Steganalisi: Ovviamente per estrarre il messaggio si può utilizzare lo stesso software, ma questo è possibile solo se l’attaccante sa quale è. Nel caso non si sapesse, è molto più difficile trovare l’informazione nascosta.

Per prima cosa, confronto le due immagini per vedere le differenze

screenshot-from-2016-09-21-18-05-02
screenshot-from-2016-09-21-18-05-02
I comandi che ho eseguito sono:

  • file: determina il tipodi file e le caratteristiche;
  • identify: descrive le forme e le caratteristiche di un file immagine;
  • exiv2: è un software di manipolazione dei metadati, il quale permette anche la stampa degli stessi.

Come si può ovviamente notare le due immagini sono cambiate, soprattutto nel peso: mentre la prima pesa 80Kb, quella steganografata pesa circa la metà.

Un software che può venirci incontro per verificare se un immagine è steganografata è stegdetected (nel link trovate le informazioni su come installarlo su kali linux). Funziona solo con Jpeg, quindi nel nostro caso va benissimo:

root@kali:~/Desktop# stegdetect steganografata.jpg 
steganografata.jpg : f5(***)

E come si può vedere è riuscito a capire con che tecnica steganografica il file è stato creato. “Rompere” questo algoritmo non penso sia nelle mie capacità, ma vi lascio un paper nel quale viene spiegato come farlo teoricamente.

Conclusioni

Per trovare le informazioni nascoste bisogna riuscire a trovare il software con cui è stata steganografato il file, in modo da riuscire poi ad utilizzarlo per effettuare l’operazione inversa. Con molti file si potrebbe trovare un pattern simile o una firma del programma ed utilizzarlo in modo inverso.  Ammetto di non aver mai approfondito l’argomento, ma dopo questo articolo penso che cercherò di compiere analisi complete con immagini e file audio e pubblicarle. Per chi volesse già approfondire ho trovato questo sito contenente alcune importati pubblicazioni in merito, mentre una lista dei principali software steganografici si può trovare qui.