Walka z Tor – blokowanie i atak.

Każdy medal ma dwie strony. To, że popieram prawo do anonimowości i wolności wypowiedzi nie znaczy, że nie rozumiem osób, które z różnych względów chciałyby ograniczyć dostępu do swojej sieci czy swojego serwisu użytkownikom sieci Tor. Poza tym, w znacznej mierze bawię się Torem, żeby lepiej poznać z czym wiążą się różne, zwłaszcza administracyjne aspekty sieci na sieci.

Sieć Tor z założenia ma sprzyjać anonimowości i omijaniu cenzury, a jak to wygląda w praktyce? Moim zdaniem, ma wiele słabości, chwilami sprawia po prostu broken by design. Ostatnio słychać było, o skompromitowaniu sieci Tor. Na blogu projektu Tor pojawiło się sprostowanie, wytykające błędy ale nie znaczy to, że różne słabości zupełnie nie istnieją.

Podstawową, znaną i opisaną w FAQ, słabością projektu, wynikającą z założeń projektowych jest, moim zdaniem, fakt, że publicznie dostępna, a przynajmniej trywialna do uzyskania jest lista wszystkich węzłów wyjściowych (exit node) i pośredniczących (relay node) Tora. Znacznie trudniej uzyskać listę bridge nodes, czyli węzłów służących wyłącznie do przyjęcia pierwszego połączenia od użytkownika, ale nie jest ona tak naprawdę potrzebna, by któryś duży gracz przeciwko Torowi mógł zaszkodzić sieci.

Niejawność bridge nodes wynikała z założeń projektu i z założenia miała służyć do tego, aby żaden ISP/kraj nie mógł w prosty sposób pozbawić swoich użytkowników możliwości połączenia z siecią Tor. I to zadanie spełnia przyzwoicie. Użytkownicy nadal mają możliwość uzyskania częściowych danych o bridge nodes z listy i podania ich ręcznie w swoim kliencie Tor, co w połączeniu ze zmiennymi IP bridge nodes bardzo utrudnia (o ile nie eliminuje) możliwości całkowitego zablokowania łączności z siecią Tor. Przynajmniej zablokowania opartego tylko o blokadę IP, nie analizę ruchu, ale to jakby zupełnie inny temat i skala trudności.

Natomiast mając listę węzłów końcowych, można je zablokować na wejściu do sieci czy dostępie do serwisu. Istnieją nawet serwisy, które zapewniają – mniej lub bardziej aktualne – gotowce. Ten serwis na przykład udostępnia aktualizowaną co godzinę blacklistę opartą na DNS z podziałem na węzły wychodzące i zwykłe.

Ale nie jest to jedyna metoda walki serwisów czy ISP z Torem. W praktyce mało kto, przynajmniej w naszym kraju, udostępnia węzeł wychodzący. Przyczyna jest prosta – dość szybko może skończyć się to (i kończy, nie mówię z własnego doświadczenia, ale słyszałem z pierwszej ręki o takich przypadkach) wizytą policji z powodu nadużyć z danego IP. Węzeł pośredniczący, o ile nie ma uruchomionej tzw. ukrytej usługi (hidden service) nie przechowuje ani nie udostępnia żadnych danych, więc jego uruchomienie w domu nie pociąga za sobą żadnych problemów (poza zużyciem części pasma).

Przynajmniej teoretycznie. W praktyce bowiem serwery serwisów nie lubiących Tora mogą sprawdzać nie tylko, czy użytkownik nie łączy się z IP na którym uruchomiony jest węzeł wychodzący, ale także czy połączenie nie jest z IP na którym uruchomiony jest węzeł pośredniczący i… także odmawiać dostępu. Przykładem jest choćby powyższy serwis z listami. Łącząc się z IP, na którym uruchomiony jest relay node zobaczymy:

