DNS – это достаточно простая служба, но от ее работы зависит вся сетевая инфраструктура, поэтому очень важно обеспечить ее безопасность. Даже, несмотря на то, что DNS – это просто база данных с названиями и номерами, злоумышленник может завладеть этой информацией из взломанной базы данных. Некоторые атаки могут быть проведены для сбора данных из вашей базы данных, чтобы в дальнейшем использовать эту информацию против вас для построения структуры того, как выглядит ваша сеть. Другие атаки используются для добавления информации в вашу базу данных, в надежде на то, что ваши сервера DNS затем смогут осуществлять преобразование таких название, которых не смогли производить в обычном штатном режиме работы. Вы должны позаботиться о вашей инфраструктуре DNS и уберечь ее от атак до того, как эти атаки произошли, и стало слишком поздно.
Основы DNS
DNS, или служба доменных имен (Domain Naming Service) – это служба, которая позволяет преобразовать IP адреса в названия. Ключом здесь является понимание того, о каких названиях идет речь. Как следует из названия, DNS хранит информацию, связанную с доменом. Например, Active Directory использует DNS для хранения всех доменных имен (domain name) и всех имен компьютеров в сети. Если домен называется policy.org, а первым контроллером домена (domain controller) в вашем домене является PDC1, то у вас будут записи в DNS, аналогичные тем, что представлены на рисунке 1.
Рисунок 1: Записи DNS для первых компьютеров в вашем домене Active Directory domain
Обратите внимание, на рисунке 1 есть не только запись для PDC1, есть также IP адрес, связанный с PDC1 X.X.X.X. Причина существования этого связанного IP адреса заключается в том, что ваш компьютер и многие другие службы в сети не используют имена, а используют IP адреса. Однако, нам людям, гораздо удобнее использовать имена вместо IP адресов. DNS приходит нам на помощь и позволяет преобразовать имя в IP адрес. DNS можно настроить также для работы в обратном режиме (reverse lookup zone), т.е. получить имя по введенному IP адресу.
Обеспечение безопасности DNS внутри Active Directory
Первое решение, которое вы должны принять, связано с типом базы данных DNS database, которую вы будете настраивать для поддержки вашего домена Active Directory domain. Вы можете хранить информацию в стандартной базе данных (standard DNS database), у которой будет главный сервер (primary DNS server) и дополнительные сервера (secondary DNS server), или же вы можете сделать так, чтобы база данных DNS database была интегрирована в Active Directory, как показано на рисунке 2.
Рисунок 2: База данных DNS database можно интегрировать в Active Directory
Строго рекомендуется, чтобы ваши сервера DNS server были интегрированы в Active Directory, если они поддерживают Windows Active Directory, из-за преимуществ в безопасности, которые вы при этом получаете. Благодаря этому также достигается некоторая избыточность и стабильность базы данных DNS такого типа, но в этой статье мы хотим сфокусироваться на аспектах безопасности.
Основное преимущество для безопасности, которое вы получаете при интеграции вашей базы DNS database в Active Directory – это динамические обновления (dynamic update), конфигурацию которых можно увидеть на рисунке 3. Динамические обновления – это ключевая возможность DNS, которая позволяет компьютерам домена автоматически регистрировать свои имена и IP адреса на сервере DNS при входе в сеть или изменении IP адресов с помощью сервера DHCP. Такая форма обновления устраняет необходимость ручного ввода названий и IP адресов в базу данных DNS database, как было раньше. Аспект безопасности вступает в игру, когда автоматическое обновление от клиента может открыть дверь в базу данных DNS для внесения незаконных изменений. Поэтому обеспечение безопасности динамического обновления позволить гарантировать, что компьютер, который запрашивает обновление на сервере DNS server также имеет запись в баз данных Active Directory database. Это значит, что только компьютеры, подключенные к домену Active Directory domain могут осуществлять динамические обновления в базе данных DNS database.
Рисунок 3: Базу данных DNS, интегрированную в Active Directory, можно настроить для выполнения безопасных динамических обновлений
Выполнение динамических обновлений с помощью DHCP
В среде Windows environment у вас возможность настроить DHCP для осуществления динамических обновлений на клиенте. Это не требуется для компьютеров, работающих под управлением операционных систем Windows 2000/XP/Server 2003/Vista, но требуется для компьютеров, работающих под управлением операционной системы Windows NT/9x. В некоторых случаях, это оказывается не просто удобно, но и необходимо, чтобы сервер DHCP осуществлял обновление на клиентских компьютерах.
Подводным камнем в такой конфигурации является то, что теперь сервера DHCP являются владельцами записей, запрещая другим серверам DHCP или клиентам обновлять запись в будущем. Чтобы решить это, существует групп DNSUpdateProxy group. Для решения этой проблемы добавьте учетные записи (account) сервера DHCP в эту группу, в результате чего записи в DNS для этих клиентов освободятся от списка контроля на доступ (Access Control List или ACL). Новый список ACL будет включать пользователей, прошедших аутентификацию (Authenticated Users), у которых будет существовать возможность обновления записи DNS для клиента. Это спроектировано для того, чтобы другие сервера DHCP или даже клиенты смогли в будущем обновлять записи в DNS для этого клиента.
Безопасность в предоставлении аутентифицированным пользователям (Authenticated Users) возможности обновлять клиента достаточно не плоха, но возникает другая проблема. Если вы установите DHCP на контроллере домена (domain controller), а затем добавить этот компьютер в группу, то в результате этого все записи, которые сделаны контроллером домена будут иметь те же самые свободные списки ACL. А эти записи для контроллеров домена настолько важны для безопасности и стабильности Active Directory, что забота об их безопасности является одним из важных интересов вашей организации. Записи, которые при этом могут быть вскрыты, включают в себя записи SRV (Service Resource Records), которые управляют тем, как клиенты и серверы находят службы Active Directory внутри сети. Это включает Kerberos, site, TCP, IP, и многие другие записи SRV.
Поэтому решение этой проблемы заключается в том, чтобы не устанавливать DHCP на ваших контроллерах домена (domain controller). Если у вас есть DHCP, установленный на контроллерах домена, то лучше всего запретить этим серверам DHCP осуществлять динамические обновления для клиентов. В противном случае, вы можете добавить небезопасные настройки для контроллера домена в DNS.
Как вы видели, DNS – это простая, но потенциально сложная служба. Выполняя лишь одну задачу по преобразованию названий в IP адреса, или наоборот, можно подумать, что ее очень легко настроить и обеспечить ее безопасность. Однако, есть настройки, благодаря которым достигается более безопасное и стабильное окружение DNS. Во-первых, за счет возможности интеграции базы данных DNS database в Active Directory достигается гладкая совместимость с Active Directory, а также возможность выполнять безопасные динамические обновления. Эти безопасные динамические обновления помогают в защите от посторонних записей в базе данных DNS database с компьютеров, которые не являются частью домена. Благодаря этим динамическим обновлениям, клиент может выполнять их по своему желанию или же переложить эту задачу на DHCP. Если вы выберите использование DHCP и группы DNSUpdateProxy, то вы должны убедиться, что эта конфигурация не переводит записи вашего контроллера домена в DNS. Простое решение для этого заключается в том, чтобы эта задача DHCP не выполнялась вашими контроллерами домена.
В последней статье я рассказал о некоторых основных аспектах безопасности DNS, включая также некоторые основы самого DNS. Некоторые их концепций безопасности требуют интеграции DNS с Active Directory, а также обеспечения более безопасной среды DNS со связью с DHCP. Это очень простая и мощная конфигурация для вашей среды DNS. Однако, не стоит на этом останавливаться! Вы лишь коснулись поверхности того, что относиться к обеспечению безопасности для вашей среды DNS. В этой статье, посвященной обеспечению безопасности DNS, мы пойдем глубже и узнаем о том, как обеспечить безопасность базы данных DNS database, особенно при взаимодействии с другими серверами DNS. DNS сервера должны взаимодействовать с другими серверами DNS, чтобы обновлять свою базу данных. Такое взаимодействие может быть идеальной ситуацией для злоумышленника, чтобы воспользоваться выявленной уязвимостью. Если вы предпримите правильные меры для обеспечения безопасной настройки DNS, то риск возникновения такой ситуации существенно снизится.
Передача зон (Zone transfers)
Когда дело касается зон DNS, то вы должны понимать, что существуют различные типы зон, которые вы должны выделить в своей среде DNS. Хотя мы сфокусируемся лишь на нескольких из возможных зон, существует список зон, которые вы можете выделить в своем DNS:
- Зона, интегрированная в Active Directory
- Основная зона (Primary Zone)
- Дополнительная зона (Secondary Zone)
- Зона заглушек (Stub Zone)
В последней статье мы обсуждали зону, интегрированную в Active Directory. При этом зона, интегрированная в Active Directory, работала как основная зона. Причина этого заключалась в том, в рамках статьи основная зона (primary zone, а также зона, интегрированная в Active Directory) – это зона, которая производит записи в базе данных DNS. Дополнительные зоны не производят записи в базу данных DNS database. Дополнительные зоны лишь осуществляют передачу обновлений из основных зон primary DNS zone. Передача обновлений из основной зоны в дополнительную называется передачей зоны (zone transfer).
Интерфейс передачи зон достаточно понятен из ваших настроек, как вы можете увидеть на рисунке 3. Вы можете либо разрешить “любому” серверу DNS получать содержимое основной зоны (primary zone), либо вы может сузить это множество до нескольких серверов DNS на ваше усмотрение. Конечно, в целях безопасности вы должны сузить рамки DNS сервером, которым разрешено получать IP адреса и доменное имя для всех компьютеров в вашей организации!
Рисунок 3: Интрефейс для зон передачи для Windows DNS
Обеспечение безопасности передачи зон
Вы также можете обеспечивать безопасность зон передачи DNS zone transfers на другом уровне. Обеспечение безопасности DNS – это не радикальная концепция, большинство компаний на сегодняшний день делают дополнительные настройки для обеспечения безопасности зон передачи DNS zone transfers. Есть несколько настроек для обеспечения безопасности DNS и зон передачи. Здесь все зависит от того, как настроена ваша среда DNS.
Во-первых, необходимо использовать IPSec или VPN туннель между серверами DNS, чтобы обеспечить зашифрованное взаимодействие с базой данных DNS, во время ее передачи по сети. IPSec очень распространен для соединений между серверами DNS, которые располагаются в одной сети. Если ваши сервера DNS должны проходить через незащищенную сеть (insecure network), то используется VPN. Если вы используете VPN для обеспечения безопасности данных, проходящих по незащищенной сети, то обычно используется L2TP. L2TP использует более безопасный алгоритм шифрования для защиты данных, передаваемых по сети.
Вторая настройка для защиты данных при их передачи от одного сервера DNS на другой сервер DNS – это использовать интеграцию с Active Directory. Это требует, чтобы сервера DNS работали на домене Active Directory. Это также требует, чтобы сервера DNS были запущены на контроллере домена (domain controller). Однако при этом достигаются значительные преимущества. Т.к. данные хранятся и копируются с использованием средств копирования Active Directory, то данные шифруются при передаче от одного сервера DNS к другому DNS. Другие преимущества интеграции DNS с Active Directory заключается в том, что все соединения изначально аутентифицированы. Это помогает защитить зоны передачи, обязуя сервер DNS пройти аутентификацию в базе данных Active Directory перед копированием информации.
Переадресация (все четыре типа)
Еще одни способ защиты вашей среды DNS заключается в использовании некоторых настроек для переадресации. Это может помочь вам поддерживать стабильную DNS инфраструктуру, гарантируя, что компьютеры и приложения могут по-прежнему иметь доступ к правильному серверу в сети. Есть несколько настроек для переадресации (forwarding) внутри среды Microsoft DNS.
Первая – это стандартная переадресация, изображенная на рисунке 4, при которой все запросы, не касающиеся данного DNS сервера, участвующего в процессе, передаются на другие сервера DNS … переадресуются. Это идеально в тех ситуациях, когда у вас есть внутренний DNS сервер, который используется для всех внутренних названий и Active Directory. Этот сервер DNS настроен для всех клиентов. Однако, этот сервер DNS ничего не знает о названиях в Internet. Поэтому, когда DNS сервер получает запрос, предназначенный для Интернет, то такой запрос передается на другой сервер DNS, который может обработать этот запрос. Это помогает вам защитить внутренние сервера DNS от использования компьютерами, которые являются внешними для вашей сети.
Рисунок 4: Переадресация для сервера Windows DNS server
Еще одна настройка, которая есть у нас в распоряжении, это сделать переадресацию более направленной. Это сможет гарантировать, что все запросы попадут (будут переадресованы) на нужный сервер DNS, что сведет риск взлома информации к минимуму. Эта настройка называется условной переадресацией (conditional forwarding), и изображена в верхней части на рисунке 4. Ее можно использовать в среде, где у вас используются несколько внутренних пространств имен DNS namespaces, и вы не хотите полагаться на Интернет или некоторые другие инфраструктуры DNS для преобразования имен. В этом случае каждый сервер DNS передает запросы на другие пространства имен для клиентов.
Резюме
DNS может быть сложным, но после более подробного рассмотрения он уже кажется не таким сложным, и его можно правильно обезопасить. В этой статье вы увидели, что DNS может защитить базу данных, настроенную для правильных серверов DNS, которые должны передавать зоны передачи. В такой ситуации ваши основные зоны, или зоны, интегрированные в Active Directory, будут иметь специальные дополнительные сервера DNS, с которыми они будут взаимодействовать. Без такой конфигурации, хакерские сервера DNS могут получить очень важную информацию относительно вашей сети. Еще одна возможность для обеспечения безопасности DNS. Безопасность DNS серверов можно обеспечить за счет интеграции с Active Directory, или за счет более современных технологий, как IPSec или VPN туннель. Наконец, контроль над переадресацией DNS может гарантировать более точное преобразование имен, а также поможет лучше защитить ваши внутренние DNS сервера от взлома.
Автор: Дерек Мелбер (Derek Melber)
Иcточник: WinSecurity.ru
Опубликована – 05.10.2007