Kalifornian yliopiston Riversiden tutkijoita julkaistiin Joitakin päiviä sitten uusi versio SAD DNS -hyökkäyksestä joka toimii huolimatta viime vuonna lisätystä suojauksesta CVE-2020-25705-haavoittuvuus.
Uusi menetelmä on yleensä samanlainen kuin viime vuoden haavoittuvuus ja erottuu vain erityyppisten pakettien käytöstä ICMP tarkistaa aktiiviset UDP-portit. Ehdotettu hyökkäys mahdollistaa valetietojen korvaamisen DNS-palvelimen välimuistissa, jota voidaan käyttää välimuistissa olevan mielivaltaisen toimialueen IP-osoitteen huijaamiseen ja toimialueen kutsujen uudelleenohjaamiseen hyökkääjän palvelimelle.
Ehdotettu menetelmä toimii vain Linux-verkkopinossa Koska se liittyy Linuxin ICMP-pakettien käsittelymekanismin erityispiirteisiin, se toimii tietovuotojen lähteenä, joka yksinkertaistaa palvelimen ulkoisen pyynnön lähettämiseen käyttämän UDP-portin numeron määrittämistä.
Ongelman tunnistaneiden tutkijoiden mukaan haavoittuvuus vaikuttaa noin 38 prosenttiin verkon avoimista ratkaisijoista, mukaan lukien suositut DNS-palvelut kuten OpenDNS ja Quad9 (9.9.9.9). Palvelinohjelmistoissa hyökkäys voidaan suorittaa käyttämällä paketteja, kuten BIND, Unbound ja dnsmasq Linux-palvelimella. Windows- ja BSD-järjestelmissä toimivat DNS-palvelimet eivät näytä ongelmaa. IP-huijausta on käytettävä hyökkäyksen onnistumiseen. On varmistettava, että hyökkääjän Internet-palveluntarjoaja ei estä paketteja, joiden lähde-IP-osoite on väärennetty.
Muistutuksena hyökkäys SAD DNS mahdollistaa DNS-palvelimien lisäsuojauksen ohituksen klassisen DNS-välimuistin myrkytysmenetelmän estämiseksi Dan Kaminsky ehdotti vuonna 2008.
Kaminskyn menetelmä manipuloi DNS-kyselyn ID-kentän merkityksetöntä kokoa, joka on vain 16 bittiä. Löytääksesi oikean DNS-tapahtumatunnisteen, jota tarvitaan isäntänimen huijaamiseen, lähetä noin 7.000 140.000 pyyntöä ja simuloi noin XNUMX XNUMX väärennettyä vastausta. Hyökkäys tiivistyy siihen, että järjestelmään lähetetään suuri määrä väärennettyjä IP-syötettyjä paketteja DNS-selvitin erilaisilla DNS-tapahtumatunnisteilla.
Suojautuaksesi tämän tyyppisiltä hyökkäyksiltä DNS-palvelinten valmistajat toteutti verkon porttinumeroiden satunnaisen jakautumisen lähde, josta ratkaisupyynnöt lähetetään, mikä korvasi liian suuren tunnisteen koon. Valevastauksen lähettämisen suojauksen käyttöönoton jälkeen 16-bittisen tunnisteen valinnan lisäksi oli tarpeen valita yksi 64 tuhannesta portista, mikä lisäsi valintavaihtoehtojen määrää 2 ^ 32:een.
Menetelmä SAD DNS:n avulla voit radikaalisti yksinkertaistaa verkkoportin numeron määritystä ja vähentää hyökkäyksiä klassiseen Kaminsky-menetelmään. Hyökkääjä voi määrittää pääsyn käyttämättömiin ja aktiivisiin UDP-portteihin hyödyntämällä vuotanutta tietoa verkkoportin toiminnasta käsitellessään ICMP-vastauspaketteja.
Tietovuoto, jonka avulla voit nopeasti tunnistaa aktiiviset UDP-portit, johtuu virheestä koodissa, joka käsittelee ICMP-paketteja, joissa on pirstoutumispyyntö (ICMP-fragmentointi vaaditaan -merkki) tai uudelleenohjauspyyntö (ICMP-uudelleenohjauslippu). Tällaisten pakettien lähettäminen muuttaa verkkopinon välimuistin tilaa, jolloin palvelimen vastauksen perusteella voidaan määrittää, mikä UDP-portti on aktiivinen ja mikä ei.
Tietovuodon estävät muutokset hyväksyttiin Linux-ytimeen elokuun lopussa (Korjaus sisältyi ytimeen 5.15 ja ytimen LTS-haarojen syyskuun päivityksiin.) Ratkaisu on siirtyä käyttämään SipHash-hajautusalgoritmia verkon välimuistissa Jenkins Hashin sijaan.
Lopuksi, jos haluat tietää enemmän siitä, voit tutustua yksityiskohdat seuraavassa linkissä.