Forbidden – TOR Node / Anonymous Proxy I’m sorry, but I really don’t see why anyone would need to use a TOR node or Anonymous Proxy server to look at my site. So i’m afraid you can’t look. Stop running TOR / using an anonymous proxy and you can view my site.

Przy względnie częstej aktualizacji listy węzłów (choćby wspomniana godzina), rozwiązanie takie praktycznie nie generuje skutków ubocznych dla serwisu, który ją wykorzystuje i minimalizuje ryzyko false positives, nawet przy zmiennym IP węzłów. Zakładając oczywiście, że lista jest prawidłowa i kompletna.

Zresztą, sami twórcy projektu Tor dają o to, żeby administratorzy którzy muszą blokować węzły wyjściowe Tora, mogli robić to w prosty sposób. Banowanie użytkowników sieci Tor także ma swój wpis w FAQ. Uprzykrzanie życia właścicielom relay nodes to już raczej otwarta wojna, której chcą uniknąć.

Skoro o otwartej wojnie mowa, gdyby jakieś państwo chciało unieruchomić sieć Tor, to obok blokowania bridge nodes może sięgnąć po (D)DoS (w sumie wystarczy zwykły flood) na – niekoniecznie szybkie – węzły pośredniczące. Węzły wyjściowe często są na dedykowanych maszynach i łączach, pośredniczące (tylko pośredniczące, każdy wyjściowy jest jednocześnie pośredniczącym) – niekoniecznie. Zresztą ponownie – istnieje strona podająca status sieci Tor, a na niej szczegółowe informacje o węzłach – rola, tzw. flagi, system, ilość przesyłanego ruchu… Zapewne można na jej podstawie szacować, jakie zasoby potrzebne są do przeprowadzenia ataku.

Przy okazji takie spostrzeżenie – ludzie z projektu Tor naprawdę wydają się skupieni na etyczny zastosowaniach i zapewnieniu anonimowości i wolności ludziom, którzy naprawdę tego potrzebują. I mocno liczą, że administratorzy serwisów to zrozumieją i nie będą w Torze widzieć wyłącznie narzędzia abuserów. W ciągu kilkudziesięciominutowej rozmowy, która się wywiązała na IRC przy okazji wspomnienia na temat tworzenia tego wpisu zostałem odesłany do paru prac naukowych (nie czytałem jeszcze, bo niezupełnie ten temat, podlinkowane poniżej). Atak totalny na tak szczytne przedsięwzięcie chyba nie bardzo mieści im się w głowie, natomiast zaprzątnięci są zapewnieniem anonimowości użytkownikom i pracują nad ulepszeniem możliwości łatwego i pewnego rozdzielenia węzłów wyjściowych od pośredniczących dla tych, którzy muszą blokować dostęp z sieci Tor.

Stąd moje wrażenie o broken by design może być przesadzone lub zwyczajnie mylne – zwyczajnie nie do tego i nie przy takich zastosowaniach było to projektowane… Generalnie Tor ma warstwy – z pozoru wygląda na bardzo prosty twór, ale im dalej się wgłębiać, tym ciekawsze nowe rzeczy się pojawiają. Przyznam, że sam nie grokuję Tora w pełni, stąd ten wpis, będący poniekąd próbą uporządkowania paru faktów.

Linki (które kiedyś mam nadzieję przeczytam, niekoniecznie o Torze):

Szybki rzut oka na polską chmurę czyli test e24cloud beta.

Jakiś czas temu serwis e24cloud, czyli polski hosting pod modnym szyldem chmury w wydaniu Beyond.pl, wszedł w fazę beta i publicznych testów, czyli praktycznie każdy chętny może – za darmo – pobawić się modną chmurą. Aktualnie firma rozdaje zaproszenia do testów o równowartości 200 zł, aby dostać kod należy postępować ze wskazówkami ze strony stwórz chmurę, czyli skorzystać z aplikacji na Facebooku.

