Infrastruktura Darknetu pod lupą – Onion Services, warstwy pośrednie i punkty deanonymizacji
Informatyka

Infrastruktura Darknetu pod lupą – Onion Services, warstwy pośrednie i punkty deanonymizacji

Infrastruktura Darknetu pod lupą – Onion Services, warstwy pośrednie i punkty deanonymizacji

W poprzednich częściach serii o Darknecie przeszliśmy już od podstaw Tora do znacznie bardziej zaawansowanych zagadnień: korelacji ruchu, OSINT, blockchain intelligence, fingerprintingu oraz OPSEC.

Teraz warto zejść jeszcze poziom niżej.

Nie będziemy już pytać:

„Czym jest Darknet?”

To zostało wielokrotnie opisane.

Ciekawsze pytanie brzmi:

Jak naprawdę wygląda infrastruktura usługi działającej w Darknecie i gdzie mogą powstać punkty, które osłabiają jej anonimowość?

Bo samo .onion nie oznacza:

.onion
=
niewidzialność

Znacznie trafniejszy model wygląda tak:

Client
   ↓
Tor
   ↓
Onion Service
   ↓
Application
   ↓
Backend
   ↓
Database
   ↓
External Services

I właśnie te dodatkowe warstwy są niezwykle interesujące z punktu widzenia cyberbezpieczeństwa.


Onion Service nie jest „magicznym serwerem”

Usługi Onion Services zostały zaprojektowane tak, aby ukrywać lokalizację serwera przed klientem.

W klasycznym modelu:

Client
   ↓
Internet
   ↓
Server IP

klient komunikuje się z konkretnym adresem serwera.

W przypadku usługi .onion architektura jest znacznie bardziej złożona.

Można ją uprościć do:

Client
   ↓
Tor network
   ↓
Rendezvous mechanism
   ↓
Onion Service

Klient nie musi znać publicznego adresu IP serwera.

Więcej informacji o tej architekturze znajduje się w artykule Netbe:

Jak działa mechanizm „Onion Services” (usługi .onion) od strony technicznej.


Problem zaczyna się za Onion Service

Największym błędem jest traktowanie całej infrastruktury jako jednego elementu.

W rzeczywistości możemy mieć:

          Tor
           |
     Onion Service
           |
      Web Server
           |
     Application
       /       \
 Database     Storage
       |
 External API

Sam Tor może prawidłowo ukrywać warstwę sieciową.

Ale aplikacja może komunikować się z usługami znajdującymi się poza tym środowiskiem.

I właśnie tutaj pojawia się interesujący problem:

anonimowość warstwy transportowej nie musi oznaczać anonimowości całej aplikacji.


Warstwa aplikacyjna może ujawnić więcej niż sieć

Załóżmy, że usługa działa jako:

https://example.onion

Użytkownik widzi tylko adres Onion.

Ale aplikacja może generować:

  • identyfikatory sesji,
  • informacje o wersji,
  • komunikaty błędów,
  • charakterystyczne nagłówki,
  • ścieżki zasobów,
  • nazwy komponentów,
  • informacje o konfiguracji.

Nie oznacza to automatycznie deanonymizacji.

Oznacza natomiast możliwość stworzenia fingerprintu infrastruktury.


Infrastructure fingerprinting

Fingerprinting nie musi dotyczyć wyłącznie przeglądarki.

Może dotyczyć również serwera.

Przykładowo:

Server
 ↓
HTTP behavior
 ↓
Error handling
 ↓
Headers
 ↓
Application structure
 ↓
Software characteristics

Jeżeli dwie pozornie niezależne usługi mają bardzo podobne charakterystyki, analityk może zacząć badać ich potencjalne powiązanie.

To podobna koncepcja do fingerprintingu użytkownika, ale przeniesiona na poziom infrastruktury.


Nie trzeba znać IP, żeby rozpoznać infrastrukturę

To bardzo ważna różnica.

Deanonymizacja nie zawsze musi wyglądać:

.onion
   ↓
IP
   ↓
Serwer

Może wyglądać:

.onion
   ↓
Infrastructure Fingerprint
   ↓
Related Service
   ↓
Additional Evidence

Czyli identyfikacja może rozpocząć się od charakterystycznych cech systemu, a nie od bezpośredniego odkrycia adresu IP.


Błędy konfiguracji są równie ważne jak kryptografia

Można stworzyć bardzo zaawansowaną architekturę Tora, a następnie popełnić banalny błąd konfiguracyjny.

