Bitcoin – Anonimowość zakupu i sprzedaży waluty # Bezpieczeństwo # Seria cz.2

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:

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:

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.

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.

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). 
  • 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.

  • 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?”

  • Oryginalny artykuł (przypis) – dane dotyczące autora (Bitcoin.edu.pl udostępnia jedynie w formie cyfrowej) :
  • http://securelist.pl/analysis/7318,demaskowanie_uzytkownikow_sieci_tor_gdzie_konczy_sie_anonimowosc_w_darknecie.html

Pamiętajcie zawsze o jednym. Uczciwi ludzie działają po jasnej stronie mocy i nie muszą się niczego obawiać. Nad bezpieczeństwem użytkowników internetu w Polsce sprawuje piecze i chroni konkretnie ta instytucja. 

 

Jeżeli w związku z zakupami obecnie dokonujecie jakichkolwiek zakupów, róbcie to przez sprawdzonych sprzedawców – giełdy kryptowalut (każdą firmę można zweryfikować na forach internetowych, opinie).

Zachowajcie szczególną ostrożność – wystrzegajcie się oszustów i wszystko będzie w porządku.

Zwyczajowo już proponowane przez Bitcoin.edu.pl filmy na weekend : 

 

Dodaj komentarz