Страницы

среда, 16 июня 2021 г.

Обеспечение безопасности инфраструктуры разрешения имен DNS при помощи Citrix ADC

Разрешение имен DNS – это первый шаг в обеспечении безопасности доступа к приложениям, а кэш DNS – это ключевой актив, подверженный различным угрозам. Если система DNS компрометирована, атакующий сможет вмешиваться в транзакции и оказывать влияние на ресурсы DNS и сетевую инфраструктуру.

Далее мы рассмотрим, как Citrix ADC может помочь защитить инфраструктуру DNS против известных уязвимостей.


Отравление кэша (Cache Poisoning).

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

Citrix ADC позволяет настроить ограничение числа запросов с одинаковым 4-ым полем в заголовке UDP. После достижения порогового значения, Citrix ADC начинает сбрасывать поступающие запросы UDP. Данный лимит можно настроить при помощи следующей команды:

set dns parameter -maxPipeline ЗНАЧЕНИЕ

Обратите внимание, установка параметра в значение ноль (0) обозначает отключения лимита в числе конвейерных запросов, таким образом, необходимо установить лимит в подходящее положительное целое число не равное 0.

Также можно включить DNSSEC для зоны, размещаемой на Citrix ADC, чтобы избежать отравления кэша (Cache Poisoning).


Атаки амплификации (Amplification Attacks).

В атаках амплификации DNS атакующий использует маленькие запросы, чтобы исчерпать ресурсы сервера DNS. Атака направлена на вычислительные ресурсы, память и пропускную способность сервера DNS, таким образом, за счет истощения ресурсов сервера, он перестает отвечать на корректные запросы от клиентов. Существуют разные способы защиты от атак амплификации DNS.

Одним из способов защиты инфраструктуры от атак амплификации DNS является белые (Whitelist) или черные списки (Blacklist) клиентских IP-адресов. Если защита на базе IP-адресов не подходит, можно определить шаблон атаки, настроить соответствующие политики при помощи выражений политик Citrix ADC и принудительно заставить клиентов, повторно инициировать запросы DNS по TCP. Дополнительно можно настроить конечные точки DNS на IP-адресах передачи любому из узлов (Anycast) для защиты от распределенных атак на доступность (DDoS).


Атака амплификации корневых ссылок (Root Referral Amplification Attack).

Авторитетным серверам DNS рекомендуется возвращать корневые записи NS в авторитетной секции ответа на запрос информации об имени домена, для которого сервер не авторизован. Размер корневых записей NS включает связующие записи, и достигает 512 байт. Это может увеличить запрос DNS как минимум в 5 раз. Атакующий может использовать спецификацию DNS для отправки запроса авторитетным серверам имен для доменов, не входящих в их зону ответственности.

Можно устранить эту угрозу при помощи Citrix ADC, отключив параметр настройки dnsRootReferral. В таком случае, Citrix ADC не будет отвечать на запросы доменов за пределами зон, для которых ADC настроен быть авторитетным.

set dns parameter -dnsRootReferral DISABLED


Атака амплификации на базе запроса ANY (ANY Query-Based Amplification Attack).

Тип запроса ANY возвращает все записи для указанного доменного имени. Это обозначает значительно больший размер ответа по сравнению с остальными запросами. Атакующие используют запросы ANY для выполнения распределенных атак на доступность (DDoS) уязвимой сетевой инфраструктуры. Для противостояния подобным угрозам можно настроить ограничивающие политики (Rate-Limiting) для запрещения запросов ANY сверх установленного лимита.

add stream selector dns_anyquery_amplification "dns.req.question.type.eq(ANY)"

add ns limitIdentifierdns_ampl_attack_limitid -threshold 1000 -timeSlice 10000 -selectorName

dns_anyquery_amplification

add dns policy dns_amp_attack_pol "sys.check_limit(\"dns_ampl_attack_limitid\")"

dns_default_act_Drop

bind dns global dns_amp_attack_pol -priority 10add ns variable dns_tcp_requests -type ulong -scope transaction


Атака амплификации DNS на базе NXDOMAIN (NXDOMAIN-Based Amplification Attack).

Боты DNS могут внедрять вредоносные запросы к несуществующим доменным именам. Доменные имена для подобных атак, как правило, генерируются случайным образом. Создание ответа NXDOMAIN может быть более ресурсоемкой операцией, чем обслуживание настроенных записей для авторитетных серверов разрешения имен. Ответ NXDOMAIN в случае зон со включенным DNSSEC может быть еще более ресурсоемкой операцией.

