giovedì 9 dicembre 2010

User agent string e tecniche di user agent spoofing

User agent string e tecniche di user agent spoofing

Motivo
Perche introduco questo articolo?
Perche ho notato che utilizzando spesso google mi sento limitato.
Perche quando digito http://www.google.de mi compare la home page di google tedesca
e quando effettuo la ricerca di un termine invece mi compaiono i risultati in italiano ?




Vi chiedo un po di pazienza nella lettura del seguente post.
Alla fine potrete essere in accordo con la tecnica oppure in disaccordo.
Io ho fatto le mie prove personali e sembra dare buoni risultati.
Potete provare anche voi senza alcun pericolo o perdita di impostazioni e/o dati.
Vi prego di segnalarmi errori e se ho scritto delle stupidaggini.
Spero di no. :-)



Cosa e' "user agent string"
Link alla risorsa web: http://www.useragents.org/
La user-agent string è una semplice stringa (una serie di caratteri alfanumerici) che viene inviata da una applicazione client (denominata appunto user-agent) a una applicazione server in ogni richiesta HTTP.
Quindi ogni programma che si connette ad internet e richiama una pagina (per esempio un browser come Firefox o InternetExplorer, tramite appunto il protocollo HTTP) invia questa stringa al server che contiene alcune utili informazioni circa il tipo di browser, il sistema operativo o anche la lingua

Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.04 (lucid) Firefox/3.6.12



Quale è la mia user agent string ?
Ecco un bel sito che permette di verificare la propria user agent string.
http://whatsmyuseragent.com/
http://user-agent-string.info/parse
http://show-ip.net/useragent/
http://whatsmyua.com/






Ce ne sono molti in rete.
Basta inserire in google "detecting my user agent string" oppure "what my user agent string".

Questo elenco sopra indicato ne e' solo una minima parte.
Ma credo che possa bastare e avanzare per le verifiche che dovremmo fare in seguito dopo aver cambiato la nostra user agent string in firefox.

