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).
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.
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.
Komentarze
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.
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? :)
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”.
Czyli gdyby starym zwyczajem była sekcja 'co robić, jak żyć’ to by było miło ;)
B&B nie pomyliłeś portali? :)
Prawda :D
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.
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.
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?
nie ma pewności, jest prawdopodobieństwo
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.
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ź.
Czy udało się uzyskać jakąś odpowiedź?
niestety nie, dwukrotnie kontaktowałem się z autorem, bez skutku
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 :)
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ł :)
W jaki sposób zablokować te serwery wyjściowe w Tor Bundle?
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
” prywatności” <– chyba poufności.
W sumie nic nowego. Tego typu ataki miały miejsce w zeszłym roku na blockchain.info, gdzie skradziono niebagatelne kwoty BTC.
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