Cyber Security Academy · Lezione

Steganografia in immagini e audio

Incorporare dati nei file multimediali.

Lezione 2 di 413 passaggi

Steganografia in immagini e audio è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 2 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.

Come le immagini memorizzano i pixel

Per nascondere dati in un'immagine, deve prima sapere come le immagini memorizzano i colori. Un pixel in un'immagine RGB ha tre canali: rosso, verde e blu; ciascuno è in genere un numero di 8 bit compreso tra 0 e 255.

Un pixel occupa quindi tre byte. Una piccola immagine da 800x600 ha 480.000 pixel e 1,44 milioni di byte di colore. È proprio questa ridondanza che la steganografia sfrutta: ci sono molti più byte di quanti l'occhio possa esaminare attentamente.

Il punto chiave è che il sistema visivo umano non riesce a distinguere un valore di colore pari a 200 da uno pari a 201. È in questo margine impercettibile che risiedono i dati nascosti.

Inserimento LSB

L'inserimento LSB sostituisce il bit meno significativo di ogni byte di colore con un bit del contenuto segreto. Poiché il bit meno significativo modifica il valore di una sola unità, il cambiamento visivo è impercettibile.

Consideri il caso in cui si nasconda il bit 1 in un valore del canale rosso pari a 200 (binario 11001000). Sostituendo l'ultimo bit con 1 si ottiene 11001001 = 201, una variazione che nessun essere umano può vedere.

Su migliaia di pixel, il payload viene ricostruito leggendo quegli LSB in ordine.

# Embed: keep top 7 bits, set LSB to the secret bit
# value 200 = 1100100 0  -> hide 1 -> 1100100 1 = 201
#
# In Python terms (read-only illustration):
# new_byte = (color_byte & 0xFE) | secret_bit   # 0xFE clears the LSB

Codifica di un messaggio completo

Un messaggio è una sequenza di byte, ciascuno di 8 bit. Per nascondere la parola con un'intestazione che ne indichi la lunghezza, si appiattisce il payload in un flusso di bit e si scrive un bit per ogni canale di colore.

Un sistema di inserimento pratico memorizza anche un prefisso di lunghezza o una sequenza terminatrice univoca, così l'estrattore sa quando smettere di leggere; altrimenti non può distinguere il payload dal rumore del cover.

È esattamente ciò che automatizzano strumenti come steghide, zsteg e stegano, spesso aggiungendo una password e un livello di crittografia.

# Embed a secret into a PNG with the open-source 'stegano' tool
stegano-lsb hide -i cover.png -m 'meet at noon' -o stego.png

# steghide with a passphrase (encrypts then embeds)
steghide embed -cf cover.jpg -ef secret.txt -p 'p@ss'

Scelta del formato d'immagine appropriato

Il formato è fondamentale a causa della compressione:

  • Formati senza perdita (PNG, BMP): preservano ogni pixel esattamente. I dati LSB sopravvivono perfettamente: sono contenitori ideali.
  • Formati con perdita (JPEG): durante la compressione eliminano i dettagli più fini, distruggendo i dati LSB ingenui.

Con JPEG, l'inserimento deve avvenire nei coefficienti DCT, i valori nel dominio della frequenza usati durante la compressione, non nei pixel grezzi. Strumenti come steghide e i classici JSteg/OutGuess operano in quel dominio, così il payload sopravvive alla fase di compressione.

La fragilità del semplice inserimento LSB

Il semplice inserimento LSB nei pixel è fragile. Qualsiasi operazione che modifichi i valori dei pixel distrugge i bit nascosti:

  • Salvataggio nuovamente in formato JPEG: la compressione con perdita riscrive i byte.
  • Ridimensionamento o ritaglio: il ricampionamento modifica ogni valore.
  • Regolazioni del colore: variazioni di luminosità e contrasto.
  • Caricamento sui social media: le piattaforme ricodificano automaticamente le immagini.

Questo riguarda il vertice della robustezza del triangolo. Se un payload deve sopravvivere alle modifiche, ad esempio nel caso di una filigrana, lo si inserisce nel dominio della frequenza (DCT/DWT), accettando una capacità inferiore in cambio.

Maggiore furtività: posizionamento intelligente

Il semplice inserimento LSB scrive nei pixel in sequenza, dall'angolo in alto a sinistra, creando una firma statistica rilevabile. Metodi più furtivi distribuiscono il payload per eludere l'analisi:

  • Posizionamento pseudo-casuale: una stego-key inizializza un PRNG che sceglie quali pixel contengono i bit, così il modello appare casuale.
  • Regioni rumorose: inserire i dati in aree dalla trama irregolare, come erba e capelli, dove esiste già variabilità, invece che in cieli uniformi.
  • Inserimento adattivo: gli algoritmi moderni minimizzano una funzione di costo della rilevabilità.

La stego-key funge anche da password: senza di essa, un analista non può ricostruire l'ordine dei bit, anche se sospetta che vi sia un messaggio nascosto.

Fondamenti della steganografia audio

L'audio funziona secondo lo stesso principio delle immagini, ma nel dominio temporale o della frequenza. Un file WAV memorizza campioni, in genere numeri a 16 bit che rappresentano l'ampiezza, migliaia di volte al secondo.

L'inserimento LSB nell'audio sovrascrive il bit meno significativo di ogni campione. Una variazione di un'unità in un'ampiezza a 16 bit è molto al di sotto della soglia uditiva umana, quindi l'audio risulta identico.

Con 44.100 campioni al secondo per canale, l'audio offre una capacità elevata, sebbene i formati con perdita come MP3 distruggano gli LSB dei campioni grezzi proprio come JPEG distrugge gli LSB dei pixel.

