Trovanje predmemorije DNS-a
Trovanje predmemorije DNS-a je napad u kojem se loši podaci pohranjuju u predmemoriju razlučivača, uzrokujući da legitimni upiti vraćaju pogrešne odgovore sve dok predmemorija postoji. Kaminskyjev napad 2008. gotovo je slomio globalni DNS; popravci postavljeni od tada su trajni, ali nisu potpuni. Kategorija ostaje relevantna.
Cjeloviti članak nalazi se u nastavku na engleskom jeziku.
DNS trovanje predmemorije (ponekad se naziva DNS spoofing) je napad u kojem napadač ubacuje krivotvorene DNS podatke u predmemoriju razlučivača. Naknadni upiti za zatrovani zapis vraćaju pogrešan odgovor sve dok predmemorija ne istekne. Budući da razlučivači agresivno predmemoriraju radi performansi, uspješno trovanje može satima utjecati na mnoge korisnike.
Kako normalno radi razlučivanje DNS-a
Bez prolaska kroz cijeli tok (pogledajte naš članak o DNS poslužitelju), ključna točka: razrješivač postavlja upit uzvodnom poslužitelju imena i prihvaća odgovor. DNS je koristio UDP isključivo za ovo — bez rukovanja, bez provjere autentičnosti, samo "pošalji upit, prihvati prvi odgovarajući odgovor."
IAko napadač može poslati krivotvoreni odgovor prije nego što stigne legitiman, razrješavač predmemorira krivotvoreni odgovor. Za sve upite tijekom životnog vijeka predmemorije (obično minute do sati), rješavač vraća zatrovane podatke.
Napad Kaminsky
I Dan Kaminsky je 2008. objavio razorno proširenje klasičnog trovanja DNS predmemorije. Izvorni napad oslanjao se na pogađanje 16-bitnog ID-a transakcije — izgledi 1 prema 65 536, nisu bili dobri. Kaminskyjev zaokret: napadač ne mora čekati na legitimne upite. Mogu ih pokrenuti pitajući razlučivač o podnazivu koji kontroliraju, a zatim se utrkivati krivotvorenim odgovorima za autoritetne zapise nadređene domene. Uz manje optimizacije, eksploatacija je postala praktična.
Otkrivanje je pokrenulo koordinirani napor zakrpe u svakoj većoj implementaciji DNS-a u 2008. Popravak: nasumično odredite izvorni port koji koristi razrješavač. U kombinaciji s ID-om transakcije, to proširuje entropiju na ~32 bita, dramatično smanjujući mogućnost uspješnog krivotvorenja.
Kako izgledaju moderne obrane
- Randomizacija izvornog porta. Standardno od 2008. Povećava entropiju dovoljno da nagađanjem zatrova predmemoriju postaje neizvedivo.
- DNS preko HTTPS-a (DoH) i DNS preko TLS-a (DoT). Kriptografski prijenos u potpunosti eliminira on-path injekcijski napad. Razrešivač i ovlaštenje imaju šifrirani kanal.
- DNSSEC. Kriptografski potpisi na DNS zapisima otkrivaju neovlašteno mijenjanje. Lažni odgovori ne prolaze provjeru potpisa. Pogledajte naš članak DNSSEC.
- Filtriranje izvora-IP-a. Mreže koje ispuštaju lažne pakete adresa izvora (BCP38 / provjera adrese izvora) otežavaju napad ograničavajući odakle krivotvoreni odgovori mogu potjecati.
- Razrješavanje otvrdnjavanje. 0x20 kodiranje (randomiziranje velikih i malih slova u nazivima upita) dodaje bitove entropije. EDNS0 kolačići pružaju dodatnu zaštitu od lažiranja.
Napad SAD DNS-a iz 2020.
I Istraživači su 2020. objavili novu klasu napada pod nazivom SAD DNS koja je zaobišla randomizaciju portova u određenim scenarijima korištenjem informacija o bočnom kanalu o mrežnom stogu razlučivača. Napad radi protiv glavnih rezolvera uključujući neke zadane postavke Linuxa. Linux 5.10+ ima ublažavanja; stariji sustavi ostaju ranjivi.
Kategorija "DNS trovanje je riješeno" nikada sasvim ne dolazi. Obrana postaje bolja; pojavljuju se novi sporedni kanali. Moderna najbolja praksa kombinira više slojeva.
Što to znači za krajnje korisnike
Za svakodnevne korisnike:
- Koristite glavni javni razrješivač (1.1.1.1, 8.8.8.8, 9.9.9.9) — ojačani su protiv poznatih napada i potvrđuju DNSSEC.
- Koristite DoH ili DoT — kriptira traženje, pobjeđuje većinu napadača na putu.
- HTTPS sam po sebi je zamjena: čak i ako DNS laže i pošalje vas na IP adresu napadača, TLS certifikat se neće podudarati i preglednik će vas upozoriti.
Najrealističniji vektor napada za krajnje korisnike nije trovanje predmemorije dobro pokrenutih rezolvera; to je otimanje razlučivača na razini usmjerivača ili ISP-a. Konfiguracija vašeg uređaja za upotrebu poznatog dobrog razlučivača (s šifriranim prijenosom) zatvara tu rupu.
Što to znači za operatere
Za DNS operatere:
- Omogućite DNSSEC na svojim autoritativnim poslužiteljima.
- Koristite razrješivač koji provjerava valjanost DNSSEC.
- Patch odmah. Popravci iz 2008., ublažavanja SAD DNS-a i sva buduća savjetovanja.
- IImplementirajte provjeru izvorne adrese ako upravljate mrežom.
DNS infrastruktura je sigurnija nego što je bila prije deset godina; prijetnje su se razvijale paralelno.
Često postavljana pitanja
- Može li na mene utjecati trovanje predmemorije?
- Posredno. Krajnji korisnici obično ne upravljaju spremištima koja se zatruju. Ako je vaš DNS rezolver ugrožen, vidjet ćete pogrešne odgovore za ono što je zatrovano. Korištenje većih ojačanih razlučivača (1.1.1.1, 8.8.8.8) značajno smanjuje rizik.
- Kako DNSSEC to sprječava?
- Zapisi potpisani od strane autoritativne domene mogu se kriptografski provjeriti. Lažni odgovor ne prolazi provjeru i odbija se. DNSSEC postoji od 1997., ali usvajanje je neujednačeno; glavni razrješivači potvrđuju, manji često ne.
- Je li DNS preko HTTPS-a isto što i DNSSEC?
- Ne. DNSSEC dodaje potpise zapisima, provjeravajući autentičnost. DoH šifrira prijenos između klijenta i razlučivača, sprječavajući prisluškivanje ili petljanje na putu. One su komplementarne; možete imati jedno ili oboje.
- Koja je razlika između trovanja predmemorije i otmice DNS-a?
- Trovanje predmemorije ubacuje loše podatke u predmemoriju razlučivača putem napada na mrežnoj razini. Otmica DNS-a općenito pokriva promjenu samog razlučivača (kompromitiranje usmjerivača, zlonamjerna aplikacija, preuzimanje računa registratora). Trovanje predmemorije jedna je specifična tehnika unutar šire kategorije otmica.
- Ima li poznatih incidenata trovanja cache-a?
- Masovno trovanje u stilu Kaminsky nikada se nije ostvarilo jer su se flasteri dovoljno brzo postavili. Dogodila su se određena manja trovanja — incident iz 2019. koji je zahvatio dijelove kineske DNS infrastrukture nakratko je preusmjerio glavne američke usluge za korisnike u Kini. Većina velikih DNS napada od 2008. uključivala je otmice BGP-a ili kompromitacije registra, a ne klasično trovanje predmemorije.