LINUX.ORG.RU

Атака Усиление DNS (DNS Amplification)

 , ,


1

1

Кто-нибудь разбирался с этим вопросом?

Есть хорошая статья в части первой - по теориии - http://blogerator.ru/page/dns-amplification-ddos-anatomija-ataki-otrazhenie-p...
в части второй - по практике - http://blogerator.ru/page/dns-amplification-ddos-otrazhenie-bind-dns-reflect-...

Там советуют отлючить рекурсивные запросы:
recursion no;

У меня и у клиентов - динамические адреса в разных сетях, поэтому меня такой приём не очень устраивает и совсем не радует*.

Есть сервис, который проверяет bind через on-line тест https://isc.sans.edu//dnstest.html и там же предлагают настройки http://www.cymru.com/Documents/secure-bind-template.html, но я их еще не разбирал...

Кто-нибудь уже сталкивался с тюнингом конфигов bind для борьбы с усилением DNS?
_____
* в том смысле, чтобы оставить рекурсию только для определенных IP через recursion allow - я так не имею возможности сделать.

★★★

Последнее исправление: Windows (всего исправлений: 5)

У меня и у клиентов - динамические адреса в разных сетях

И что, там нет своих DNS ? Или у тебя есть потребность городить что-то своё, но без VPN ? В общем, это что-то не очень обычное.

Кто-нибудь уже сталкивался с тюнингом конфигов bind для борьбы с усилением DNS ?

Сначала надо понять, действительно ли не годится «recursion no;».

Вообще, вот тут вот http://www.us-cert.gov/ncas/alerts/TA13-088A есть такие ссылки:
http://ss.vix.su/~vixie/isc-tn-2012-1.txt
http://www.redbarn.org/dns/ratelimits

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)

Не знаю, что там можно тюнить в bind'е, если вы так переживаете за DNS Amplification, то напишите свой демон, который на все dns udp запросы будет отвечать ″DNS truncated″, чтобы клиенты переходили на tcp.

mky ★★★★★
()
Ответ на: комментарий от AS

И что, там нет своих DNS ? Или у тебя есть потребность городить что-то своё, но без VPN ?

Да просто хочу свой DNS - у провайдера глючный, наверное из-за той же проблемы усиления DNS.

За ссылки спасибо, буду разбираться.

Windows ★★★
() автор топика
Ответ на: комментарий от mky

Не знаю, что там можно тюнить в bind'е, если вы так переживаете за DNS Amplification, то напишите свой демон, который на все dns udp запросы будет отвечать ″DNS truncated″, чтобы клиенты переходили на tcp.

Я хотел даже модуль писать (Вы знаете мою другую тему), но потом подумал - лучше с настройками bind разобраться :)

Windows ★★★
() автор топика
Ответ на: комментарий от mky

Не знаю, что там можно тюнить в bind'е

Это написано по приведённым мной ссылкам, где описан механизм DNS RRL для Bind 9.10. :-)

AS ★★★★★
()
Ответ на: комментарий от Windows

у провайдера глючный

Может, провайдера попинать лучше ? Мне кажется, что свой открытый DNS - сильный оверхед для такого случая.

AS ★★★★★
()
Ответ на: комментарий от Windows

Ты смотри, потому что сейчас некоторые все-таки начинают сделить за своими автономками и амплификаторы блекхолят. Мне от OVH и Leaseweb приходили абузы, что если не закроешь за неделю, то а-та-та и остракизм.

Shaman007 ★★★★★
()
Ответ на: комментарий от Shaman007

Ты смотри, потому что сейчас некоторые все-таки начинают сделить за своими автономками и амплификаторы блекхолят. Мне от OVH и Leaseweb приходили абузы, что если не закроешь за неделю, то а-та-та и остракизм.

Да уже было. Я просто ограничил доступ к bind только с localhost. Теперь хочу большего, но, блин, с настройками теперь разбираться надо...

Windows ★★★
() автор топика
Ответ на: комментарий от AS

Может, провайдера попинать лучше ? Мне кажется, что свой открытый DNS - сильный оверхед для такого случая.

Да они только открылись, даже не знают, как в линухе настроить подключение через pppoe. Просить настроить dns как-то вообще безперспективно... Как временное решение - перешёл на google dns.

Windows ★★★
() автор топика
Ответ на: комментарий от Windows

