Fu il ricercatore Paul Kocher a parlare per la prima volta di attacco su canale laterale negli anni ’90 in occasione dell’RSA Data Security and crypto conferences, dove mostrò che era possibile ottenere informazioni (propedeutiche per un attacco informatico) sull’implementazione di un sistema di sicurezza senza sfruttare una particolare vulnerabilità del crittosistema dal punto di vista matematico quanto piuttosto un aspetto secondario che nessuno, fino ad allora, aveva considerato: il tempo di esecuzione delle operazioni algoritmiche.
Da allora, con il termine SCA (Side Channel Attack) viene indicato un qualsiasi exploit di sicurezza che implica una raccolta indiretta di informazioni sull’attività di un dispositivo, utilizzata successivamente per violare il dispositivo stesso.
Attacco side channel, come funziona
A differenza di molti altri tipi di exploit di sicurezza, gli attacchi side channel non sfruttano vulnerabilità hardware o software, ma osservano piuttosto il modo in cui il software di base del dispositivo accede all’hardware, alla ricerca di un canale secondario che possa dare preziose indicazioni per la ricostruzione dei dati di elaborazione.
Gli attacchi side channel possono dunque colpire qualsiasi sistema operativo Windows, Linux e Mac.
Le famose vulnerabilità riscontrate, negli ultimi anni, nei processori moderni denominate Meltdown, Spectre e Fallout ne sono un esempio lampante.
Ma ancora prima che il termine entrasse in uso negli anni ‘90 già si parlava di intercettazioni phreaking di Van Eck e tecniche simili ovvero di particolari forme di attacchi che oggi avremmo considerato come declinazioni SCA.
Le tipologie degli SCA
Tutti gli attacchi side channel sfruttano i cambiamenti subiti, durante l’attività operativa del dispositivo target, da una serie di proprietà del canale secondario prescelto, come ad esempio il calore generato, il consumo di energia o il tempo di esecuzione.
Diversi possono essere, infatti, i parametri di misura analizzati sui canali laterali da utilizzare per sferrare attacchi SCA:
- L’analisi dei tempi di risposta dei processori (timing attack) o degli accessi alla cache (cache attack) per tracciare il movimento dei dati tra CPU e la memoria di un sistema. L’affidabilità di questi attacchi punta sul fatto che l’esecuzione degli algoritmi spesso dipendono dai dati di input immessi e pertanto in base alle statistiche ottenute è possibile estrapolare delle fughe di informazioni;
- l’analisi di risposta del processore ad una serie di errori di calcolo studiati ad hoc (differential fault attack);
- l’analisi dei suoni prodotti dalla CPU per decodificare l’attività operativa dell’unità di elaborazione centrale (acoustic cryptanalysis attack);
- l’analisi termica della superficie del processore (energia dissipata) per risalire al tipo di codice in esecuzione (thermal imaging attack/power attack);
- l’analisi dei fotoni emessi dal led di stato di un hard disk per ricostruire i dati in lettura e scrittura (optical side channel attack);
- l’analisi delle emissioni elettromagnetiche prodotte da dispositivi elettronici al fine di riscostruire, da queste, segnali e dati nascosti (le intercettazioni di tipo phreaking di Van Eck consentono di ricostruire le immagini sullo schermo di un computer tramite il rilevamento a distanza delle radiazioni emesse dai monitor).
Alla luce di quanto sopra esposto, se un utente malintenzionato riuscisse ad eseguire il proprio codice sul sistema, potrebbe per esempio sfruttare un timing attack attraverso il runtime di un’applicazione target osservando, a basso livello, i tempi di accesso alla memoria e di esecuzione, influenzandoli indirettamente forzando, ad esempio, lo stato cache ad un determinato valore e osservando la conseguente risposta dell’applicazione monitorata.
Possibili contromisure
È possibile utilizzare una serie di contromisure per prevenire potenziali tentativi di analisi di un canale laterale, basandosi essenzialmente su strategie che ostacolino le tecniche di correlazione (il rilascio di informazioni elettromagnetiche potrebbe, ad esempio, consentire di correlare uno specifico calcolo operazionale ad una determinata attività della CPU) attraverso una riduzione del rapporto segnale-rumore del canale secondario e/o una randomizzazione delle sequenze operazionali.
Anche se queste tipologie di attacchi, ormai note da tempo, non sembra abbiano avuto particolare risonanza rispetto ad altre forme di attacchi informatici a causa della loro difficile applicazione (che richiede una presenza fisica in prossimità del target ed un certo monitoraggio), la facile reperibilità e disponibilità, oggigiorno, di dispositivi smart per la registrazione audio/video (IoT, smartphone, smartwatch ecc.) e l’infinita varietà di canali secondari potenzialmente sfruttabili,per compromettere un sistema attraverso fughe non intenzionali di dati, non rendono certamente trascurabile l’effettiva fattibilità.