DNS cache poisoning

Поделись знанием:
(перенаправлено с «Атака Каминского»)
Перейти к: навигация, поиск

DNS cache poisoning (отравление кэша DNS) — повреждение целостности данных в системе DNS путём заполнения кэша DNS-сервера данными, не исходящими от авторитетного DNS-источника. Подобная компрометация данных может быть результатом хакерской атаки на сервер имён или неожиданным результатом ошибки в конфигурировании DNS-кэша. Данный тип атаки был впервые изучен и описан в 2008 году экспертом по информационной безопасности Дэном Камински. Первая известная крупная атака такого типа была совершена Евгением Кашпуревым в 1997 году.К:Википедия:Статьи без источников (тип: не указан)[источник не указан 3586 дней]

Когда DNS-сервер получает неаутентичные данные и кэширует их для оптимизации быстродействия, он становится отравленным и начинает предоставлять неаутентичные данные своим клиентам.

DNS-сервер призван транслировать доменное имя (например, example.com) в IP-адрес, используемый хостами для соединения с ресурсами Интернета. Если DNS-сервер отравлен, он может возвращать некорректный IP-адрес, направляя таким образом трафик на другой компьютер.





Атаки на кэш

Обычно компьютер в сети использует DNS-сервер, предоставленный своей организацией или интернет-провайдером. DNS-серверы часто устанавливаются в сети организаций для ускорения процесса трансляции имен при помощи кэширования ранее полученных ответов на запросы. Атака на DNS-сервер может повлиять на работу пользователей этого сервера или даже на пользователей других серверов, ссылающихся на отравленный.

Для осуществления атаки атакующий использует уязвимость в конфигурации DNS. Если сервер не проверяет ответы DNS на корректность, чтобы убедиться в их авторитетном источнике (например, при помощи DNSSEC), он будет кэшировать некорректные ответы локально и использовать их для ответов на запросы других пользователей, пославших такие же запросы.

Данная техника может использоваться для того, чтобы перенаправить клиентов на другой сайт по выбору атакующего. Например, при помощи спуфинга можно направить клиента на DNS-сервер, который выдаст заведомо неверный IP-адрес сайта и таким образом направит адресата на сервер, контролируемый злоумышленником. Содержимое такого сервера может содержать, например, черви или вирусы. Посетитель же такого сервера не будет информирован о подмене и загрузит вредоносное программное обеспечение.

Примеры атаки

В показанных ниже примерах A-запись для сервера ns.target.example будет заменена (кэш будет отравлен) и станет указывать на DNS-сервер атакующего с IP-адресом w.x.y.z. В примере подразумевается, что DNS-сервером target.example является ns.target.example.

Чтобы выполнить такую атаку, атакующий должен заставить DNS-сервер-жертву выполнить запрос о любом из доменов, для которого DNS-сервер атакующего является авторитетным.

Подмена IP-адреса DNS-сервера домена жертвы

Первый вариант отравления DNS-кэша заключается в перенаправлении DNS-сервера, авторитетного для домена злоумышленника, на DNS-сервер домена-жертвы, то есть назначению DNS-серверу IP-адреса, указанного злоумышленником.

Запрос от DNS-сервера жертвы: какова A-запись для subdomain.attacker.example?

subdomain.attacker.example. IN A

Ответ злоумышленника:

Answer:
(no response)

Authority section:
attacker.example. 3600 IN NS ns.target.example.

Additional section:
ns.target.example. IN A w.x.y.z

Сервер-жертва сохранит A-запись (IP-адрес) ns.target.example, указанный в дополнительной секции, в кэше, что позволит атакующему отвечать на последующие запросы для всего домена target.example.

Подмена NS-записи для другого домена жертвы

Второй вариант атаки заключается в перенаправлении DNS-сервера другого домена, не относящегося к первоначальному запросу, на IP-адрес, указанный атакующим.

Запрос DNS-сервера: какова A-запись для subdomain.attacker.example?

subdomain.attacker.example. IN A

Ответ злоумышленника:

Answer:
(no response)

Authority section:
target.example. 3600 IN NS ns.attacker.example.

Additional section:
ns.attacker.example. IN A w.x.y.z

Сервер-жертва сохранит не относящуюся к запросу информацию о NS-записи для target.example в кэше, что позволит атакующему отвечать на последующие запросы для всего домена target.example.

Предотвращение атак и противодействие

Многие атаки на кэш могут быть предотвращены на стороне DNS-серверов с помощью уменьшения степени доверия к информации, приходящей от других DNS-серверов, или даже игнорирования любых DNS-записей, прямо не относящихся к запросам. Например, последние версии BIND (версии 9, 10) выполняют такие проверки. Существенно снизить вероятность успешной атаки на кэш может использование случайных UDP-портов для выполнения DNS-запросов.

