Защита DNS-подключений с помощью Windows Server 2008 R2 DNSSEC

Опубликовано: 9 Апреля, 2023


Введение


С грядущим бумом IPv6 доступ к компьютерам через DNS-имена будет важнее, чем когда-либо. В то время как те из нас, кто работал с IPv4 в течение многих лет, обнаружили, что довольно легко запомнить большое количество адресов IPv4, используя систему нумерации IP-сетей с четырьмя точками, факт заключается в том, что адресное пространство IPv6 очень велико, и Шестнадцатеричный формат настолько сложен, что, вероятно, только горстка очень преданных своему делу умников сможет запомнить IP-адреса нескольких компьютеров в своих сетях. В конце концов, каждый адрес IPv6 имеет длину 128 бит — в четыре раза больше, чем адрес IPv4. Это то, что обеспечивает гораздо большее адресное пространство для размещения растущего числа хостов в Интернете, но также затрудняет запоминание адресов.


Проблема: незащищенный характер базы данных DNS


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


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


Решение: Windows Server 2008 R2 DNSSEC


Одним из решений, которое вы можете использовать в своей интрасети для защиты среды DNS, является использование Windows Server 2008 R2 DNSSEC. DNSSEC — это набор расширений, повышающих безопасность протоколов DNS. Эти расширения добавляют в DNS авторитет источника, целостность данных и аутентифицированный отказ существования. Решение также добавляет в DNS несколько новых записей, включая DNSKEY, RRSIGN, NSEC и DS.


Как работает DNSSEC


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


Подписание базы данных DNS доступно как для зон на основе файлов (не интегрированных в Active Directory), так и для зон, интегрированных в Active Directory, а репликация доступна для других DNS-серверов, которые являются полномочными для рассматриваемых зон.


DNS-клиенты Windows 2008 R2 и Windows 7 по умолчанию настроены как непроверяющие, безопасные, заглушки. В этом случае DNS-клиент разрешает DNS-серверу выполнять проверку от своего имени, но при этом DNS-клиент может принимать ответы DNSSEC, возвращаемые DNS-сервером с поддержкой DNSSEC. Сам DNS-клиент настроен на использование таблицы политик разрешения имен (NRPT), чтобы определить, как он должен взаимодействовать с DNS-сервером. Например, если NRPT указывает, что DNS-клиент должен защищать соединение между DNS-клиентом и сервером, то для запроса может быть применена проверка подлинности сертификата. Если согласование безопасности не удается, это явный признак того, что в процессе разрешения имен возникла проблема доверия, и попытка запроса имени завершится неудачно. По умолчанию, когда клиент возвращает ответ на DNS-запрос к приложению, которое сделало запрос, он возвращает эту информацию только в том случае, если DNS-сервер проверил информацию.


Обеспечение достоверных результатов


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


Имейте в виду, что если у вас есть принудительная изоляция сервера и домена IPsec, вы должны исключить TCP- и UDP-порты 53 из политики. В противном случае вместо проверки подлинности на основе сертификата будет использоваться политика IPsec. Это приведет к тому, что клиент не сможет выполнить проверку сертификата на DNS-сервере, и безопасное соединение не будет установлено.


Подписанные зоны


DNSSEC также подписывает зоны, используя автономную подпись с помощью инструмента dnscmd.exe. В результате создается подписанный файл зоны. Подписанный файл зоны содержит записи ресурсов RRSIG, DNSKEY, DNS и NSEC для этой зоны. После того, как зона подписана, ее необходимо перезагрузить с помощью инструмента dnscmd.exe или консоли диспетчера DNS.


Одним из ограничений зон подписи является то, что динамические обновления отключены. Windows Server 2008 R2 включает DNSSEC только для статических зон. Зону необходимо сдавать в отставку каждый раз, когда в нее вносятся изменения, что может серьезно ограничить полезность DNSSEC во многих средах.


Роль якорей доверия


Якоря доверия были упомянуты ранее. Записи ресурсов DNSKEY используются для поддержки якорей доверия. Проверяющий DNS-сервер должен включать по крайней мере один якорь доверия. Якоря доверия также применяются только к той зоне, которой они назначены. Если на DNS-сервере размещено несколько зон, то используются несколько якорей доверия.


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


НСЕК/НСЕК3


NSEC и NSEC3 — это методы, которые можно использовать для обеспечения аутентифицированного отказа в существовании записей DNS. NSEC3 — это усовершенствование исходной спецификации NSEC, которое позволяет предотвратить «обход зоны», что позволяет злоумышленнику получить все имена в зоне DNS. Это мощный инструмент, который злоумышленники могут использовать для разведки вашей сети. Эта возможность недоступна в Windows Server 2008 R2, так как включена только поддержка NSEC.


Однако поддержка NSEC3 ограничена:



  • Windows Server 2008 R2 может размещать зону с NSEC, имеющую делегирование NSEC3. Однако дочерние зоны NSEC3 не размещаются на DNS-серверах Windows.
  • Windows Server 2008 R2 может быть неавторизованным DNS-сервером, настроенным с якорем доверия для зоны, подписанной с помощью NSEC и имеющей дочерние зоны NSEC3.
  • Клиенты Windows 7 могут использовать DNS-сервер, отличный от Microsoft, для разрешения DNS-имен, если этот сервер поддерживает NSEC3.
  • Когда зона подписана с помощью NSEC, вы можете настроить таблицу политики разрешения имен, чтобы не требовать проверки для зоны. Когда вы сделаете это, DNS-сервер не будет выполнять проверку и вернет ответ со сброшенным битом Active Directory.

Развертывание DNSSEC


Чтобы развернуть DNSSEC, вам необходимо сделать следующее:



  • Понимание ключевых концепций DNSSEC
  • Обновите DNS-серверы до Windows Server 2008 R2.
  • Ознакомьтесь с требованиями к подписи зоны, выберите механизм смены ключа и определите защищенные компьютеры и защищенные зоны DNSSEC.
  • Сгенерируйте и сделайте резервную копию ключей, которыми подписаны ваши зоны. Убедитесь, что DNS все еще работает и отвечает на запросы после подписания зон.
  • Распространите свои якоря доверия на все неавторизованные серверы, которые будут выполнять проверку DNS с помощью DNSSEC.
  • Разверните сертификаты и политику IPsec на своем DNS-сервере.
  • Настройте параметры NRPT и разверните политику IPsec на клиентских компьютерах.

Для получения дополнительной информации о развертывании безопасного проектирования DNS с помощью Windows Server 2008 R2 перейдите сюда.


Резюме


В этой статье мы представили общий обзор DNSSEC и обсудили причины, по которым защита инфраструктуры DNS важна для вашей организации. В Windows Server 2008 R2 представлены новые функции, которые помогают сделать вашу инфраструктуру DNS более безопасной, чем когда-либо, за счет комбинированного использования подписанных зон DNS, защищенных SSL-подключений к доверенным DNS-серверам, а также проверки подлинности и шифрования IPsec. В следующей статье мы более подробно рассмотрим решение DNSSEC и рассмотрим особенности новых записей ресурсов, процесса подписи и клиент-серверных взаимодействий между клиентом и сервером DNSSEC. Тогда увидимся! -Деб.