Один популярный подход к устранению атак на базе NXDOMAIN – это определение шаблона домена и сброс подобных запросов, либо принудительное переключать клиента на TCP при помощи отправки усеченного ответа. Принудительное переключение на TCP является одним из способов проверки подлинности клиентов. Но вредоносные боты стали значительно сложнее и за счет полной поддержки стека TCP/IP, они могут повторно инициировать запрос по протоколу TCP. В идеале необходимо определить шаблон в доменных именах и настроить соответствующие политики для сброса запросов, соответствующих шаблону.

Citrix ADC может выступать в качестве авторитетного сервера имен для зон DNS и может устранить атаки амплификации на базе NXDOMAIN при помощи следующих опций настройки:

set dns parameter -NXDomainRateLimitThreshold ЗНАЧЕНИЕ

Если Citrix ADC настроен в качестве прокси, запросы с NXDOMAIN как правило не попадают в кэш. Фоновые серверы переполняются большим числом запросов, чем они могут обработать и в результате перестают обрабатывать корректные запросы. Когда Citrix ADC получает ответ NXDOMAIN, он кэшируется, в итоге выталкивая из кэша корректные записи.

Можно защитить кэш DNS против атак NXDOMAIN за счет выделения только малой части памяти для кэширования негативных записей и за счет установки TTL негативных записей в более низкое значение (рекомендуется использовать значение не более 1 или 2-ух минут). Пример конфигурации:

set dns parameter -maxNegativeCacheSize 200 -maxnegcacheTTL 120

Обратите внимание в примере выше, параметр maxNegativeCache задается в мегабайтах, а maxnegcacheTTL – в секундах.


Туннелирование DNS (DNS Tunneling).

Атакующий может использовать туннель DNS для команд и управления, эксфильтрации данных или передачи любого трафика IP. Туннель DNS позволяет перегрузить DNS, израсходовав ресурсы необходимые для поддержки доступа к легальным приложениям.

Техники обнаружения туннелей DNS, такие как анализ полезной нагрузки и анализ траффика могут помочь при устранении данной угрозы. Анализ полезной нагрузки DNS исследует один или более запросов на предмет индикаторов туннеля. При помощи анализа траффика учитываются объем и шаблоны на протяжении отрезка времени. Число, частота и прочие атрибуты запросов могут также учитываться. При помощи богатой инфраструктуры политик DNS в Citrix ADC можно реализовать обнаружение на базе полезной нагрузки и трафика.

Если Citrix ADC находится перед фермой серверов LDNS, необходимо устранить возможность туннелирования DNS, чтобы ресурсы использовались только для разрешенных сценариев применения DNS. Решение, представленное ниже, основано на предположении, что длина доменных имен должна быть короче 200 байт и размер полезной нагрузки запросов DNS не должен превышать 256 байт.

add dns policy dns_tunnel_payload_1 "dns.req.question.domain.length.gt(200)" dns_default_act_Drop

add dns policy dns_tunnel_payload_2 "dns.length.gt(256)" dns_default_act_Drop

bind dns global dns_tunnel_payload_1 20 -gotoPriorityExpression next -type REQ_DEFAULT

bind dns global dns_tunnel_payload_2 30 -gotoPriorityExpression next -type REQ_DEFAULT


Атака TCP Slowloris.

Атакующий может отправить запрос DNS по частям и стек сервера будет ожидать завершения запроса в рамках определенного периода простоя. Однако атакующий может не послать все данные целиком или отправлять части с большим интервалом между ними. Это может привести к отказу в обслуживании корректных запросов (из-за потребления памяти на сервере имен для поддержки соединений TCP в рамках периода ожидания множества частей запросов). Следующая конфигурация Citrix ADC позволит устранить подобные атаки:

set dns parameter -splitPktQueryProcessing DROP


Заключение.

Для большинства хорошо изученных атак, доступны способы противодействия в параметрах DNS. В некоторых случаях можно использовать инфраструктуру политик Citrix ADC для инспекции запросов и ответов на предмет аномалий и применять подходящие действия для защиты ресурсов DNS и сетевой инфраструктуры в целом. Инфраструктура политик Citrix ADC – расширяемая платформа, которую сетевые и системные администраторы могут использовать для применения правил защиты от новейших угроз, обеспечивая немедленную защиту инфраструктуры DNS в безопасном, постоянно меняющемся окружении.

Узнать больше о политиках DNS, можно при помощи документации Citrix по темам политик ответчика (Responder Policy) для DNS и политик перезаписи (Rewrite Policy) для DNS.

Комментариев нет:

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