Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Demaskowanie użytkowników sieci Tor: gdzie kończy się anonimowość w Darknecie 

Tagi:

W przeciwieństwie do konwencjonalnych technologii WWW metody trasowania cebulowego Tor wykorzystywane w Darknecie dają użytkownikom szansę zachowania anonimowości. Wielu użytkowników skwapliwie skorzystało z tej okazji – niektórzy zrobili to, aby chronić siebie lub z ciekawości, inni natomiast zapewnili sobie w ten sposób złudne poczucie bezkarności i dostrzegli możliwość anonimowego praktykowania szemranych interesów: handlu zakazanym towarem, dystrybucji nielegalnej zawartości itd. Jednak wydarzenia, jakie nastąpiły później, np. zatrzymanie twórcy strony Silk Road, jednoznacznie pokazały, że tego rodzaju działania nie były tak anonimowe jak przypuszczano.      

Służby wywiadowcze nie ujawniły żadnych szczegółów technicznych dotyczących zatrzymania cyberprzestępców, którzy stworzyli strony Tor w celu dystrybucji nielegalnego towaru. Nie zdradzają również, w jaki sposób identyfikują cyberprzestępców, którzy działają w sposób anonimowy. To może oznaczać, że darknetowa implementacja sieci Tor zawiera kilka luk w zabezpieczeniach oraz/lub błędy w konfiguracji, które umożliwiają zdemaskowanie każdego jej użytkownika. W badaniu tym zaprezentujemy praktyczne przykłady ilustrujące, w jaki sposób użytkownicy sieci Tor mogą stracić anonimowość, i wyciągniemy wnioski z tych przykładów.    

W jaki sposób użytkownicy sieci Tor są przypierani do muru?

Historia Darknetu kryje wiele prób – zarówno teoretycznych jak i praktycznych – zidentyfikowania anonimowych użytkowników. Wszystkie je można podzielić na dwie grupy: ataki po stronie klienta (przeglądarka) oraz ataki na samo połączenie.

Problemy w przeglądarkach internetowych

Dokumenty, które wyciekły z NSA, sugerują, że agencje wywiadowcze nie mają żadnych skrupułów odnośnie wykorzystywania exploitów dla Firefoxa, na którym opierała się przeglądarka Tor. Jednak, jak donosi NSA w swojej prezentacji, stosowanie narzędzi do wykorzystywania luk w zabezpieczeniach nie zapewnia ciągłego monitoringu użytkowników sieci Darknet. Exploity posiadają bardzo krótki cykl życia, dlatego w danym momencie istnieją różne wersje przeglądarki, z czego niektóre zawierają określoną lukę w zabezpieczeniach, inne natomiast nie. To pozwala monitorować jedynie bardzo niewielką grupę użytkowników. 

deanonimizator_en_1_auto.jpg

Dokumenty NSA, które wyciekły, w tym informacje o tym, jak można ujawnić tożsamość użytkowników sieci Tor (Źródło: www.theguardian.com)

Oprócz tych pseudooficjalnych dokumentów społeczność użytkowników sieci Tor jest świadoma również innych, bardziej interesujących i prostych ataków po stronie klienta. Na przykład badacze z Massachusetts Institute of Technology ustalili, że Flash tworzy dedykowany kanał komunikacji ze specjalnym serwerem cyberprzestępcy, który przechwytuje rzeczywisty adres IP klienta i całkowicie dyskredytuje ofiarę. Jednak twórcy przeglądarki Tor błyskawicznie zareagowali na ten problem, wyłączając obsługę zawartości Flash ze swojego produktu. 

deanonimizator_en_2.jpg

