za
dns blockchain

Cyberbezpieczeństwo ma nową broń: Blockchain. Przykłady zastosowania dla DNS

2020-03-16
Wiadomości
European Halving Party 2024

Cyberbezpieczeństwo to obecnie bardzo ważna kwestia, której nie można bagatelizować. Specjaliści od bezpieczeństwa sieci i systemów IT toczą z hakerami nieustanną wojnę. Wraz z pojawieniem się technologii Blockchain, dostali oni nową broń, która w wielu obszarach cyberbezpieczeństwa powoli znajduje zastosowanie.

Ten artykuł jest pierwszym z serii, w których szczegółowo będziemy omawiać przykłady zastosowania technologii Blockchain w cyberbezpieczeńswie. Dziś zaczniemy od Domain Name System (DNS).

Czym jest i jak działa DNS ?

Aby zobrazować Wam zasadę działania DNS posłużymy się w tym celu następującym przykładem:

Przykład: książka telefoniczna lub lista kontaktów w naszym telefonie to świetny przykład analogii pasującej do systemu DNS. Możemy przyrównać działanie tego systemu do katalogu, w którym określone nazwy (np. domeny) powiązane są z określonymi numerami (np. adresy IP).

DNS czyli Domain Name System to najprościej mówiąc system tłumaczący przeglądarkom nazwy adresów domenowych (np. bitcoin.pl) na adresy IP docelowych serwerów (np. 192.168.0.1). Gdy przeglądarka odbierze tłumaczenie nazwy domenowej, wtedy następuje połączenie i otwierana jest wskazana strona internetowa.

Hierarchia DNS

Ok, wiemy już czym jest DNS. Przyjrzyjmy się teraz jego hierarchii.

Baza danych DNS ma postać hierarchiczną, na której szczycie są domeny najwyższego poziomu (TLD – Top-Level Domain). Powyżej ich poziomu nie istnieją żadne inne domeny. Przykładem takich domen są np. domeny .pl albo .org.

Istnieją 2 typy domen TLD:

  • domeny krajowe (ccTLD – country code TLD) – mają zawsze 2 znaki np. pl oznaczające Polskę, .it Włochy, czy .uk Wielką Brytanię)
  • domeny funkcjonalne (gTLD – generic TLD) – te mogą być i często są dłuższe. Przykładowe to .biz, .com, czy wspomniane wcześniej org.

Nie jest to jednak koniec podziału. Trzymając się hierarchii, możemy zejść jeszcze głębiej, do domen drugiego poziomu.

Dzielą się one na:

  • regionalne – np.lodz.pl, czy mazowsze.pl
  • funkcjonalne drugiego poziomu – com.pl, org.pl

Rozłóżmy teraz adres poczta.bitcoin.pl na części pierwsze. W tym przypadku “poczta” jest nazwą hosta, który jest zlokalizowany w domenie”bitcoin.pl“, z kolei “.pl” jest typem domeny najwyższego poziomu (TLD), w dodatku jest domeną krajową oznaczającą Polskę.

Zapytania do serwerów DNS mogą być zapytaniami rekurencyjnymi lub też iteracyjnymi. Rekurencja wymaga od serwera podania adresu IP, którego żąda klient lub też zwrócenia komunikatu o błędzie, np. niepoprawnej nazwie domenowej. W przypadku iteracji, zapytania iteracyjnego, serwer zobligowany jest do podania najlepszej możliwej informacji jaką obecnie posiada, z tym że może to być, ale wcale nie musi adres serwera, o którego jest odpytywany, może to być np. informacja gdzie dalej wysłać zapytanie aby otrzymać stosowną odpowiedź.

Jak działa DNS ?

Zasadę działania DNS najlepiej zobrazować na konkretnym przykładzie. Powiedzmy, że chcemy przeczytać najnowsze wiadomości ze świata kryptowalut. W tym celu odwiedzimy stronę www.bitcoin.pl

  1. Cały proces zaczyna się od wpisania w przeglądarce, adresu www.
  2. Nasze zapytanie kierowane jest do serwera DNS naszego dostawcy internetu. Okazuje się, że ten nie wie gdzie znajduje się strona www.bitcoin.pl, dlatego wysyła zapytanie do głównego serwera DNS.
  3. Po ustaleniu adresu IP szukanej przez nas strony, główny serwer DNS wysyła go do DNS-u naszego dostawcy internetu.
  4. Ten z kolei, komunikuje się z naszą przeglądarką, która jest już w stanie wyświetlić nam naszą stronę www.bitcoin.pl

Najpopularniejsze typy ataków DNS

Ataki typu DDoS

Ataki typu odmowa usługi (DoS) zmierzają do utraty korzystania z danej usługi. Zablokowanie IP komputera, z
którego kierowany jest atak, to forma ochrony przed nim. Ataki te mogą być kierowane z jednego komputera, zaś kierowane z kilku komputerów naraz są nowszą, rozproszoną opcją ataku DoS czyli DDoS.