Przykładowy model:

Secure Layer
     ↓
Tor
     ↓
Onion Service
     ↓
Poorly Configured Backend

Najbardziej zaawansowana warstwa nie naprawi słabej konfiguracji kolejnej.

To klasyczny problem bezpieczeństwa:

całość jest tak bezpieczna, jak najsłabszy istotny element architektury.


External services – ukryty punkt styku

Nowoczesne aplikacje rzadko działają całkowicie samodzielnie.

Mogą korzystać z:

CDN
API
Analytics
Storage
Email
Captcha
Payment Systems
Third-party Libraries

W przypadku zwykłej strony nie musi to być szczególnie interesujące.

W przypadku infrastruktury nastawionej na anonimowość pojawia się jednak dodatkowe pytanie:

Czy wszystkie komponenty rzeczywiście działają w tym samym modelu prywatności?

Jeżeli główna usługa działa przez Tor, ale pewien komponent komunikuje się z infrastrukturą poza tym modelem, powstaje potencjalny punkt styku.


„Air gap” a rzeczywista separacja

W bezpieczeństwie często pojawia się pojęcie separacji.

W teorii:

Anonymous Environment
        X
Personal Environment

W praktyce użytkownicy i administratorzy zaczynają tworzyć wyjątki:

Anonymous
   ↓
"tylko jedno API"
   ↓
External Network

Problemem nie jest pojedynczy wyjątek sam w sobie.

Problemem jest to, że z czasem takich wyjątków może powstać coraz więcej.


DNS i Darknet

DNS jest kolejnym ciekawym elementem.

Usługi .onion nie działają dokładnie tak jak klasyczne domeny internetowe.

To jednak nie oznacza, że administrator infrastruktury może całkowicie ignorować kwestie DNS w pozostałej części swojej infrastruktury.

Jeżeli organizacja korzysta jednocześnie z:

example.onion
example.com
mail.example.com
api.example.com

może powstać zestaw publicznych informacji dotyczących powiązanej infrastruktury.

To właśnie jeden z obszarów, gdzie Darknet Intelligence spotyka się z klasycznym OSINT.

Netbe analizuje znaczenie DNS i prywatności m.in. w artykule:

Jak ustawić bezpieczny DNS na Androidzie i zwiększyć prywatność?.


Infrastructure correlation

Wyobraźmy sobie dwa systemy:

Service A
.onion

oraz:

Service B
Clear Web

Na pierwszy rzut oka nie mają ze sobą nic wspólnego.

Ale analityk może badać:

Software
Certificates
Domains
Hosting patterns
Application behavior
Naming conventions
Publication timing

Pojedynczy sygnał jest słaby.

Kilka niezależnych sygnałów może jednak wskazać na potencjalne powiązanie.


Certyfikaty i infrastruktura

W świecie clear web certyfikaty TLS są jednym z elementów infrastruktury, które mogą dostarczać informacji.

Nie oznacza to, że sam certyfikat ujawnia tożsamość operatora.

Może natomiast stanowić jeden z elementów większego obrazu.

Model analityczny może wyglądać:

Certificate
      +
Domain
      +
Hosting
      +
Application
      +
Timing
      ↓
Infrastructure Graph

To właśnie graf, a nie pojedynczy artefakt, często ma największą wartość analityczną.


Graf infrastruktury

Możemy wyobrazić sobie:

             Domain A
                |
             Server A
                |
          Application A
             /     \
        Storage    API
           |        |
       Service X  Service Y

Jeżeli podobna struktura pojawia się przy innym systemie:

             Domain B
                |
             Server B
                |
          Application B
             /     \
        Storage    API

można badać wspólne elementy.

Nie jest to dowód wspólnego operatora.

Jest to hipoteza do dalszej analizy.


Onion Services a klasyczna infrastruktura

Najważniejsza różnica polega na tym, że Onion Service ukrywa określony aspekt infrastruktury.

Nie usuwa wszystkich pozostałych źródeł informacji.

Możemy więc rozdzielić:

Network Location

od:

Application Identity

i:

Operational Identity

To trzy różne problemy.


Ukryty serwer nie oznacza ukrytej aplikacji

To zdanie warto zapamiętać:

Ukrycie lokalizacji serwera nie oznacza ukrycia charakterystyki aplikacji.

Aplikacja nadal może mieć:

  • określone zachowanie,
  • określoną strukturę,
  • określone błędy,
  • określone API,
  • określone zależności.

Dlatego bezpieczeństwo powinno być projektowane wielowarstwowo.


