logo search
ИнфСборник по ЗИ и ИБ

3. Ложный dns-сервер.

Как говорилось в предыдущем пункте, для обращения к хостам в сети Internetиспользуются 32-разрядные IP-адреса, уникально идентифицирующие каждый сетевой компьютер в этой глобальной сети. Однако, для пользователей использование IP-адресовдля обращения к хостам является не слишком удобным и не самым наглядным. Поэтому, в самом начале зарождения Internetдля удобства пользователей было принято решение присвоить всем компьютерам в сети имена. Это решение породило проблему преобразования имен в IP-адреса.Такое преобразование необходимо, так как на сетевом уровне адресация пакетов идет не по именам, а по IP-адресам. На этапе раннего развития Internet,когда в сеть было объединено небольшое количество компьютеров, NIC (Network Information Center) для решения проблемы преобразования имен в адреса создал специальный файл {host file),в который вносились имена и соответствующие им IP-адреса всех хостов в сети. Данный файл регулярно обновлялся и распространялся по всей сети. Но, по мере развития Internet,число хостов, объединенных в сеть, увеличивалось, и данная схема становилась все менее и менее работоспособной. Поэтому была создана новая система преобразования имен, названная доменной системой имен-DNS (Domain Name System).

Для реализации системы DNSбыл создан специальный сетевой протокол DNS,а также, в сети Internetсоздавались специальные выделенные DNS-серверы.

Поясним основную проблему, решаемую службой DNS.В современной сети Internetхост при обращении к удаленному хосту может иметь информацию только о его имени и не знать его IP-адреса, который и необходим для непосредственной адресации. Следовательно, перед хостом возникает проблема удаленного поиска: по имени удаленного хоста найти его IP-адрес. Решением этой проблемы и занимается службаDNSна базе протокола DNS.

Рассмотрим DNS-алгоритм поиска IP-адреса по имени в сети Internet:

— хост посылает на IP-адрес ближайшего DNS-сервера (он устанавливается при инсталляции сетевой ОС)DNS-запрос, в котором указывает имя сервера, IP-адрес которого необходимо найти;

— DNS-сервер, получив DNS-запрос, просматривает свой host fileна предмет наличия в нем указанного в запросе имени. В случае, если имя найдено, а, следовательно, найден и соответствующий ему IP-адрес, то на запросивший хост DNS-сервер отправляет DNS-ответ, в котором указывает искомый IP-адрес. В случае, если указанное в запросе имя DNS-сервер не смог обнаружить в своей базе имен (host file),то DNS-запрос отсылаетсяDNS-сервером на следующий ближайший к нему DNS-сервер и описанная в этом пункте процедура повторяется пока имя не будет найдено (или не найдено).

Анализируя уязвимость с точки зрения безопасности этой схемы удаленного поиска с помощью протокола DNS, а также можно сделать вывод о возможности осуществления в сети, использующий протоколDNS,типовой удаленной атаки- ложный сервер. Для ее реализации на атакующей станции достаточно перехватитьDNS-запрос и послать ложный DNS-ответ, в котором указать в качестве искомого IP-адреса настоящий IP-адрес ложного DNS-сервера. Это позволит, в дальнейшем, полностью перехватить и активно воздействовать по схеме ложный сервер на трафик между "обманутым" хостом и сервером. Важно отметить, что в случае нахождения дающего в одном сегменте с настоящим DNS-сервером реализация данной удаленной атаки позволяет органиQga-гьмежсегментную атаку на сеть Internet.

Рассмотрим обобщенную схему работы ложного DNS-сервера:

— ожидание DNS-запроса;

— получив DNS-запрос, передача по сети на запросивший хост ложного DNS-ответа, в котором указываетсяIP-адрес ложного DNS-сервера;

— в случае получения пакета от хоста, изменение в IP-заголовке пакета его IP-адреса на IP-адрес ложногоDNS-сервера и передача пакета на сервер (то есть, ложный DNS-сервер ведет работу с сервером от своего имени);

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

Практическая реализация данной удаленной атаки выявила ряд интереснейших особенностей в работе протокола FTPи в механизме идентификации TCP-пакетов.В случае, если FTP-клиент на хосте подключился к удаленному FTP-серверу через ложныйDNS-сервер, то оказывалось, что каждый раз после выдачи пользователем прикладной команды FTP(например, ls, get, putи т.д.) FTP—клиент вырабатывал команду представительного уровня PORT,которая состояла в передаче наFTP-сервер в поле данных TCP-пакета номера порта иIP-адреса клиентского хоста. Это приводило к тому, что если на ложном DNS-сервере не изменить передаваемыйIP-адрес в поле данных TCP-пакета и передать этот пакет на FTP-сервер по обыкновенной схеме, то следующий пакет будет передан FTP-сервером на хост FTP-клиента, минуя ложный DNS-сервер и, что самое удивительное, этот пакет будет воспринят как нормальный пакет,и, в дальнейшем, ложный DNS-сервер потеряет контроль над трафиком между FTP-сервером иFTP-клиентом!