Dłuższy wpis w trakcie tworzenia, a tymczasem szybki rzut oka na wady i zalety oferowanego testu (nie chciałbym, żeby było to traktowane jako test finalnej usługi, bo może się zmienić, poza tym parę kryteriów wybitnie testowych).

Wady:

  • brak IPv6 w domyślnej instalacji, brak możliwości wykupienia/wyklikania w panelu
  • przy pierwszym wyborze tylko 5 OS, w tym stary Debian (Lenny)
  • przy pierwszym wyborze konieczność wybrania 2 rdzeni
  • domyślne hasło roota tylko 8 znaków [a-zA-Z0-9]
  • 0,18 zł przy nieaktywnej (wstrzymanej) maszynie (2 CPU), 0,34 zł przy działającej
  • nie można dorzucić dodatkowych zasobów (CPU/RAM) do istniejącej maszyny
  • liczba CPU i RAM sztywno powiązane (każdy CPU to 2 GB RAM)
  • spora ilość błędów w panelu i słaba stabilność (nawet jak na wersję beta)
  • długi czas reakcji na zgłoszenie ticketa

Zalety:

  • maszyna szybko się generuje
  • wystarczający wybór presetów – siedem, w tym nowy Debian (Squeeze)
  • dostępny spory zakres sprzętu – 1-48 CPU i 2-96 RAM, dodatkowy HDD do 5 TB
  • 25 dni to wystarczający czas na przetestowanie
  • dobra wydajność (CPU)

Zabawa trwa, wkrótce można się spodziewać dłuższego i pełniejszego opisu testowanej usługi. Jeśli ktoś lubi się bawić, to pewnie warto skorzystać z darmowego testu, chociaż szału póki co nie ma.

UPDATE: W końcu otrzymałem odpowiedź na ticketa dotyczącego wyłączania się maszyny – wynika z błędu w panelu. Dodaję stosowny punkt, bo prawie 48h na prostą informację, że problem wynika z panelu to sporo. I usuwam niską stabilność usługi, bo wynika z błędów w panelu, nie w samej usłudze. Wiem, niby nieważne, czemu przestaje działać, ale jakoś wypada to oddzielić.

UPDATE: Widzę, że nadal jest trochę wejść z wyszukiwarek w poszukiwaniu informacji. Powyższe dane są stare i dotyczą wersji beta. Aktualna usługa jest zmieniona pod niektórymi względami. Aktualizacji danych lub nowego wpisu, chwilowo nie będzie, bo w tej chwili byłbym nieobiektywny.

Goodbye AdTaily.

Kończę zabawę z AdTaily. Wcześniej bywało lepiej lub gorzej, ale jak przeglądam stare wpisy na blogu, to były i problemy z widgetem, i z podejściem do klientów (wpadka z logowaniem), ale jakoś to funkcjonowało. Niemniej, z perspektywy patrząc, widać było pewien trend.

W międzyczasie pojawiło się trochę zmian. Pierwsza, to oczojebne irytujące animowane reklamy. Zniosłem. No dobrze, nie tyle zniosłem, co w pierwszej chwili nie zauważyłem, że takie paskudztwo się pojawiło. I raczej nie trafiały do mnie na blogi. Oczywiście system nie wspiera rozróżnienia animowane/statyczne od strony użytkownika – można albo włączyć moderację na wszystkie, albo na żadne. Czyli albo moderujesz ręcznie wszystkie reklamy, albo możesz któregoś dnia obudzić się z dyskoteką na blogu.

Do tego AdTaily przerzuciło obowiązek generowania danych do US na użytkownika (wcześniej wysyłali PIT, teraz tego nie robią). Czyli w żaden sposób nie pomaga w rozliczaniu podatku, choć robili to wcześniej na początku.

