Ovo je stara izmjena dokumenta!
DNS je protokol koji primarno služi za prevođenje naziva adresa u IP adrese. Taj proces nazivamo procesom rezolucije. S obzirom da je usprkos svojoj raširenosti i važnosti ipak ranjiv, forenzička analiza ovog protokola vrlo je važna. Postoje različite vrste napada na DNS protokol, a tako i različiti načini detekcije i prevencije malicioznog ponašanja.
DNS ( eng. Domain Name System) je distribuirani hijerarhijski sustav Internet poslužitelja u kojem se nalaze informacije povezane s nazivima domena, odnosno informacije o povezanosti IP adresa i njihovih simboličkih imena. Često se kaže da DNS služi kao telefonski imenik za Internet upravo tako što prevodi imena računala prilagođena ljudima u IP adrese. Iako je ključna komponenta globalnog Interneta, ranjiva je na razne napadne, iskorištavanja i kvarove sustava.
1970-ih godina, sva imena domena i njihove pripadajuće numeričke adrese bile su sadržane u jednoj datoteci pod nazivom „hosts.txt“ na Sveučilištu Stanford. S obzirom na to da su se numeričke adrese ručno dodjeljivale nazivima domena, vrlo brzo je ovakav način postao nepraktičan za održavanje. 1983. godine stvoren je sustav naziva domena (DNS) za distribuciju jedne centralizirane datoteke na više poslužitelja i lokacija. 1986. IETF je naveo DNS kao jedan od izvornih internetskih standarda te su objavili dva dokumenta, RFC 1034 i RFC 1035, koji su pobliže opisali DNS protokol. Od tada, DNS se redovito ažurira i širi kako bi se prilagodio sve složenijem Internetu.
Slika 3.1 Prikaz načina rada DNS protokola
Ako želimo otići na neku određenu web stranicu, otvaramo naš web preglednik i upisujemo ime domene te stranice s obzirom da je puno lakše pamtiti imena nego brojeve. Zatim će DNS poslužitelj prevesti to ime domene u odgovarajuću IP adresu. Kada je to obavljeno, naš kompjuter je spreman komunicirati s web poslužiteljem i dohvatiti odgovarajuću web stranicu. Kada naš web preglednik ili operacijski sustav ne može pronaći IP adresu u svojoj cache memoriji, proslijedit će upit višem nivou - poslužitelju za razrješavanje (eng. resolver server). On je zapravo naš davatelj internetskih usluga koji provjerava vlastitu cache memoriju. Ako ne može pronaći odgovarajuću IP adresu, šalje upit na sljedeću razinu – korijenski poslužitelj (eng. root server). To su najviši poslužitelji u DNS hijerarhiji te postoji 13 skupova root servera koji su strateški raspoređeni po svijetu. Preslikavanje naziva domene u IP adresu poznato je kao rezolucija imena i adrese. Ona može biti rekurzivna i iterativna.
Slika 3.2. Rekurzivna i iterativna rezolucija
Kod rekurzivnog mapiranja, klijent zahtijeva od lokalnog poslužitelja da vrati traženu adresu ili poruku o grešci. Ako lokalni server ne zna adresu, šalje upit korijenskom poslužitelju koji sadrži informaciju o barem jednom poslužitelju vršne domene (Top Level Domain Server). Ako ne sadrži adresu, trebao bi sadržavati IP adresu destinacijskog lokalnog DNS poslužitelja koji zna destinacijsku IP adresu. Ona se vraća istim putem nazad do onoga tko ju je zatražio. Glavna razlika kod rekurzivne i iterativne rezolucije je u tome što svaki poslužitelj koji ne zna adresu šalje IP adresu sljedećeg poslužitelja onom koji je to zatražio. Kod iterativne rezolucije, klijent dopušta poslužitelju da vrati najbolji mogući odgovor koji može dati.
DNS cache je privremena memorija na uređaju koja sadrži sve DNS zapise imena posjećivanih domena. Pomoću ove privremene memorije pokušava se uštedjeti na vremenu i izbjeći dugi DNS lookup. DNS protokol implementira time-to-live (TTL) na svaki DNS zapis. On definira broj sekundi trajanja tog zapisa te kada istekne to vrijeme, zapis se briše. Kada je napravljen zahtjev za DNS zapisima, memorija preglednika je prva stanica koja se pregledava. Druga i posljednja lokalna stanica je DNS razrješitelj na razini operacijskog sustava. Na Windowsu, primjerice, u naredbenom retku pomoću naredbe ipconfig /displaydns možemo vidjeti DNS zapise stranica koje smo posjetili.
DNS logging je proces sakupljanja detaljnih podataka o DNS prometu, najčešće kako bi se pomoglo riješiti greške u DNS protokolu ili u svrhu sigurnosti, za brzo identificiranje prijetnji. DNS log je datoteka, najčešće u .txt formatu koja sadrži detaljne podatke o svim DNS informacijama poslanim ili primljenim od DNS poslužitelja. Logging pomaže otkriti DNS napade u stvarnom vremenu te ih tako i blokirati prije nego se dogodi veća šteta. Sadrže podatke o nazivu domene, oznaku zahtjeva ili odgovora, kakav je zapis zatražen, IP adresu itd. Primjerice, napad se može otkriti ako naziv domene odgovara nekoj poznatoj zlonamjernoj domeni. Nadalje, ako je zatražen zapis u .txt formatu može biti znak maliciozne aktivnosti zato što se oni često koriste za DNS tunneling.
Postoje više mogućih napada na DNS protokol, a u nastavku će biti navedeni najpoznatiji.
DNS Tunneling je metoda napada koja kodira podatke drugih programa ili protokola u DNS upitima i odgovorima. Ova metoda koristi DNS protokol za tuneliranje informacija i zlonamjernog koda preko klijent-poslužitelj modela. DNS tuneliranje često uključuje podatke koji se mogu dodati napadnutom DNS poslužitelju i koristiti za kontrolu udaljenog poslužitelja i aplikacija. Napadači tuneliraju različite vrste protokola što im omogućuje prosljeđivanje ukradenih podataka ili IP prometa.
Lažiranje DNS-a napad je u kojem se izmijenjeni DNS zapisi koriste za preusmjeravanje mrežnog prometa na lažnu web-stranicu koja je slična željenom odredištu. Ovaj napad znači dobijanje krivog ulaza ili IP adrese zatražene stranice od DNS poslužitelja.
Slika 4.2.1. DNS Spoofing
Klijent pošalje upit za određenu stranicu te DNS poslužitelj razrješava IP adresu stranice. Napadači već imaju kontrolu nad DNS poslužiteljem te se klijenta usmjerava na krivu web stranicu. Dobar način sprječavanja bio bi korištenje DNSSEC-a (DNS Security Extensions) dodavanjem dodatnog sloja sigurnosti. Ovaj protokol stvara jedinstveni potpis pohranjen uz DNS zapise koji se koristi za autentifikaciju DNS odgovora i osigurava da zapisnik nije izmijenjen.
Distributed-denial-of-service (DDoS) napad je metoda koju napadači koriste kako bi opteretili internetsku uslugu ( npr. Web stranicu), bombardirajući je lažnim internetskim prometom s više različitih lokacija. Ta količina prometa onemogućuje stvarnim korisnicima pristup ciljanim stranicama ili mrežnim uslugama. Detekcija ovih napada može biti teška. Ispitivanje redoslijeda pretraživanja na računala i usporedba sa snimljenim mrežnim prometom mogu pomoći identificirati ovaj scenarij.
Otmica DNS-a, također zvana DNS preusmjeravanje, vrsta je napada u kojem se DNS upiti neispravno rješavaju kako bi se korisnici neočekivano usmjerili na zlonamjerne stranice. Kako bi izvršili napad, počinitelji ili instaliraju zlonamjerni kod na korisnička računala, preuzmu rutere ili presretnu i hakiraju DNS komunikaciju. Ovaj napad često se koristi za krađu identiteta i povjerljivih podataka ili za ostvarenje prihoda prikazivanjem neželjenih oglasa.
Također je čest napad u kojem se iskorištava ljudska slabost u pravopisu. Napadači registriraju domenu koja je nazivom jako slična izvornoj domeni te se klijent slučajno spaja na malicioznu stranicu. Te stranice su vrlo često i izgledom slične izvornoj stranici kako bi zavarali osobu koja joj pristupa. Često koriste legalne slike i drugo intelektualno vlasništvo kako bi zlonamjerne web stranice izgledale legitimno.
Slika 4.5.1. Primjeri čestih tehnika stvaranja sličnih imena domena
Podaci na razini mreže ključni su za prepoznavanje ponašanja. DNS upiti mogu se koristiti za sužavanje pretraživanja mrežnog prometa, istraživanje vremena upita, identifikaciju spoofing napada itd. Primjerice, možemo proučavati timeline ako uzmemo sve DNS odgovore analizom u Wiresharku. Nadalje, treba proučavati DNS logove kako bi se otkrilo sumnjivo ponašanje koje odskače od drugih. Postoje i određeni alati koji nam mogu pomoći u analizi (npr. DNSMAP alat).
Ovaj rad pokazuje da iako je DNS jedan od temeljnih načina komunikacije u računalnom svijetu, ima svoje ranjivosti i mane. DNS protokol nam je potreban prilikom većine razmjena s obzirom na to da komunikacija općenito počinje s DNS rezolucijom. Upravo zato je on jedna od glavnih meta napadača te iste te napade treba znati detektirati i spriječiti.
[1] Baza znanja: Što je DNS? Poveznica: https://www.orbis.hr/portal/index.php/knowledgebase/66/Sto-je-DNS.html?currency=2 [Pristupljeno 5.siječnja 2023] [2] Cloudflare: What is DNS? Poveznica: https://www.cloudflare.com/learning/dns/what-is-dns/ [Pristupljeno 5.siječnja 2023.]
[3] Books, Poveznica: http://books.gigatux.nl/mirror/linuxtroubleshooting/9149final/LiB0103.html [Pristupljeno 5.siječnja 2023.]
[4] Working of DNS, Poveznica: https://www.geeksforgeeks.org/working-of-domain-name-system-dns-server/ [Pristupljeno 5.siječnja 2023.]
[5] Poveznica: https://www.geeksforgeeks.org/address-resolution-in-dns-domain-name-server/?ref=rp [Pristupljeno 5.siječnja 2023.]
[6] Poveznica: https://www.geeksforgeeks.org/dns-spoofing-or-dns-cache-poisoning/?ref=rp [Pristupljeno 5.siječnja 2023.]
[7] Poveznica: https://www.imperva.com/learn/application-security/dns-spoofing/ [Pristupljeno 5.siječnja 2023.]
[8] Poveznica: https://www.imperva.com/learn/application-security/dns-hijacking-redirection/ [Pristupljeno 5.siječnja 2023.]
[9] DNS in Computer Forensics, Poveznica: https://commons.erau.edu/cgi/viewcontent.cgi?article=1117&context=jdfsl [Pristupljeno 6.siječnja 2023.]