La steganografia è un meccanismo segreto di codifica delle
informazioni attraverso un qualsiasi mezzo di trasmissione. Il suo
utilizzo è noto sin dall’antica Grecia anche se è entrata
ufficialmente nei glossari sul finire del XV secolo. Sia la codifica
che il mezzo di trasmissione sono segreti, ovvero noti solo
alle parti che intendono comunicare in maniera occulta. La
steganografia si presenta dunque come strumento ideale per la
realizzazione di canali di comunicazione segreti che possono essere
utilizzati in scenari sofisticati di spionaggio, crimine informatico
e violazioni della privacy di soggetti pubblici e privati.
La
steganografia si differenzia dalla crittografia, in cui la
codifica delle informazioni e il mezzo di trasmissione sono in genere
noti (si pensi ad esempio al protocollo HTTPS usato dal sito
che ospita questo articolo). In questo caso la privatezza
dell’informazione è garantita dal meccanismo di codifica che rende
(estremamente) difficile1
l’invio/estrazione dell’informazione senza la conoscenza di
informazioni aggiuntive, note come chiavi di
cifratura/decifratura. Tali chiavi sono note solo alle parti
autorizzate alla comunicazione (ad esempio, il vostro browser e il
nostro server web).
Il
processo di analisi della steganografia è anche noto come
steganalisi. In prima istanza questo processo si
prefigge di rilevare la presenza di steganografia in uno o più
mezzi di trasmissione, e solo in seconda istanza può procedere
all’estrazione del messaggio nascosto.
L’efficacia
delle tecniche di steganalisi è strettamente dipendente dal grado di
sofisticazione e “personalizzazione’’ delle tecniche
steganografiche utilizzate da un malintenzionato avversario.
Il
caso più semplice da affrontare è quello in cui la steganografia
viene effettuata tramite strumenti “a scaffale”. Questo
caso riflette un avversario con basso (o nullo) livello di conoscenza
della steganografia, e che semplicemente utilizza strumenti
implementati e resi disponibili da altri: in sicurezza informatica un
tale avversario viene spesso denominato script kiddie.
In
ambito digitale esistono molti software che implementano
steganografia e la maggior parte di questi combina tecniche
crittografiche. In Tabella 1 vengono mostrati esempi di software
open-source che impiegano entrambe le tecniche.
Naturalmente,
gli strumenti “a scaffale” sono in genere disponibili anche a chi
intende effettuare steganalisi. Nell’implementare la steganografia,
ciascun software lascia in genere (più o meno implicitamente) degli
artefatti caratteristici nei file manipolati, che possono essere
studiati per costruire delle firme (fingerprinting).
Queste firme possono essere usate in fase di steganalisi per
identificare non solo la presenza di steganografia, ma lo specifico
strumento utilizzato, nonché l’estrazione dei contenuti nascosti
[7,8]. La maggior parte dei sistemi di steganalisi utilizza questo
meccanismo [9].
È
facile osservare che ci si trova in un circolo vizioso (“arms-race”)
che prevede un incremento della sofisticazione delle tecniche e degli
strumenti usati sia da chi intende usare steganografia, sia da chi
invece intende smascherarla e rilevarne i contenuti nascosti. Fra i
due profili, in genere la prima figura è avvantaggiata, poiché
potrà in ogni momento cambiare mezzo di trasmissione e/o codifica
delle informazioni per sfuggire alla rilevazione.
Ad
esempio, un avversario potrebbe modificare l’implementazione del
software di steganografia per sfuggire al fingerprinting, o
addirittura implementare tecniche steganografiche totalmente nuove.
Ciò naturalmente ha un costo –non siamo più in presenza di script
kiddie– ma tale costo può essere ben bilanciato dalle motivazioni
(es. vantaggi strategici/economici da parte di un’organizzazione di
cyber-spionaggio).
Questa
situazione è ben nota nel campo della sicurezza informatica: in
genere è molto più semplice attaccare i sistemi informatici che
difenderli. Le istanze di malware si manifestano in
continue varianti “polimorfiche” proprio per evadere i meccanismi
di rilevazione in essere per la protezione dei sistemi (es. firme
degli antimalware).
In
questo scenario, il machine learning (apprendimento
automatico da esempi) può rappresentare una sofisticata arma al
servizio di chi intende smascherare la steganografia. Tramite
tecniche di machine learning è infatti possibile mettere a punto
automaticamente un modello di steganalisi a partire da un insieme di
campioni di file con e/o senza steganografia.
La
maggior parte degli approcci proposti utilizza il cosiddetto
apprendimento supervisionato a due classi
(steganografia presente/assente), che prevede l’utilizzo di
campioni sia con che senza steganografia, per
determinare automaticamente differenze di rilevanza statistica.
Questo metodo è particolarmente utile per rilevare la presenza di
varianti di tecniche steganografiche note (es. implementate in nuovi
software) per cui non esistono firme.
Esempi
di vari algoritmi basati su apprendimento supervisionato per la
rilevazione di steganografia in immagini sono stati implementati in
una libreria open-source chiamata Aletheia [10].
Firme
e apprendimento supervisionato possono fornire buona accuratezza
quando si tratta di rilevare tecniche di steganografia nota e sue
varianti, ma sono soggetti ad evasione in presenza di tecniche
totalmente nuove, ad esempio, dal profilo statistico
significativamente diverso da quello osservato sui campioni usati per
l’addestramento.
Per
questo, altri studi [11,12] hanno invece proposto l’uso di tecniche
di apprendimento non supervisionato –
anomaly-based. Questo approccio prevede il solo utilizzo di
campioni in cui la steganografia è assente, per la
costruzione automatica di un profilo normale. La presenza di
anomalie (“outlier”), ovvero deviazioni da questo profilo, può
essere dunque utilizzata per rilevare tecniche steganografiche
totalmente sconosciute. Questo approccio, tuttavia, deve focalizzarsi
su aspetti (feature) la cui deviazione dalla norma sono alto indice
di manipolazione per offrire buona accuratezza. Si pensi, ad esempio,
al confronto tra dimensione specificata nell’intestazione di un
file, rispetto alla dimensione effettiva.
Poiché
ciascuna tecnica di steganalisi ha i suoi pregi, spesso è utile una
combinazione di esse: firme, apprendimento supervisionato e non [12].
Lo sa bene la Commissione Europea che ha finanziato a questo scopo un
progetto strategico, denominato SIMARGL - Secure intelligent
methods for advanced recognition of malware, stegomalware &
information hiding methods (Grant Agreement n° 833042 –
www.simargl.eu).
Il
progetto, con un budget totale di 6 milioni di euro, mira alla
creazione di sistemi avanzati di steganalisi applicata alla
rilevazione di (stego)malware, software malevolo sempre più
utilizzato dal crimine informatico e stati nazionali in azioni di
spionaggio. In questo progetto, attori internazionali del calibro di
Airbus, Siveco, Thales, Orange Cert,
FernUniversität (coordinatore del progetto), si affiancano a
tre “italiane” nel contrasto allo stegomalware: Pluribus One,
spin-off dell'Università di Cagliari, partecipa come software
provider e developer; CNR, Unità di Genova, mette in campo
gli algoritmi di rilevamento Energy-Aware basati sull'intelligenza
artificiale; Numera, società operante nell’ambito dell’ICT
con sede a Sassari, sottoporrà al “vaglio” di SIMARGL alcuni dei
propri sistemi rivolti al mercato del credito.
In
totale, sono 14 i partner internazionali (partecipano al consorzio
anche Netzfactor, ITTI, Warsaw University, IIR,
RoEduNet, Stichting CUIng Foundation) provenienti da 7
paesi che metteranno in campo intelligenza artificiale, sofisticati
prodotti già disponibili e algoritmi di machine learning in via di
perfezionamento, al fine di proporre una soluzione integrata in grado
di affrontare diversi scenari e di agire a diversi livelli: dal
monitoraggio del traffico di rete al rilevamento di bit offuscati
all’interno di immagini.
La
sfida del progetto SIMARGL è appena iniziata e fornirà concrete
risposte al problema dello stegomalware nei prossimi due anni: il
progetto si concluderà infatti nell’aprile del 2022.
È
importante sottolineare che il machine learning (e più in generale
l’intelligenza artificiale) è una tecnologia neutra (come
tantissime altre tecnologie). Nello specifico è di uso duale
[13] e non appartiene al dominio dei buoni. In principio, il machine
learning può anche essere usato per sviluppare tecniche
steganografiche più sofisticate, polimorfiche, basate sui dati.
Prepariamoci, perché questo scenario potrebbe rappresentare il
futuro delle minacce informatiche (e forse un pezzo di futuro è già
presente).
Igino
Corona e Matteo Mauri
Note:
Riferimenti:
Note:
1. Il grado di difficoltà identifica in genere la robustezza
della codifica.
Riferimenti:
[7]
Pengjie Cao, Xiaolei He, Xianfeng Zhao, Jimin Zhang, Approaches to
obtaining fingerprints of steganography tools which embed message in
fixed positions, Forensic Science International: Reports, Volume 1,
2019, 100019, ISSN 2665-9107,
https://doi.org/10.1016/j.fsir.2019.100019.
[8]
Chen Gong, Jinghong Zhang, Yunzhao Yang, Xiaowei Yi, Xianfeng Zhao,
Yi Ma, Detecting fingerprints of audio steganography software,
Forensic Science International: Reports, Volume 2, 2020, 100075,ISSN
2665-9107, https://doi.org/10.1016/j.fsir.2020.100075
[11]
Jacob
T. Jackson, Gregg H. Gunsch, Roger L. Claypoole, Jr., Gary B. Lamont.
Blind Steganography Detection Using a Computational Immune System: A
Work in Progress. International Journal of Digital Evidence, Winter
2003, Issue 1, Volume 4
[12]
Brent T. McBride, Gilbert L. Peterson, Steven C. Gustafson. A new
blind method for detecting novel steganography, Digital
Investigation, Volume 2, Issue 1, 2005, Pages 50-70, ISSN 1742-2876,