Что такое открытый преобразователь DNS и как я могу защитить свой сервер от хакерского использования?

15

У меня нет сильнейшего опыта в области компьютерной безопасности, но вчера один из серверов моей компании был закрыт нашим хостом.

Это сервер с общедоступным IP-адресом, на котором я размещаю несколько приложений веб-служб, включая веб-сайты и API. Мне сказали, что на моем сервере «запущен открытый DNS-преобразователь, который используется для передачи атаки типа« отказ в обслуживании »на внешнюю сущность».

Что это значит? Как работает эта атака? И как я могу защитить свою систему от подобных злоупотреблений?

В моем конкретном случае рассматриваемый сервер находится на Windows Server 2012, и он обслуживает DNS для домена Active Directory.

JSideris
источник
Если вы сообщите нам, какой DNS-сервер вы используете, возможно, кто-то скажет вам, какую именно конфигурацию вам нужно установить и каким образом. Без этой информации я просто угадал BIND и все частные IP-адресные пространства, потому что BIND является наиболее распространенным DNS-сервером, а частные адресные пространства безопасны. Вы, вероятно, захотите разрешить рекурсивные запросы и от вашего блока (-ов) внешнего адреса, если это применимо.
HopelessN00b
@ HopelessN00b Спасибо, ваш ответ был весьма полезным. Я не использую BIND (мой хост также предположил, что я был и предоставил мне некоторые команды для запуска); У меня есть DNS-сервер, настроенный в качестве роли в IIS. Интересно, я не настраивал DNS-сервер вручную и не уверен, что понимаю, зачем мне это нужно. Что ломается, если он отключается?
JSideris
Не отключайте DNS в среде Windows. Вероятно, вы сломаете Active Directory. Дайте мне знать, какая версия Windows Server, и я (вероятно) могу отредактировать на некоторых скриншотах, чтобы показать вам, как защитить Windows DNS box.
HopelessN00b
Хорошо. На самом деле я просто настроил активный каталог в эти выходные. Это стандарт Windows Server 2012.
JSideris

Ответы:

28

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

Эта атака работает довольно просто - поскольку ваш сервер будет обрабатывать рекурсивные DNS-запросы от любого, злоумышленник может заставить его участвовать в DDoS, отправив серверу рекурсивный DNS-запрос, который вернет большой объем данных, намного больший, чем исходный пакет DNS-запроса. Подделяя (фальсифицируя) свой IP-адрес, они перенаправляют этот дополнительный трафик на компьютеры своих жертв, а не на свои собственные, и, конечно, они будут делать столько запросов, сколько могут, на ваш сервер и любой другой открытый DNS. решатели они могут найти. Таким образом, кто-то с относительно небольшим каналом может «усилить» атаку типа «отказ в обслуживании», используя всю пропускную способность своего канала, чтобы направить гораздо больший объем трафика на своих жертв.

ArsTechnica сделала достойную статью о недавней DDoS-атаке с DNS-усилением против Spamhaus и заслуживает быстрого прочтения, чтобы получить основы (и хорошее представление об усилении).

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


Например, если бы я использовал BIND 9 и хотел просто предотвратить рекурсию DNS с внешних адресов, я бы использовал следующий код в моей конфигурации:

options {
    directory "/var/named/master";
    allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; };

Эта строка кода говорит моему серверу BIND обрабатывать только рекурсивные DNS-запросы для локального петлевого адреса (который, я думаю, я мог / должен установить для локального петлевого блока, всего / 8) и 3 частных адресных пространств IPv4.


Для Windows Server 2012, которую вы говорите, используете, у вас есть варианты ниже.

1. Отделите свой DNS-сервер от своего IIS-сервера.

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

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

  • К моему удивлению, Windows DNS не позволяет вам ограничивать адреса, по которым выполняются рекурсивные DNS-запросы, так что это фактически рекомендуемый Microsoft метод.
  • введите описание изображения здесь
    • Выберите правила DNS (TCP и UDP), перейдите в Remote IP addressраздел и добавьте подсети, используемые в вашей локальной сети, а также любые общедоступные IP-адреса серверов, которым требуется доступ к Active Directory. Как и в примере BIND, частные адресные пространства IPv4 - это 127.0.0.0/8 10.0.0.0/8 192.168.0.0/16и 172.16.0.0/12.

3. Отключить рекурсию .

  • Я, честно говоря, не уверен, какое влияние это окажет на вашу среду, поскольку вы на самом деле не указали, как DNS и AD настроены в вашей среде, и, соответственно, это последний вариант.
  • введите описание изображения здесь
    1. Откройте диспетчер DNS.
    2. В дереве консоли щелкните правой кнопкой мыши соответствующий DNS-сервер и выберите Свойства.
    3. Где?
    4. DNS / соответствующий DNS-сервер
    5. Перейдите на вкладку «Дополнительно».
    6. В разделе «Параметры сервера» установите флажок «Отключить рекурсию» и нажмите кнопку «ОК».
      • Поскольку у нас многолесная среда и мы используем условные серверы пересылки, я не собираюсь устанавливать этот флажок. Возможно, вам стоит подумать.
HopelessN00b
источник
Отличный ответ!
Фред Волшебная собака Чудес
Идеальное, хорошо документированное решение :).
JSideris
2
Тогда как 8.8.8.8 или 1.1.1.1 препятствуют тому, чтобы они были открытыми определителями?
LinuxBabe