Рейтинг:0

DNS Resolver и фильтрация портов запросов

флаг gd

Во время атак с усилением DNS на DNS-сервере я заметил, что некоторые DNS-запросы имеют для пары IP/порт что-то вроде 104.49.96.196:80. Я понимаю, что это поддельный IP-адрес, но можно ли рассмотреть возможность фильтрации порта DNS-запроса? Я считаю, что нам не следует ожидать порт> 1023. Это безопасное предположение? В этом случае я считаю, что это легко обнаружить и не отвечать на атаку с усилением DNS (если пакет достигает DNS-сервера и не отбрасывается WAF).

Рейтинг:1
флаг cn

Нет, это не безопасное предположение.Не пытайтесь фильтровать по портам, полезных последствий это не даст. Как клиент обрабатывает свои локальные порты, это его личное дело, и, следовательно, как сервер вы можете ожидать получения трафика со всех портов. Разделение Unix на 1024 — это архаичное наследие прошлого, которое сегодня практически ничего не значит.

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

смотреть на https://www.infoblox.com/dns-security-resource-center/dns-security-solutions/dns-security-solutions-response-rate-limiting-rrl/ для ознакомления с предметом и на https://www.isc.org/docs/DNS-RRL-LISA14.pdf для более технического представления.

флаг in
Есть ли у вас ссылка на какой-либо RFC, который объявляет в RFC6056 «архаичное наследие прошлого, которое сегодня больше ничего не значит»?
Michael Hampton avatar
флаг cz
Это «архаичное наследие прошлого» хорошо кодифицировано, например, в RFC 6335.
Patrick Mevzek avatar
флаг cn
@NiKiZe В RFC нет ничего, что предписывало бы что-либо. Предложение: «Однако эфемерные алгоритмы выбора порта должны использовать весь диапазон 1024-65535». Обратите внимание, что это «следует», а не «СЛЕДУЕТ» (или даже «ДОЛЖЕН»), что имеет БОЛЬШОЕ значение в мире IETF, см. RFC2119 для пояснений по этому поводу.
Patrick Mevzek avatar
флаг cn
@MichaelHampton Не обязательно, см. комментарий выше. Это второстепенный случай "должен". Это не спецификация IETF, предписывающая что-либо, а просто лучшая текущая практика из того, что происходит сегодня.
Patrick Mevzek avatar
флаг cn
И исходный порт сегодня уже ничего не значит. В прошлом команды «r» (rlogin, rtelnet и т. д.) просто основывали свою аутентификацию на этом, полагая, что если исходный порт был ниже 1024, то он был «привилегированным» и, следовательно, в порядке. Это оказалось неправильным с точки зрения дизайна, поэтому сегодня никто так больше не делает, ничего с точки зрения безопасности нельзя получить только из используемого исходного порта.
Michael Hampton avatar
флаг cz
@PatrickMevzek IANA явно так не считает.
Patrick Mevzek avatar
флаг cn
@MichaelHampton IANA не решает, какие **исходные** порты использует ОС. Очевидно, это отличается от портов назначения. Назначение (то, чем занимается IANA) — это всего лишь механизм синхронизации для целей. И это тоже архаично, если бы каждое приложение использовало `SRV` записи, нам бы даже не пришлось прописывать номера портов, так как любое из них поддерживало бы любой протокол.
флаг in
Вы правы, ничто не мешает
Patrick Mevzek avatar
флаг cn
@NiKiZe "Вы правы, ничто не мешает
флаг in
Я бы сказал, что это статистическая информация, но я соберу данные, спасибо. Пока не найдено ни одной связи или документации, которые противоречат этому, буду рад узнать о любом случае, который на самом деле противоречит.
Patrick Mevzek avatar
флаг cn
@NiKiZe (и @MichaelHampton), может быть, это неясно, но теоретически я с вами как бы согласен. Я хочу сказать OP, что борьба с проблемами усиления DNS / DDOS не должна полагаться на фильтрацию исходных портов, потому что это будет хрупким и ограниченным.
Рейтинг:1
флаг in

DNS-клиенты должны иметь исходный порт> 1023.

Если он < 1024, это должен быть только исходный порт 53, если он исходит от какого-либо другого DNS-сервера, но это маловероятно.

Подтвердить с помощью tcpdump порт 53

Глядя на RFC6056 и упрощение с некоторыми примерами мы могли бы пойти дальше и сказать, что любой хорошо работающий стек IP не должен иметь (иметь) исходный порт ниже 49152 (первый эфемерный порт). Однако раздел 3.2 противоречит этому, как и образцы.

Но пока кто-нибудь не предоставит ссылку на RFC, который переопределяет RFC6056, можно с уверенностью сказать, что спорт <= 1023 недействителен.

Если по какой-либо причине запрос не выполняется, клиент должен повторить попытку и, надеюсь, получить успешный запрос. (Даже если это не удастся, я бы проигнорировал эти реализации)

vinz avatar
флаг gd
Я полностью согласен с тобой. Мои опасения были больше связаны с реализацией этой фильтрации на порту? может у него есть недостаток, который я упускаю? Есть ли какой-нибудь известный преобразователь DNS (я не нашел никакой информации об этом), который реализует эту фильтрацию?
флаг in
Как правило, ни у чего не должно быть исходного порта
Patrick Mevzek avatar
флаг cn
"Как правило, ни у чего не должно быть исходного порта
флаг in
Добавлена ​​ссылка на RFC.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.