lunedì 27 aprile 2020

Steganalisi e Machine Learning: una risposta europea

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:

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,



Nessun commento:

Posta un commento