Locked History Actions

Domain Name System Spoofing

DNS klastojimas (spoofing)

DNS klastojimas, vadinamas DNS spoofing, arba DNS cache poisoning, yra įsilaužimo ataka, kai įkeliami nauji duomenys į DNS lentelę, tokiu būdu priverčiant DNS serverį nurodyti klaidingą IP adresą.

  • DNS tai neatsiejama interneto dalis, šis servisas vardiniams adresams (pvz.: delfi.lt) priskiria tam tikrą IP adresą (pvz.: 81.16.232.111). Visa tai atieka specialus DNS serveriai. DNS serveriai tam tikrą laiką prisimena, kokiai svetainei priklauso kuris IP adresas.

Kai serveris gauna netikrą svetainės adresą, ir jį išsaugo, serveris laikomas užnuodytu (angl. poisoned) ir tiekia klaidingą adresą kaskart gavęs užklausą.

Kešo užnuodijimo atakos

  • Paprastai, tinke esantis kompiuteris naudoja DNS serverį, kurį pateikia interneto paslaugų tiekėjas. Užnuodijus tokį serverį gali paveikti ne tik vartotojus, kurie naudojasi tuo serveriu, bet ir vartotojus, kurie naudojasi dukteriniais (angl. downstream) DNS serveriais, kadangi jie siunčia DNS užklausas į pagrindinį serverį.
  • Norint užnuodyti DNS serverį, atakuotojas išnaudoja DNS serverio trūkumus. Pavyzdžiui, serveris turi patikrinti, ar DNS atsakas yra iš patikimo šaltinio, pavyzdžiui DNSSEC. Kitu atveju serveris gali išsaugoti klaidingą informaciją ir ja dalintis su vartotojais, kurie pateikia tokią pačią užklausą. Tokio tipo atakos naudojamos norint nukreipti vartotojus į atakuotojo pasirinktą svetainę. Dažnai toks nukreipimas atveda vartotoją į identiško dizaino svetainę. Jei vartotojas nepastabus, jis gali nepastebėti, jog svetainė netikra ir joje nurodyti savo prisijungimo duomenis ir kitą svarbią informaciją. Taip pat tokiose svetainėse atakuotojas gali patalpinti virusą, worm‘ą ir kitas kenkėjiškas programas.

Pavyzdžiai

  • Šiuose pavyzdžiuose, serverio įrašai ns.target.example bus užnuodyti ir peradresuoti į atakuotojo serverį w.x.y.z. Šios atakos atliekamos manant, kad target.example Name Server atitikmuo yra ns.target.example. Kad atakos būtų įvykdytos, atakuotojas turi priversti DNS serverį pateikti užklausą vienam iš atakuotojo valdomų puslapių.

1. Peradresuojamas taikinio domeno vardų serveris.

  • Pirmasis DNS užnuodijimo variantas parodo, kaip užnuodijamas serveris peradresuojant atakuotojo domeno vardų serverį į taikinio vardų serverio domeną. Tuomet tam vardų serveriui priskiriamas IP adresas, kurį nurodo atakuotojas.

Pavyzdys:

DNS serverio užklausa: kokie adreso įrašai apie

subdomain.attacker.example?

subdomain.attacker.example. IN A

Atakuotojo atsakymas:

  • Answer:

(no response)

Authority section:

attacker.example. 3600 IN NS ns.target.example.

Additional section:

ns.target.example. IN A w.x.y.z

Pažeidžiamas serveris į savo kešą išsaugotų papildomą adresą priskirtą ns.target.example, taip leisdamas atakuotjui atsakinėti į NS užklausas apie visą target.example domeną.

2. Vardų serverio įrašo peradresavimas į kitą domeną.

  • Antras DNS užnuodijimo variantas vykdomas siekiant peradresuoti kito, nesusijusio domeno vardų serverį. Toks peradresavimas yra nukreipiamas į atakuotojo nurodytą IP adresą.

DNS serverio užklausa: kokie adreso įrašai apie

subdomain.attacker.example?

subdomain.attacker.example. IN A

Atakuotojo atsakymas:

  • Answer:

(no response)

Authority section:

target.example. 3600 IN NS ns.attacker.example.

Additional section:

ns.attacker.example. IN A w.x.y.z

Pažeidžiamas serveris į savo kešą išsaugotų netikrą informaciją apie target.example vardų serverį, tokiu būdu leisdamas atakuotjui atsakinėti į užklausas apie visą target.example domeną.

Prevencija

  • Daug kešo užnuodijimo atakų būtų galima išvengti, jei serveriai paprasčiausiai mažiau pasitikėtų iš kitų DNS serverių priimama informacija, bei ignoruotų betkokią informaciją, kuri nesusijusi su užklausa. Tokius žingsnius atlieka populiari DNS programinė yranga BIND. Šaltinio prievado atsitiktinis parinkimas DNS užklausoms, kartu su naudojamais kriptografiškai saugiais atsitiktiniais skaičiais, skirtais parinkti šaltinio prievadą stipriai sumažina DNS atakų sėkmingumą.
  • Tačiou maršrutizatoriai, ugniasienės, proxy serveriai ir kiti gateway įrenginiai, kurie atlieka tinklo adresu transliaciją, bei prievado adresu transliaciją, dažnai perrašo šaltinio prievadus, akd galėtų sekti susijungimo būseną. Tokiu būdu jie pašalina atsitiktinį šaltinio prievado pasirinkimą. Secure DNS (DNSSEC) naudoja kriptografinius skaitmeninius parašus, kad nustatytų duomenų autentiškumą. DNSSEC gali atlaikyti kešo užnuodijimo atakas, tačiau jis imtas taikyti tik 2010 metais, ir tik aukščiausioje DNS zonoje (DNS root zone). Vis dėlto kaikurie saugumo ekspertai teigia, kad naudojant tik DNSSEC, be kriptografinių metodų, atakuotojas vistiek gali pateikti netikrus duomenis. Tokio tipo atakos galima išvengti tansporto ir aplikacijos sluoksniuose, naudojant end-to-end autentifikaciją susijungimo metu. Paprastas to pritaikymas yra transporto sluoksnio saugumas ir skaitmeninis parašas. Pavyzdžiui, naudojant HTTPS naudotojas gali aptikrinti ar serverio sertifikatas yra validus ir priklauso numatytam svetainės savininkui. Panašiai ir secure shell nuotolinio prisijungimo programa patikrina skaitmeninius sertifikatus, prieš pradedant sesiją. Aplikacijoms, kurios automatiškai atsisiunčia atnaujinimus, aplikacija gali įterpti parašo sertifikato kopiją lokaliai ir palyginti parašą kuris yra atnaujinimo pakete su tuo, kuris yra saugomas lokaliai.