Nové útoky na bočný kanál znovu povoľujú vážne útoky otravy vyrovnávacou pamäťou DNS

Výskumníci demonštrovali ďalší variant útoku SAD DNS na otravu vyrovnávacej pamäte, ktorý ponecháva asi 38 % prekladačov názvov domén zraniteľných, čo útočníkom umožňuje presmerovať prevádzku pôvodne určenú na legitímne webové stránky na server pod ich kontrolou.

“Útok umožňuje útočníkovi, ktorý je mimo cesty, vložiť škodlivý záznam DNS do vyrovnávacej pamäte DNS,” uviedli vedci z Kalifornskej univerzity Keyu Man, Xin’an Zhou a Zhiyun Qian. “Útok SAD DNS umožňuje útočníkovi presmerovať akúkoľvek komunikáciu (pôvodne určenú na konkrétnu doménu) na svoj vlastný server a potom sa stať útočníkom typu man-in-the-middle (MITM), čo umožňuje odpočúvanie a manipuláciu s komunikáciou.”

Najnovšia chyba ovplyvňuje jadrá Linuxu, ako aj populárny softvér DNS vrátane BIND, Unbound a dnsmasq bežiacich nad Linuxom, ale nie pri spustení na iných operačných systémoch FreeBSD alebo Windows.

Od Kaminského útoku po SAD DNS

DNS cache otrava, tiež nazývaná DNS spoofing, je technika, pri ktorej sú poškodené údaje vložené do vyrovnávacej pamäte DNS resolvera, takže DNS dotazy vrátia nesprávnu odpoveď (tj IP adresu) pre dôveryhodnú doménu (napr. www.example.com ) a používatelia sú presmerovaní na škodlivé webové stránky. Útok, ktorý pôvodne objavil výskumník Dan Kaminsky v roku 2008, vyplynul zo skutočnosti, že rekurzívne prekladače zvyčajne používali jeden otvorený port (zvyčajne 53) na odosielanie a prijímanie správ na autoritatívne menné servery.

Toto nielenže urobilo hádanie zdrojového portu triviálnym, protivník môže vytvoriť odpoveď zahltením resolvera DNS odpoveďami pre niektoré alebo všetky z približne 65 tisíc možných ID transakcií, ktoré sú pripojené k požiadavkám na vyhľadávanie DNS odoslaných na nameservery.

Aby to útočník dosiahol, stačilo uhádnuť 16-bitový identifikátor – to znamená, že môže existovať iba 65 536 hodnôt ID transakcie – ktorý sa používa na overenie pravosti nameservera a preukázanie, že vrátená IP adresa je legitímna. Takže v prípade, že zlomyseľná odpoveď so správnym ID transakcie príde skôr, ako odpoveď od autoritatívneho servera, bude DNS cache otrávená a vráti útočníkovu zvolenú adresu namiesto legitímnej IP adresy.

Ale keďže rekurzívny prekladač ukladá do vyrovnávacej pamäte informácie prijaté od autoritatívnych názvových serverov, znamená to tiež, že ak prekladač dostane požiadavku na IP adresu názvu domény, ktorú si nedávno vyžiadal iný klient, len klientovi odpovie na požadovaný záznam zo svojho cache bez nutnosti komunikácie s mennými servermi.

Odvtedy sa útoky stali nerealizovateľnými zvýšením entropie pomocou ID transakcie spolu s randomizovaným portom UDP ako druhým identifikátorom namiesto použitia predvoleného portu 53 na vyhľadávacie dotazy. Novoobjavené netesné bočné kanály však umožnili derandomizovať efemérne číslo portu, čím sa účinne zrušili ochrany.

SAD DNS aka Side channel AttackeD DNS, zverejnená tou istou skupinou výskumníkov v novembri 2020, sa spolieha na správu ICMP „port nedostupný“ ako prostriedok na odvodenie, ktorý dočasný port sa používa. Zatiaľ čo ICMP je potrebný na smerovanie diagnostických a chybových odpovedí v sieti IP, funkcia protokolu obmedzujúca rýchlosť poskytuje mechanizmus na obmedzenie veľkosti šírky pásma, ktorú možno použiť pre prichádzajúcu komunikáciu ICMP na porte s cieľom zabrániť odmietnutiu útoky služby (DoS), ktoré môžu vzniknúť, keď sa útočník pokúsi preťažiť sieť správami ICMP.