# Hide a file in a WAV using the open-source steghide
steghide embed -cf song.wav -ef secret.txt -p 'p@ss'

# WAV is lossless (raw PCM samples) - LSB survives.
# MP3 is lossy - embed in the encoded domain or it is destroyed.

Tecniche audio avanzate

Oltre all'LSB, la steganografia audio usa accorgimenti percettivi basati sul funzionamento dell'udito:

  • Codifica di fase: modifica la fase dei componenti audio; l'orecchio è insensibile alla fase assoluta.
  • Nascondimento tramite eco: introduce echi minimi e impercettibili il cui ritardo codifica i bit.
  • Spettro espanso: distribuisce il payload su un'ampia banda di frequenze sotto forma di rumore di basso livello, robusto alle modifiche.
  • Inserimento di toni: nasconde i dati usando toni mascherati da suoni vicini più intensi (mascheramento psicoacustico).

Queste tecniche sacrificano capacità per ottenere robustezza e furtività, in modo simile ai metodi d'immagine nel dominio della frequenza.

Dominio spaziale e dominio della frequenza

Un'idea unificante tra i diversi tipi di contenuto multimediale è la scelta del dominio:

  • Dominio spaziale/temporale: inserisce direttamente nei pixel o nei campioni. È semplice e offre una capacità elevata, ma è fragile contro la compressione.
  • Dominio della frequenza: trasforma il segnale (DCT per JPEG, DWT per le wavelet, FFT per l'audio), inserisce nei coefficienti e poi ritrasforma il segnale. È più robusto e furtivo, ma offre una capacità inferiore ed è più complesso.

La regola è la seguente: se il cover verrà compresso, ridimensionato o condiviso, inserisca i dati nel dominio della frequenza. Per i cover senza perdita e intatti, l'LSB nel dominio spaziale è sufficiente.

Pianificazione della capacità

Prima dell'inserimento, stimi quanti dati può nascondere in sicurezza. Un'indicazione utile è il tasso di inserimento, cioè i bit nascosti per ogni bit del cover.

  • 1 bit per canale (LSB completo): capacità massima, ma massima rilevabilità.
  • Tassi frazionari: usare solo una frazione dei pixel riduce la capacità, ma migliora notevolmente l'impercettibilità.

Un'immagine RGB da 1920x1080 contiene circa 6,2 milioni di byte di colore, ovvero circa 777 KB con LSB completo. Tuttavia, un inserimento attento alla sicurezza usa solo una frazione di tale capacità, perché riempire ogni LSB produce anomalie statistiche che gli strumenti di steganalisi rilevano facilmente.

# Rough capacity at 1 bit/channel full LSB:
# width x height x channels / 8 bytes
# 1920 x 1080 x 3 / 8  =  ~777,600 bytes (~759 KB)
# In practice use a fraction to stay below detection thresholds.

Indicazioni per la difesa

Dal punto di vista del difensore, capire come avviene l'inserimento indica cosa monitorare:

  • Incoerenze di formato: un PNG/BMP dove ci si aspetterebbe un JPEG può indicare un cover senza perdita scelto per l'LSB.
  • Anomalie nelle dimensioni: un file più grande di quanto giustifichi il contenuto visibile merita attenzione.
  • Ricodifica come difesa: le piattaforme che ricomprimono tutti i caricamenti distruggono i payload LSB ingenui; è una contromisura semplice ed economica.
  • Analisi statistica: l'inserimento LSB completo appiattisce la distribuzione naturale dei valori dei bit, rendendola rilevabile tramite steganalisi.

Queste firme sono il ponte verso la lezione successiva: il rilevamento dei dati nascosti.

Verifica rapida

Verifichi la comprensione della scelta del formato.

Riepilogo: steganografia delle immagini e dell'audio

Ha appreso come i dati vengano effettivamente inseriti nei file multimediali.

  • L'inserimento LSB sovrascrive il bit meno significativo di ogni campione di colore o audio, con una variazione impercettibile di un'unità.
  • Un prefisso di lunghezza o un terminatore indica dove finisce il payload; strumenti come steghide e stegano automatizzano il processo, con crittografia opzionale.
  • I formati senza perdita (PNG, BMP, WAV) preservano i dati LSB; i formati con perdita (JPEG, MP3) richiedono l'inserimento nel dominio della frequenza (DCT/eco/spettro espanso).
  • La furtività migliora grazie al posizionamento pseudo-casuale, all'inserimento nelle regioni rumorose e agli algoritmi adattivi basati su una stego-key.
  • La scelta tra dominio spaziale e dominio della frequenza bilancia capacità e robustezza.
  • I difensori cercano incoerenze di formato, anomalie nelle dimensioni e firme statistiche, e usano la ricodifica per distruggere i payload ingenui.

Nel prossimo capitolo si imparerà a rilevare i dati nascosti tramite la steganalisi.

Gratis per iniziare

Impara Cyber Security Academy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
76
Lezioni
303

Domande Frequenti

La lezione «Steganografia in immagini e audio» è gratuita?

Sì — il testo completo di «Steganografia in immagini e audio» è 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 «Steganografia in immagini e audio»?

Incorporare dati nei file multimediali. 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 2 di 4.

Quanto tempo richiede la lezione «Steganografia in immagini e audio»?

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

  1. Cos'è la steganografia
  2. Steganografia in immagini e audio
  3. Rilevare dati nascosti (steganalysis)
  4. Canali covert ed esfiltrazione
← Torna a Cyber Security Academy