Хакер #305. Многошаговые SQL-инъекции
CAIS/RNP (Brazilian Research Network CSIRT) и Vagner Sacramento от DIMAp/UFRN (Отдел Информатики и Прикладной математики Федерального университета Rio Grande do Norte) провели эксперименты с несколькими версиями Internet Software Consortium's (ISC) Berkeley Internet Name Domain (BIND), демонстрируя возможность успешной атаки DNS имитации (DNS Spoofing) в 4 и 8 версии программы.
На сегодняшний день более 60% DNS серверов используют уязвимые и старые версии BIND. Обнаруженная проблема показывает, что BIND не предотвращает посылку 2-х или более разрешающих запросов для одного и того же домена,
что с большой вероятностью позволяет
проводить DNS имитации.
Принцип нападения состоит в том, чтобы ответить ложной информацией на запрос DNS сервера, заставляя его записать в кэш ложный IP адрес для некоторого домена.
Чтобы лучше понять обнаруженную уязвимость рассмотрим следующий сценарий. Когда n различных DNS клиентов посылают одновременные запросы DNS серверу (BIND 4 или BIND 8), чтобы
определить имя домена, целевой сервер
отправляет запросы к другим DNS серверам, начинающимся с корневых серверов, пытаясь получить ответы для каждого из запросов.
В этом случае, уязвимость может эксплуатироваться атакующим, который посылает одновременно n запросов к DNS серверу, используя различные IP адреса источника и то же самое имя домена. DNS сервер пошлет все полученные запросы другим DNS серверам, чтобы разрешить их. В результате, этот сервер будет ожидать n ответов с различными идентификаторами для одного имени домена. Нападающий тогда посылает несколько ответов с различными идентификаторами на DNS сервер адресата, пытаясь предположить один из ожидаемых идентификаторов ответа, тем самым
реализуя DNS спуфинг. Вероятность успеха DNS имитации в BIND 4 и BIND 8 определяется уравнением: n-request-sent/65535, где n-request-sent - число запросов, посланных одновременно DNS серверу.
Уязвимость может использоваться для компромисса приложений, использующих DNS службу (типа SMTP, HTTP, LDAP, FTP, SSH).
Уязвимость обнаружена в BIND 4.9.11, 8.2.7, 8.3.4.