W wypadku ataku DDoS komputery użyte do natarcia są rozproszone w sieci a ich posiadacze nie wiedzą, że uczestniczą w ataku. Przeprowadzenie ataku z danego komputera jest możliwe po zainstalowaniu na nim specjalnego programu np.: trojana. Obrona przed atakami typu DDoS jest praktycznie niemożliwa.

Przesyłanie dużej ilości danych bądź zapytań do serwera,mających na celu obciążenie go w pełni, nazywamy atakami typu flood. Taki atak przyczynia się do zakłócania korzystania z usługi lub też całkowitego jej zablokowania.

“Zatruwanie” pamięci podręcznej

Proces ten polega na umieszczaniu w kliencie DNS bądź w pamięci podręcznej sztucznego rekordu zasobu. Zadaniem tego rekordu jest: łączenie nazwy z nieprawdziwym adresem IP. Jego treść zostaje zachowana w pamięci przez dany czas zdefiniowany przez parametr TTL. Zadanie atakującego jest bardzo trudne, gdyż musi on odgadnąć identyfikator transakcji, który później umieszcza w wysłanej, fałszywej odpowiedzi. Typy ataku zatruwania bufora dzielimy na:

  • atak dnia narodzin,
  • atak klasyczny,
  • zmodyfikowany atak klasyczny.

Atak dnia narodzin powiązany jest z odpowiedzią na pytanie: „ile osób należy wybrać, żeby prawdopodobieństwo tego, że co najmniej dwie osoby mają urodziny tego samego dnia, było większe od 12”. Jeśli chodzi o ataki trzeba odpowiedzieć na pytanie: „ile należy wysłać fałszywych odpowiedzi, aby przynajmniej jedno zapytanie i jedna odpowiedź miały ten sam numer identyfikacyjny” .

Skrupulatne badanie numerów transakcji wyświetlanych przez serwer mogą uprościć napastnikowi zadanie. Przypadkowe generowanie numerów jest największą przeszkodą dla agresora.

Atak klasyczny bazuje na przesłaniu przez agresora pytania o nazwę do serwera DNS i zmuszaniu go do szukania rozwiązania u innych serwerów DNS. Kolejnym zadaniem atakującego jest dostarczenie odpowiedzi z prawidłowym numerem transakcji. Wiedząc, że numer ID stworzony jest z 16 bitów, agresor jest zmuszony do wysłania od 1 do 65535 błędnych odpowiedzi przez czas krótszy niż czas, w którym odpowiada odpowiedni serwer DNS.

Przesłanie na każdorazowe pytanie do serwera DNS pewnego szyku odpowiedzi nazywamy zmodyfikowanym atakiem klasycznym. Rozwiązania tworzone są przez pętle z przypadkowo tworzonymi numerami ID. Istotne jest, żeby przy każdym pokonaniu pętli, numery IP były takie same.
W tej sytuacji użycie błędnych odpowiedzi jest mniejsze niż przy zwykłym ataku klasycznym.

Dynamiczna aktualizacja

Szansa szybkiego umieszczania danych w serwerze jest uproszczeniem jakie proponuje nam serwer DNS. Dana
czynność ma zastosowanie między innymi w sieciach lokalnych, w których urządzenia nie mają nadanego niezmiennego adresu IP. W trakcie włączenia, system operacyjny aktualizuje poprawny rekord w serwerze DNS.
Jeśli napotka na błąd autoryzacji klienta, może to skutkować wprowadzaniem jakichkolwiek sfałszowanych danych do bazy serwera.

Przepełnienie bufora

Przekształcenie bufora pamięci przypisanego do odpalonej aplikacji nazywamy przepełnieniem bufora (z ang. Buffet overflow). Daną operację można uzyskać wprowadzając do bufora aktywnej aplikacji pewne ilości danych, tak aby wystąpiło zapełnienie i nadpisanie miejsca w pamięci za buforem. Istnieje również opcja przebudowania bufora w taki sposób, by adres powrotu zalecał procedurę, która włączy dany program. Takie błędy przypisuje się do specjalnych cech, konkretnych implementacji.

Blockchain: przykłady zastosowania w obszarze DNS

Obecna struktura DNS jest scentralizowana, przez co zarządzanie nią jest z technicznego punktu widzenia łatwiejsze dla informatyków ale także i rządów. Wbrew pozorom, internet jest bardziej ocenzurowany niż prasa czy książki. Jeśli nasz rząd uzna, że z życia Polaków należy wyeliminować Facebooka, za pomocą DNS-ów może go po prostu zablokować.

Oczywiście baza danych DNS przechowuje ogromną liczbę rekordów, w tym adresy IP i nazwy domen.

Blockchain ze względu na swoją zdecentralizowaną budowę, może te dane przechowywać na milionach urządzeń, a konkretniej mówiąc węzłach.

Liczba zapytań przetwarzanych przez serwery DNS jest ogromna. Przykładowo, jeśli atakujący nas haker dysponuje łączem o szybkości wysyłania 1Mbit/s, w ciągu 1 sekundy może wysłać 2840 zapytań. Dlatego, Blockchainowe rozwiązania pomagające chronić DNS, muszą rozwiązać problem skalowalności.

Z jak dużym zagrożeniem musimy się mierzyć, doskonale obrazuje mapa ataków, którą możecie znaleźć tutaj: https://cybermap.kaspersky.com/