Несмотря на это, маршрутизаторы, сетевые экраны, прокси-серверы и прочие устройства-шлюзы, выполняющие трансляцию адресов (NAT), или, более конкретно, трансляцию портов (PAT), часто подменяют порт, используемый для выполнения запросов, для отслеживания соединения. При этом устройства, выполняющие PAT, обычно теряют случайность при выборе порта, созданную DNS-сервером.

Протокол DNSSEC использует электронную цифровую подпись с построением цепочки доверия для определения целостности данных. Применение DNSSEC может свести результативность атак на кэш к нулю. В 2011 году внедрение DNSSEC идет уже быстрыми темпами (большинство доменных зон gTLD: .com, .net, .org — уже подписаны DNSSEC). Начиная с июля 2010 года корневые серверы DNS содержат корневую зону DNS, подписанную при помощи стандартов DNSSEC.

Атакам на кэш также можно противопоставить транспортный уровень либо уровень приложений модели OSI, так как и на этих уровнях могут быть использованы цифровые подписи. К примеру, в безопасной версии HTTP — HTTPS пользователь может проверить, имеет ли сервер, с которым он соединился, сертификат ЭЦП и кому этот сертификат принадлежит. Похожий уровень безопасности имеет SSH, когда программа-клиент проверяет ЭЦП удаленного сервера при установке соединения. Соединение с помощью IPSEC не установится, если клиентом и сервером не будут предъявлены заранее известные ключи ЭЦП. Приложения, которые загружают свои обновления автоматически, могут иметь встроенную копию сертификата ЭЦП и проверять подлинность обновлений с помощью сравнения ЭЦП сервера обновлений со встроенным сертификатом.

Напишите отзыв о статье "DNS cache poisoning"

Примечания

