DNS
- Details
- Category: DNS
- Hits: 11827
Если посмотреть большинство более-менее популярных статей об устройстве Интернета, то про DNS там чаще всего будет сказано что-то типа "DNS-сервер обеспечивает трансляцию имен сайтов в IP адреса". В принципе, это действительно является его основной задачей, и для большинства пользователей (и даже компьютерщиков) этих знаний вполне достаточно. Но если вдруг вам придется отлаживать сеть, которой провайдер выделил какой-то блок "честных" адресов, или поднимать в локальной сети свой DNS-сервер, то очень быстро всплывут всякие страшные слова: "зона", "трансфер", "форвардер", "in-addr.arpa" и другие... Поэтому в этой заметке мы попробуем чуть более подробно поговорить о работе DNS.
Очень приблизительно можно сказать, что у каждого компьютера в Интернете есть два основных идентификатора: доменное имя (например, systemadmins.ru) и IP-адрес (например, 127.0.0.1). Приблизительность заключается в том, что, во-первых, IP-адресов у компьютера может быть несколько (мало того, что у каждого интерфейса свой адрес, так еще и несколько адресов могут "висеть" на одном интерфейсе); во-вторых, имен тоже может быть несколько, причем они могут связываться как с одним, так и с несколькими IP-адресами; в-третьих, у компьютера может и не быть доменного имени... Словом, ясно, что картина уже начинает запутываться.
Как было сказано выше, основной задачей DNS-сервера является трансляция доменных имен в IP адреса и обратно. На заре становления Интернета (когда он еще был ARPANET'ом) это решалось ведением длинных списков, включающих все компьютеры сети, причем копия такого списка должна была присутствовать на каждом компьютере. Понятно, что с ростом сети эта технология перестала удовлетворять кого бы то ни было — ведь эти файлы надо было еще и синхронизировать, не говоря уж об их размере... Некоторые "пережитки" этого метода можно обнаружить и сейчас: существует файл HOSTS (и в UNIX, и в Windows), в котором можно прописывать адреса серверов, с которыми вы регулярно работаете (кстати, именно его использование лежит в основе многих "ускорителей Интернета" — такие программы просто записывают адреса серверов, к которым вы обращаетесь, в файл HOSTS и при следующем обращении берут данные из него, не тратя время на запрос к DNS-серверу).
- Details
- Category: DNS
- Hits: 11746
Наверное, все знают, что такое DNS и для чего нужна эта служба. Но на всякий случай давайте еще раз напомним об этом. DNS устанавливает соответствие между числовыми IP-адресами и строковыми урлами, удобными для человеческого восприятия. Таким образом, эта служба является одной из основополагающих в Интернете, нормальная работа без нее невозможна. И действительно, перед тем как открыть человеку нужный ему сайт, система устанавливает соединение с сервером DNS и получает от него требуемый для установки соединения адрес веб-сервера. К сожалению, на защиту этого обмена данными создатели Глобальной сети не обратили особого внимания. А это позволяет злоумышленникам проводить атаки на службу DNS. Целью таких воздействий может быть отправка человека или людей не на запрошенный ими веб-проект, а на другой, установленный хакером, сайт.
Ну а начать нужно с того, что все удаленные атаки на DNS делятся на две большие категории. К первой относятся, так сказать, целенаправленные воздействия. Такое название у них не случайно. Дело в том, что эти атаки нацелены на одного-единственного пользователя, то есть могут использоваться для обмана одного человека. Ко второй категории воздействий на службу DNS относятся те из них, которые можно описать словом "общая". Целью этих атак является массовое перенаправление пользователей с одного веб-проекта на другой. К счастью, речь идет о пользователях только одного DNS-сервера. В противном случае злоумышленники могли бы полностью блокировать любые сайты, фактически запрещая к ним доступ. Но об этом мы поговорим в другой раз. Сегодня же нас будут интересовать исключительно целенаправленные атаки.
Ну а для начала необходимо немного разобраться в том, как работают DNS-серверы. Оказывается, большинство из них для общения с клиентами используют протокол UDP. Между тем в этой технологии не предусмотрено каких-либо надежных средств идентификации. Для защиты от вторжения в нем используются два специальных поля запросов и ответов — идентификатор и номер порта. Первый из них имеет постоянное начальное значение, равное единице, а второе — 1023. После этого при каждом новом запросе к DNS-серверу значение обоих полей увеличивается на единицу. Причем в некоторых операционных системах (Windows 9x, многие версии Linux) идентификатор вообще не изменяется, оставаясь всегда равным первоначальному значению.