Усиленное отраженное нападение на серверы DNS

Я работал на большое (100k + пользователи) среда, где AD использовался для содержания существенного объема общей информации сотрудника - в дополнение к обычной электронной почте и именам user\department, у нас также было несколько номеров телефона, физическое местоположение станции (вниз к в месте стройинспекции), организационная иерархия (кто работал на то, кого), число сотрудника, фото миниатюра, нормальный часовой пояс, дата начала и набор другого материала, который я не могу вспомнить теперь.

По общему признанию у нас было довольно гладкое в агрегате собственных нужд управляемого доступа API (и некоторый процесс авторизации для движения с одобрением доступа к ним), который позволил нам управлять делегацией прав обновить определенные свойства AD на на user\per основание группы, таким образом, было легко связать обновления этих свойств AD безопасно в приложения HR, который является, где управление этим видом данных было обработано.

Как пользователь в крупной организации я нашел, что имение в наличии этого вида информации было действительно полезно, и способность получить этот вид данных через простой запрос LDAP в рамках моих собственных приложений, не имея необходимость переходить через обручи для получения доступа к базам данных HR была также очень полезна.

11
задан 21 December 2012 в 06:09
1 ответ

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

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

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

Чтобы усугубить ситуацию (и вообще повысить эффективность атаки), посмотрите на часть усиления . Было бы неплохо, если бы трафик злоумышленника был равен по размеру результирующему трафику. Единственным преимуществом для злоумышленника будет то, что его адрес будет скрыт за DNS-сервером. Он мог бы напрямую подделать адрес отправителя, совершенно не нужно было бы перенаправлять через DNS. Но DNS отвечает, и это еще один момент, почему DNS так популярен здесь, может быть намного больше, чем вопрос. Вы можете найти разные числа для этого в зависимости от конкретных используемых запросов, но оно может доходить до 1:60 , если сервер достаточно дружелюбен для выполнения рекурсивных запросов за вас. Таким образом, злоумышленнику не нужно много машин под его контролем для создания большого количества вредоносного трафика.

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

Хотя вы не можете сказать, является ли запрос частью атаки или нет, единственный вариант - больше не запускать сервер. Вы можете возиться с ограничением скорости и другими игрушками, но вы не можете полностью избавиться от этого. Если вы предоставляете DNS для развлечения, вы можете занести в черный список IP-адрес источника запросов. Но если вы будете в большем масштабе, это повредит жертве еще больше. Помните, что все, что вы можете видеть на DNS-сервере, - это адрес жертвы. Представьте, что ваша компания подвергается атаке через DNS вашего провайдера, и ваш провайдер решает отключить службу DNS для вашей компании. Злоумышленник может набрать миллионы бонусных баллов за отказ в обслуживании .

В любом случае, эти атаки происходят днем ​​и ночью, и они считаются «фоновым шумом» Интернета. Если вы настроите общедоступный (рекурсивный) DNS-сервер, не займет много времени, прежде чем вы станете участником случайных атак. Конечно, иногда все становится совсем плохо, когда большие инфраструктуры (например, даже корневые DNS-серверы) неправильно используются для усиления, но в таких случаях персонал принимает превентивные контрмеры, пока атака не снизится до «нормального» уровня.


обучение. Наконец, чтобы ответить на ваш вопрос:

Вы знаете, что ваш сервер уязвим, если он отвечает на запросы без ограничений. Период. Если вы обслуживаете рекурсивные запросы, ваш сервер может генерировать указанное соотношение 1:60 для злоумышленника. Если он работает только нерекурсивно, это не так плохо, но все же ...

Итак ...

  • убедитесь, что вам действительно нужно запустить общедоступный DNS-сервер
  • , если необходимо, посмотрите на BIND allow-recursion и allow-query директивы
  • , если ваш DNS-сервер будет авторизованным для вашей собственной зоны , рекурсия вообще не нужна, установите для allow-recursion значение «none»;
  • , если вы хотите запустить преобразователь для других доменов , ограничьте разрешенных пользователей для запросов и рекурсивных запросов. Вы можете определить IP-адреса, сети или списки доступа в упомянутых директивах.
  • подумайте об ограничении скорости DNS-трафика не только в BIND, но и на системном уровне. В качестве очень простого примера эти правила iptables не разрешают более 10 запросов в минуту с каждого IP-адреса:

.

iptables -A INPUT -p udp --dport 53 --set --name dnslimit
iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP

Теперь, имея в виду эти моменты, вам должно быть хорошо идти. На вашем сервере может быть вредоносный трафик время от времени, но не в таком количестве, которое мешает вам спать спокойно.

22
ответ дан 2 December 2019 в 21:45

Теги

Похожие вопросы