Bagong SAD DNS attack para magpasok ng bogus na data sa DNS cache

Isang pangkat ng mga mananaliksik mula sa University of California, Riverside ang nag-publish ng bagong variant ng SAD DNS attack (CVE-2021-20322) na gumagana sa kabila ng mga idinagdag na proteksyon noong nakaraang taon upang harangan ang kahinaan ng CVE-2020-25705. Ang bagong pamamaraan ay karaniwang katulad ng kahinaan noong nakaraang taon at naiiba lamang sa paggamit ng ibang uri ng mga ICMP packet upang suriin ang mga aktibong UDP port. Ang iminungkahing pag-atake ay nagbibigay-daan para sa pagpapalit ng kathang-isip na data sa DNS server cache, na maaaring magamit upang palitan ang IP address ng isang arbitrary na domain sa cache at i-redirect ang mga kahilingan sa domain sa server ng umaatake.

Gumagana lamang ang iminungkahing pamamaraan sa stack ng network ng Linux dahil sa koneksyon nito sa mga kakaibang mekanismo ng pagpoproseso ng packet ng ICMP sa Linux, na nagsisilbing mapagkukunan ng pagtagas ng data na nagpapadali sa pagtukoy ng numero ng port ng UDP na ginagamit ng server upang magpadala ng isang panlabas na kahilingan. Ang mga pagbabagong humaharang sa pagtagas ng impormasyon ay pinagtibay sa Linux kernel sa katapusan ng Agosto (ang pag-aayos ay kasama sa kernel 5.15 at mga update ng Setyembre sa mga sanga ng LTS ng kernel). Ang pag-aayos ay nagmumula sa paglipat sa paggamit ng SipHash hashing algorithm sa mga cache ng network sa halip na Jenkins Hash. Maaaring masuri ang katayuan ng pag-aayos ng kahinaan sa mga pamamahagi sa mga pahinang ito: Debian, RHEL, Fedora, SUSE, Ubuntu.

Ayon sa mga mananaliksik na natukoy ang problema, humigit-kumulang 38% ng mga bukas na solver sa network ay mahina, kabilang ang mga sikat na serbisyo ng DNS tulad ng OpenDNS at Quad9 (9.9.9.9). Tulad ng para sa software ng server, ang isang pag-atake ay maaaring isagawa sa pamamagitan ng paggamit ng mga pakete tulad ng BIND, Unbound at dnsmasq sa isang server ng Linux. Ang problema ay hindi lumalabas sa mga DNS server na tumatakbo sa Windows at BSD system. Upang matagumpay na magsagawa ng isang pag-atake, kinakailangan na gumamit ng IP spoofing, i.e. kinakailangan na hindi hinarangan ng ISP ng umaatake ang mga packet na may pekeng pinagmulang IP address.

Bilang paalala, nilalampasan ng SAD DNS attack ang mga proteksyong idinagdag sa mga DNS server upang harangan ang klasikong paraan ng pagkalason sa cache ng DNS na iminungkahi noong 2008 ni Dan Kaminsky. Ang pamamaraan ni Kaminsky ay nagmamanipula sa maliit na sukat ng field ng DNS query ID, na 16 bits lamang. Upang piliin ang tamang DNS transaction identifier na kinakailangan para sa panggagaya ng pangalan ng host, sapat na upang magpadala ng humigit-kumulang 7000 kahilingan at gayahin ang humigit-kumulang 140 libong mga gawa-gawang tugon. Nagsisimula ang pag-atake sa pagpapadala ng malaking bilang ng mga packet na may kathang-isip na IP binding at may iba't ibang mga identifier ng transaksyon ng DNS sa DNS resolver. Upang maiwasan ang pag-cache ng unang tugon, ang bawat dummy na tugon ay naglalaman ng bahagyang binagong domain name (1.example.com, 2.example.com, 3.example.com, atbp.).

Upang maprotektahan laban sa ganitong uri ng pag-atake, nagpatupad ang mga manufacturer ng DNS server ng random na pamamahagi ng mga bilang ng mga source network port kung saan ipinapadala ang mga kahilingan sa pagresolba, na nagbayad para sa hindi sapat na laki ng identifier. Matapos ipatupad ang proteksyon para sa pagpapadala ng isang kathang-isip na tugon, bilang karagdagan sa pagpili ng isang 16-bit na identifier, naging kinakailangan na pumili ng isa sa 64 libong port, na nagpapataas ng bilang ng mga pagpipilian para sa pagpili sa 2^32.

Ang pamamaraan ng SAD DNS ay nagbibigay-daan sa iyo na radikal na gawing simple ang pagpapasiya ng numero ng port ng network at bawasan ang pag-atake sa klasikong pamamaraan ng Kaminsky. Maaaring makakita ng access ang isang attacker sa mga hindi ginagamit at aktibong UDP port sa pamamagitan ng pagsasamantala sa mga leaked na impormasyon tungkol sa aktibidad ng mga network port kapag nagpoproseso ng mga ICMP response packet. Ang pamamaraan ay nagbibigay-daan sa amin na bawasan ang bilang ng mga opsyon sa paghahanap ng 4 na order ng magnitude - 2^16+2^16 sa halip na 2^32 (131_072 sa halip na 4_294_967_296). Ang pagtagas ng impormasyon na nagbibigay-daan sa iyong mabilis na matukoy ang mga aktibong UDP port ay sanhi ng isang depekto sa code para sa pagproseso ng mga ICMP packet na may mga kahilingan sa fragmentation (ICMP Fragmentation Needed flag) o redirection (ICMP Redirect flag). Ang pagpapadala ng mga naturang packet ay nagbabago sa estado ng cache sa network stack, na ginagawang posible upang matukoy, batay sa tugon ng server, kung aling UDP port ang aktibo at alin ang hindi.

Sitwasyon ng Pag-atake: Kapag sinubukan ng isang DNS resolver na lutasin ang isang domain name, nagpapadala ito ng UDP query sa DNS server na nagsisilbi sa domain. Habang naghihintay ng tugon ang solver, mabilis na matutukoy ng isang attacker ang source port number na ginamit para ipadala ang kahilingan at magpadala ng pekeng tugon dito, na nagpapanggap bilang DNS server na nagsisilbi sa domain gamit ang IP address spoofing. I-cache ng DNS resolver ang data na ipinadala sa pekeng tugon at sa ilang panahon ay ibabalik ang IP address na pinalitan ng attacker para sa lahat ng iba pang kahilingan sa DNS para sa domain name.

Pinagmulan: opennet.ru

Magdagdag ng komento