Cos’è la Steganografia?

31/08/2020

definizioni steganografia

La Steganografia è una tecnica che permette di nascondere un’informazione all’interno di un’altra considerata come principale e che funga da veicolo. Quest’ultima, che si può presentare sotto forma di un’immagine, un file audio, un testo, un eseguibile o altro viene leggermente modificata in modo tale che la modifica stessa sia praticamente invisibile per un utente umano e contenga l’informazione da nascondere.

Facciamo qualche esempio

Vediamo, ad esempio, come questo sia possibile utilizzando un’immagine come informazione primaria. Nel formato bitmap l’immagine è composta da punti colorati o pixel. Il colore è codificato nel formato RGB (Red Green Blue) come composizione dei tre colori primari. La tonalità di ogni colore è specificata con 8 bit (da 0 a 255 in decimale), per un totale di 24 bit. Il trucco consiste nello sfruttare la limitata capacità dell’occhio umano di distinguere colori simili e sostituire un colore con uno che differisce di pochissimo. Questa operazione viene fatta programmaticamente alterando i bit meno significativi sostituendoli con i bit dell’informazione da nascondere.

Un esempio pratico

Supponiamo di voler nascondere la frase “ci sono sei rose”. In totale sono 16 caratteri, spazi inclusi. In binario, sfruttando il codice ASCII, diventerà:

01100011 01101001 00100000 01110011 01101111 01101110 
01101111 00100000 01110011 01100101 01101001 00100000 
01110010 01101111 01110011 01100101 00001101 00001010

Per un totale di 16×8 cioè 128 bit. In questo caso, l’immagine veicolo dovrà avere almeno 43 pixel se la nostra intenzione è quella di utilizzare 1 solo bit per ogni colore di base.

Ad esempio, se il primo pixel ha colore rgb(189, 144, 156) cioè rgb(10111101, 10010000, 10011100), basterà sostituirlo con uno di colore rgb(10111100, 10010001, 10011101), cioè rgb(188, 145, 157) e avremo inserito i primi 3 bit 011 del testo da nascondere. Come si potrà facilmente verificare attraverso i link ai siti che abbiamo segnalato, il colore a occhio nudo non subisce praticamente variazioni.

Fogli sovrapposti

Un altro modo di vedere la cosa è quella di pensare un’immagine come composta da 8 fogli di acetato sovrapposti, uno per ciascun bit di colore. L’immagine completa è data dalla sovrapposizione di tutti e 8 i fogli. D’altro canto, se andiamo a vedere com’è fatto ogni foglio, vedremo che il primo, che corrisponde al bit più significativo è quello che più assomiglia all’immagine completa. Via via che si procede, passando dal primo all’ottavo foglio, il dettaglio si perde fino ad arrivare all’ultimo foglio su cui vedremo qualcosa di molto simile a rumore bianco. Per questo, aggiungere informazione a questo livello, cioè di fatto modificando i vari punti costituenti il rumore, non dà cambiamenti apprezzabili.

Immagine di Alessio Damato / CC BY-SA (http://creativecommons.org/licenses/by-sa/3.0/)

Quali strumenti?

Ci sono vari strumenti che permettono di fare automaticamente queste operazioni, utilizzando vari tipi di formato veicolo e anche criptando l’informazione da nascondere. Ad esempio lo strumento online “Image Steganography” permette di sperimentare subito nascondendo un’immagine dentro un’altra immagine.

Malware e steganografia

Con il termine di Stegomalware (o Stegware) si indicano quei malware che fanno uso della steganografia per nascondersi. In particolare, il codice binario di un eseguibile utilizza come veicolo un altro formato di file come, ad esempio, un’immagine. Il codice così nascosto deve essere successivamente ricostruito ed eseguito da un payload aggiuntivo. Una tecnica simile è stata osservata analizzando il malware Ursnif nel 2018.