Safari 3.2 e safe browsing

Alla ricerca delle caratteristiche anti-phishing di Safari 3.2.
Senza tanta pubblicità Apple sta usando la tecnologia Safe Browsing di Google per monitorare le connessioni ai siti web.

Libera traduzione di un articolo comparso sul sito di MacWorld il 25.11.2008:

L’uscita di Safari 3.2 il 13 novembre 2008 ha mostrato ancora una volta l’inclinazione di Apple per le note criptiche, dato che la compagnia si limita a parlare di “protezione contro siti web fraudolenti e noti per il phishing”.
Tentiamo di decodificare: Safari 3.2 offre una caratteristica anti-phishing interamente nuova, attivata di default nel pannello “Sicurezza” delle preferenze di Safari (“Avvisa quando si visita un sito fraudolento”). Quando si cerca di visitare un sito noto per aver già effettuato attacchi, Safari si blocca e emette un avviso con uno pseudo box di dialogo (in una nuova finestra web).
Se il sito è tra quelli sospettati di carpire informazioni personali o finanziarie, il messaggio dice: Il sito che state visitando è stato inserito tra quelli noti per il “phising”. Questi siti sono progettati per indurvi a rivelare informazioni personali o finanziarie, di solito attraverso la creazione di una copia di un sito legittimo, come una banca.
Se invece la pagina che si sta visitando è un sito noto come punto di distribuzione di malware (virus, cavalli di Troia o altri programmi che possono controllare il vostro computer), il testo diventa: Il sito che state visitando sembra contenere malware. Malware è un software malizioso che potrebbe danneggiare il computer o operare senza il vostro consenso. Il computer potrebbe rimanere infettato anche solo visitando un sito che sparge malware, senza altro intervento da parte vostra.
Francamente oggi non sappiamo di nessun metodo corrente con cui un “attaccante” possa scaricare ed eseguire codice sul vostro sistema visitando una pagina web “senza altre azioni da parte vostra”, ma questo è proprio il fine di ogni “attaccante” e così è preferibile esagerare in fatto di cautela.

Nelle note ridicolmente minimali rilasciate da Apple niente suggeriva che questa caratteristica esistesse. Ma questa volta la ritrosia della compagnia nel rivelare i cambiamenti che ha operato nel software che usate potrebbe avere ulteriori conseguenze. Come faccia Safari a “conoscere” questi siti di phishing e malware fa sorgere ogni tipo di domande interessanti.
Ora siamo in grado di rivelare con ragionevole sicurezza come funziona il tutto ma, dato che Apple non ha fatto altrettanto, non possiamo dire con assoluta certezza che Safari è completamente privato o che Safari non stia mandando informazioni sulle pagine che state visitando a qualche sito di terze parti.
Noi crediamo che Safari 3.2 non lo stia facendo, ma solo Apple lo può dire – e ognuno può cercare di immaginare se la compagnia si sia preoccupata di farlo o no.
Incominciamo da qui: come si fa a “conoscere” questi siti?

Il problema di fondo
I siti di phishing sono strutturati in modo da ingannare la gente, facendo credere che siano i siti originali così che il computer da solo non sia in grado di decidere se quel sito che sembra eBay sia davvero eBay. Ricordate che i creatori di Internet ritenevano (a torto) che tutti i computer in rete fossero affidabili e così le regole sono abbastanza blande. Non c’è nessuna regola che dica che l’indirizzo (URL) di una pagina web di eBay non possa iniziare con un indirizzo IP grezzo. Anche se eBay avesse la prassi di dare a tutti i suoi URL come nome di dominio: “ebay.com”, il vostro computer non avrebbe modo di saperlo.
Invece i computer di Google hanno maggiori chance di decifrare simili attacchi.
In quanto leader mondiale dei motori di ricerca, Google ha scovato dove si trova eBay e sa che un singolo indirizzo IP localizzato, per esempio, in Cina non è probabilmente quello di uno dei server di eBay. Google conosce le banche, i fornitori di carte di credito, le compagnie di assicurazione e altre ditte che la gente cerca di trovare e quindi ha un’idea ragionevole che se le loro immagini saltano fuori in una pagina che sta dall’altra parte del mondo, la pagina potrebbe essere falsa.
Aiuta anche il fatto che Google ha qualcosa come sei milioni di fantastiliardi di volte la potenza di calcolo dell’intero programma spaziale Apollo. Il vostro computer potrebbe anche avere 8 processori… ma Google è sempre leggermente avanti a voi.
Circa tre anni fa i laboratori Google hanno rilasciato la prima versione di prova del software Google Safe Browsing per Firefox, un tentativo di avvantaggiarsi di un po’ di queste conoscenze accumulate. L’estensione per Firefox (allora alla versione 1.5) esaminava gli URL mentre voi li visitavate e avvisava nel caso uno di loro si trovasse su una delle due liste che Google manteneva: una per siti sospettati di phishing e una per siti sospettati di distribuire malware.

