Chyby zabezpečení nalezené v Dnsmasq umožňují spoofing obsahu v mezipaměti DNS

Nedávno byly zveřejněny informace o identifikaci sedmi zranitelností v balíčku Dnsmasq, který kombinuje DNS resolver pro ukládání do mezipaměti a DHCP server s kódovým označením DNSpooq. Tyto problémy umožňují falešné útoky na DNS mezipaměť nebo přetečení vyrovnávací paměti , což by mohlo vést ke vzdálenému spuštění kódu útočníkem.

Ačkoli byl Dnsmasq nedávno zastaralý jako výchozí resolver ve standardních linuxových distribucích, stále se používá v distribucích Androidu a specializovaných distribucích, jako jsou OpenWrt a DD-WRT, a také ve firmwaru mnoha bezdrátových routerů. Ve standardních distribucích je implicitní použití dnsmasq možné; například při použití libvirtu jej lze spustit pro poskytování služby DNS ve virtuálních počítačích nebo jej povolit změnou nastavení v konfigurátoru NetworkManager.

Vzhledem k tomu, že kultura aktualizací bezdrátových routerů zatím zaostává, vědci se obávají, že identifikované problémy mohou zůstat dlouho nevyřešeny a stát se terčem automatizovaných útoků na routery s cílem získat nad nimi kontrolu nebo přesměrovat uživatele na falešné škodlivé stránky.

Na Dnsmasq se spoléhá přibližně 40 společností , včetně Cisco, Comcast, Netgear, Ubiquiti, Siemens, Arista, Technicolor, Aruba, Wind River, Asus, AT&T, D-Link, Huawei, Juniper, Motorola, Synology, Xiaomi, ZTE a Zyxel. Uživatelům těchto zařízení se může doporučit, aby nepoužívali vestavěnou službu přesměrování dotazů DNS.

První část zranitelností objevených v Dnsmasq se týká ochrany před útoky typu DNS cache poisoning, a to na základě metody navržené v roce 2008 Danem Kaminskim.

Identifikované zranitelnosti znemožňují stávající ochranu a umožňují falšování IP adresy libovolné domény v mezipaměti. Kaminského metoda manipuluje se zanedbatelnou velikostí identifikačního pole DNS dotazu, které je pouze 16 bitů.

Pro nalezení správného identifikátoru potřebného k falšování názvu hostitele stačí odeslat přibližně 7 000 požadavků a simulovat kolem 140 000 falešných odpovědí. Útok se redukuje na odeslání velkého množství falešných paketů propojených s IP adresami do DNS resolveru s různými identifikátory DNS transakcí.

Identifikované zranitelnosti snižují očekávanou úroveň entropie z 32 bitů na 19bitový požadavek na odhad, což činí útok typu poisoning cache poměrně realistickým. Navíc zpracování záznamů CNAME v dnsmasq mu umožňuje padělat řetězec záznamu CNAME a efektivně tak falšovat až devět záznamů DNS najednou.

  • CVE-2020-25684: nedostatečné ověření ID požadavku v kombinaci s IP adresou a číslem portu při zpracování odpovědí DNS z externích serverů. Toto chování je nekompatibilní s RFC-5452, což vyžaduje použití dalších atributů požadavku při porovnávání odpovědi.
  • CVE-2020-25686: Nedostatek ověření nevyřízených požadavků se stejným názvem, což umožňuje použití metody narozenin k významnému snížení počtu pokusů potřebných k falšování odpovědi. V kombinaci se zranitelností CVE-2020-25684 může tato funkce výrazně snížit složitost útoku.
  • CVE-2020-25685: použití nespolehlivého algoritmu hash CRC32 při ověřování odpovědí, v případě kompilace bez DNSSEC (s DNSSEC se používá SHA-1) Tuto chybu zabezpečení lze použít k výraznému snížení počtu pokusů tím, že vám umožní zneužít domény, které mají stejný hash CRC32 jako cílová doména.
  • Druhá sada problémů (CVE-2020-25681, CVE-2020-25682, CVE-2020-25683 a CVE-2020-25687) je způsobena chybami, které způsobují přetečení vyrovnávací paměti při zpracování určitých externích dat.
  • U chyb zabezpečení CVE-2020-25681 a CVE-2020-25682 je možné vytvořit zneužití, která by mohla vést ke spuštění kódu v systému.

Nakonec je uvedeno, že zranitelnosti jsou řešeny v aktualizaci Dnsmasq 2.83 a jako řešení se doporučuje zakázat DNSSEC a ukládání dotazů do mezipaměti pomocí parametrů příkazového řádku.

Zdroj: https://kb.cert.org


Přidat jako preferovaný zdroj v Googlu