А какую задачу ты вообще решаешь содержанием собственного DNS? Если там секретная зона, тогда верный путь - VPN для клиентов и DNS только внутрь тоннеля. Если ты подменяешь результаты для некоторых запросов на свои, то squid резолвер только на локальный интерфейс.

Shaman007 ★★★★★
()
Ответ на: комментарий от Windows

Ты же понимаешь, что Google DNS (лучше Yandex DNS, так как у Гугла нет точек в России) высокопроизводительный и географически распределенный (BGP anycast тебе что-то говорит)? Просто рекурсивный резолвер тебе городить не надо ни за чем.

Shaman007 ★★★★★
()
Ответ на: комментарий от Shaman007

А какую задачу ты вообще решаешь содержанием собственного DNS?

Планировал управлять своей собственной зоной домена. Задачу решил, но потом как-то случилось, что управление передал другому dns от регистратора домена. BIND остался без дела и я подумал, почему-бы его не использовать для домашних компов. Пришёл абуз - я его отключил, теперь вот разбираюсь, как включить.

Windows ★★★
() автор топика
Ответ на: комментарий от Shaman007

Ты же понимаешь, что Google DNS (лучше Yandex DNS, так как у Гугла нет точек в России)

Про Яндекс DNS, честно говоря, даже не знал... Спасибо за наводку. Конечно Яндекс лучше, т.к. он ближе и не собирает досье на dns-запросы.

Просто рекурсивный резолвер тебе городить не надо ни за чем.

Я понимаю, но всё равно хочется свой DNS и заодно разобраться с этим вопросом DNS Amplification - на будущее пригодиться в качестве тренировки.

Windows ★★★
() автор топика
Ответ на: комментарий от Windows

Для собственной зоны нужен не рекурсивный, а авторитативный DNS.

Для задачи «я не верю Гуглу» во-первых используют не BIND, а pdnsd, во-вторых с ratelimit, в третьих, хорошей практикой будет открывать порт только для дома (IP не на столько динамический, эта задача решается). И важно понимать, что ты абсолютно ничего не выигрываешь от использования не яндекса, а себя. DPI для РКН сейчас работает не так, для обхождения цензуры нужен exit-point, а не собственный DNS.

Shaman007 ★★★★★
()
Ответ на: комментарий от AS

Если верить тому, что написано в первой ссылке, приведёной ТС, что в Инете 2 миллиона «неправильных» DNS-серверов, дак достаточно каждому такому серверу отправлять 1 пакет в секунду. Смысла в RRL не больше, чем в spf.

mky ★★★★★
()
Ответ на: комментарий от Shaman007

Для собственной зоны нужен не рекурсивный, а авторитативный DNS.

Я над этим предложением помедитирую... Что-то чувствую, но пока не могу понять, как это мне поможет отлючить рекурсивные запросы, ведь рекурсия мне нужна для домашнего компа-клиента.

С другой стороны, если использовать bind только с localhost, где находится bind, а dns-запрос шлёт какая-нибудь программа типа sendmail, то здесь рекурсия опять нужна.

Получается, что рекурсию можно отключить, если использовать bind только для обслуживания зоны домена? И то - я не увере, можно ли в этом случае отключить рекурсию?

Для задачи «я не верю Гуглу» во-первых используют не BIND, а pdnsd, во-вторых с ratelimit,

Кстати, хотел спросить: Ratelimit - это фишка фаервола или named?

в третьих, хорошей практикой будет открывать порт только для дома (IP не на столько динамический, эта задача решается).

В моём случае он реально динамичный. Когда-то была статика и задача решалась очень просто.

И важно понимать, что ты абсолютно ничего не выигрываешь от использования не яндекса, а себя. DPI для РКН сейчас работает не так, для обхождения цензуры нужен exit-point, а не собственный DNS.

Соглашусь, на за одним исключением - решая проблемы, получаем опыт. Перейду на яндекс dns, пожалуй, но проблему всё равно нужно будет решать.

Windows ★★★
() автор топика
Ответ на: комментарий от mky

Если верить тому, что написано в первой ссылке, приведёной ТС, что в Инете 2 миллиона «неправильных» DNS-серверов, дак достаточно каждому такому серверу отправлять 1 пакет в секунду. Смысла в RRL не больше, чем в spf.

Не совсем понял, что такое spf, но в случае 2 млн. «неправильных» DNS-серверов, демон, который на все dns udp запросы будет отвечать ″DNS truncated″, чтобы клиенты переходили на tcp, тоже не спасёт?