Google e la Fondazione Mozilla sono stati partner da tanto tempo e così non è stata una sorpresa quando Firefox 2.0 ha incluso la tecnologia “Safe Browsing” (navigazione sicura) di Google direttamente nel browser. Non c’è da meravigliarsi se è inclusa anche in Chrome (browser per Windows, attualmente in fase beta). Ci siamo sorpresi che Safari 3.2 includa la stessa tecnologia, in special modo perché le stringate note di rilascio di Apple non nominano la parola “Google” neanche una volta. Ma la nostra indagine ci convince che in Safari 3.2 la “protezione contro siti web fraudolenti e dediti al phishing” è, in realtà, la tecnologia Safe Browsing di Google.

Come funziona
Anche se Google tiene una lista di siti maliziosi, il vostro browser non può controllare su Google ogni volta che visitate una nuova pagina. Dal punto di vista tecnico, sarebbe un inferno per le connessioni lente e ancora una rilevante parte del mondo si connette ad Internet con un modem 56K. Dal punto di vista personale è irragionevole pensare che il vostro browser debba riportare ad un’autorità centrale ogni pagina che visitate, che sia una ben nota come Google o un’altra.
L’alternativa è che sia il vostro stesso browser a tenere una lista di URL di siti maliziosi in modo da confrontare ogni pagina che visitate con la sua lista. Una lista siffatta avrebbe bisogno di aggiornamenti periodici da Google perché phisher e altri fornitori di malware per i loro attacchi spesso usano computer compromessi - un computer potrebbe essere “buono” per gli attacchi per qualche ora.
Ma anche questo pone i suoi problemi: se gli amministratori di reti conoscono alcuni di questi URL maliziosi, allora trasmetterli su un network potrebbe far scattare problemi con i firewall.
Soprattutto, molti URL potrebbero avere varianti che conducono pure alla pagina maligna. (È possibile appendere un parametro inutile a ciascuna pagina statica e ottenere lo stesso risultato; alcuni phisher fanno proprio così nei loro URL onde evitare di essere scoperti).
Google risolve il problema inviando al browser una lista codificata (hashed) di URL noti per essere siti di phishing o distributori di malware. Quando si lancia per la prima volta, Safari 3.2 si connette a safebrowsing.clients.google.com e chiede informazioni sulle due “liste nere” (blacklist) mantenute da Google: una lista di siti noti per il phishing e una lista di noti siti di malware.
La lista di siti codificati (hashed) viene rimandata da Google al Mac a blocchi, partendo dalle informazioni più recenti e poi gradualmente a quelle più vecchie. Gli aggiornamenti sono in forma compatta per evitare di dover spedire e rispedire i codici hashes in rete e gli hashes sono solo i prefissi di numeri più lunghi, il che evita di spedire enormi quantità di dati.
I prefissi hash non sono gli hash completi e così, se state visitando una pagina il cui URL coincide con un prefisso hash, Safari 3.2 ritorna al sito di Google e chiede l’hash completo corrispondente al prefisso hash in questione. Google risponde e, se l’hash completo corrisponde all’URL visitato, Safari sa che quella pagina è sulla lista di Google dei siti malevoli.

