23.06.2015 | 15:27

Marcin Rybak

Jak łatwo zostać podsłuchanym w trakcie korzystania z Tora

Wszyscy świadomi użytkownicy Tora wiedzą, że ich ruch wychodzący z ostatniego węzła sieci może zostać podsłuchany. Badacze potwierdzili doświadczalnie, że niektóre węzły nie tylko podsłuchują, ale także wykorzystują skradzione dane.

W sieci Tor jest ponad 1400 węzłów wyjściowych przez które ruch użytkowników trafia do internetu. Ile z nich podsłuchuje? Tego nie wiemy. Wiemy natomiast, że 7 nie tylko podsłuchuje, ale także wykorzystuje przechwycone dane. Co gorsze, dwa z nich posiadają flagę Guard, która świadczy o ich teoretycznym statusie zaufanym.

Nie musi być pięknie

Autorzy projektu BADONIONS postanowili stworzyć serwis wykorzystujący domenę zawierającą frazę „bitcoinbuy” a następnie przez każdy z węzłów sieci Tor próbowali zalogować się do subdomeny admin.wykupionadomena.tld korzystając z unikalnego hasła. Efekty już przybliżyliśmy powyżej, teraz pora na szczegóły. Autorom projektu zależało na efektywności. Tworząc serwis przypominający giełdę BTC stworzyli formularz logowania wraz z filtrem captcha który jako parametry logowania przyjmował login admin i losowo generowane (przy pomocy binascii.b2a_hex) hasło z przyrostkiem sbtc (przyrostek jak przypuszczamy miał na celu eliminację podejrzanych i przypadkowych prób łamania siłowego).

Ekran logowania

Ekran logowania

Sam skrypt stojący za stroną logowania przyjmował każde hasło zakończone wspomnianym wcześniej przyrostkiem sbtc, jak również po zalogowaniu pokazywał całkowicie losowe ilości posiadanych środków.

Ekran użytkownika dostępny po zalogowaniu

Ekran użytkownika dostępny po zalogowaniu

Strona główna była kopią legalnie działającego serwisu wspomagającego handel BTC wraz z dopiskiem, że użytkownik nie może obecnie się zalogować, gdyż trwają prace związane z przenoszeniem środków pomiędzy portfelami BTC.

Frontend już za nami, teraz pora na backend

Przy pomocy API sieci Tor i prostego skryptu w Pythonie badacze wygenerowali listę wszystkich węzłów wyjściowych oraz losowych haseł do logowania się do wcześniej przygotowanego panelu administracyjnego.  Serwer stojący za stroną www zapisywał wszystkie parametry przekazywane przez formularz logowania takie jak: login, hasło, user-agent, adres IP oraz domenę źródłową.

Przygotowany robot starał się zachowywać maksymalnie poprawnie. Po pierwsze jego user-agent był ustawiony na identyczny jak ten, którym przedstawia się paczka Tor Browser. Po drugie w pierwszej kolejności wchodził na stronę główną serwisu, następnie po kilku sekundach przechodził na subdomenę panelu administracyjnego, próbował się zalogować jeden jedyny raz przy pomocy loginu, hasła oraz kodu captcha.

Takie zapytanie pozostawiało ślad zarówno po stronie serwera WWW:

UA=Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0
[17/Jun/2015:21:38:01 -0400] "GET / HTTP/1.1" 200 1151 "-" "UA"
[tutaj odwołania do plików CSS, obrazków itp.]
[17/Jun/2015:21:38:08 -0400] "GET / HTTP/1.1" 200 593 "-" "UA"
[17/Jun/2015:21:38:15 -0400] "POST /adminlogin.php HTTP/1.1" 200 1151 "-" "UA"
[tutaj odwołania do plików CSS, obrazków itp.  w panelu administratora]

Jak i logów robota:

f88824b8b4sbtc- 65.181.112.176 - Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0 - 2015-06-04 - 06:44:25
f88824b8b4sbtc- 95.187.208.34 - Mozilla/5.0 (Windows NT 6.3; rv:38.0) Gecko/20100101 Firefox/38.0 - 2015-06-04 - 07:59:21

Cała komunikacja odbywała się poprzez nieszyfrowane połączenie HTTP, tak by węzeł końcowy widział całą komendę POST wyglądającą następująco:

username=admin&password=d25799f05fsbtc&captcha=834kwv

Statystyką łatwiej ogarnąć całość…

  • Każdy z około 1400 węzłów przetestowany był około 95 razy, co dało łącznie 137319 prób
  • W przypadku 99271 próba wyszła pozytywnie (kilka z węzłów nie odpowiadało, kilka nie pozwalało na komunikację przez port 80).
  • Serwis odnotował 137981 wizyt (wyłączając roboty, boty itp., które mimo, że strona uniemożliwiała indeksowanie odnalazły ją).
  • 16 razy unikalne hasło zostało użyte dwukrotnie
  • 12 prób logowania z błędnym hasłem
  • Z serwera zaserwowano 27,4 GB danych, robot przesłał 21,5GB przez sieć TOR.

