Pull to refresh

Response Policy Zones (RPZ) на страже сети

Reading time 7 min
Views 26K

    Мой эксперимент с открытием рекурсивного DNS сервера для всех желающих получился настолько успешным, что срочно пришлось менять правила игры. Вместо полного закрытия рекурсивного DNS я решил ограничить доступ к наиболее популярным у атакующих доменам с помощью механизма RPZ (Response Policy Zone).
     RPZ – это функционал DNS-сервера Bind, грамотное использование которого позволяет решить следующие проблемы:
  • блокировать коммуникации botnet и malware с управляющими центрами (C&C);
  • снизить нагрузку на кэширующий DNS и канал связи;
  • блокировать доступ по списку «запрещенных» сайтов (как для предприятий, так и для провайдеров);
  • перенаправлять пользователей на локальные ресурсы.
    Рассмотрим подробно варианты применения RPZ и его настройку.


Блокирование коммуникаций botnet и malware

      Многие Botnet’ы и Malware используются DNS для связи с управляющими центрами (C&C), что усложняет процесс идентификации и борьбы с ними. Примером таких технологий является FastFlux (известна с ноября 2006г.) и DGA (Domain Generation Algorithm).
    FastFlux — для связи с C&C используется домен(ы) с большим количеством А-записей, которые часто изменяются (TTL – 5 минут). В более сложном варианте реализации данные записи могут указывать на зараженные/взломанные серверы и компьютеры, выступающие в качестве прокси. Блокирование коммуникаций такого вредоносного ПО по IP невозможно в виду их большого количества и частых изменений.
    BredoLab – один из известных botnet, который использовал технологию FastFlux. BredoLab использовался: для заражения компьютеров другими malware (Zbot a.k.a. Zeus, SpyEye, TDSS, HareBot, Blakken a.k.a. Black Energy 2) для рассылки спама и проведения атак. Подробнее о BredoLab можно почитать тут.
    Используя технологию DGA вредоносное ПО генерирует по определенным правилам большое количество доменов (до 50 тысяч), часть из которых каждый день проверяется и используются для связи с C&C.
    Cryptolocker – одна из наиболее известных на сегодняшний момент программ вымогателей — использовала данный алгоритм. После заражения компьютера Cryptolocker пытался связаться с C&C и, при успешном подключении, скачать публичный ключ, который используется для шифрования. lcxgidtthdjje.org, kdavymybmdrew.biz, dhlfdoukwrhjc.co.uk, xodeaxjmnxvpv.ru – примеры доменов использовавшихся Cryptolocker.
    Для предотвращения данных угроз можно использовать RPZ, блокируя коммуникации вредоносного ПО с C&C. RPZ-зону для защиты от подобных угроз можно вести вручную (используя данные с специализированных форумов, блогов и сайтов) или воспользоваться сервисом подписки.
 
    Несколько компаний предоставляют подобный сервис для RPZ (список взят с dnsrpz.info):
  • SpamHaus – стоимость подписки зависит от типа организации и количества пользователей;
  • Surbl – стоимость подписки зависит от типа организации и количества пользователей;
  • InternetIdentity – стоимость не ясна;
  • ThreatStop – подписка продается компанией Infoblox под торговой маркой DNS Firewall. Стоимость зависит от модели устройства. 18 сентября по этой теме Infoblox проводит вебинар на русском языке, зарегистрироваться можно тут.
Некоторые поставщики RPZ-зон предоставляют их для тестирования, поэтому очень легко проверить свою сеть на наличие известных botnet и malware.

Снижение нагрузки на кэширующий DNS и канал связи


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

    На приведенном выше рисунке на 2 часа нагрузка вырастала со стандартных 15 тысяч запросов в секунду до 43 тысяч запросов. Для атак использовалась амплификация и ответ сервера (в 4Кб) превышал запрос в 60 раз. Соответственно, дополнительная нагрузка в 28 тысяч запросов в секунду сгенерировала исходящий трафик 875 Мб/с.
     Я просканировал одну из сетей /16 московского оператора связи (к которому я подключен). В вечернее время было обнаружено 69 устройств, которые отвечают на запросы DNS и доступны из Internet. Мой (средний по параметрам) маршрутизатор Linksys EA3200 может отработать от 1000 запросов в секунду (размер пакета 4Кб) до 3500 запросов в секунду (небольшой размер пакета), то есть сгенерировать 31Мб/с исходящего трафика при 0.5Мб/с входящего. То есть, обнаруженных 69 устройств могут сгенерировать поток в 2 Гб/с и значительно нагрузить сеть оператора.
    Весь паразитный трафик на моем открытом рекурсивном DNS (см. предыдущую статью) генерировался только 3 доменами: webpanel.sk, energystar.gov и doleta.gov.

    Блокирование данных доменов с помощью RPZ (я использовал для ответа NODATA) позволило снизить нагрузку на сеть, так как размер запроса практически совпадает с размером ответа сервера. Проведение атаки стало бессмысленным.

Блокирование доступа по списку запрещённых сайтов


    Блокировка доступа к доменам по спискам запрещенных сайтов полезна как для предприятий, так и для интернет провайдеров. С ограничениями доступа внутри предприятий всё тривиально и каких-либо проблем в реализации не возникает. Не следует забывать, что нужно заблокировать доступ пользователей к публичным DNS.
    Провайдеры же могут использовать RPZ для исполнения ФЗ, так как не у всех есть возможность пропускать трафик через DPI, а блокирование доступа по IP чревато потерей лояльности абонентов. В этом случае ограничения реализуются таким образом:
  1. Реестр запрещенных сайтов разделяется на 2 группы:
    • Ограничения накладываемые на целый домен;
    • Ограничения накладываемые на определенный раздел сайта;
  2. Сайты попадающие под блокирование целого домена прописываются в зоне PRZ;
  3. Маршрутизация к оставшимся сайтам прописывается таким образом, чтобы пакеты проходили или через DPI или через Proxy-сервер. В крайнем случае, можно осуществить блокировку через IP.