Ссылки

  • [isc.sans.org/diary.php?date=2005-04-07 SANS DNS cache poisoning update]
  • [www.dnssec.net/dns-threats.php DNS Threats & Weaknesses: research and presentations]
  • [www.checkpoint.com/defense/advisories/public/dnsvideo/index.html Movie explaining DNS Cache Poisioning]
  • [www.unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html An Illustrated Guide to the Kaminsky DNS Vulnerability]
  • [www.kb.cert.org/vuls/id/800113#pat US CERT advisory : Multiple DNS implementations vulnerable to cache poisoning]
  • [www.wired.com/techbiz/people/magazine/16-12/ff_kaminsky Secret Geek A-Team Hacks Back, Defends Worldwide Web] An article about defending against DNS poisoning
  • [inforsec.ru/technical-security/network-security/77-dns-attack Обзор схем DNS-атак]

Отрывок, характеризующий DNS cache poisoning

Билибин был человек лет тридцати пяти, холостой, одного общества с князем Андреем. Они были знакомы еще в Петербурге, но еще ближе познакомились в последний приезд князя Андрея в Вену вместе с Кутузовым. Как князь Андрей был молодой человек, обещающий пойти далеко на военном поприще, так, и еще более, обещал Билибин на дипломатическом. Он был еще молодой человек, но уже немолодой дипломат, так как он начал служить с шестнадцати лет, был в Париже, в Копенгагене и теперь в Вене занимал довольно значительное место. И канцлер и наш посланник в Вене знали его и дорожили им. Он был не из того большого количества дипломатов, которые обязаны иметь только отрицательные достоинства, не делать известных вещей и говорить по французски для того, чтобы быть очень хорошими дипломатами; он был один из тех дипломатов, которые любят и умеют работать, и, несмотря на свою лень, он иногда проводил ночи за письменным столом. Он работал одинаково хорошо, в чем бы ни состояла сущность работы. Его интересовал не вопрос «зачем?», а вопрос «как?». В чем состояло дипломатическое дело, ему было всё равно; но составить искусно, метко и изящно циркуляр, меморандум или донесение – в этом он находил большое удовольствие. Заслуги Билибина ценились, кроме письменных работ, еще и по его искусству обращаться и говорить в высших сферах.
Билибин любил разговор так же, как он любил работу, только тогда, когда разговор мог быть изящно остроумен. В обществе он постоянно выжидал случая сказать что нибудь замечательное и вступал в разговор не иначе, как при этих условиях. Разговор Билибина постоянно пересыпался оригинально остроумными, законченными фразами, имеющими общий интерес.
Эти фразы изготовлялись во внутренней лаборатории Билибина, как будто нарочно, портативного свойства, для того, чтобы ничтожные светские люди удобно могли запоминать их и переносить из гостиных в гостиные. И действительно, les mots de Bilibine se colportaient dans les salons de Vienne, [Отзывы Билибина расходились по венским гостиным] и часто имели влияние на так называемые важные дела.
Худое, истощенное, желтоватое лицо его было всё покрыто крупными морщинами, которые всегда казались так чистоплотно и старательно промыты, как кончики пальцев после бани. Движения этих морщин составляли главную игру его физиономии. То у него морщился лоб широкими складками, брови поднимались кверху, то брови спускались книзу, и у щек образовывались крупные морщины. Глубоко поставленные, небольшие глаза всегда смотрели прямо и весело.
– Ну, теперь расскажите нам ваши подвиги, – сказал он.
Болконский самым скромным образом, ни разу не упоминая о себе, рассказал дело и прием военного министра.
– Ils m'ont recu avec ma nouvelle, comme un chien dans un jeu de quilles, [Они приняли меня с этою вестью, как принимают собаку, когда она мешает игре в кегли,] – заключил он.
Билибин усмехнулся и распустил складки кожи.
– Cependant, mon cher, – сказал он, рассматривая издалека свой ноготь и подбирая кожу над левым глазом, – malgre la haute estime que je professe pour le православное российское воинство, j'avoue que votre victoire n'est pas des plus victorieuses. [Однако, мой милый, при всем моем уважении к православному российскому воинству, я полагаю, что победа ваша не из самых блестящих.]
Он продолжал всё так же на французском языке, произнося по русски только те слова, которые он презрительно хотел подчеркнуть.
– Как же? Вы со всею массой своею обрушились на несчастного Мортье при одной дивизии, и этот Мортье уходит у вас между рук? Где же победа?
– Однако, серьезно говоря, – отвечал князь Андрей, – всё таки мы можем сказать без хвастовства, что это немного получше Ульма…
– Отчего вы не взяли нам одного, хоть одного маршала?
– Оттого, что не всё делается, как предполагается, и не так регулярно, как на параде. Мы полагали, как я вам говорил, зайти в тыл к семи часам утра, а не пришли и к пяти вечера.
– Отчего же вы не пришли к семи часам утра? Вам надо было притти в семь часов утра, – улыбаясь сказал Билибин, – надо было притти в семь часов утра.
– Отчего вы не внушили Бонапарту дипломатическим путем, что ему лучше оставить Геную? – тем же тоном сказал князь Андрей.
– Я знаю, – перебил Билибин, – вы думаете, что очень легко брать маршалов, сидя на диване перед камином. Это правда, а всё таки, зачем вы его не взяли? И не удивляйтесь, что не только военный министр, но и августейший император и король Франц не будут очень осчастливлены вашей победой; да и я, несчастный секретарь русского посольства, не чувствую никакой потребности в знак радости дать моему Францу талер и отпустить его с своей Liebchen [милой] на Пратер… Правда, здесь нет Пратера.
Он посмотрел прямо на князя Андрея и вдруг спустил собранную кожу со лба.
– Теперь мой черед спросить вас «отчего», мой милый, – сказал Болконский. – Я вам признаюсь, что не понимаю, может быть, тут есть дипломатические тонкости выше моего слабого ума, но я не понимаю: Мак теряет целую армию, эрцгерцог Фердинанд и эрцгерцог Карл не дают никаких признаков жизни и делают ошибки за ошибками, наконец, один Кутузов одерживает действительную победу, уничтожает charme [очарование] французов, и военный министр не интересуется даже знать подробности.
– Именно от этого, мой милый. Voyez vous, mon cher: [Видите ли, мой милый:] ура! за царя, за Русь, за веру! Tout ca est bel et bon, [все это прекрасно и хорошо,] но что нам, я говорю – австрийскому двору, за дело до ваших побед? Привезите вы нам свое хорошенькое известие о победе эрцгерцога Карла или Фердинанда – un archiduc vaut l'autre, [один эрцгерцог стоит другого,] как вам известно – хоть над ротой пожарной команды Бонапарте, это другое дело, мы прогремим в пушки. А то это, как нарочно, может только дразнить нас. Эрцгерцог Карл ничего не делает, эрцгерцог Фердинанд покрывается позором. Вену вы бросаете, не защищаете больше, comme si vous nous disiez: [как если бы вы нам сказали:] с нами Бог, а Бог с вами, с вашей столицей. Один генерал, которого мы все любили, Шмит: вы его подводите под пулю и поздравляете нас с победой!… Согласитесь, что раздразнительнее того известия, которое вы привозите, нельзя придумать. C'est comme un fait expres, comme un fait expres. [Это как нарочно, как нарочно.] Кроме того, ну, одержи вы точно блестящую победу, одержи победу даже эрцгерцог Карл, что ж бы это переменило в общем ходе дел? Теперь уж поздно, когда Вена занята французскими войсками.