(Wróć do mojej strony nt. Firefoksa. /
Back to my page about Firefox.)
(Po polsku jest niżej...)
EN: Firefox 2 Antiphishing Server-side Project
(codename: "Firefox is spyware")
(For project regarding Firefox 3 see this page.)
(Your IP address (as will be seen in logfile) is: 38.107.191.101.)
(Your randomly generated unique identifier (in cookie) (as will be seen in logfile, if available) is: 797915b9ad0a60b86a4c745dae4c0979.
You can differentiate between yours and others people requests thanks to it.)
Current time/date on server: 22/Nov/2009 05:51 CET.
THIS IS STRICTLY EDUCATIONAL PROJECT. LEARN AND USE IT AT YOUR OWN RISK!
(Please read external links included in this text if something is unclear...).
(See related screenshots here.)
Mozilla Firefox 2 introduced "phishing protection" (which was
available before as an extension from Google).
There are two modes of operation: first one (enabled by default) connects to Google
each half hour and updates local list of "bad" URLs (it sends Google's cookie during this process...). The second
antiphishing mode (which is not enabled by default) is also interesting -- it enables built-in functionality that
sends (almost) each visited URL to Google (or someone else) in real-time, in
order to check it against a list of "bad" URLs maintained on server side. There
is a possibility to change default "antiphishing provider" to some other entity
than Google (eg. to your own web server).
Thanks to the availability of documentation
and source code (mainly contents of directories:
browser/components/safebrowsing/
and
toolkit/components/url-classifier/)
I was able to create this project to demonstrate that Firefox has,
indeed, bult-in functionality that sends full visited URLs. There is one caveat however: you have to
change somehow Firefox configuration on client-side. We can conveniently use
user.js file to achieve this. Just choose THIS LINK and save it
as "user.js" in Firefox's profile directory (folder)
(note that this step can be done programmatically
very easily). Then, (re)start Firefox, browse
some sites and check bottom of FILE WITH LOGS.
You should see your whole browsing history!
There are also logged, by default, few other things:
your IP address, date and time of request, your unique identifier (from cookie, if available) and User-Agent string.
(This is, more or less, data that Google is able to gather when you turn on "real-time" checking at Google; moreover, Google is
also able to relate those requests (via cookie) with searches in their search engine, activity on GMail account
(if you have one), etc. etc.)
After some testing (try browsing eg. some https:// and ftp:// URLs; use "Back" / "Forward" buttons and check logfile etc.;
also, note that sending visited URLs is not detected by your "personal firewall" (eg. on Windows),
since this functionality is fully integrated with the browser itself and uses standard HTTP protocol)
you may ask
How can I disable this now?
(ie. how can I revert changes made by copying user.js from the link above?)
Well, there are few possibilities, but the easiest way is probably this:
- open window with options (Linux: Edit -> Preferences...; Windows: Tools -> Options),
then choose "Security" tab and uncheck "Tell me if the site I'm visiting is a suspected forgery"
- click OK to close Options / Preferences window
- close Firefox
- remove user.js from Firefox's profile directory (this is very important step, don't omit it)
Done. (Note that this completely disables "antiphishing protection".)
Or, alternatively, more complicated, but also more thorough way:
- go to special about:config page (write it in address field and press Enter)
- filter for browser.safebrowsing.provider.1
- delete all values (click right mouse button on each one and choose Reset)
- put another filter: browser.safebrowsing
- click right mouse button on browser.safebrowsing.dataProvider and choose Reset to set default value (0)
- the same with browser.safebrowsing.remoteLookups (false)
- if you completely disabled "antiphishing protection" before the test,
you may also change browser.safebrowsing.enabled from true (default) to false
to restore your previous setting
- close Firefox
- remove user.js from Firefox's profile directory (this is very important step, don't omit it)
Done.
What versions of Firefox are affected?
(Almost) all versions of Mozilla Firefox 2, i.e.: 2.0, 2.0.0.1, 2.0.0.2, etc., up to and including 2.0.0.18.
(They decided to disable so called
"phishing protection" in FF 2.0.0.19, ie. one of the latest release in stable FF2 line.)
Some versions of testing builds of Firefox 3 are affected as well, but not current trunk. It seems they eventually
decided that this "feature" isn't worth it and Firefox 3
doesn't include this particular mode of operation
anymore. However, Firefox 3 implements new protocol
which definitely has also potential for abuse from the side of so-called "phishing/malware protection provider".
More details soon. (In practice this means that Firefox 3 on default settings is potentially more privacy-invasive
than Firefox 2 on default settings.)
What about source code?
I am going to release it in the near future, under the terms of GPL (I am a big fan of free (as in "freedom") software and
open source).
It is written in PHP. Stay tuned and watch this space!
Why?
Well, I am not very happy that Mozilla is being taken over by Google and I am not happy
with implementation of privacy-invasive features like Google-antiphishing.
PL: Antyphishing w Firefoksie 2 od strony serwera
(nazwa kodowa projektu: "Firefox to spyware")
(Projekt dotyczący Firefoksa 3 jest na tej stronie.)
(Twój adres IP (jaki będzie widoczny w pliku logu): 38.107.191.101.)
(Losowo wygenerowany unikalny identyfikator (w ciasteczku) (który będzie widoczny w pliku logu, o ile ciasteczko będzie przesyłane): 797915b9ad0a60b86a4c745dae4c0979.
Możesz dzięki niemu odróżnić swoje połączenia od połączeń innych osób.)
Aktualna data i czas na serwerze: 22/Nov/2009 05:51 CET.
TO JEST CZYSTO EDUKACYJNY PROJEKT. DOWIEDZ SIĘ JAK NAJWIĘCEJ I UŻYWAJ GO NA WŁASNE RYZYKO!
(Przeczytaj proszę informacje zawarte w zewnętrznych linkach, jeśli coś nie jest jasne... Większość z nich jest jednakże po angielsku.)
(Zobacz tutaj związane zrzuty ekranu.)
W Mozilli Firefox 2 została wprowadzona tzw. "ochrona antyphishingowa" (która to funkcjonalność
była wcześniej dostępna jako rozszerzenie od Google).
Są dwa tryby działania: w pierwszym trybie (domyślnie włączonym) Firefox łączy się z Google
co pół godziny w celu odświeżenia lokalnej listy adresów "podejrzanych o phishing" (wysyła także ciasteczko od Google podczas tego procesu...). Drugi tryb
(który nie jest domyślnie włączony) jest także interesujący -- po włączeniu go przeglądarka uaktywnia wbudowaną funkcjonalność, która
wysyła (prawie) każdy odwiedzany adres (URL) do Google (albo kogoś innego) w czasie rzeczywistym, "na żywo",
w celu sprawdzenia go na liście "złych" adresów utrzymywanych po stronie serwera. Istnieje
możliwość zmiany domyślnego "dostawcy usługi antyphishing" na jakiś inny podmiot
niż Google (np. na twój własny serwer www).
Dzięki dostępności dokumentacji
oraz kodu źródłowego (głównie zawartość katalogów:
browser/components/safebrowsing/
oraz
toolkit/components/url-classifier/)
byłem w stanie stworzyć ten projekt w celu zademonstrowania, że Firefox faktycznie posiada
wbudowaną funkcjonalność polegającą na wysyłaniu pełnych odwiedzanych URLi. Jest jednak pewien szkopuł: trzeba
jakoś zmienić konfigurację Firefoksa po stronie klienta. Możemy w wygodny sposób użyć do tego celu
pliku user.js. Po prostu wybierz TEN LINK i zapisz go
jako "user.js" w katalogu (folderze) profilu Firefoksa
(zwróć uwagę, że ten krok można bardzo łatwo wykonać programowo).
Następnie uruchom (lub zrestartuj) Firefoksa, poprzeglądaj
jakieś strony i sprawdź dół PLIKU Z LOGAMI.
Powinieneś ujrzeć swoją całą historię przeglądania (tzn. odwiedzone adresy od czasu zmiany ustawień via user.js)!
Jest także zapisywanych kilka innych rzeczy:
twój adres IP, data i czas połączenia, unikalny identyfikator (z ciasteczka, jeśli jest dostępne) oraz łańcuch User-Agent (identyfikator przeglądarki).
(To są mniej więcej te same dane, które Google jest w stanie zebrać, kiedy włączysz tryb sprawdzania adresów w czasie rzeczywistym u Google; co więcej, Google jest
także w stanie połączyć te dane (za pośrednictwem ciasteczka) z zapytaniami, jakie wykonałeś w ich wyszukiwarce, z twoją aktywnością w GMailu
(o ile masz tam konto), itd. itp.)
Po testach (spróbuj np. poprzeglądać adresy typu https:// i ftp://; użyj przycisków "Wstecz" / "Do przodu" i sprawdź po tym plik z logiem;
zwróć też uwagę, że wysyłanie odwiedzanych URLi nie jest wykrywane przez "osobisty firewall" (np. na Windows),
gdyż ta funkcjonalność jest w pełni zintegrowana z samą przeglądarką i wykorzystuje standardowy protokół HTTP)
możesz chcieć spytać
Jak to teraz mogę wyłączyć?
(tzn. jak cofnąć zmiany spowodowane przez skopiowanie pliku user.js z linku, o którym była mowa wyżej?)
Cóż, istnieje kilka możliwości, ale prawdopodobnie najłatwiej jest tak:
- otwórz okno z opcjami (Linux: Edycja -> Preferencje...; Windows: Narzędzia -> Opcje),
następnie wybierz sekcję "Bezpieczeństwo" i odznacz "Informuj, jeśli oglądana witryna może być próbą oszustwa"
- kliknij OK, żeby zamknąć okienko Opcji / Preferencji
- zamknij Firefoksa
- usuń plik user.js z katalogu profilu Firefoksa (to jest bardzo istotny krok, nie pomiń go)
Zrobione. (Zwróć uwagę, że to kompletnie wyłącza "ochronę antyphishingową".)
Albo, alternatywnie, bardziej skomplikowany, ale też i bardziej skrupulatny sposób:
- wejdź na specjalną stronę about:config (po prostu napisz to w polu adresu i naciśnij Enter)
- wprowadź jako filtr browser.safebrowsing.provider.1
- skasuj wszystkie wartości (tzn. klikaj prawym przyciskiem myszy na każdej i wybierz Resetuj)
- wpisz inny filtr: browser.safebrowsing
- kliknij prawym przyciskiem myszy na browser.safebrowsing.dataProvider i wybierz Resetuj, żeby ustawić domyślną wartość (0)
- to samo w przypadku browser.safebrowsing.remoteLookups (false)
- jeśli całkowicie wyłączyłeś/aś "ochronę antyphishingową" przed testem,
możesz też zmienić browser.safebrowsing.enabled z true (domyślnie) na false,
żeby przywrócić swoje poprzednie ustawienie
- zamknij Firefoksa
- usuń plik user.js z katalogu profilu Firefoksa (to jest bardzo istotny krok, nie pomiń go)
Zrobione.
Jakich wersji Firefoksa tyczy się ten konkretny projekt?
(Prawie) wszystkich wersji Mozilli Firefox 2, czyli: 2.0, 2.0.0.1, 2.0.0.2, itd., włącznie z 2.0.0.18.
(Zdecydowano o wyłączeniu tzw. "ochrony przed
phishingiem" w wersji 2.0.0.19, czyli jednej z ostatnich w stabilnej linii FF2.)
We wcześniejszych wersjach testowych Firefoksa 3 także to działało, ale już nie w aktualnych. Wygląda na to, że ostatecznie
zdecydowano, że ta funkcjonalność nie jest warta zachodu i Firefox 3
nie obsługuje już więcej tego akurat konkretnego trybu.
Jednakże Firefox 3 implementuje nowy protokół,
który zdecydowanie także daje potencjalne pole do nadużyć ze strony tzw. "dostawcy usługi ochrony przed phishingiem/malwarem".
Więcej szczegółów wkrótce. (W praktyce oznacza to tyle, że na domyślnych ustawieniach Firefox 3 jest potencjalnie bardziej ingerujący w prywatność
niż Firefox 2 na domyślnych ustawieniach.)
Co z kodem źródłowym?
Zamierzam go upublicznić w najbliższej przyszłości, na licencji GPL (jestem dużym fanem open-source oraz wolnego (w sensie "wolności") oprogramowania).
Kod jest napisany w PHP. Obserwuj to miejsce.
Bartłomiej B. (aka "BartZilla" w Bugzilli Mozilli)