In altri articoli abbiamo visto come sia possibile verificare quali siti web sono stati visitati con un qualunque sistema.
Di solito, utilizzando la cosiddetta modalità di navigazione in incognito offerta da tutti i principali browser web, è possibile visitare qualunque pagina senza che alcuna informazione ad essa relativa venga salvata nella cronologia e tra i file temporanei.
Accedendo al contenuto della cronologia web di qualunque browser, è molto semplice controllare quali siti web sono stati visitati, eccezion fatta per quelli aperti in modalità incognito.
Un trucco come quello illustrato nell’articolo Scoprire i siti visitati anche quando si usa la navigazione anonima, comunque, consente di avere una ricca lista dei siti visitati, anche quelli aperti usando la modalità di navigazione in incognito.
Utilizzando un router od una appliance che offra la possibilità di monitorare il traffico generato dai client connessi alla rete locale, si potrà comunque spiare i siti visitati.
L’utilizzo intelligente di servizi esterni come OpenDNS, comunque, consente di controllare i siti visitati da tutti i sistemi collegati in rete locale: Controllare i siti visitati da router, rete locale e WiFi con OpenDNS.
Anche i siti web possono spiare le pagine aperte dagli utenti
In queste ore, però, si sta tornando a parlare di una debolezza nella gestione della procedura HSTS (HTTP Strict Transport Security) che potrebbe portare un sito web di terze parti a stabilire, con un buon grado di approssimazione, quali pagine sono state precedentemente visitate dall’utente.
HSTS è un meccanismo di sicurezza che consente ai siti web di dichiarare che tutte le successive interazioni con il web server avverranno unicamente utilizzando una connessione sicura HTTPS. La politica applicata dal server web viene comunicata al client (e quindi al browser dell’utente) attraverso un’intestazione aggiuntiva che viene fornita in risposta alla richiesta di connessione.
L’utilizzo di HSTS aiuta a proteggere le comunicazioni HTTPS da attacchi di degrado della sicurezza (downgrade) ed a prevenire eventuali dirottamenti di sessione.
L’impiego di HSTS da parte di un sito web che usa il protocollo HTTPS per proteggere le informazioni scambiate tra client e server (e viceversa) viene premiato anche in fase di valutazione delle misure di sicurezza implementate. Nell’articolo Come attivare HTTPS sul proprio server Linux abbiamo visto che attivando HSTS sul proprio server web, si ottiene un giudizio nettamente migliore effettuando una verifica, ad esempio, con il test di Qualys.
L’implementazione di HSTS, quindi, è di per sé buona cosa.
Per come HSTS è gestito da parte dei vari browser web, tuttavia, il meccanismo potrebbe essere utilizzato per identificare univocamente un utente oppure per spiare i siti visitati.
Per quanto riguarda l’identificazione, nell’articolo Il supercookie HSTS traccia anche in incognito abbiamo visto come l’implementazione di HSTS nei browser web consenta di fatto l’utilizzo, da parte di qualunque sito web, di una sorta di supercookie, capace di resistere anche all”utilizzo della modalità di navigazione in incognito.
Un sito web può quindi impostare un identificativo univoco che può essere letto, attingendo al file contenente le informazioni HSTS, anche da siti terzi. Solo l’eliminazione di tutti i cookie nella modalità di navigazione normale consente di sbarazzarsi del supercookie.
In queste ore, però, si fa un gran parlare del test Sniffly. Visitando la pagina, si noterà come – nella colonna di sinistra – il test visualizzi un elenco di siti web che si sono precedentemente visitati.
Il test, insomma, riesce – con buona approssimazione – a spiare i siti web visitati dall’utente. Com’è possibile?
Innanzi tutto, vanno precisati alcuni aspetti importanti:
– il test effettua la verifica di un certo numero di siti web (non è possibile leggere la lista di tutti i siti web visitati dall’utente)
– il test ha efficacia soltanto sui siti web che utilizzano (anche o solo) il protocollo HTTPS e HSTS. Non può controllare l’eventuale precedente visita, da parte dell’utente, di siti che non usano HSTS.
Quando si visita la pagina del test Sniffly, vengono caricate una serie di immagini inesistenti sui vari domini da controllare.
Dal momento che l’immagine remota è inesistente, Sniffly verifica dopo quanto tempo viene ottenuto il messaggio dal server HTTPS con supporto HSTS.
Se la notifica arriva in breve tempo, significa che il sito web oggetto di test è stato precedentemente visitato dall’utente.
Se, dopo aver effettuato un test su Sniffly, non si riconoscessero siti web visitati in precedenza, si apra un’altra scheda o finestra del browser quindi si provi a raggiungere, per esempio, outlook.com, giustizia.it, airbnb.it o reddit.com.
Eseguendo nuovamente il test Sniffly, si troveranno tali domini nella colonna di sinistra (Sites yoùve probably visited ossia siti che hai probabilmente visitato).
Come difendersi
Gli autori del test chiamano a raccolta gli sviluppatori dei browser web che dovrebbero iniziare ad adottare misure di protezione efficaci contro gli attacchi sferrati nei confronti di HSTS.
Gli utenti di Firefox possono digitare about:support
nella barra degli indirizzi quindi cliccare sul pulsante Mostra cartella.
Il file SiteSecurityServiceState.txt
contiene l’intera lista dei siti HSTS visitati.
Periodicamente, quindi, si può cancellare il contenuto di tale file oppure impostarlo come di sola lettura affinché Firefox non possa aggiungervi ulteriori voci (leggasi, altri siti web HSTS).
Programmi come CCleaner (vedere CCleaner rimuove le app di Windows 10) supportano l’eliminazione dei supercookies HSTS e la pulizia del profilo utente Firefox.
Nel caso di Google Chrome, non è possibile accedere ad un file contenente la lista dei siti HSTS precedentemente visitati.
Si può eventualmente digitare chrome://net-internals/#hsts
nella barra degli indirizzi e cancellare singoli domini utilizzando la casella Delete domain.
Il sottostante Query domain consente di verificare se un dominio (già visitato in precedenza) sia incluso nella lista di quelli gestiti da Chrome.