Нов SAD DNS напад за вметнување лажни податоци во кешот на DNS

Тим на истражувачи од Универзитетот во Калифорнија, Риверсајд објави нова варијанта на нападот SAD DNS (CVE-2021-20322) кој работи и покрај заштитата додадена минатата година за да ја блокира ранливоста CVE-2020-25705. Новиот метод е генерално сличен на ранливоста од минатата година и се разликува само во употребата на различен тип ICMP пакети за проверка на активните UDP порти. Предложениот напад овозможува замена на фиктивни податоци во кешот на серверот DNS, кој може да се користи за замена на IP адресата на произволен домен во кешот и пренасочување на барањата до доменот до серверот на напаѓачот.

Предложениот метод работи само во мрежниот стек на Linux поради неговата поврзаност со особеностите на механизмот за обработка на пакети ICMP во Linux, кој делува како извор на истекување на податоци што го поедноставува одредувањето на бројот на портата UDP што го користи серверот за испраќање надворешно барање. Промените што го блокираат истекувањето на информации беа усвоени во кернелот Линукс на крајот на август (поправката беше вклучена во ажурирањата на кернелот 5.15 и септември во гранките на кернелот LTS). Поправката се сведува на префрлување на користење на алгоритмот за хеширање SipHash во мрежните кешови наместо Џенкинс Хеш. Статусот на поправање на ранливоста во дистрибуциите може да се процени на овие страници: Debian, RHEL, Fedora, SUSE, Ubuntu.

Според истражувачите кои го идентификувале проблемот, околу 38% од отворените разрешувачи на мрежата се ранливи, вклучувајќи ги и популарните DNS услуги како OpenDNS и Quad9 (9.9.9.9). Што се однесува до софтверот на серверот, нападот може да се изврши со користење на пакети како што се BIND, Unbound и dnsmasq на серверот Linux. Проблемот не се појавува на DNS серверите што работат на Windows и BSD системи. За успешно извршување на напад, потребно е да се користи ИП измама, т.е. потребно е интернет провајдерот на напаѓачот да не блокира пакети со лажна изворна IP адреса.

За потсетување, нападот SAD DNS ги заобиколува заштитите додадени на DNS серверите за да го блокира класичниот метод за труење со кешот DNS предложен во 2008 година од Ден Камински. Методот на Камински манипулира со малата големина на полето за ID на барањето DNS, што е само 16 бита. За да го изберете точниот идентификатор на трансакцијата на DNS неопходен за лажирање на името на домаќинот, доволно е да испратите приближно 7000 барања и да симулирате околу 140 илјади фиктивни одговори. Нападот се сведува на испраќање на голем број пакети со фиктивно врзување на IP и со различни идентификатори на трансакции на DNS до резолуторот DNS. За да се спречи кеширање на првиот одговор, секој лажен одговор содржи малку изменето име на домен (1.example.com, 2.example.com, 3.example.com, итн.).

За да се заштитат од овој тип на напад, производителите на DNS сервери имплементираа случајна дистрибуција на броеви на изворни мрежни порти од кои се испраќаат барања за резолуција, што компензира за недоволно големата големина на идентификаторот. По спроведувањето на заштитата за испраќање фиктивен одговор, покрај изборот на 16-битен идентификатор, стана неопходно да се избере една од 64 илјади порти, со што се зголеми бројот на опции за избор на 2^32.

Методот SAD DNS ви овозможува радикално да го поедноставите одредувањето на бројот на мрежната порта и да го намалите нападот на класичниот метод Камински. Напаѓачот може да открие пристап до неискористени и активни UDP порти со искористување на протечените информации за активноста на мрежните порти при обработка на пакети за одговор на ICMP. Методот ни овозможува да го намалиме бројот на опции за пребарување за 4 реда на големина - 2^16+2^16 наместо 2^32 (131_072 наместо 4_294_967_296). Протекувањето на информации што ви овозможува брзо да ги одредите активните UDP порти е предизвикано од дефект во кодот за обработка на ICMP пакети со барања за фрагментација (ознака за потреба од фрагментација на ICMP) или пренасочување (ознака за пренасочување на ICMP). Испраќањето на такви пакети ја менува состојбата на кешот во мрежниот стек, што овозможува да се одреди, врз основа на одговорот на серверот, која порта UDP е активна, а која не е.

Сценарио за напад: Кога разрешувачот на DNS се обидува да реши име на домен, тој испраќа UDP барање до серверот DNS што го опслужува доменот. Додека решавачот чека одговор, напаѓачот може брзо да го одреди бројот на изворната порта што се користел за испраќање на барањето и да испрати лажен одговор на него, претставувајќи го DNS серверот што го опслужува доменот користејќи измама на IP адреса. Разрешувачот на DNS ќе ги кешира податоците испратени во лажниот одговор и некое време ќе ја врати IP адресата заменета од напаѓачот за сите други барања за DNS за името на доменот.

Извор: opennet.ru

Додадете коментар