Safari immagazzina i dati provenienti da Google in cartelle dai nomi difficili da decifrare.
Guardando nella cartella che si trova in /private/var/folders/ vi si potranno vedere una o più cartelle con nomi di due lettere. Una di queste, ma non quella chiamata “zz”, conterrà un’altra cartella con un nome casuale molto più lungo: questa cartella ne contiene un’altra chiamata “-Caches-", dentro la quale vi è una cartella “com.apple.Safari”.
Il percorso completo è quindi:
/private/var/folders/xx/yy/-Caches-/com.apple.Safari
dove “xx” e “yy” sono uniche del vostro Sistema.

Una volta individuata la cartella, dentro si troveranno due file: Cache.db e SafeBrowsing.db. Il primo è proprio la cache di Safari. L’altro file contiene la “lista nera” che proviene dall’iniziativa Safe Browsing di Google. Noterete che il file è stato creato presumibilmente proprio al momento in cui Safari 3.2 è stato lanciato per la prima volta e, se il browser è aperto, il file dovrebbe essere stato modificato negli ultimi 30 minuti.
(Il numero del 24 novembre di MWJ spiega come guardare dentro il database “safe browsing” di Safari e che cosa significano le informazioni che vi si trovano).

Le regole di Google non consentono a clienti come Safari o Firefox di avvisarvi che una certa pagina potrebbe essere malevola, perfino se il suo URL si trova sulla “lista nera”, a meno che la lista non sia stata aggiornata negli ultimi 30 minuti.
Abbiamo lanciato una spia di network su Safari 3.2 mentre stavamo visitando siti sospettati di phishing e l'abbiamo intercettato mentre inviava informazioni a safebrowsing.clients.google.com proprio prima di mostrare l’avviso “Sito sospettato di Phishing”. Quando l’URL di un sito coincide con la prima parte di un hash presente sulla lista, Safari 3.2 apparentemente chiede a Google l’intero hash a 256-byte per quel solo indirizzo URL e poi li confronta, lo stesso metodo che Safe Browsing usa in Firefox.

Perché vi stiamo dicendo tutto ciò
Per suscitare la vostra fiducia, le operazioni in Rete devono essere trasparenti.
È questo il punto che sta dietro EV SSL – l’autenticazione verificata che la compagnia o ditta che si sta contattando è proprio quel che dice di essere. Ad un livello più basso, quando visitate una pagina con il vostro browser voi vi aspettate che il vostro computer riceva gli indirizzi IP dal vostro server DNS, riceva la pagina dal server web e riceva tutto il contenuto della pagina (immagini, filmati…) dalle loro location, come specificato nel sorgente della pagina. Voi non vi aspettate che il vostro browser informi anche Google o persino la stessa Apple di quel che state facendo!

Comunque Safari non è il primo browser con questa caratteristica.
Benché Safe Browsing sia incorporato in Firefox 2 e successivi, prima era un’estensione di Firefox e successivamente parte della barra degli attrezzi di Google per Firefox. Le note sulla privacy di Google dicono che, in alcune circostanze, Safe Browsing raccoglie informazioni aggiuntive dagli utenti. Sappiamo che Firefox da solo non lo fa, perché la Fondazione Mozilla dichiara con chiarezza che cosa la “Phishing and Malware Protection” (la protezione contro phishing e malware) manda a Google, con link alla politica sulla privacy sia di Mozilla che di Google.
La politica sulla privacy del cliente di Apple non dice niente circa il fatto che Safari spedisca informazioni a siti diversi da quelli che state visitando… ma Safari 3.2 fa esattamente questo: raccoglie un sacco di informazioni da Google e rimanda a Google richieste (non identificabili) quando incontrate una pagina il cui URL si trova su una delle liste nere di Google.
(Aggiornamento: un lettore di Macworld ha scovato un riferimento a Google nell’accordo di licenza di Safari. Per maggiori informazioni guardate il nostro thread di commenti sulle risposte di MacJournals).

Va comunque precisato che questo sistema fornisce indirettamente a Google un modo per stimare quali pagine stiate vistando. Se l’URL di una pagina che volete visitare coincide con il prefisso hash di una pagina notoriamente malevola, sembra proprio che Safari 3.2 mandi tale prefisso a Google chiedendo l’intero hash a 256 byte per assicurarsi che quella sia davvero una pagina malevola (e anche per verificare che la pagina non sia stata rimossa dalla lista di Google dopo l’ultimo aggiornamento delle liste da parte di Safari).

