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

dodał 23 czerwca 2015 o 15:27 w kategorii Krypto, Prywatność  z tagami:
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.