Reklamy i inwigilacja przez WWW

Z funus.net
(Przekierowano z Blokowanie reklam)

Spis treści

[edytuj] Wstęp

Dzisiejsze WWW jest koszmarnie zaśmiecone reklamami. Krzyczące banery, fruwające wstawki flashowe, wyskakujące okienka... Wszystko to bardzo uprzykrza korzystanie z Internetu (choć niektórym zdaje się to - o dziwo - nie przeszkadzać).

O ile reklamy mają za zadanie jak najbardziej rzucać się w oczy, to druga kategoria niepożądanych treści działa wręcz odwrotnie: stara się ukryć swoją obecność na stronach WWW. Są to różnego rodzaju elementy trackingowe, szpiegujące użytkowników. Strona zawierająca taki element powoduje, że przeglądarka odwołuje się do serwera śledzącego, który zbiera cały szereg informacji: adres IP użytkownika, region geograficzny, ISP, adres strony, którą odwiedza, ustawienia językowe, dane o systemie operacyjnym i przeglądarce.

Wszystkie te dane, odpowiednio zagregowane i skojarzone z użytkownikiem pozwalają utworzyć jego profil; na przykład, na podstawie stron, które często odwiedza można określić jego zainteresowania. Stąd już tylko jeden krok do pełnej infiltracji: zdobycie danych osobowych użytkownika. A nie jest to takie trudne, wystarczy jeden sklepik internetowy kolaborujący z firmą trackingową. Sytuacja jest tym bardziej groźna, im bardziej rozpowszechnione są wstawki szpiegujące danej firmy; na przykład w Polsce szczególnie naprzykrza się firma Gemius SA. Ich wstawki szpiegowskie można znaleźć w witrynach komercyjnych i informacyjnych (np. http://gazeta.pl/), na stronach banków (np. http://www.mbank.com.pl/) czy biur maklerskich (np. http://www.dm.pkobp.pl/), partii politycznych (np. http://pis.org.pl/) a kiedyś były również w serwisie ministerstwa finansów.

Na szczęście niewielkim nakładem pracy można w dużym stopniu zabezpieczyć się przed obydwoma rodzajami zagrożeń.

[edytuj] Przeciwdziałanie

Bronić się przed niepożądanymi elementami stron WWW można na dwa sposoby: używając odpowiedniej przeglądarki bądź stosując serwer pośredniczący (proxy). A najlepiej połączyć obie metody.

[edytuj] Przeglądarki WWW

Współczesne przeglądarki internetowe są wyposażone, bądź umożliwiają zainstalowanie rozszerzeń pozwalających na blokowanie wskazanych elementów stron WWW. Użycie takich mechanizmów jest proste, dość wygodne i skuteczne w przypadku reklam: wystarczy wskazać niepożądany element (np. obrazek) i przeglądarka zapamiętuje, że ma go więcej nie pobierać.

Jak większość prostych rozwiązań, także i to ma swoje wady:

  • jeśli korzystamy z więcej niż jednej przeglądarki, w każdej trzeba będzie blokować te same reklamy; i oczywiście w każdej na inny sposób;
  • analogiczny problem występuje, gdy używamy więcej niż jednego komputera;
  • blokowanie reklam z poziomu przeglądarki jest na ogół zbyt szczegółowe: wskazując na przykład baner w formie obrazka zablokujemy tylko jego URL; ale na tym samym serwerze z reklamami może znajdować się jeszcze sto tysięcy innych banerów.

Niestety, funkcje blokujące udostępniane przez przeglądarki nie nadają się w praktyce do blokowania elementów szpiegowskich, które najczęściej nie są w ogóle widoczne na stronach WWW.

W przeglądarce internetowej należy zwrócić uwagę na dwa ustawienia, które umożliwiają serwisom WWW gromadzenie dodatkowych informacji o użytkownikach. Są to ciasteczka (cookies) i referrer logging.

[edytuj] Opera

Opera od wersji 9 ma wbudowaną funkcję Block Content, dostępną w menu kontekstowym. Po jej wybraniu przeglądarka przechodzi do trybu blokowania reklam. Można wskazać elementy do zablokowania; w praktyce ogranicza się to do obrazków.

Na plus trzeba zaliczyć to, że Opera stara się wykazać szczyptą inteligencji: po wskazaniu obrazka wybiera tylko początkową część jego URL-a, co zwiększa szanse na zablokowanie większej ilości śmieci niż tylko wskazanego elementu.

Wadą jest to, że Opera zupełnie nie radzi sobie z blokowaniem elementów we flashu oraz obrazków tła.

[edytuj] Firefox

Firefox umożliwia zainstalowanie rozszerzenia AdBlock, które pozwala blokować różne elementy, w tym obrazki, wewnętrzne ramki (IFRAMEs), tło. Ma ciekawą opcję Overlay Flash, która pozwala wskazać elementy flash do zablokowania. Ponadto pozwala obejrzeć listę wszystkich blokowalnych elementow a także utworzyć "białą listę".

[edytuj] Serwery proxy

Jak wynika z moich doświadczeń, bardzo skuteczną metodą pozbycia się niepożądanych elementów jest zainstalowanie i skonfigurowanie serwera pośredniczącego (proxy) a następnie takie ustawienie przeglądarek, by korzystały z tego serwera zamiast bezpośrednio łączyć się z Internetem.

Skuteczność stosowanie proxy bierze się z faktu, że zarówno reklamy jak i wstawki szpiegowskie pochodzą najczęściej z serwerów o odrębnych nazwach domenowych bądź zawierają w URL-ach charakterystyczne słowa jak ads lub banner. Dzięki temu łatwo jest takie elementy wychwycić i wyeliminować ograniczając się jedynie do dopasowywania URL-i do określonych wzorców.

Zalety rozwiązania wykorzystującego serwer proxy:

  • elastyczność konfiguracji
  • z serwera mogą korzystać wszystkie przeglądarki WWW
  • pliki konfiguracyjne proxy można przenieść na inne komputery
  • proxy umożliwia blokowanie elementów szpiegowskich, normalnie nie pokazywanych przez przeglądarki
  • możliwość, niejako przy okazji, skorzystania z funkcjonalności cache'a stron WWW

Wadą jest większy nakład pracy potrzebny na skonfigurowanie serwera proxy w porównaniu z wykorzystaniem funkcjonalności przeglądarek.

[edytuj] Squid

Squid jest pełnowartościowym, profesjonalnym serwerem proxy. Jego głównym zadaniem jest cache'owanie zawartości stron WWW w celu przyspieszenia ich pobierania. Niemniej jednak, dzięki rozbudowanemu mechanizmowi kontroli dostępu, można bez większego trudu osiągnąć funkcjonalność blokowania reklam oraz elementów szpiegowskich. Co zapewne będzie nie bez znaczenia dla wielu użytkowników, Squid jest dostępny w postaci binarnej także dla Windows.

[edytuj] Konfiguracja Squida

Po instalacji Squida w systemie zostanie zainstalowany domyślny plik konfiguracyjny (na ogół jest to /etc/squid/squid.conf). Najpierw należy umieścić w nim definicje dwóch nowych ACL-i (access control list):

acl badurls url_regex "/etc/squid/squid-badurls.conf"
acl badconn url_regex "/etc/squid/squid-badconn.conf"

Powyższe wpisy definiują dwie nowe listy dostępu o nazwach badurls i badconn. Słowo kluczowe url_regex oznacza, że dopasowanie adresów (URL) będzie wykonywane przy użyciu wyrażeń regularnych. Ostatnim elementem wiersza jest ścieżka do pliku, w którym należy umieszczać reguły dopasowania.

Definicje blokowanych elementów i adresów będziemy umieszczać głównie w pliku wskazanym w definicji ACL o nazwie badurls (/etc/squid/squid-badurls.conf w powyższym przykładzie). Drugi ACL, badconn zostanie wykorzystany do blokowania elementów na stronach pobieranych w połączeniach szyfrowanych.

Następnym krokiem jest użycie ACL-i badurls i badconn. W pliku squid.conf odnajdujemy sekcję z wierszami zaczynającymi się od http_access. Może ona wyglądać tak:

#Default configuration:
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
http_access allow localhost
http_access deny all

Pod komentarzem zachęcającym do wstawiania własnych reguł należy umieścić następujące dwa wiersze:

http_access deny badconn
http_access deny badurls

W efekcie otrzymamy:

#Default configuration:
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
http_access deny badconn
http_access deny badurls
http_access allow localhost
http_access deny all

Teraz tworzymy puste pliki wskazane w definicji ACL-i badurls i badconn, uruchamiamy Squida, konfigurujemy przeglądarki tak, by z niego korzystały i przystępujemy do najważniejszego etapu pracy.

[edytuj] Czarne listy

Przyszła kolej na najważniejsze zadanie, a więc zdefiniowanie czarnych list - wzorców URL-i, które chcemy blokować. Jest to robota iteracyjna - przeglądamy strony WWW i zaglądamy do logów Squida (/var/log/squid/access.log) w poszukiwaniu podejrzanych adresów.

Dla przykładu, obejrzyjmy stronę http://gazeta.pl/. Potem przejrzyjmy logi Squida. Powinniśmy znależć tam pewną liczbę odwołań, głównie do domeny gazeta.pl. Na przykład (żeby było czytelniej wklejam tylko fragmenty kilku wierszy logów):

TCP_MISS/200 326 GET http://www.gazeta.pl/info/hpN.css
TCP_MISS/200 43206 GET http://www.gazeta.pl/0,0.html
TCP_MISS/200 671 GET http://ad.gazeta.pl/ad/GetBan?dir=hp&jsp=30&dx=43346&t=1171733085637
TCP_MISS/200 1832 GET http://gazeta.hit.gemius.pl/_1171733088965/

Mamy dwa podejrzane URL-e:

  • http://ad.gazeta.pl/ad; prefiks ad wskazuje, że jest to serwer z reklamami; możemy go śmiało zablokować
  • http://gazeta.hit.gemius.pl/ - jest i wstawka szpiegowska (w rzeczywistości URL-e tego typu są bardzo długie i często zawierają zakodowany inny URL).

Oba paskudztwa blokujemy dodając do pliku badurls.conf następujące wpisy:

^http://ad\.gazeta\.pl/
^http://.*hit\.gemius\.pl/


Pierwszy z nich blokuje wszelkie URL-e zaczynające się od http://ad.gazeta.pl/. Drugi blokuje domeny o nazwie kończącej się na hit.gemius.pl, co załatwia nie tylko gazeta.hit.gemius.pl ale także często występujący pro.hit.gemius.pl.

Teraz należy skłonić Squida do ponownego przetworzenia plików konfiguracyjnych. W Debianie osiągnięmy to poleceniem:

/etc/init.d/squid reload

Pod Windows trzeba zrestartować serwis Squid.

W przeglądarce przeładowujemy stronę http://gazeta.pl/ i obserwujemy różnicę. Baner reklamowy powinien zniknąć. Dla pewności znowu sprawdzamy logi Squida.

TCP_DENIED/403 1050 GET http://ad.gazeta.pl/ad/GetBan?
TCP_DENIED/403 1832 GET http://gazeta.hit.gemius.pl/_1171733974173/

Wpisy zawierające TCP_DENIED oznaczają zablokowane odwołania.


Postępując w opisany sposób, po pewnym czasie zaczniemy zauważać, że strony WWW stają się coraz bardziej czytelne i przejrzyste a treść zyskuje przewagę nad reklamowym śmieciem ;-)