Milioni di URL potrebbero produrre hashes che iniziano con gli stessi 32 bit, ma se Google riceve parecchie richieste per lo stesso valore, la compagnia potrebbe ragionevolmente desumere che c’è qualcuno che sta visitando la pagina malevola che lui aveva segnato – e dato che la richiesta di Safari arriva a Google dal vostro indirizzo IP, Google potrebbe altresì ricavarne dati. La politica sulla privacy di Mozilla ne impedirebbe l’uso – eccetto che per migliorare il servizio – ma la politica sulla privacy di Apple non lo fa. Né Apple né Google affermano da nessuna parte che userebbero tali dati solo per migliorare il servizio di protezione contro phishing e malware.

Notiamo anche che il protocollo Safe Browsing v2.1 menziona una terza lista oltre le due citate: una lista bianca “che riporta i siti noti per essere affidabili”. Le specifiche continuano: “Va notato che questa lista dovrebbe essere usata solo da clienti “in modalità avanzata” che effettuano ricerche direttamente in Google per determinare quali siti siano malevoli. In tal caso, se un sito si trova sulla lista, non c’è bisogno di inviare ulteriori richieste a Google”.
Non sembra che il file “SafeBrowsing.db” di Safari 3.2 contenga dati per la lista bianca di Google, ma le specifiche confermano che alcuni clienti, con il permesso di Google, possono usare una “modalità avanzata” che ricerca ogni pagina visitata piuttosto che mantenere la lista sul computer-cliente. Sarebbe una modifica seria per Safari.
Se venisse implementata, gli utenti dovrebbero essere informati della sua esistenza e del suo funzionamento, in modo da prendere decisioni informate e intelligenti sul fatto di usare questa caratteristica oppure no.

Il bisogno di nascondere
Purtroppo non possiamo dirvi in via definitiva che questa caratteristica oggi non sia implementata, perché Apple rifiuta di documentare le modifiche. Questa volta dovrebbe ritorcersi contro Apple. Anche se formulato nel modo più amichevole verso Apple, rimane il fatto che, dopo l’installazione di Safari 3.2, il vostro computer per default sta scaricando mucchi di informazioni da Google ed inviando indietro a Google informazioni correlate ai siti che visitate senza dirvelo e senza che Apple ne riveli i modi e senza nessuna dichiarazione sulla privacy da parte di Apple.

Non è così che ci aspettiamo che si comportino con i clienti compagnie come Apple.
Mozilla è chiarissima su come Firefox agisca. Apple si rifiuta di pronunciarsi su come agisca Safari per il solo motivo che la compagnia ha così poca considerazione dei suoi clienti da non sentire il bisogno, a sua discolpa, di tenerli informati sui dati che Safari trasmette.
È intollerabile che un browser agisca in questo modo senza documentazione esplicita.

Il 17 novembre MacJournals ha spedito la sua analisi all’ufficio privacy e relazioni con la stampa di Apple insieme a domande sulle conseguenze delle recenti continue decisioni della compagnia di non rivelare informazioni ai suoi clienti. A tutt’oggi non è pervenuta alcuna risposta da parte di Apple.

Non stiamo certo qui a trattenere il fiato…
Nel frattempo, per quel che possiamo giudicare, le caratteristiche anti-phishing in Safari 3.2 sembrano innocue benché ragionevolmente efficienti.
Non spedisce dati a Google circa le pagine che visitate a meno che una di loro non coincida con un prefisso hash su una lista di Google e, anche in questo caso, si limita a ottenere il valore intero di hash per il prefisso hash in questione – per quel che ne sappiamo…
Questo sarebbe sufficiente a Google per fare cose interessanti con i dati, a meno che una politica non documentata sulla privacy non lo proibisca.
Se avete dei dubbi o se semplicemente non volete sprecare banda per mantenere un database di 25MB pieno di ospiti potenzialmente malevoli, potete disabilitare questa caratteristica nel pannello “Sicurezza” delle preferenze di Safari 3.2.

Certo, sarebbe molto più facile raccomandare di lasciarlo abilitato se Apple credesse che avete il diritto di sapere quando il suo browser sta raccogliendo e spedendo informazioni per conto vostro.

Traduzione di Hartz

Discussione sul forum