Inoltre dal sito ufficale microsoft (quindi valido per internet explorer) viene indicato questa stringa da inserire nella propria barra degli indirizzi per visualizzare la proprio "user agent string"
(fonte web : http://msdn.microsoft.com/en-us/library/ms537503%28VS.85%29.aspx)

javascript:alert(navigator.userAgent)

Ho provato la stringa anche in mozilla firefox e funziona bene.
In firefox si puo infatti inserire sia la stringa sopra citata sia inserendo la stringa nella barra degli indirizzi:

about:






Tecnica di "user agent sniffing": definizione
Fonte - wikipedia (it) : http://it.wikipedia.org/wiki/User_agent
Alcuni siti utilizzano una tecnica detta "user agent sniffing", la quale consiste nel restituire un contenuto specifico per lo user agent che fa la richiesta (o nel restituire il contenuto solo se un determinato user agent lo richiede).
Molti browser, quindi, sono in grado di falsificare, con una tecnica detta "user agent spoofing", il loro user agent in modo da avere del contenuto.
Molti di questi browser aggiungono comunque la loro vera identità alla fine della stringa.




Come cambiare "user agent string" in "firefox" ?
Nota:
prima di cambiare la nostra suer agent string verifichiamo la nostra "attuale" user agent string dai link sopra indicati per la verifica.
Dopo aver effettuato l'operazione di cambio della user agent string effettuiamo una seconda verifica per sapere se effettivamente l'operazione di cambio e' andata a buon fine.

Per cambiare la proria user agent string inserire nella barra degli indirizzi (doce di solito si inserisce l' indirizzo della pagina web) la seguente stringa:

about:config






si visualizzeranno una serie di variabili (chiavi) e relativi valori.
Questo è "file di configurazione" di firefox attualmente in funzione sul nostro pc.

Cliccare con il tasto destro del mouse per aprire in menu a tendina del contesto della pagina e scegliere "nuovo" , e "stringa".
Dare il nome alla variabile
"general.useragent.override"
senza le includere le virgolette.






Successivamente inseriamo il nuovo valore della "user agent string" che vogliamo utilizzare.

Possiamo avere un elenco delle user agent string da questi links:
http://www.useragents.org/
http://www.user-agents.org/

Facciamo una verifica con i link on line del paragrafo precedente.

Da notare che e' presente un filtro sotto la barra dei link che ci permette di navigare tra i nomi della variabili.
Digitando CTRL+F si attiva la ricerca di keywords nella pagina web differente dal filtro sopra descritto.
Ho provato con quest'ultimo meccanismo ma sembra non funzionare in modo completo e veloce:
per la stringa "general.useragent.override" me la trova solo se la inserisco in modo esatto, se inserisco "general." oppure "general" il modulo di ricerca non trova alcuna corrispondenza.
Quindi vi consiglio di utilizzare il filtro in alto e non il modulo di ricerca interno alla pagina web.




Detecting Googlebot cloaking

The User Agent string "Googlebot/2.1 (+http://www.googlebot.com/bot.html)", without the quotes can sometimes be used to discover sites that use a simple technique to feed Google's spider ("Googlebot") optimized web pages in order to obtain a higher position (spamdexing).
This technique is a form of cloaking that is in most cases against the terms of services of Google. If you discover such a web site, and the page can be found with Google, report the offending site to Google for a better search experience.


Questa proposta sopra e' una tecnica interessante che potremmo usare per la verifica delle pagine web che consultiamo spesso on line.

Oltre ad inserire la googlebot string sorpa indicata ecco proposto un breve elenco di googlebot string:
Fonte: http://www.useragentstring.com/pages/Googlebot/

Googlebot 2.1
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Googlebot/2.1 (+http://www.googlebot.com/bot.html)
Googlebot/2.1 (+http://www.google.com/bot.html)


Ho eseguito la procedura sopra descritta.
La mia user agent string era rilevata come la seguente:
Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.04 (lucid) Firefox/3.6.12

Ora invece ho impostato la seguente:
Googlebot/2.1 (+http://www.googlebot.com/bot.html)
che effettivamente viene visualizzata e parte come stringa identificativa del mio browser quando faccio request html a server on line.



Ricercha libere su google.de con risultati in tedesco
Reimposto la user agent iniziale cambiando pero in questo caso solo la lingua da it in de inserendo la seguente stringa:
Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.04 (lucid) Firefox/3.6.12




Perche tutto questo discorso ?
Perche con un Proxy anonimo on line e con l' impostazione della user agent in tedesco possiamo fare query di ricerca in google (versione tedesca) e ottenere risultati delle ricerche in tedesco.
Senza avere re-direzioni o traduzioni dei risultati in ialiano.
Se voglio ricerca in lingua tedesca voglio ottenere risultati in lingua tedesca.

Naturalmente i risultati identici o simili si possono ottenere anche grazie alla "ricerca vanzata di google" ma in questo modo si puo bypassare facilmente il "pilotaggio automatico delle pagine web" di google che a mio parere risulta alquanto odioso e negativo.

A quanto pare la sola modifica della user agent string non basta in quanto credo che google faccia anche un monitoraggio della provenienza dell'ip dell'utente che fa richieste al server.
Quindi dovremmo usare anche servizi on line di server proxy anonimi.
Magari per ottimizzare le nostre ricerca nella lingua desiderata possiamo utilizzare proxy anonimi on line nella stessa lingua (o geo localizzazione) della ricerca che vogliamo effettuare.

Da aggiungere a queste due tecniche (user agent spoofing e anonimous proxy on line va considerata anche l'opzione del browser di non memorizzare cookie sul proprio hard disk)

Utilizzare
A - la modifica di user agent string
B - un proxy anonimo in rete (si preferisce sempre un proxy con connessione criptata https) permette di ottenere un "livello minimo d anonimato in rete" non del tutto al 100 %;
C - non memorizzare cookie sul proprio hard disk o memory cache;

On line tramite la query di ricerca in google "anonimous proxy on line" troviamo dei cataloghi aggiornati di risorse dove trovare liste aggiornate di proxy server pubblici gratuiti e servizi on-line di navigazione tramite proxy server utilizzabili senza installare nulla nel PC.

Ma perché navigare con i proxy?
Ecco un elenco dei motivi per cui usare un proxy anonimo in rete (anonimo non al 100 % perche ci sono alcune accortezze da calibrare e mettere in atto per avere un livello piu alto di anonimato):
1 - per mascherare il proprio indirizzo IP per i siti che tengono traccia delle nostre visite;
2 - per evitare il tracciamento della nostra navigazione da parte di servizi pubblicitari quali Google;
3- meno dispersione di dati sensibili sul web;
4 - evitare i blocchi di alcuni siti a visitatori provenienti da alcuni paesi.
In questo caso possiamo utilizzare un proxy server che risiede nel paese estero del servizio al quale vogliamo collegarci (come nel caso fatto sopra);
5 - bypassare alcuni limiti (download multipli e limiti di tempo) imposti da servizi di hosting quali Rapidshare e Megaupload (in proposito vedi articolo su questo blog pubblicato qui);
6 - Evitare le restrizioni nell'accesso ad alcuni siti imposte da parte dei governi locali, enti governativi o dai provider;
7 - Accedere a servizi nei quali il nostro indirizzo IP è stato bannato;
Quindi ecco i risultati di quanto descritto fino ad ora in due immagini differenti e due azioni di ricerca differenti:



Esempio pratico
Utilizzando la sola modifica alla user agent string il risultato non cambia.

Con questo link potrete impostare la lingua della vostra user agent string facendo riferimento alla sigla del dominio di riferimento (e quindi alla lingua):
http://www.iana.org/domains/root/db/

Stringhe di ricerca avviata da google:
http://www.google.de/#hl=it&source=hp&q=computer+shop&aq=f&aqi=g10&aql=&oq=&gs_rfai=&fp=dcf23b54b89c531b

Qui nella stringa di ricerca compare "hl=it" per la ricerca della stringa "computer shop".
Di fatto oltre la lingua in italiano per la ricerca anche i risultati mi danno pagine in italiano.



Se volessi ottenere pagine (risultato della ricerca in tedesco) posso cambiare it in de ossia prendere la stringa sopra indicata e cambiarla in :
http://www.google.de/#hl=de&source=hp&q=computer+shop&aq=f&aqi=g10&aql=&oq=&gs_rfai=&fp=dcf23b54b89c531b

Confrontando con la stringa di ricerca proposta sotto noto nelle due pagine di google risultati totalmente differenti.
E questo significa molto per la mia ricerca.

In questo primo caso i risultati sono si in tedesco ma non corrispondono ad attivita commerciali tedesche e provenineti da server tedeschi.


Utilizzando la tecnica del cambio della user agent string, un proxy anonimo tedesco, e la non memorizzazione dei cookie sul browser otteniamo un risultato migliore.
Ecco la stringa di ricerca:
http://anonymouse.org/cgi-bin/anon-www_de.cgi/http://www.google.de/search?hl=de&source=hp&ie=ISO-8859-1&q=computer+shop&btnG=Google-Suche




In questo caso, per analizzare la stringa di ricerca avviata da google, e' necessario togliere le prima parte dell'url, ossia: http://anonymouse.org/cgi-bin/anon-www_de.cgi.

Successivamente possiamo notare che "hl=de", cioè la lingua dei risultati viene presentata in tedesco e con pagine tedesche o almeno di probabile provenienza tedesca.
Inoltre nella pagina dei risultati vengono presentate "attivita commerciali presenti in germania" che si occupano di "vendita di computer".
Di fatto come nella immagine proposta sopra, viene indicato nei risultati anche l'indirizzo su google maps tedesco delle attivita commerciali.

Questo risultato è molto ma molto differente dal caso precedente.



Conclusioni
Cosa si vuole intendere con tutto questo discorso ?
Che molto probabilmente google per ottimizzare le ricerche e i risultati propone sempre (escludendo la form della ricerca avanzata) i risultati piu vicini al nostro indirizzo ip (e quindi alla nostra geolocalizzazione), nella lingua del nostro "browser" (e quindi alla user agent string).
Cioe in parole brevi, google VIETA ai webmaster tecniche di doorway e cloathing ma le usa in modo spropositato per gli utenti che si affidano ai suoi servizi.
Naturalmente lo fa in modo a volte troppo "spoporzionato" forse per poter includere la sua pubblicita ai nostri occhi.

Vi immaginate se facciamo una ricerca di un ristorante italiano e ci viene proposta la pubblicita di una impresa cinese, in lingua cinese, che vende macchine agricole ?

Non avrebbe molto senso, infatti.
Pero attenzione sempre: il Grande Fratello ci osserva !




Fonti web consigliate:
How to changing User Agent in Firefox
http://johnbokma.com/mexit/2004/04/24/changinguseragent.html


Link a Firefox User Agent Strings
http://www.useragentstring.com/pages/Firefox/

Link alle List of User Agent Strings
http://www.useragentstring.com/pages/useragentstring.php

List of User Agent strings for various versions of
Firefox and other Gecko-based browsers
https://developer.mozilla.org/en/Gecko_user_agent_string_reference
http://people.mozilla.com/~dwitte/ua.txt

Understanding User-Agent Strings
http://msdn.microsoft.com/en-us/library/ms537503%28VS.85%29.aspx

Some links you might find useful:
http://browserspy.dk/browser.php




Servizio on line di "monitoraggio delle user agent string": un esempio conreto on line
Cosa è useragents.org?

Useragents.org è un servizio, una risorsa libera per l'informazione e la diffusione delle conoscenze circa gli user-agent; l'obiettivo del progetto è fornire informazioni sulle user-agent strings e sui singoli browser, robot e sistema operativi.
Grazie a un corposo e dettagliato database, e al continuo aggiornamento e alla serietà posta nel raccogliere e relazionare le informazioni, useragents.org fornisce uno strumento essenziale per una scientifico studio degli user-agent.

Link alla risorsa web:
http://www.useragents.org/

6 commenti:

  1. A me il proxy servirebbe per vedere la diretta rai da qui...

    RispondiElimina
  2. vediamo cosa si puo fare .. :-)

    RispondiElimina
  3. andrea prova questo link http://www.leradio.com/tv/tv/rainews24.html

    RispondiElimina
  4. Ciao Ale. Grazie mille del link. Sono in grado di vedere rainews 24 e le altre reti locali come RTV38 Firenze. Per Rai 1, 2 e 3 invece rimanda al sito ufficiale dove la diretta viene bloccata. Non ho ancora indagato il problema anche perche' tutti i programmi in differita sono disponibili e raramente ho bisogno della diretta. Pero' farebbe comodo. Cmq grazie mille per avermi fatto fare un passo avanti :)

    RispondiElimina
  5. vediamo un po cosa posso fare.
    ma ti serve la diretta tv ?

    RispondiElimina
  6. ti risp in pvt ! :-)

    RispondiElimina