Уязвимости, открити в Dnsmasq, позволяват подправяне на съдържание в DNS кеша

Наскоро беше публикувана информация относно идентифицирането на седем уязвимости в пакета Dnsmasq, който комбинира кеширащ DNS резолвер и DHCP сървър, с кодово име DNSpooq. Тези проблеми позволяват фалшиви атаки срещу DNS кеш или препълване на буфера , които биха могли да доведат до дистанционно изпълнение на код от нападател.

Въпреки че Dnsmasq наскоро беше отхвърлен като резолвер по подразбиране в стандартните Linux дистрибуции, той все още се използва в Android и специализирани дистрибуции като OpenWrt и DD-WRT, както и във фърмуера на много безжични рутери. В стандартните дистрибуции е възможно имплицитно използване на dnsmasq; например, когато се използва libvirt, той може да бъде стартиран за предоставяне на DNS услуга във виртуални машини или активиран чрез промяна на настройките в конфигуратора на NetworkManager.

Като се има предвид, че културата на актуализиране на безжичните рутери оставя много да се желае, изследователите се опасяват, че установените проблеми могат да останат нерешени за дълго време и да станат цел на автоматизирани атаки срещу рутери с цел получаване на контрол над тях или пренасочване на потребителите към фалшиви злонамерени сайтове.

Има приблизително 40 компании, които разчитат на Dnsmasq , включително Cisco, Comcast, Netgear, Ubiquiti, Siemens, Arista, Technicolor, Aruba, Wind River, Asus, AT&T, D-Link, Huawei, Juniper, Motorola, Synology, Xiaomi, ZTE и Zyxel. Потребителите на тези устройства може да бъдат посъветвани да не използват вградената услуга за пренасочване на DNS заявки.

Първата част от откритите уязвимости в Dnsmasq се отнася до защитата срещу атаки с отравяне на DNS кеша, базирани на метод, предложен през 2008 г. от Дан Камински.

Идентифицираните уязвимости правят съществуващата защита неефективна и позволяват подправяне на IP адрес на произволен домейн в кеша. Методът на Камински манипулира незначителния размер на идентификационното поле на DNS заявката, което е само 16 бита.

За да се намери правилният идентификатор, необходим за подправяне на името на хоста, е достатъчно да се изпратят приблизително 7.000 заявки и да се симулират около 140 000 фалшиви отговора. Атаката се свежда до изпращане на голям брой фалшиви IP-свързани пакети към DNS резолвера с различни DNS идентификатори на транзакции.

Идентифицираните уязвимости намаляват очакваното ниво на ентропия от 32 бита до 19-битово изискване за предположение, което прави атака с отравяне на кеша доста реалистична. Освен това, обработката на CNAME записи от dnsmasq му позволява да фалшифицира низа на CNAME записа, като ефективно подправя до девет DNS записа едновременно.

  • CVE-2020-25684: липса на валидиране на идентификатора на заявката в комбинация с IP адрес и номер на порт при обработка на DNS отговори от външни сървъри. Това поведение е несъвместимо с RFC-5452, което изисква допълнителни атрибути на заявката да се използват при съвпадение на отговор.
  • CVE-2020-25686: Липса на валидиране на чакащи заявки със същото име, което позволява използването на метода на рождения ден значително да намали броя на опитите, необходими за фалшифициране на отговор. В комбинация с уязвимостта CVE-2020-25684, тази функция може значително да намали сложността на атаката.
  • CVE-2020-25685: използване на ненадежден CRC32 алгоритъм за хеширане при проверка на отговорите, в случай на компилация без DNSSEC (SHA-1 се използва с DNSSEC). Уязвимостта може да се използва за значително намаляване на броя на опитите, като ви позволява да използвате домейни, които имат същия CRC32 хеш като целевия домейн.
  • Вторият набор от проблеми (CVE-2020-25681, CVE-2020-25682, CVE-2020-25683 и CVE-2020-25687) е причинен от грешки, които причиняват препълване на буфера при обработка на определени външни данни.
  • За уязвимостите CVE-2020-25681 и CVE-2020-25682 е възможно да се създадат експлойти, които могат да доведат до изпълнение на код в системата.

Накрая се споменава, че уязвимостите са отстранени в актуализацията Dnsmasq 2.83 и като заобиколно решение се препоръчва деактивиране на DNSSEC и кеширането на заявки, използвайки опции от командния ред.

Източник: https://kb.cert.org


Добавяне като предпочитан източник в Google