Перенаправление пользователей на локальные ресурсы


    Помимо простого блокирования доступа к ресурсам (NXDOMAIN, NODATA, DROP) можно изменять ответ DNS-сервера. Такое изменение ответов может потребоваться, например:
  • для предупреждение пользователей, что их компьютеры заражены malware, botnet-агентами или при обращении к сайтам, которые распространяют вредоносное ПО. Дополнительно провайдеры могут показать рекламу антивируса, а администраторы на предприятиях указать телефон и email IT-службы;
  • для предупреждение пользователей, что данный ресурс заблокирован. Провайдеры могут указать причину блокировки (ФЗ), а для корпоративных пользователей можно вывести список заблокированных доменов и образец заявления по собственному желанию (для несогласных) ;
  • перенаправление пользователей на локальные ресурсы или локальные (серые) IP-адреса серверов (пример приведен в этой хабра-статье).

Настройка RPZ на BIND 9.10


    Для эффективного использования RPZ все DNS запросы должны приходить только на ваш DNS. Это можно достичь двумя способами:
  • блокировать доступ к другим DNS;
  • автоматически перенаправлять все запросы на DNS с включенным механизмом RPZ.
    Приведенная ниже конфигурация корректна для версии BIND 9.10, в предыдущих версиях нет команд drop и tcp-only, ограничений по адресу клиента и DNS-сервера.
    1. Первоначально необходимо определить список RZP-зон и их параметры выражением response-policy.

response-policy {zone "whitelist" policy passthru; zone "badlist" policy disabled;};

    Bind проверяет запрос по RPZ в соответствии с определенным в responce-policy порядком зон. Наиболее важным является дополнительный параметр policy, который позволяет переопределить правила отработки запросов указанных на уровне зоны. Этот параметр может принимать следующие значения:
  • given – выполняются действия определенные в зоне (значение по умолчанию);
  • disabled – зона отключена;
  • passthru – ответ DNS-сервера не модифицируется, но попадание в зону отражается в лог-файлах;
  • drop – сервер игнорирует запрос (не отвечает);
  • nxdomain – сервер отвечает NXDOMAIN (не существующий домен);
  • nodata – сервер отвечает NODATA (нет записи);
  • tcp-only – отсылается обрезанное сообщение, что вынуждает клиента выполнить запрос по TCP (защита от DrDoS);
  • cname domain-name – сервер переписывает все ответы на указанный домен.

    2. Затем определить список зон, используя стандартный формат. Для локальных зон прописываем тип master, для RPZ feed – тип slave.

zone "badlist" {type master; file "master/badlist"; allow-query {none;}; };

    3. Определяем зону (комментарии по формату в тексте)
$TTL 1H
@                  SOA LOCALHOST. named-mgr.example.com (1 1h 15m 30d 2h)
                   NS  LOCALHOST.

; QNAME policy records.  There are no periods (.) after the owner names.
nxdomain.domain.com     CNAME   .               ; (.) - возврат NXDOMAIN
*.nxdomain.domain.com   CNAME   .               ; (.) - возврат NXDOMAIN
nodata.domain.com       CNAME   *.              ; (*.) - возврат NODATA
*.nodata.domain.com     CNAME   *.              ; (*.) - возврат NODATA
bad.domain.com          A       10.0.0.1        ; меняем ответ на нужный
                        AAAA    2001:2::1
bzone.domain.com        CNAME   garden.example.com.

ok.domain.com           CNAME   rpz-passthru.   ; не делаем изменений

; меняем зону x.bzone.domain.com на x.bzone.domain.com.garden.example.com
*.bzone.domain.com      CNAME   *.garden.example.com.

; Правила блокировки по IP
8.0.0.0.127.rpz-ip      CNAME   .
32.1.0.0.127.rpz-ip     CNAME   rpz-passthru.

; Правила блокировки по имени и IP сервера доменов
ns.domain.com.rpz-nsdname   CNAME   .
48.zz.2.2001.rpz-nsip       CNAME   .

; Блокировка по IP клиента
112.zz.2001.rpz-client-ip    CNAME   rpz-drop.
8.0.0.0.127.rpz-client-ip    CNAME   rpz-drop.

; принуждение клиента запроса зон по TCP
16.0.0.1.10.rpz-client-ip   CNAME   rpz-tcp-only.
example.com                 CNAME   rpz-tcp-only.
*.example.com               CNAME   rpz-tcp-only.


RZP это удобный механизм повышения защищенности сети и ограничения доступа к ресурсам.



Список источников


  1. dnsrpz.info
  2. www.spamhaus.org/faq/section/ISP%2520Spam%2520Issues#164
  3. www.infosecurity.ru/cgi-bin/mart/arts.pl?a=101219
  4. www.bleepingcomputer.com/virus-removal/cryptolocker-ransomware-information
  5. www.infoblox.com/products/infrastructure-security/dns-firewall
  6. ftp.isc.org/isc/bind9/cur/9.10/doc/arm/Bv9ARM.ch06.html
  7. www.zytrax.com/books/dns/ch7/rpz.html
  8. www.zytrax.com/books/dns/ch9/rpz.html

Vadim Pavlov
UPD1:
Infoblox предлагает протестировать в пассивном режиме DNS Firewall (RPZ) + Feed.
Зарегистрироваться и получить доступ можно по этой ссылке: www.infoblox.com/catchmalware
Для установки требуется VmWare версии 5.0 и выше и vCenter Server.
Tags:
Hubs:
+12
Comments 24
Comments Comments 24

Articles