Windows ★★★
() автор топика

Я уже задавал вопрос о создании модуля, который бы помечал все пакеты клиента специальным маркером.

Там нашёл две ссылки, но так и не понял - есть ли такая возможность в принципе каким-то образом помечать свои tcp/udp-пакеты, чтобы потом фильтровать их на фаерволе и пропускать далее или не пропускать на bind?

Windows ★★★
() автор топика
Ответ на: комментарий от Windows

Получается, что рекурсию можно отключить, если использовать bind только для обслуживания зоны домена ?

Да.

И то - я не увере, можно ли в этом случае отключить рекурсию ?

Можно.

А для доверенных сетей ведётся список, откуда можно делать рекурсию. Если это надо не для зоны, а для того же Sendmail с локалхоста.

Кстати, хотел спросить: Ratelimit - это фишка фаервола или named ?

Она всеобъемлющая. И у iptables есть, и у некоторых отдельных приложений. Просто общей термин, описывающий все механизмы ограничения количества запросов разом. И не только к DNS относится, разумеется. :-) ssh вот полезно ограничивать, pop/imap, бывает... Мало ли.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 2)
Ответ на: комментарий от mky

дак достаточно каждому такому серверу отправлять 1 пакет в
секунду. Смысла в RRL не больше, чем в spf.

Для этого атакующему надо иметь актуальный список, что отдельная сложность. Так что, смысл определённый есть в мезанизме. Плюс ещё это нагрузка на сам сервер же. Если рекурсию запретить, всё равно будет идти определённый поток на жертву в виде отлупов. Тут усиления не будет практически, но, всё равно, не очень приятно. Если набор параметров у RRL-дополнения посмотреть, видно, что там имеется ввиду:
http://ss.vix.su/~vjs/rl-arm.html

AS ★★★★★
()
Ответ на: комментарий от AS

AS, спасибо! Кое-что прояснилось :)

Windows ★★★
() автор топика
Ответ на: комментарий от AS

По сути RRL это механизм ограничения нагрузки на DNS-сервер, а не борьбы DNS Amplification. Пока что, при нынешнем коде ботов он эффективен, но и с включенным RRL сервер всё одно шлёт ответы. Изменят алгоритм ботов, чтобы они отправляли разнообразные запросы и RRL не помеха. Да и вобще не понято, что свет клином сошёлся на рекусорах, авторитетный DNS-сервер точно также ответит на DNS запрос по udp с поддельным ip-адресом. Ну будет там меньше коэффициент усиления, но сейчас куча доменов с объёмным ANY ответом, 30 не получится, но порядка 10 коэффициент усиления будет.

Интерестно, а у гугла насколько большой пул ip-адресов, с которых он делает DNS-запросы от своего рекурсора (на 8.8.8.8). А то если немного, то можно пофлудить с этих адресов на какой-нибудь авторитетный DNS-сервер, чтобы на нём сработало RRL и он перестал отвечать...

mky ★★★★★
()
Ответ на: комментарий от mky

По сути RRL это механизм ограничения нагрузки на DNS-сервер, а не борьбы DNS Amplification. Пока что, при нынешнем коде ботов он эффективен, но и с включенным RRL сервер всё одно шлёт ответы.

У меня тоже такие же мысли - RRL (ratelimit от bind) ограничивает количество ответов в минуту, но всё равно отвечает. Хорошее решение, но не кардинальное.

Windows ★★★
() автор топика
Ответ на: комментарий от mky

куча доменов с объёмным ANY ответом

Запросы any вообще надо максимально ограничивать. Первая вещь, с которой столкнулся в атаке. Потом ограничения на всяку-разну дрянь делаешь, и сервачки вполне себе хорошо живут)

andrew667 ★★★★★
()
Ответ на: комментарий от Windows

на будущее пригодиться в качестве тренировки

Кому пригодится? Припирается к тебе 200 мегабит входящих запросов. Че делать будешь? Оплачивать трафик сервера? Подними себе кеш и укажи релеем серваки прова. На этом все)

andrew667 ★★★★★
()
Ответ на: комментарий от Windows

И еще - если будешь обслуживать свои домены, то для подключения к провайдеру желательно использовать просто реально маршрутизируемую IPv6 или IPv4 сеть. БЕЗ всяких pppoe, l2tp и прочей ерунды. Работает более стабильно, хоть и стоит сильно дороже.

andrew667 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.