Nový útok na bočný kanál spočíva v tom, že útočník odošle množstvo falošných UDP sond obsahujúcich falošnú zdrojovú adresu obete do cieľa, ktorý je dostatočne veľký na spustenie obmedzenia rýchlosti, pričom použije techniku ​​na zúženie otvorených portov a uhádnutie ID transakcie, napr. je to v prípade pôvodného útoku Kaminsky.

“Konkrétne, ak sa uhádnuté číslo portu (v falošnej UDP sonde) náhodou zhoduje so správnym efemérnym portom, resolver nevygeneruje správu ICMP (inak by to urobil,” uviedli vedci. “To má za následok buď stacionárne počítadlo limitov alebo zníženie počítadla. Útočník potom môže skontrolovať, či bolo počítadlo vyčerpané, pokusom o vyžiadanie ICMP odpovedí pomocou UDP sondy z jeho skutočnej/nesfalšovanej IP.”

Predtým prehliadaná útočná plocha

Zatiaľ čo predchádzajúce metódy, počítajúc SAD DNS, využívajú UDP sondy na určenie, či je UDP port otvorený alebo zatvorený, novoobjavený útok na otravu vyrovnávacej pamäte DNS priamo skúma bočný kanál počas procesu spracovania chybových správ ICMP – tj potrebný fragment ICMP alebo ICMP presmerovanie paketov – ktoré svojou povahou nevyvolávajú odozvu a používajú ju ako meradlo na dosiahnutie rovnakého cieľa.

“Útočník sa nemusí nevyhnutne spoliehať na explicitnú spätnú väzbu od ICMP sondy,” poznamenali vedci. “Namiesto toho, aj keď je spracovanie ICMP sond úplne tiché, pokiaľ existuje nejaký zdieľaný zdroj, ktorého stav je ovplyvnený, môžeme nájsť spôsoby (iné sondy), ako pozorovať zmenený stav zdieľaného zdroja.”

Ústrednou myšlienkou útoku je použiť obmedzený počet celkových slotov v globálnej vyrovnávacej pamäti výnimiek, 2048-bucketovej hašovacej tabuľke, na rozpoznanie, či po sérii ICMP sond nastala aktualizácia. Bočný kanál je tiež odlišný od SAD DNS v tom, že vzniká pri spracovávaní prichádzajúcich správ ICMP (na rozdiel od výstupných paketov) a „využíva limit priestorového zdroja (tj priestor na uloženie ďalšej vyrovnávacej pamäte skoku je obmedzený), zatiaľ čo SAD Bočný kanál DNS využíva časový limit zdrojov (tj rýchlosť generovania chýb ICMP je obmedzená).

Výskumníci navrhujú množstvo zmierňujúcich opatrení na zabránenie najnovšiemu útoku, ako je randomizácia štruktúry ukladania do vyrovnávacej pamäte, odmietnutie správ o presmerovaní ICMP a nastavenie možnosti soketu IP_PMTUDISC_OMIT, ktorá inštruuje základný operačný systém, aby neprijímal správy potrebné na fragment ICMP, a preto úplne eliminuje spracovanie súvisiace s bočným kanálom v jadre.

„DNS je jedným zo základných a starých protokolov na internete, ktorý podporuje mnoho sieťových aplikácií a služieb,“ uviedli vedci. “Bohužiaľ, DNS bol navrhnutý bez ohľadu na bezpečnosť a je vystavený rôznym vážnym útokom, z ktorých jeden je známy útok na otravu vyrovnávacej pamäte DNS. Počas desaťročí vývoja sa ukázalo, že je mimoriadne náročné dovybaviť silné bezpečnostné prvky to.”