[edytuj] Privoxy

Privoxy to specjalizowany serwer proxy przeznaczony do filtrowania treści i zwiększenia prywatności użytkowników. Oprócz filtrowania URL-i ma jeszcze cały szereg dodatkowych właściwości, jak na przykład blokowanie obrazków o charakterystycznych dla banerów reklamowych rozmiarach.

Privoxy po instalacji jest wstępnie skonfigurowane do blokowania pewnych elementów. Niestety, nie uwzględnia polskich realiów, więc takie rzeczy jak hit.gemius.pl trzeba będzie dodać we własnym zakresie.

W przeciwieństwie do Squida, Privoxy nie cache'uje zawartości stron WWW. Można jednak zainstalować i Privoxy, i Squida a następnie podpiąć Privoxy do Squida jako nadrzędnego proxy.

Domyślna konfiguracja Privoxy jest chyba trochę zbyt agresywna - czasami niepotrzebnie usuwa pewne elementy, szczególnie obrazki. Oczywiście, zachowanie można w pełni dostosować do własnych potrzeb przy pomocy plików konfiguracyjnych.

Żeby osiągnąć efekt analogiczny jak w opisanym wyżej przykładzie dotyczącym Squida, w pliku konfiguracyjnym user.action należy zamieścić następujący fragment.

{+block}
ad.gazeta.pl
hit.gemius.pl
.hit.gemius.pl

[edytuj] Anonimowe proxy

Anonimowe serwisy proxy pozwalają w pewnym zakresie uzyskać anonimowość w Internecie. Można je podzielić na dwie kategorie:

  1. serwisy WWW;
  2. dedykowane anonimowe serwery.
[edytuj] Serwisy WWW

W internecie można znaleźć sporo serwisów, które oferują możliwość "anonimowego" przeglądania sieci. Żeby uzyskać jakąś sesnsowną funkcjonalność, zwykle trzeba uiścić opłatę. W podstawowym zakresie można jednak często korzystać z takich serwisów bezpłatnie.

[edytuj] Open proxies

c.d.n.


[edytuj] Zobacz też