Kolejny przykład nie liczenia się ze zdaniem użytkownika, to włączenie wszystkim, na siłę, reklam CPC po ich wprowadzeniu. Często wspomnianych wcześniej animowanych. Znamienne wiemy lepiej, niż klient. Dodatkowo, nie ma nawet opcji moderacji po włączeniu CPC – albo wyświetlają się wszystkie, albo żadne. Czy CPC bywają animowane? Oczywiście, że tak. Czyli CPC też odpada, jeśli ktoś chce mieć minimum estetyki na stronie, a nie dyskotekę.

Gwoździem do trumny jest ostatnia decyzja, czyli kolejne wiemy lepiej, tym razem i w stosunku do wydawców, i reklamodawców. Chodzi oczywiście o arbitralnie ustalane czasy wyświetlania reklam, ironicznie nazwane lepszymi rezultatami kampanii reklamowych. AdTaily nie jest już elastyczne i dla małych. Teraz mniejsi obrywają terminami wyświetlania typu 90 dni. Kto tu kupi reklamę na 90 dni?! Raczej nikt. Ale tłumaczą, że klienci, którzy kupowali na krótki termin, nie wracali. Więc, jak prosili, zaufałem i zrobiłem test.

Zgodnie z przewidywaniami, w ciągu ponad miesięcznego testu od czasu wprowadzenia tej zmiany, nie została sprzedana ani jedna reklama, czyli przychód z reklam wykupionych w tym okresie wyniósł okrągłe zero. Nie wykupiono reklamy ani przez widget, ani przez sklep AdTaily (CPC wyłączyłem z uwagi na reklamy animowane). Ergo, AdTaily przestało dla mnie, jako wydawcy istnieć istnieć, a banner na stronie reklamował w tym czasie głównie AdTaily. Więc pora zakończyć współpracę i wypłacić pieniądze (szczęśliwie mam więcej, niż wynosi minimalna kwota wypłaty).

Nie jestem zdziwiony takim wynikiem ani obrotem sprawy. Ba, ten wpis napisałem w znacznej części blisko miesiąc temu i tylko dla formalności czekał na publikację. Bo nie trzeba być Sherlockiem, by przewidzieć wpływ tej decyzji. Sporo argumentów przeciw takiemu rozwiązaniu pojawiło się także w komentarzach do wpisu na Antyweb.

Na koniec mała statystyka. Pierwsze reklamy sprzedałem w maju 2009. Mamy październik 2011, więc 30 miesięcy. W ciągu tego czasu zebrało się, na obu blogach, wliczając w to CPC, niecałe 120 zł. Przeciętnie zawrotne niecałe 4 zł/m-c. Przed podatkiem. Litościwie pominę szczegółowe porównanie z LinkLift, którego reklamy nie są już niestety sprzedawane na Polskę (ale wykupione wcześniej nadal przynoszą dochód), dość powiedzieć, że za jednego tylko linka tekstowego na starym, nieutrzymywanym blogu otrzymałem od LinkLift znacznie więcej w tym czasie. Szkoda też, że ProLink wymaga kodu PHP i że nie ma on integracji z Blox.

No i właśnie ostatnia cecha, plus domyślne nie liczenie się ze zdaniem klienta, przekładające się na przymusowe bycie królikiem doświadczalnym skłaniają mnie do podjęcia takiej decyzji. Być może kiedyś wrócę do AdTaily, na razie jednak wolę pobawić się rozwiązaniami oferowanymi przez konkurencję.

Ostatecznie wczoraj, po miesiącu, AdTaily wycofało się ze sztywnej ilości dni, a dokładniej użytkownicy mogą wyłączyć sztywną ilość dni wyświetlania reklamy. Lepiej późno, niż wcale.

UPDATE: Jakby ktoś miał złudzenia, że AdTaily się przejmuje użytkownikiem i jego zdaniem, albo, że włączenie moderacji uchroni go przed pojawieniem się animacji to polecam ten tekst o tym, jak AdTaily moderuje reklamy za użytkownika. Cieszę się, że nie doczekałem tego.