Przyjrzyjmy się teraz kilku projektom, które próbują tworzyć DNS-y na Blockchainie.

Blockstack (STX)

Internet w zdecydowanej większości działa w formacie client-serwer. Oznacza to, że chcąc uzyskać jakąkolwiek informację musisz nawiązać połączenie z serwerem, posiadającym dostęp do szukanej przez Ciebie informacji.

Blockstack buduje kompletną infrastrukturę dla zdecentralizowanego internetu i aplikacji. W tym przypadku tradycyjny DNS jest zastąpiony przez Blockstack Naming Service (BNS). Natomiast serwer zostaje zastąpiony przez Blockchain. BNS jest zbudowany na bazie łańcucha bloków Bitcoin.

BNS umożliwia użytkownikom dołączanie informacji do tożsamości przechowywanych w łańcuchu bloków. Zdecentralizowany BNS pozwala użytkownikom komunikować się i łączyć ze sobą w sposób bezpośredni, bezpieczny i szyfrowany. Taki system eliminuje pośredników, takich jak, Google czy Facebook.

BNS rejestruje adresy w Blockchainie, z którego sieć użytkowników pobiera kopię pełnego indeksu. Ponieważ każdy użytkownik posiada pełną kopię systemu adresowego, nie jest zmuszony ufać jednemu organowi. Ryzyko ataku jest zmniejszone. Jeśli jeden węzeł zostanie zaatakowany, odpowiedź na Twoje zapytanie udzieli Ci jego sąsiad.

Każdy węzeł BNS jest zsynchronizowany z wszystkimi innymi na świecie, więc zapytania na jednym węźle BNS będą takie same na innych węzłach.

W odróżnieniu od klasycznego DNS, nazwy w BNS mają 3 główne cechy:

  • są unikalne, eliminuje to występowanie kolizji
  • każda nazwa jest wybierana przez jej twórcę
  • tylko właściciel nazwy może dokonywać w niej zmian, uwierzytelnianie odbywa się przy pomocy klucza prywatnego

Blockchain Blockstack Namimg Services:

  • umożliwia tworzenie domen przez użytkowników (bez pośredników takich jak np. nazwa.pl), w których nazw hostów nie można przejąć
  • deweloperzy mogą tworzyć platformy społecznościowe, odporne na phishing

Ethereum Name Service

W rzeczywistość Ethereum Name Service jest bardzo podobny do obecnego systemu DNS. Zasadnicza różnica jest taka, że w przypadku ENS adres IP jest zastąpiony przez adresy ETH.

Architektura zarówno DNS, jak i ENS jest różna ze względu na naturę Blockchaina Ethereum. W tym przypadku smart kontrakt jest rejestratorem domeny. Implementacja smart kontraktów jako rejestratorów, daje każdemu użytkownikowi możliwość tworzenia subdomen, według zasad zapisanych w smart kontrakcie.

Mówiąc o zasadach mamy na myśli takie dane jak:

  • kto jest właścicielem domeny
  • do kiedy dana domena jest aktywna
  • informacje na temat resolvera

Rolę tłumacza przejmuje resolver, który konwertuje nazwy na skróty i adresy ETH.

Handshake

Handshake to Blockchain oparty na UTXO (Unspent Transaction Output) wykorzystujący Bcoin.

Jego celem nie jest zastąpienie DNS, ale zastąpienie serwerów głównych (root servers). Obecnie w architekturze DNS mamy 13 serwerów głównych. Kontrolowane przez organizacje, które w mniejszym lub większym stopniu są powiązane politycznie.

Oprócz serwerów głównych, Handshake zastępuje także pliki strefy, które przechowują wszystkie ustawienia DNS domeny. Aby zlokalizować adres IP z zapytania, dotychczas serwer rekurencyjny wskazywałby plik strefy głównej.

W przypadku Handshake: „rekurencyjne programy tłumaczące wskazywałyby na autorytatywny serwer nazw, który byłby przypisany do łańcucha bloków, a nie do pliku strefy głównej”. Ten proces zasadniczo zastąpiłby jednostki certyfikujące, które mamy dzisiaj.

Podsumowanie

Centralizacja obecnego protokołu DNS to nie jedyny problem, z którym musimy się mierzyć. Podatność na ataki w głównej mierze wynika z jego stryktury. Z pomocą przychodzi Blockchain, który ze względu na swoją budowę znacznie poprawia bezpieczeństwo DNS.

Projekty takie jak Blockstack, ENS czy Hanshake wykorzystując kryptowaluty wprowadzają dodatkowe warstwy zabezpieczeń, jednocześnie eliminują centralizację.

Z pewnością cyberbezpieczeństo i Blockchain to dobra para.

Bitcoina i inne kryptowaluty kupisz w prosty i bezpieczny sposób na giełdzie zondacrypto.

Tagi

Newsletter Bitcoin.pl

Więcej niż bitcoin i kryptowaluty. Najważniejsze newsy i insiderskie informacje prosto na Twój email.

Dbamy o ochronę Twoich danych. Przeczytaj naszą Politykę Prywatności