Riprendendo il titolo dalla minaccia fantasma di un altro film lodato da pochi e criticato da tanti, oggi ci troviamo in una situazione veramente da film. Dalle fughe di notizie con Snowden sappiamo tutti che siamo spiati quando siamo su Internet oppure quando usiamo il computer. Una frase che gira nella cultura hacker è che l’unico computer sicuro non è quello sconnesso da internet ma quello spento.
Per questo motivo i computer che si occupano di contenere archivi di dati molto sensibili sono scollegati dalla rete ma oggi non basta neanche quello. In poche parole hanno ragione gli hacker e adesso vi spiego perché! In elettronica, anzi in fisica, esistono le onde radio che il nostro connazionale Marconi riuscì ad utilizzare inventando la radio che ha rivoluzionato il mondo. Allo stesso tempo, qualunque segnale ha diverse frequenze: un esempio casalingo sono i vecchi televisori ed i moderni supportano le prese SCART che sono di tipo analogico, mentre HDMI sono quelli digitali.
Ogni pin di questa presa forniva differenti informazioni: ad esempio dal sonoro per un canale o un range di colori, quindi se si rompeva un pin il risultato era pessimo. In poche parole si buttava il cavo e se ne comprava uno nuovo. Quindi ci trovavamo in una situazione in cui si poteva continuare ad utilizzare il cavo anche se il risultato non era soddisfacente. Nel digitale invece o c’è segnale o… niente, altrimenti non si ottiene nulla. Il digitale è un unico flusso, per questo motivo si usano ora i cavi HDMI per avere il miglior segnale come qualità ma che se si rompono sono da buttare.
Per capire la differenza guardate anche le seguenti immagini: le informazioni in digitale sono una serie di 0 o 1 mentre gli analogici sono una serie di numeri (anche frazionali).
Perché questa spiegazione? Per aiutarvi a capire il concetto di frequenze e segnale (anche non radio). Arrivando al dunque anche il segnale elettrico che ci permette di usare la televisione o il microonde ha un range o fascia di frequenze. Alcune sono utilizzate per il segnale elettrico stesso, altre per diversi utilizzi: basti pensare al powerline che tramite le prese elettriche di casa permette di trasmettere il segnale Internet in tutta la casa senza dover cablare tutto con ethernet o usare il wireless.
Quindi allo stesso tempo i componenti elettrici leggono le frequenze del segnale elettrico ma possono anche trasmetterlo (basti pensare ad un antenna): insomma, anche i componenti di un circuito elettrico possono teoricamente trasmettere onde o radiazioni mentre alcuni possono farlo direttamente come i processori.
In passato à stato dimostrato da NSA e dal dipartimento di difesa Americano questa concreta possibilità ma noi siamo hacker e vogliamo verificare questa eventualità. Su github é stato rilasciato system-bus-radio, un programma da compilare per Linux e OS X che dimostra questa possibilità. In poche parole è stato dimostrato che i processori possono trasmettere a frequenze bassissime (sui 100 khz, quindi non udibile dall’uomo) tramite una funzione che è utilizzata per scrivere nella memoria interna. Forzando questa funzione è possibile inviare un segnale radio, in questo caso una canzone generata digitalmente e percepibile tramite la classica radio.
Ovviamente non funziona in tutte le situazioni perché dipende da molti casi: se il computer è schermato, se la radio è vicina ecc.
Questo esperimento contiene anche un elenco di test effettuati su diversi computer (TEST-DATA.tsv) con video dimostrativi. Di seguito il video dell’autore e dal minuto 41 viene dimostrato come funziona.
Naturalmente il risultato è approssimativo e si può notare molto rumore di sottofondo che è dovuto anche dal tipo di segnale e da molti fattori. Però siamo di fronte ad un esperimento che dimostra che è davvero possibile! Quindi con una radio specifica sarebbe possibile estrapolare qualunque tipo di informazione inviata da un programma caricato nel computer.
Il progetto su github contiene tutte le informazioni, oltre alla versione dello stesso codice in JavaScript per NodeJS, e la documentazione. Concludendo non siamo sicuri neanche con i browser! Oggi i browser hanno la WebAudio API che permette loro di generare suoni digitali e quindi è stato possibile realizzare una implementazione per browser. Quiet-js è il progetto con la documentazione ed è verificabile su https://quiet.github.io/quiet-js/.
Come si può notare a seconda del browser ci sono comportamenti differenti perché l’implementazione di questo tipo di onde è diverso, anzi direi non così avanzato. Il tutto è partito da un altro progetto: si tratta della libreria libquiet utilizzata per trasmettere segnale alle schede audio su Unix e compilata in JavaScript per questo esperimento. Dopodiché è stato possibile fare i test nei vari browser sia come ricevitore che emettitore.
Conclusione
Non siamo sicuri, questo è chiaro, i campi d’uso sono molto limitati per la portata del segnale ma dimostrano che non è l’antivirus che rende sicuri e nemmeno il sistema operativo in questo caso. Questi esperimenti aprono molti scenari futuri ma dimostrano come una cosa fondamentale: un computer non è mai sicuro.
Quindi mi domando: come si può evitare questo problema? Sicuramente schermando i componenti elettronici come si fa già con i cavi ethernet o HDMI per schermare il segnale.
Per la questione browser invece, visto che viene richiesto il permesso dal browser per la ricezione di segnali sonori (ovvero leggere il microfono), il problema si pone in invio dove non è richiesto nessun permesso per l’invio di audio ma che oramai è possibile disattivare nelle schede nei nostri browser più moderni o addirittura da sistema operativo. Il problema alla fine è basso perché richiede delle cuffie o altoparlanti con volume molto alto e con segnali molto puliti, quindi nessun allarmismo perché la minaccia è molto inferiore rispetto alla teoria dimostrata.
Si ringrazia Guglielmo De Santis per la verifica tecnica di questo articolo.