Атака MaginotDNS, позволяющая подменить данные в кэше DNS

Группа китайских исследователей раскрыла детали атаки MaginotDNS, позволяющей осуществить подстановку некорректных NS-записей в кэш DNS-серверов (отравление кэша), используемых одновременно для перенаправления запросов (forwarder) и рекурсивного определения имён (resolver). Успешное проведение атаки может привести к обращению к неверным DNS-серверам, отдающим ложные сведения о целевом домене, и подмене атакующим целиком DNS-зон, в том числе для доменов верхнего уровня ( .com, .net, .ru и т.п.).

Возможность подмены NS-записи для другого домена вызвана ошибкой в реализации алгоритма проверки Bailiwick, который не допускает приём серверов имён, напрямую не связанных с запрошенным доменом. В ситуации, когда DNS-сервер одновременно может работать в режиме resolver-а и forwarder-а, проверка Bailiwick выполняется только в режиме resolver-а, но не используется в режиме forwarder-а. Так как в обоих режимах используется общий кэш DNS-сервера, данной особенностью можно манипулировать для подмены записей для запросов в режиме resolver-а через манипуляции с запросами в режиме forwarder-а.


Предложено два варианта проведения атаки: “off-path” – когда атакующий не может перехватывать трафик между атакуемым DNS-сервером и вышестоящим DNS-сервером, используемом в качестве forwarder-а; “on-path” – когда атакующий может перехватывать DNS-запросы, между атакуемым DNS-сервером и его forwarder-ом. В режиме “on-path”, когда атакующий имеет информацию о номере сетевого порта исходящего DNS-запроса, в процессе атаки выполнялся запрос подконтрольного атакующим домена “attacker.com”, который приводил к обращению к DNS-серверу атакующих, и одновременно отправлялись фиктивные данные о NS-записях для домена “.com”, которые в случае угадывания 16-разрядного идентификатора транзакции оседали в кэше и для других доменов. При демонстрации атаки на DNS-сервер BIND в режиме “off-path” для подбора номера порта исходящего DNS-запроса дополнительно использовалась техника атаки SAD DNS, которая потребовала совершения 1642 попыток подбора в течение 32 минут.




Возможность проведения атаки подтверждена для DNS-серверов BIND, Knot, Technitium и Microsoft DNS. DNS-серверы Unbound, MaraDNS и PowerDNS атаке не подвержены. В BIND (CVE-2021-25220) и Knot (CVE-2022-32983) уязвимости, позволяющие совершить атаку, были устранены в начале 2022 года в выпусках Knot 5.5.1 и BIND 9.11.37, 9.16.27 и 9.18.1.

В марте 2022 года исследователями было проведено сканирование глобальной сети, которое выявило 154955 потенциально подверженных атаке публично доступных DNS-серверов, одновременно работающих в режиме перенаправления и резолвинга. Из них 54949 DNS-серверов (35.5%) использовали уязвимое программное обеспечение. Все уязвимые DNS-серверы были подвержены варианту атаки “on-path”, проводимой при возможности перехвата трафика между DNS-сервером и forwarder-ом. Варианту атаки “off-path”, при которой атакующий не трафик, оказались подвержены 88.3% уязвимых серверов.






Release. Ссылка here.