Flash jako sposób ustalenia rzeczywistego adresu IP ofiary (Źródło: http://web.mit.edu)

Inna, nowsza metoda włamywania się do przeglądarki internetowej jest implementowana przy użyciu WebRTC DLL. Celem tej biblioteki DLL jest tworzenie kanału transmisji strumieniowej wideo obsługującego HTML5. Podobnie do opisanego wyżej kanału Flash pozwalała ona na ustalenie rzeczywistego adresu IP ofiary. Tzw. żądania STUN WebRTC są wysyłane za pomocą czystego tekstu, co pozwala obejść sieć Tor i wszelkie wynikające z tego konsekwencje. Jednak ta „wada” również została szybko naprawiona przez twórców przeglądarki Tor, która teraz blokuje WebRTC domyślnie. 

Ataki na kanał komunikacji

W przeciwieństwie do ataków na przeglądarkę ataki na kanał pomiędzy klientem Tora a serwerem zlokalizowanym wewnątrz lub poza siecią Darknet wydają się nieprzekonujące. Jak dotąd większość koncepcji została zaprezentowana przez badaczy w warunkach laboratoryjnych i nie przedstawiono jeszcze żadnych weryfikacji koncepcji „na wolności”. 

Wśród tych prac teoretycznych na szczególną wzmiankę zasługuje jeden podstawowy tekst – opiera się on na analizie ruchu wykorzystującego protokół NetFlow. Autorzy tego badania wierzą, że osoba atakująca potrafi analizować wpisy NetFlow na ruterach, które stanowią bezpośrednie węzły sieci Tor lub są zlokalizowane w pobliżu nich. Wpis NetFlow zawiera następujące informacje:    

  • Numer wersji protokołu;
  • Numer wpisu;
  • Wejściowy i wyjściowy interfejs sieci;
  • Czas nagłówka strumienia i końca strumienia;
  • Liczba bajtów i pakietów w strumieniu;
  • Adres źródła i miejsca przeznaczenia;
  • Port źródła i miejsca przeznaczenia;
  • Numer protokołu IP;
  • Wartość typu usługi;
  • Wszystkie flagi zaobserwowane podczas połączeń TCP;
  • Adres bramy;
  • Maski podsieci źródła i przeznaczenia.

Praktycznie wszystko to identyfikuje klienta.

deanonimizator_en_3_auto.jpg

Ustalenie tożsamości klienta sieci Tor na podstawie analizy ruchu
(Źródło:
https://mice.cs.columbia.edu)

Tego rodzaju badanie oparte na analizie ruchu wymaga dużej liczby punktów obecności w sieci Tor, jeśli osoba atakująca chce ustalić tożsamość dowolnego użytkownika w dowolnym czasie. Z tego powodu takie badania nie zainteresują indywidualnych badaczy, chyba że będą posiadali ogromną pulę zasobów komputerowych. Dlatego też przyjmiemy inną taktykę i przyjrzymy się bardziej praktycznym metodom analizy aktywności użytkownika sieci Tor.

System aktywnego monitorowania

Aby dowiedzieć się więcej na temat użytkownika sieci Darknet, musimy sprowokować go do ujawnienia jakichś danych dotyczących środowiska. Innymi słowy, potrzebujemy aktywnego systemu gromadzenia danych. 

Ekspert z Leviathan Security odkrył sporą liczbę węzłów wyjścia i przedstawił obrazowy przykład systemu aktywnego monitoringu. Węzły różniły się od innych węzłów wyjścia, ponieważ wstrzykiwały szkodliwy kod do przepływających przez nie plików binarnych. Gdy klient pobierał plik z internetu wykorzystując do tego sieć Tor w celu zachowania anonimowości, szkodliwy węzeł wyjścia przeprowadzał atak MITM i umieszczał szkodliwy kod w pobieranym pliku binarnym. 

Incydent ten dobrze ilustruje koncepcję aktywnego systemu monitoringu; jednocześnie doskonale pokazuje jego drugą stronę: wszelka aktywność na węźle wyjścia (taka jak manipulacja ruchem) zostaje szybko i łatwo zidentyfikowana przez automatyczne narzędzia, a węzeł ten jest natychmiast umieszczany na czarnej liście przez społeczności sieci Tor.

Zacznijmy od początku

HTML5 dał nam nie tylko WebRTC, ale również interesujący znacznik „canvas”, którego celem jest tworzenie obrazów - mapy bitowej z pomocą JavaScript. Znacznik ten w charakterystyczny sposób przetwarza obrazy: każda przeglądarka internetowa przetwarza obrazy inaczej w zależności od takich czynników jak:   

  • Różne sterowniki grafiki oraz komponenty sprzętu zainstalowane po stronie klienta;
  • Różne zestawy oprogramowania w systemie operacyjnym oraz różne konfiguracje środowiska oprogramowania.

Parametry przetworzonych obrazów mogą jednoznacznie wskazać przeglądarkę internetową i jej oprogramowanie jak również środowisko sprzętowe. Na podstawie tej szczególnej cechy można stworzyć tzw. cyfrowy odcisk palca. Technika ta nie stanowi nowości – jest wykorzystywana np. przez niektóre internetowe agencje reklamowe do śledzenia zainteresowań użytkowników. Jednak nie wszystkie jej metody można zaimplementować w przeglądarce Tor. Na przykład, superciasteczka nie mogą być wykorzystywane w przeglądarce Tor. Flash i Java są domyślnie wyłączone, a wykorzystywanie czcionki ograniczone. Niektóre inne metody wyświetlają powiadomienia, które mogą ostrzec użytkownika. 

Dlatego też nasze pierwsze próby stworzenia odcisku cyfrowego canvas wykorzystujące funkcję getImageData(), która wyodrębnia dane dot. obrazu, zostały zablokowane przez przeglądarkę Tor:

deanonimizator_en_6.png

Jednak niektóre luki nadal pozostają niezałatane, przez co można stworzyć odciski cyfrowe w sieci Tor bez wywoływania powiadomień.

Poznamy ich po czcionce

Przeglądarka Tor może zostać zidentyfikowana przy pomocy funkcji measureText(), która mierzy szerokość tekstu przetwarzanego w znaczniku canvas:

deanonimizator_en_7.jpg

Wykorzystanie measureText() do zmierzenia rozmiaru czcionki, która jest unikatowa dla systemu operacyjnego

Jeśli szerokość czcionki ma unikatową wartość (czasami jest to wartość liczby zmiennoprzecinkowej), wtedy możemy zidentyfikować przeglądarkę, w tym przeglądarkę Tor. Przyznajemy, że w niektórych przypadkach wartości szerokości czcionki mogą być takie same dla różnych użytkowników.

Należy zauważyć, że nie jest to jedyna funkcja, która przyjmuje unikatowe wartości. Inną taką funkcją jest getBoundingClientRect(), która może przyjąć wysokość i szerokość prostokątnej ramki tekstu. 

Kiedy społeczność dowiedziała się o problemie tworzenia odcisków cyfrowych użytkowników (jest to również istotne dla użytkowników przeglądarki Tor), wystosowano odpowiednią prośbę. Jednak twórcy przeglądarki Tor nie spieszą się z usunięciem tego błędu w konfiguracji, twierdząc, że umieszczenie takich funkcji na czarnej liście jest nieskuteczne.

deanonimizator_en_8_auto.png

Oficjalna odpowiedź twórcy Tora na problem przetwarzania czcionki

Próby terenowe

Metoda ta została zastosowana przez badacza o pseudonimie „KOLANICH”. Przy użyciu obu funkcji, measureText() i getBoundingClientRect(), napisał skrypt, przetestował go lokalnie w różnych przeglądarkach i uzyskał unikatowe identyfikatory.

Stosując tę samą metodologię, próbowaliśmy stworzyć sygnaturę cyfrową przeglądarki Tor w różnych środowiskach oprogramowania i sprzętu.

W celu rozwiązania problemu wykorzystaliśmy blog jednego z autorów i osadziliśmy JavaScript, który wykorzystuje funkcje measureText() oraz getBoundingClientRect(), do zmierzenia czcionek przetwarzanych w przeglądarce internetowej użytkownika odwiedzającego stronę internetową. Skrypt ten wysyła zmierzone wartości w żądaniu POST do serwera sieciowego, który z kolei zapisuje to żądanie w dzienniku.

deanonimizator_en_9_auto.jpg

Fragment dziennika serwera sieciowego z widocznym odciskiem cyfrowym przeglądarki Tor

W tym czasie gromadziliśmy wyniki działania tego skryptu. Do dziś wszystkie zwrócone wartości są unikatowe. W odpowiednim czasie opublikujemy raport prezentujący wyniki.

Możliwe implikacje praktyczne

W jaki sposób można wykorzystać tę koncepcję w realnych warunkach w celu zidentyfikowania użytkowników przeglądarki Tor? Opisany wyżej kod JavaScript może być zainstalowany na kilku obiektach, które uczestniczą w ruchu danych w sieci Darknet: 

  • Węzeł wyjścia. Wykonywany jest atak MITM, podczas którego kod JavaScript jest wstrzykiwany do wszystkich stron internetowych odwiedzanych przez użytkownika Darknetu w sieci WWW.
  • Wewnętrzne zasoby cebulowe oraz zewnętrzne strony internetowe kontrolowane przez osoby atakujące. Na przykład, osoba atakująca uruchamia „drzwi’ lub stronę internetową stworzoną specjalnie dla określonych użytkowników i tworzy odciski cyfrowe wszystkich odwiedzających.
  • Wewnętrzne i zewnętrzne strony internetowe, które są podatne na exploity wykorzystujące luki cross-site scripting (XSS). 

deanonimizator_en_10_auto.jpg

Obiekty, które mogłyby stworzyć odcisk cyfrowy użytkownika sieci Tor

Interesujący jest szczególnie ostatni obiekt. Przeskanowaliśmy około 100 zasobów cebulowych w poszukiwaniu luk (zasoby te znajdowały się w dziennikach biernego systemu monitoringu) i odfiltrowaliśmy „fałszywe trafienia”. Odkryliśmy, że około 30% analizowanych zasobów Darknetu jest podatnych na ataki cross-site scripting.

To oznacza, że stworzenie farmy węzłów wyjścia nie jest jedyną metodą, jaką może zastosować osoba atakująca w celu ustalenia tożsamości użytkownika. Osoba atakująca może również włamać się do stron internetowych i stworzyć „drzwi”, umieścić tam kod JavaScript i zebrać bazę danych unikatowych odcisków cyfrowych.

deanonimizator_en_11_auto.jpg

Proces ustalania tożsamości użytkownika sieci Tor

Osoby atakujące nie ograniczają się do wstrzykiwania kodu JavaScript do legalnych stron internetowych. Istnieje więcej obiektów, do którym można wstrzyknąć kod JavaScript, co zwiększa liczbę możliwych punktów obecności, w tym wewnątrz sieci Darknet.   

Stosując takie podejście, osoba atakująca teoretycznie mogłaby dowiedzieć się, jakie strony zawierają interesujące tematy dla użytkownika o unikatowym odcisku cyfrowym „c2c91d5b3c4fecd9109afe0e” i na których stronach loguje się ten użytkownik. W efekcie, osoba atakująca poznałaby profil użytkownika w zasobie sieciowym oraz jego historię surfowania.

Zamiast podsumowania

Na oficjalnej stronie internetowej projektu Tor twórcy zamieścili odpowiedź na pytanie „dlaczego przeglądarka Tor nie zezwala na JavaScript?”

deanonimizator_en_12_auto.jpg

Oficjalna odpowiedź twórców przeglądarki Tor na pytanie o JavaScript

Z odpowiedzi wynika, że nie powinniśmy oczekiwać od twórców, że wyłączą kod JavaScript w przeglądarce Tor.