Ako niekoho otráviť na internete – DNS poisoning

Presmerovávanie na DNS serveroch je dekádu známa hackovacia technika, ktorej cieľom je oklamať DNS server a donútiť ho zapísať si nesprávnu odpoveď na jeho dopyt. Môže sa to stať komukoľvek veľkým bankám, Googlu, či Amazonu. Dôvodom týchto útokov nie je slabá bezpečnosť spomínaných služieb, ale nedostačujúca bezpečnosť DNS serverov.

Filozofická otázka

Ako často sa zamýšľame nad tým, čo nám je naservírované – či už ide o jedlo alebo webstránku?

Od dôb, kedy sme na jedovaté veci mali oko prešlo veľa času. Dokázali by sme zistiť, keby nám niekto (alebo niečo) naservírovalo niečo jedovaté?

Jedná vec je vlastným nedopatrením kliknúť na phishingový link. Dostať “jedovatú” stránku priamo od samotného DNS servera je vec druhá.

V dnešnom článku vám predstavím rafinovaný a fascinujúci spôsob hackovania – DNS poisoning, v ktorom hackeri doslova otrávia servery obsahujúce zoznamy webstránok a ich príslušných IP adries, v dôsledku čoho môžu kľudne aj milióny ľudí prísť o peniaze, kryptomeny, súbory, heslá, údaje…

Čo je DNS?

V skratke, Domain Network System (DNS) pomáha používateľom na internete prepojiť čitateľné adresy (michalpavlis.sk) a internetové adresy (37.9.175.187). Často sa tieto služby nazývajú aj “zlatými stránkami” internetu, pretože obsahujú “číslo” na každého.

Na to, aby sme DNS mohli hacknúť, musíme si uvedomiť, čo všetko sa udeje po tom, čo do prehliadača napíšeme https://michalpavlis.sk a stlačíme ENTER:

  1. Prehliadač vykoná DNS dopyt, resp. DNS address lookup, v ktorom poskytne hostname (michalpavlis.sk).
  2. DNS dopyt sa dostane do rúk lokálnemu DNS resolveru, zodpovedného za nájdenie správnej IP adresy. Ten následne začne pátrať po DNS name serveri, ktorý v sebe obsahuje dopytovaný hostname, teda čitateľnú adresu webstránky.
  3. DNS resolver teda začne hlavným serverom, teda “root DNS serverom”, ak tam odpoveď nenájde, postupuje ďalej v hierarchickom rebríčku (root → TLD DNS server → ostatné DNS servery…).
  4. Keď sa konečne dopracuje k odpovedi, hovoríme, že našiel “autoritatívny DNS name server” pre danú adresu. Od neho dostane všetky potrebné detaily vrátane IP adresy a vráti ju vášmu prehliadaču.
  5. Až v tomto kroku môže začať sťahovanie dát zo servera.
Zdroj: https://totaluptime.com/wp-content/uploads/2014/05/how-does-a-dns-query-work.png

Je dôležité podotknúť, že medzi DNS servermi existuje tzv. “master and slave” vzťah, v ktorom sa “slave” DNS servery synchronizujú s “mastrom”, pánom. Je to tak kvôli tomu, aby sa medzi nimi rozložila záťaž. Je jednoduché si predstaviť koľko dopytov musia denne dostávať napríklad Googlovské DNS servery. Jeden by to sotva utiahol.

Poďme k hackovaniu: Ako funguje DNS poisoning?

Mám ďalšiu filozofickú otázku: čo by sa tak mohlo stať, ak by sa hacker úspešne nabúral do jedného z týchto serverov a vymenil napríklad IP adresu stránky facebook.com za svoju vlastnú?

Ďalej si predstavme, aký dopad by malo, keby šlo o “master” server a táto fejková adresa by sa ďalej dostala aj na ostatné DNS servery, ktoré by potom mohli infikovať ďalšie a tie zas ďalšie…

V podstate, DNS poisoning je pokus oklamať DNS server a donútiť ho zapísať si nesprávnu odpoveď na jeho dopyt. Ak banka.sk žije na drese 192.0.2.193 a hacker.sk žije na adrese 198.18.8.17, útočník sa môže pokúsiť otráviť cache DNS servera poslaním fejkovej odpovede na dopyt po banka.sk . Najlepšie to pochopíme na príklade:

Jeden DNS server (DNS1) sa opýta druhého (DNS2):

“Ahoj DNS2, kde nájdem stránku banka.sk ??”

Normálne by DNS2 odpovedal:

Ahoj DNS1, banka.sk je na adrese 192.0.2.193.”

Hacker však zachytí tento dopyt a odpovie skôr ako DNS2:

“(Nervózne ehm..) Ahoj DNS1, ja som DNS2 a odpovedám, že banka.sk je na adrese 198.18.8.17.”
Zdroj: https://bluecatnetworks.com/wp-content/uploads/2020/10/DNS-Poisoning.png

DNS2 si teda uloží túto fejkovú odpoveď do cache a každý používateľ v snahe dostať sa na Internet banking dostane taktiež tú istú fejkovú odpoveď (stránku), do ktorej smelo vpíše svoje prihlasovacie údaje a BAM! Už sú v rukách hackera. Presne to sa stalo v Brazílii v roku 2015.

Dobré správy

DNS je dôležitou časťou infraštruktúry internetu. Ako to často býva, s veľkou dôležitosťou pridchádza aj veľká zodpovednosť (alebo tak nejak). Útoky na DNS servery nie sú nové, ani ojedinelé a keď prídu, vedia napáchať obrovské škody.

Dobrou správou je, že tieto útoky vo “vanilla” forme, ako som v článku opisoval sú už dnes do veľkej miery neúčinné. Dôvodov je viacero: Samotné šifrovanie v HTTPS protokole zabezpečuje autenticitu všetkých zainteresovaných komunikantov. V prípade, že kľúče nesedia, používateľa na to prehliadač hneď upozorní.

Ďalším bezpečnostným prvkom je ID transakcie nachádzajúce sa vo vnútri dopytu. Toto ID zabezpečuje pravosť serveru posielajúceho odpoveď. Ak by chcel útočník získať toto ID, musel by vykonať tzv. “Man in the middle attack” a postaviť sa medzi dva komunikujúce DNS servery. To už je ďalší problém sám o sebe. Z toho dôvodu jediné, čo útočníkovi ostáva, je tipnúť si hodnotu 16-bitového IDčka.

Good luck with that.

Pravdou ale stále ostáva, že pri práci na internete je dôležité zachovať si istú obozretnosť. Vyzerá web tak, ako má? Vidím hore vedľa adrey zamknutú kladku? Je adresa správna?

Páčil sa vám článok? Zanechajte komentár, alebo ho prezdieľajte s kamošmi!

Leave a Reply

Your email address will not be published. Required fields are marked *