Procesy też muszą być izolowane

Kolejnym elementem jest sam system operacyjny.

Jeżeli różne komponenty działają na jednym hoście, mogą współdzielić:

  • pamięć,
  • IPC,
  • deskryptory,
  • zasoby systemowe,
  • mechanizmy komunikacji.

Netbe analizuje ten problem szerzej w artykule:

Izolacja procesów w praktyce – dlaczego aplikacje nadal mogą sobie szkodzić.

Dla infrastruktury anonimowej jest to szczególnie interesujące, ponieważ izolacja logiczna musi odpowiadać rzeczywistej izolacji technicznej.

Infrastruktura Darknetu pod lupą – Onion Services, warstwy pośrednie i punkty deanonymizacji
Infrastruktura Darknetu pod lupą – Onion Services, warstwy pośrednie i punkty deanonymizacji

Container nie zawsze oznacza pełną izolację

Współczesne środowiska często wykorzystują:

Docker
Containers
Virtual Machines
Namespaces
Sandboxing

Kontenery są niezwykle przydatne, ale nie należy automatycznie utożsamiać:

Container
=
Complete Security Boundary

Model bezpieczeństwa zależy od:

  • konfiguracji,
  • uprawnień,
  • współdzielonych zasobów,
  • kernela,
  • sieci,
  • storage,
  • mechanizmów IPC.

Dlatego infrastruktura Darknetu może być analizowana również z perspektywy klasycznego hardeningu systemów.


Separacja usług

Bezpieczniejszy model architektoniczny może wyglądać koncepcyjnie:

Onion Service
      |
      +---- Frontend
      |
      +---- Application
      |
      +---- Database
      |
      +---- Storage

z ograniczeniem komunikacji pomiędzy poszczególnymi elementami.

Zamiast:

Everything
   |
   +---- Everything

projektujemy:

Minimal Trust
+
Minimal Connectivity
+
Minimal Privileges

To podejście jest znacznie bardziej uniwersalne niż samo „używaj Tora”.


Zero Trust pasuje również do infrastruktury Darknetu

Zero Trust zakłada, że nie należy automatycznie ufać komponentowi tylko dlatego, że znajduje się „wewnątrz”.

W praktyce oznacza to:

Service A
   ↓
Authenticate
   ↓
Authorize
   ↓
Service B

zamiast:

Internal Network
   ↓
Trust Everything

To szczególnie istotne przy architekturach wielowarstwowych.


Alternatywne sieci pokazują, że Tor nie jest jedynym modelem

Darknet nie powinien być utożsamiany wyłącznie z Torem.

Istnieją również:

I2P
Freenet
GNUnet
RetroShare

Netbe omawia te technologie w artykule:

Alternatywne sieci anonimowe – I2P, Freenet i inne alternatywy dla sieci Tor.

To ważne, ponieważ każda z tych technologii przyjmuje nieco inne założenia dotyczące:

  • routingu,
  • decentralizacji,
  • przechowywania danych,
  • anonimowości,
  • odporności na cenzurę.

Czy można stworzyć idealnie anonimową infrastrukturę?

W praktyce nie należy myśleć o anonimowości jako wartości:

0% → 100%

Lepiej traktować ją jako zestaw właściwości:

Network Privacy
Application Privacy
Metadata Privacy
Operational Privacy
Infrastructure Privacy
Identity Separation

System może być bardzo dobry w jednej kategorii i słaby w innej.


Najciekawszy problem: cross-layer correlation

To jeden z najważniejszych konceptów całej serii.

Załóżmy:

Layer 1
Network

dostarcza:

Timing

Warstwa druga:

Application

dostarcza:

Behavior

Warstwa trzecia:

Infrastructure

dostarcza:

Configuration

Warstwa czwarta:

OSINT

dostarcza:

Public Information

Wtedy:

Network
   +
Application
   +
Infrastructure
   +
OSINT

może stworzyć znacznie dokładniejszy obraz.

To właśnie cross-layer correlation.


Dlaczego pojedynczy zabezpieczony komponent nie wystarcza?

Wyobraźmy sobie:

Tor → bardzo dobrze zabezpieczony

ale:

Application → źle skonfigurowana

albo:

Storage → ujawnia metadane

albo:

Operator → miesza tożsamości

Wtedy cały model zostaje osłabiony.

Możemy więc zapisać:

Security =
Network
× Application
× Infrastructure
× OPSEC

