Navigation links
Text only version
print/save

2006-10-26 - Hacking Tor

È stato pubblicato un documento molto interessante che spiega come mandare a gambe all'aria Tor, la rete peer-to-peer che permetterebbe, almeno in teoria, l'accesso a internet in maniera completamente anonima.

Il server su cui risiede il paper originario è attualmente non raggiungibile, ma il documento è disponibile su dei mirror.

L'attacco è tanto semplice concettualmente quanto geniale: non attacca il protocollo Tor (che in sé e per sé è estremamente robusto), ma bensì il traffico HTTP che vi transita sopra.
In sintesi:

  • L'attaccante è un nodo intermedio qualunque di Tor.
  • L'attaccante modifica tutte le pagine HTML che transitano attraverso di sé, inserendo un codicillo javascript che fa sì che il client richieda http://serverattaccante.com/mioip/urlchestavovisitando/bug.gif (che restituisce una gif 1x1 trasparente).
    mioip è l'indirizzo reale dell'utente Tor, gentilmente generato dal browser. serverattaccante.com è un qualsiasi computer sotto il controllo dell'attaccante (ad esempio, lo stesso nodo Tor malevolo).
  • Alternativamente, l'attaccante inserisce nelle pagine HTML un'applicazione flash che si connette a http://serverattaccante.com. Il gioco funziona in quanto Flash ignora completamente le disposizioni del browser riguardanti i proxy.

In questo modo si ottengono IP originario e sito visitato da tutti gli utenti Tor che hanno la sfortuna di transitare dal server attaccante, nonché il contenuto di eventuali form HTML e quisquilie annesse.
Si noti che la route cambia molto frequentemente (quasi una volta ogni query HTTP); ne consegue che se da una parte ciò impedisce di monitorare in maniera organica l'intero traffico di un client in particolare, dall'altra un singolo nodo Tor malevolo può, avendo banda a sufficienza, sniffare traffico e IP di una quantità immane di client, dislocati in tutto il mondo (in quanto il protocollo è progettato apposta per far fare ai pacchetti il giro dell'oca prima di arrivare a destinazione).

Usare HTTPS serve a ben poco, in quanto molti siti HTTPS trasmettono immagini, CSS e altri file non riservati su una connessione in chiaro (per ovvii motivi di performance); perciò, al primo file non criptato che passa, il nodo malevolo può sostituire la risposta con una HTTP Redirect verso di sé.

Per proteggersi da questo attacco, quando si usa Tor per navigare occorre disabilitare completamente JavaScript (cosa che su molti siti progettati coi piedi semplicemente non si può fare, pena la completa invisualizzabilità) e Flash. È inoltre una buona idea disabilitare il campo Referer nelle richieste HTTP.

Variante: all'attaccante non importa di conoscere l'IP del client.
Modificando le pagine HTML può tentare di iniettare qualsiasi tipo di schifezza nel computer della vittima (dialer, trojan, etc.), anche se l'utente naviga esclusivamente su siti "sicuri". Inoltre, se si scarica un file eseguibile da sitosicuro.com tramite Tor, ci sarà sempre il dubbio che qualcuno l'abbia modificato al volo e ci abbia inserito del malware dentro (per evitare ciò, il file dev'essere firmato via GPG e/o si deve disporre di un hash MD5 ottenuto tramite un canale sicuro).
Identico discorso vale se si usa Tor per controllare la posta tramite POP3, a meno che il server POP non supporti la crittografia (cosa più unica che rara, specie per i servizi gratuiti che permettono di registrarsi con generalità fittizie).

Morale: primo assioma della sicurezza informatica: Qualsiasi catena è robusta quanto il suo anello più debole. Se un sistema di sicurezza ci appare invulnerabile (e magari, preso individualmente, lo è), è sempre possibile cercare un modo per aggirarlo.
Creative Commons License
This site and all its contents, save where explicitly noted, have been created by CRV§ADER//KY
and are published under the Creative Commons Attribution - Share Alike License.