… a następnie ją podsumować

W przypadku siedmiu węzłów ktoś próbował się logować do fałszywego panelu administracyjnego tym samym hasłem, jakiego użyto w połączeniu testowym. Co gorsza dwa ze złośliwych węzłów to węzły typu Guard, czyli takich które są w sieci TOR ponad 68 dni. Poniżej lista węzłów podsłuchujących i wykorzystujących cudze hasła:

27D0D46ABB0DA73E36CA806FDF51F9CD184277AA
45E77FDAED9A699944CFBEE6AE5CBFD4407D2536
286779D08B62BC183398CCF7396F8A901291AB5A
3CE6388A27B8CF405B449A435F6D0AD5C7F82DCF
816CBF7FCF565F87195C6618FB2FAF8AE71B99F4

oraz wspomniane dwa węzły typu Guard:

5C83EF015106B21132BC602639FAF8D693330A7C
09A880567B0839B4085C2EC14002DE34AAFE8548

Pozamykać ich!

Autor eksperymentu zgłosił podejrzane węzły, ale jak sam przyznaje na reddicie nie do końca widzi powód by na jego życzenie je wyłączać. Nie są to oczywiście jedyne ataki tego typu w sieci Tor. Opisywaliśmy również przypadki podmiany plików exe pobieranych przez sieć TOR, lecz nikt również z tego powodu węzłów tych nie wyłączył.  Problem z możliwością podsłuchiwania przez węzły wyjściowe jest znany i należy podkreślić, że TOR daje względną anonimowość, ale nie gwarantuje prywatności. Do jej realizacji niezbędne jest korzystanie z szyfrowania, na przykład TLS – choć i to nie w każdym przypadku okazuje się wystarczającym zabezpieczeniem.

Powrót