Jeżeli jeden element jest bliski zeru, wynik całego modelu gwałtownie spada.


Darknet jako system, a nie strona internetowa

To chyba najlepszy sposób patrzenia na całe zagadnienie.

Darknetowa usługa nie jest po prostu:

.onion website

To raczej:

Users
   ↓
Tor Network
   ↓
Onion Service
   ↓
Application
   ↓
Infrastructure
   ↓
Data
   ↓
Operators

Każda warstwa może mieć własne mechanizmy bezpieczeństwa.

Każda może też generować własne ślady.


Co z tego wynika dla analityków bezpieczeństwa?

Z punktu widzenia defensywnego najważniejsza jest zmiana sposobu myślenia.

Nie należy pytać wyłącznie:

„Czy udało się znaleźć adres IP?”

Znacznie ciekawsze pytania to:

  • jakie komponenty tworzą infrastrukturę?
  • jakie informacje generuje aplikacja?
  • czy występują wspólne wzorce?
  • jakie elementy są współdzielone?
  • czy istnieją połączenia z infrastrukturą publiczną?
  • czy zachowanie operatora jest powtarzalne?
  • czy występują zależności czasowe?

Wtedy analiza staje się dużo bardziej zaawansowana.


Darknet Intelligence jako analiza grafowa

W praktyce można wyobrazić sobie graf:

                User
                 |
              Account
                 |
              .onion
              /     \
          Service    Wallet
             |          |
          Backend    Transaction
             |
         Infrastructure
             |
          Clear Web

Każdy węzeł może reprezentować:

  • konto,
  • domenę,
  • serwer,
  • usługę,
  • portfel,
  • dokument,
  • pseudonim,
  • zdarzenie.

Krawędzie reprezentują potencjalne relacje.

To właśnie tutaj Darknet Intelligence zaczyna przypominać klasyczną analizę sieciową i OSINT.


OPSEC pozostaje kluczowym elementem

W poprzednim artykule doszliśmy do wniosku, że użytkownik może pozostawić ślady poprzez:

Metadata
Timing
Behavior
Identity Reuse

Teraz dochodzi kolejna warstwa:

Infrastructure

W efekcie otrzymujemy:

OPSEC
+
Infrastructure
+
OSINT
+
Blockchain
+
Network Analysis

To znacznie pełniejszy model niż samo badanie ruchu Tor.


Najważniejszy wniosek

Darknet nie jest jedną technologią.

To ekosystem wielu warstw.

Tor może ukrywać lokalizację komunikujących się stron, ale bezpieczeństwo całej usługi zależy również od:

  • aplikacji,
  • konfiguracji,
  • infrastruktury,
  • separacji procesów,
  • backendu,
  • danych,
  • operatora,
  • OPSEC.

Dlatego najbardziej interesujące pytanie nie brzmi:

„Czy serwer jest ukryty?”

Tylko:

„Czy cała architektura została zaprojektowana tak, aby informacje z jednej warstwy nie pozwalały skorelować jej z inną?”

To właśnie jest znacznie bardziej dojrzałe spojrzenie na bezpieczeństwo Darknetu.


Podsumowanie

Współczesna analiza Darknetu coraz mniej przypomina poszukiwanie jednego „magicznego” błędu.

Znacznie częściej chodzi o połączenie wielu drobnych sygnałów:

Network
+
Application
+
Infrastructure
+
Metadata
+
Behavior
+
OSINT

Każdy z nich może być niewystarczający.

Razem mogą jednak stworzyć bardzo dokładny obraz systemu.

Dlatego Onion Service powinien być traktowany jako jedna z warstw bezpieczeństwa, a nie jako gwarancja całkowitej anonimowości.

Właśnie tutaj znajduje się granica pomiędzy korzystaniem z narzędzia prywatności a prawdziwym projektowaniem infrastruktury odpornej na korelację.

Powiązane artykuły Netbe

 

Polecane wpisy
Windows 10, nowe problemy z prywatnością

Zachowanie prywatności w dobie nowoczesnych systemów operacyjnych bywa coraz bardziej problematyczne. Zagadka – skąd pochodzi poniższy cytat? We will access, Czytaj dalej

Ograniczenie rozmiaru pliku bazy danych Outlook Express do 2GB
Outlook, konfiguracja Outlook dla kont Google, konfiguracja Outlook dla kont Microsoft

Problem z Outlook Express – nie pobiera wiadomości, nie widać maili. Za duży plik Skrzynka odbiorcza.dbx. Używając Outlook Express, jako Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.