Rss

The Google Chrome Keylogger

Come promesso a Stefano, ecco qua il seguito del primo post riguardo a quello che fa Google Chrome con i vostri dati.


Per eseguire i test ho utilizzato il SilkPerformer della Borland, un buon programma che permette di registrare tutte le attività  in background di una qualsiasi applicazione.

Per prima cosa ho inserito l’eseguibile di Chrome (chrome.exe) tra gli applicativi da monitorare con il Recorder di SilkPerformer. Subito dopo ho avviato la registrazione facendo avviare Google Chrome direttamente da SilkPerformer.

Partito il browser ho semplicemente iniziato ad inserire “repubblica.it”, commettendo anche alcuni errori di battitura. Durante la scrittura dell’URL mi sono accorto che il recorder aveva iniziato a registrare 16 attività . Smetto quindi di scrivere e registrare ed esporto il tutto in uno script BDL, formato proprietario di SilkPerformer. Ecco quello che viene mostrato:

dcltrans
transaction TInit
begin
WebSetBrowser(WEB_BROWSER_CUSTOM);
WebSetUserAgent(
“Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13″);
WebSetHttpVersion(“HTTP/1.1″);
WebModifyHttpHeader(“Accept-Language”, “it-IT,it,en-US,en”);
//WebSetUserBehavior(WEB_USERBEHAVIOR_FIRST_TIME);
//WebSetDocumentCache(true, WEB_CACHE_CHECK_SESSION);
end TInit;
transaction TMain
var
begin
// Redirecting -> (redirection) http://www.google.it/
WebUrlHead(“http://www.google.com/”, 1.31);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH001, 1.83);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH002, 2.97);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH003, 1.33);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH004, 3.08);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH005, 2.22);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH006, 2.03);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH007, 0.69);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH008, 1.31);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH009, 1.20);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH010, 0.56);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH011, 1.03);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH012, 1.69);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH013, 1.26);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH014, 0.84);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH015, 1.78);
WebFormGet(“http://clients1.google.it/complete/search”, COMPLETE_SEARCH016);
end TMain;
dclform
COMPLETE_SEARCH001:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “r”;
COMPLETE_SEARCH002:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “re”;
COMPLETE_SEARCH003:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “rep”;
COMPLETE_SEARCH004:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output”                    := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repp”;
COMPLETE_SEARCH005:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â       := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “reppub”;
COMPLETE_SEARCH006:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “reppu”;
COMPLETE_SEARCH007:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repu”;
COMPLETE_SEARCH008:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repubb”;
COMPLETE_SEARCH009:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repubbl”;
COMPLETE_SEARCH010:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â                   := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repubbli”;
COMPLETE_SEARCH011:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repubblic”;
COMPLETE_SEARCH012:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repubblica”;
COMPLETE_SEARCH013:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repubblica.”;
COMPLETE_SEARCH014:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repubblica.i”;
COMPLETE_SEARCH015:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repubblica.ir”;
COMPLETE_SEARCH016:
“client” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“output” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “chrome”,
“hl” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “it”,
“q” Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := “repubblica.it”;

Premessa: durante il testo io non ho mai premuto il tasto “Enter” della tastiera.

Come avrete potuto leggere dallo script,  Chrome ha inviato in brevissimo tempo, praticamente ad ogni tasto premuto sulla tastiera, una richiesta a http://clients1.google.it/complete/search.
Praticamente per 16 volte é stato inviato il contenuto da me inserito nella barra URL.

Si può anche notare come siano stati inviati piccoli errori di battitura, come per esempio la doppia “p” in “reppu” o il dominio “ir” finale.

Praticamente Google ha ottenuto tutto quello da me inserito nella barra degli indirizzi, aggiungo che il trasferimento avviene senza nessuna cifratura, quindi in chiaro. Come sempre in questi casi à© essere maliziosi à© un bene e personalmente che Google utilizzi un Keylogger sul mio PC, mi da tremendamente fastidio. Anche se magari può sembrare banale, già  solo il fatto che Google potenzialmente possa avere in mano i dati riguardo alla mia velocità  di battitura, agli errori che commetto durante l’inserimento dell’URL, ma anche le mie tendenze politiche o sessuali non é simpatico.

Un conto é la registrazione di dati utilizzati per la ricerca, differente e sul browser, dove normalmente scrivo direttamente il nome di un sito che conosco e visito giornalmente, quindi va a mostrare quasi al 100% tutte le mie abitudini sull’utilizzo della rete.

Aggiungo che Google ha inserito sul sito dedicato al browser la spiegazione per disabilitare l’invio dei dati, ma purtroppo non é abbastanza, visto che l’opzione à© abilitata in partenza e non sono molti quelli che capiscono

Lo si può vendere come si vuole, come servizio contro il phishing o contro siti che installano malware, ma secondo me rimane totalmente inaccettabile che una tale quantità  di dati venga inviata sulle banche dati di Google, che già  contengono abbastanza da poter scrivere una biografia sulla mia vita.

Detto questo concludo deinstallando per la seconda volta Chrome e rimanendo fedele al mio caro vecchio Firefox.

Comments are closed.

Comments (15)

  1. lavoro molto interessante, complimenti. Ma ho una domanda: non era già così anche prima di Chrome, per certi versi: quando uso Firefox e cerco qualcosa scrivendo nella casella del motore di ricerca impostata su Google, mi arrivano dei suggerimenti man mano che scrivo. O sbaglio?

  2. Non per fare l’avvocato del diavolo o il fighetto di turno ma non ci vedo nulla di strano nel fatto che la funzione di suggerimento / autocompletamento _necessita_ di un dialogo client – server, proprio come accade da anni con la google toolbar.

    Se sniffi le richieste http durante una ricerca dalla google toolbar – ad ogni tasto premuto sulla tastiera – avrai a che fare con
    http://suggestqueries.google.com/complete/search

    >”durante il testo io non ho mai premuto il tasto “Enter” della tastiera.”

    Non avrebbe senso (ajax docet).

    >”l’opzione é abilitata in partenza”

    Centro! A mio avviso il problema fondamentale è proprio questo.

  3. Francesco

    confermo che la casella del motore di ricerca di Firefox si collega “al volo” a suggestqueries.l.google.com per i suggerimenti.

    Nota bene: i siggerimenti si possono disabilitare deselezionando il flag “Mostra i suggerimenti di ricerca” dentro “Gestione motori di ricerca…” in fondo al menu a tendina per selezionare il motore di ricerca.

  4. Ciao,
    Riesci a vedere il comportamento di Chrome quando fa DNS prefetching?
    http://www.google.com/support/chrome/bin/answer.py?answer=96788

    Mi risulta che oltre a tutti i link di una pagina, faccia dei lookup al DNS durante la digitazione di normale indirizzo web.

    Ad esempio, digitando “rai.it” partono delle query tipo:
    r.it
    rai.it

    e con domini piu’ lunghi dovrebbe essere anche peggio.

  5. Come altri hanno già fatto notare il servizio di autocompletamento ed il relativo prefetching del dns sono già presenti anche su Firefox e generalmente è considerata una feature.

    Del resto l’aspetto pratico per l’utilizzatore è una maggiore velocità nel contattare l’host nel momento in cui si effettua la scelta premendo il tasto invio.

    Per quanto riguarda gli aspetti ‘grande fratello’ direi che al momento lasciano il tempo che trovano.. “Google potenzialmente possa avere in mano i dati riguardo alla mia velocità di battitura”, ma dai..

    Comunque se qualcuno a più tempo di quanto ne ho io per adesso mi scriva e gli invio un paio di capture di wireshark per chiarirsi le idee.

    http://permartina.blogspot.com/2008/09/ancora-su-google-chrome-il-browser-di.html

    Saluti.

  6. [...] Qualcuno sta indagando sul Keylogger di Google Chrome ovvero quella funzione che permette a Google di sapere cosa digiti [...]

  7. Edgar

    Rispondo velocemente, in ogni caso ho scritto un posto per spiegare meglio la mia posizione verso Chrome.
    @Leonaltro & @GiannAmato
    Per ciò che riguarda la Search Bar di Firefox e la barra URL di Chrome, si funzionano in pratica allo stesso modo, spiego però perché le due cose sono differenti sul nuovo post.

    @Francesco
    Quello non disabilità le query al server, ma la visualizzazione di URL giá utilizzati sulla cronologia. Per disabilitare il tutto bisogna andare sotto “Roba da smanettoni”->”Mostra suggerimenti per errori di navigazione”

    @alezzandro
    Se riesco, sabato finalmente parto per le ferie, proverò a vedere come si comporta in dettaglio il prefetching.

    @marco
    Chiaramente il riferimento al tempo di battitura era semplicemente ironico.Puó essere che Google=Grande Fratello sia solo una paranoia, ma i termini di servizio di Chrome fanno riflettere un pó sullo stato delle cose, esattamente come i termini di servizio dei tanti servizi Google. Sono punti che non prenderei tanto alla leggera, soprattuto in un forte periodo di cambiamento mediatico come questo.

  8. ferie, che bello… buone vacanze allora! ;-)

  9. Avevo fatto due prove anche io su questo aspetto potenzialmente maligno.
    Nel sito che dichiara le policy sulla privacy spiegherebbero anche come disabilitare tale comportamento, anche se ad una prima analisi non mi sembra funzionare.

  10. [...] definisce Chrome un Keylogger. Pensavo esagerasse, ma poi c’è un rimando alla pagine Privacy di [...]

  11. Danilo

    Da questo a dire che google chrome è un key-logger … al massimo solo quello che digiti nella casellina di ricerca.

  12. [...] una sua breve interpretazione del perché Google si sia dedicata allo sviluppod i questo software, nell’altro Edgard (che non conosco, ma è segnalato sempre sul primo blog citato) spiega quanto un software (Chrome [...]

  13. [...] darne la notizia è stato downloadblog, che a sua volta la riporta da questi due post qua (post 1) (post 2) di un blog che ha fatto con Chrome un [...]

  14. [...] stata registrata senza mai premere il tasto “Enter” (potete vedere il test effettuato qui). Quindi vi immaginate a quanti dati personali può avere accesso Google? Ma la storia non finisce [...]

  15. Andrea

    Ecco un altro paranoico…