Уязвимость в DNS – безусловно, одно из самых ярких событий года в сфере информационной безопасности. В этой статье мы попробуем разобраться, насколько эта уязвимость опасна и как злоумышленники смогут ею воспользоваться.
Краткое предисловие
DNS является одним из самых критичных компонентов сети Интернет, поэтому уязвимости в серверах имен всегда вызывали повышенный интерес у злоумышленников. 8-9 июля многие производители выпустили исправления, устраняющие фунаментальную ошибку, которая позволяет злоумышленнику произвести спуфинг атаку. Дэн Камински в своем блоге http://www.doxpara.com/?p=1165 опубликовал более подробное описание уязвимости и сделал доступным эксплоит.
В чем заключается уязвимость?
Уязвимость существует из-за того, что DNS сервер использует предсказуемый номер порта для отправки DNS запросов. Злоумышленник может угадать номер порта, который используется для отправки данных, и с помощью специально сформированного ложного DNS-ответа подменить данные в кеше DNS сервера.
Для подтверждения наличия уязвимости можно воспользоваться эксплоитами и утилитой:
BIND 9.4.1-9.4.2 Remote DNS Cache Poisoning Flaw Exploit (meta)
BIND 9.x Remote DNS Cache Poisoning Flaw Exploit (py)
Утилита http://www.onzra.com/CacheAudit-Latest.tgz
Насколько опасна уязвимость?
Спуфинг атака – атака, направленная в первую очередь на клиента, а не на сервер. Уязвимость, которую мы сейчас обсуждаем, неспособна дать повышенные привилегии на уязвимой системе или выполнить произвольный код, но в сочетании с другими незначительными ошибками программного обеспечения или социальной инженерией, может стать очень опасным инструментом в руках злоумышленника.
В тестах, которые проводил Камински, ему удалось отравить кеш сервера имен приблизительно за 5-10 секунд. Эта уязвимость позволяет атакующему перезаписать данные, которые уже находятся в кеше сервера. Сервера имен, которые являются только авторитетными, не подвержены этой уязвимости. Установка высокого значения TTL для ваших хостов на авторитетном сервере не помешает злоумышленнику отравить кеш уязвимых резолверов, так как атака обходит защиту TTL.
Уязвимость затрагивает также и клиентские библиотеки (рабочие станции и сервера, которые обращаются к вышестоящим серверам имен) и может быть проведена против одиночного хоста. Также, некоторые МСЭ с функционалом трансляции адресов, рассчитанные на домашний сектор, используют предсказуемые номера для порта источника запросов, что позволяет злоумышленнику удачно произвести атаку, даже если было установлено исправление на сервер имен или клиент.
Итак, подытожим:
Векторы атаки
Как я уже писал выше, спуфинг атака – атака, направлена на клиента, а не на сервер. Злоумышленник может:
Исправления
Для устранения уязвимости необходимо установить исправления не только на хосты, которые находятся под вашим контролем, но и на все сервера имен, которые участвуют в обмене данными, иначе всегда будет существовать возможность спуфинг атаки.
Исправления доступны для Windows, Linux, UNIX и других систем. Для получения исправления обратитесь к соответствующему производителю. Список производителей доступен по адресу: http://www.kb.cert.org/vuls/id/800113
Выводы
Уязвимость достаточно опасна и может эксплуатироваться как против сервера, так и против клиента. Исправления хотя и существуют, но установлены далеко не везде. Армагеддон, конечно же не наступает, но у злоумышленников появилась дополнительное преимущество, которым они не постесняются воспользоваться в последующих атаках на ваши сети.
Гравитация научных фактов сильнее, чем вы думаете