Komentarze

  • 2015.06.23 15:56 Tomek

    To, że węzły wyjściowe Tor podsłuchują ruch wychodzący i robią potem z tego faktu dalszy użytek, wiadomo od lat.

    Jeśli ktoś chce naprawdę bezpiecznie korzystać z sieci Tor, powinien się bezwzględnie stosować do tych 17 punktów:

    http://fajne.it/zelazne-zasady-dla-uzytkownikow-sieci-tor.html

    Punkt 8 zapobiega właśnie takim numerom, jak opisane wyżej + jeszcze analizie NetFlow, pozwalającej na częściową deanonimizację użytkownika.

    Stosujcie się do tych punktów, a będziecie bezpieczni.

    Odpowiedz
    • 2015.06.23 17:04 Marcin Rybak

      Tomek, a czytałeś ostatni akapit tego artykułu, lub chociaż ostatnie dwa zdania?
      Twój artykuł jest równie ciekawy, ale czy bedziesz go teraz wklejał wszędzie gdzie napiszemy o sieci TOR? :)

      Odpowiedz
      • 2015.06.23 21:14 Tomasz Klim

        Czytałem. Jeśli można, to mam taką drobną uwagę, że powinniście w artykułach (nie tylko na temat Tora) kłaść odrobinę większy nacisk na uświadamianie mniej zaawansowanych technicznie czytelników, jak opisywany problem może wpłynąć na ich życie.

        W przypadku Tora to jest szczególne ważne, bo niewłaściwy sposób korzystania z niego może skończyć się np. dożywotnim pozbawieniem wolności (niedawno opisywaliście taki przypadek), ale podobnie jest też w innych artykułach – np. o wadliwych routerach, słabo zabezpieczonych giełdach BitCoina itd.

        Chodzi mi po prostu o sytuację, gdy ktoś zorientowany podeśle linka do artykułu komuś niezorientowanemu – aby ten nie musiał się domyślać, o co tu chodzi, tylko miał takie „streszczenie dla niezorientowanego”.

        Odpowiedz
        • 2015.06.24 07:54 B&B

          Czyli gdyby starym zwyczajem była sekcja 'co robić, jak żyć’ to by było miło ;)

          Odpowiedz
          • 2015.06.24 11:05 Marcin Rybak

            B&B nie pomyliłeś portali? :)

          • 2015.06.24 12:11 B&B

            Prawda :D

        • 2015.06.24 11:05 Marcin Rybak

          Czy jesli ktoś zrobi coś złego, przy użyciu TORa, to jesli pójdzie za to do wiezienia to jest w tym coś złego? Sprawiedliwosć ma to do siebie, że dosięga tych co robią źle.

          Odpowiedz
          • 2015.06.24 11:38 Tomasz Klim

            Kompletnie nie w tym rzecz. Analogicznie można by zaraz wyprowadzić tezę, że jak ktoś jest leniwym laikiem IT i przez to ktoś inny mu podmienił DNS-y na wadliwym routerze, co doprowadziło do logowania na fałszywej stronie banku i kradzieży pieniędzy z konta, to też jest w tym pewien rodzaj sprawiedliwości.

            Tyle, że to jest strona o technologii, a nie o sprawiedliwości. Więc skupiajmy się wyłącznie na technologii, jej prawidłowym użyciu i jej wpływie na życie ludzi (włączając właśnie laików IT), nie osądzajmy zaś nikogo, czym się zajmuje w innych aspektach życiowych.

  • 2015.06.23 16:20 BGP Admin

    Z czego wynika pewność, że hasła zostały podsłuchane przez węzły sieci TOR, a nie gdzieś po drodze między ostatnimi węzłami sieci TOR a serwerem HTTP?

    Odpowiedz
    • 2015.06.23 16:28 Marcin Rybak

      nie ma pewności, jest prawdopodobieństwo

      Odpowiedz
      • 2015.06.23 16:47 BGP Admin

        Pytanie brzmi, czy jeśli wykonać analogiczny test z 1400 miejsc rozsianych po całym świecie, logując się na analogicznie przygotowany serwer HTTP podobną liczbę razy bez wykorzystania sieci TOR, wyniki nie byłyby porównywalne. Jeśli tak, całkowicie podważyłoby to opisany eksperyment. Brawo za pomysłowość dla autorów (atrapa serwisu itd.), ale IMHO przyjęli błędną tezę zakładając, że jeśli login i hasło zostaną podsłuchane, to winić należy węzeł TOR.

        Odpowiedz
        • 2015.06.23 16:58 Marcin Rybak

          Masz rację, jest jeszcze kilka możliwości testowania takiego rozwiązania (choćby poprzez zmianę lokalizacji serwera docelowego).

          Danymi z jakich adresów IP pochodziła komunikacja dysponuje autor testów, to również może przybliżyć prawdę. Dzięki Twojej sugestii zapytalem go o to, zobaczymy jaka będzie opowiedź.

          Odpowiedz
          • 2015.07.01 17:21 BGP

            Czy udało się uzyskać jakąś odpowiedź?

          • 2015.07.02 09:54 Marcin Rybak

            niestety nie, dwukrotnie kontaktowałem się z autorem, bez skutku

      • 2015.06.24 09:35 Adam

        przeciez pomoędzy pierwszym i ostatnim węzłem wszystko jest zaszyfrowane i to więcej niż 1 raz

        po 2 kto tworzy panel do giełdy btc (logowanie) bez szyfrowania ssl :P

        chyba że im BTC nie sa potrzebne :)

        Odpowiedz
        • 2015.06.24 11:01 Marcin Rybak

          pomiędzy 1 a ostatnim tak, ale pomiędzy ostatnim, a stronę badacza nie.

          to miał być test, gdyby podstaił to na https nic by nie zyskał :)

          Odpowiedz
  • 2015.06.23 20:19 Janek

    W jaki sposób zablokować te serwery wyjściowe w Tor Bundle?

    Odpowiedz
    • 2015.06.23 22:14 Marcin Rybak

      służy do tego opcja ExcludeExitNodes w pliku torrc.
      np.
      ExcludeExitNodes 27D0D46ABB0DA73E36CA806FDF51F9CD184277AA, 45E77FDAED9A699944CFBEE6AE5CBFD4407D2536, 286779D08B62BC183398CCF7396F8A901291AB5A, 3CE6388A27B8CF405B449A435F6D0AD5C7F82DCF, 816CBF7FCF565F87195C6618FB2FAF8AE71B99F4, 5C83EF015106B21132BC602639FAF8D693330A7C, 09A880567B0839B4085C2EC14002DE34AAFE8548
      oraz dostać opcję:
      StrictNodes 1
      która sprawi, że nie zdarzy się przypadkowo użycie któregokolwiek z wyłączonych węzłów

      Odpowiedz
  • 2015.06.23 20:51 filip

    ” prywatności” <– chyba poufności.

    Odpowiedz
  • 2015.06.24 14:19 Mareczek88

    W sumie nic nowego. Tego typu ataki miały miejsce w zeszłym roku na blockchain.info, gdzie skradziono niebagatelne kwoty BTC.

    Odpowiedz
  • 2017.08.13 13:06 sertws

    Ja korzystam z Advor+Cyberfox portable i tam można sobie ustalić węzeł wyjściowy i wejściowy i jaki silny ma być .I jak ktoś się zna na advor i wie jak być nie podsłuchiwany przez policję i jak ustawić advor .Pisać na gg 55004475

    Odpowiedz

Zostaw odpowiedź do Mareczek88

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Jak łatwo zostać podsłuchanym w trakcie korzystania z Tora

Komentarze