0Pricing
Cyber Security Academy · Урок

Туннелирование и извлечение данных через DNS

Скрытая передача данных через DNS

«Туннелирование и извлечение данных через DNS» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.

Скрытая передача данных через DNS

Туннелирование через DNS кодирует произвольные данные в запросах и ответах DNS, превращая систему имён в скрытый канал связи. Поскольку почти любая сеть разрешает DNS выходить за периметр, это излюбленный путь для вывода данных и канала командования и управления.

Если межсетевой экран блокирует всё, но резолвер по-прежнему отвечает, злоумышленники могут проложить через DNS полноценный двусторонний канал.

Как работает канал

Злоумышленник управляет авторитетным сервером имён для домена, например tunnel.evil.com. Имплант кодирует исходящие данные в поддомене (левой метке) запросов:

  • Данные передаются как <base32-chunk>.tunnel.evil.com.
  • Авторитетный сервер возвращает инструкции внутри записей TXT, CNAME или NULL.

Каждая пара запроса и ответа содержит небольшой фрагмент полезной нагрузки.

ZXhmaWx0cmF0ZWQtc2VjcmV0.tunnel.evil.com
# Encoded chunk smuggled in the query label

Варианты кодирования

В метках DNS регистр не учитывается, а их длина ограничена, поэтому двоичные данные обычно кодируются с помощью Base32 (Base64 учитывает регистр и использует небезопасные символы). Необходимо соблюдать следующие ограничения:

  • Длина каждой метки — не более 63 символов.
  • Длина полного имени — не более 255 символов.
  • Таким образом, каждый запрос может содержать максимум несколько сотен байтов.

Из-за такой низкой пропускной способности вывод данных через DNS идёт медленно и порождает много запросов, что также упрощает его обнаружение.

Используемые типы записей

Разные типы записей позволяют увеличить объём данных в ответах:

  • TXT — крупные текстовые полезные нагрузки, основной формат ответов канала командования и управления.
  • NULL — необработанные байты, используемые старыми инструментами, например iodine.
  • CNAME / MX — средняя пропускная способность, при этом такие записи не выделяются среди легитимного трафика.
  • A / AAAA — малая пропускная способность, но эти записи очень распространены и незаметны.

Распространённые инструменты

Известные утилиты туннелирования, которые следует распознавать при обнаружении:

  • iodine — туннель IP через DNS, использующий записи NULL/TXT.
  • dnscat2 — зашифрованный канал командования и управления через DNS.
  • DNSExfiltrator — поэтапный вывод файлов.
  • Маяк DNS Cobalt Strike — распространённый инструмент при проверках безопасности красной командой и в реальных вторжениях.

У этих инструментов есть характерные шаблоны запросов и признаки энтропии.

Медленный и быстрый режимы

Злоумышленники настраивают туннель: медленный и малозаметный режим отправляет мало запросов в минуту, чтобы не превышать пороги по объёму. Он подходит для скрытого вывода небольших секретов, например учётных данных или ключей.

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

Сигнал обнаружения: энтропия

Закодированные поддомены выглядят как случайные строки, поэтому их энтропия высока по сравнению с естественными именами доменов. Расчёт энтропии Шеннона для каждой метки — сильная эвристика.

Легитимные имена обычно легко произносятся и имеют низкую энтропию; xj4k9d2mq7zp1.tunnel.evil.com заметно выделяется. Помечайте домены, у которых энтропия поддомена превышает настроенный порог.

Сигнал обнаружения: объём и длина

Другие поведенческие признаки:

  • Необычно большое число запросов к одному домену с одного узла.
  • Длинные имена запросов, приближающиеся к ограничению в 255 байтов.
  • Непропорционально частое использование записей TXT или NULL.
  • Много уникальных поддоменов в одном родительском домене (большое разнообразие).
  • Запросы к недавно зарегистрированному домену или домену с низкой репутацией.
# Top talkers by unique subdomain count per parent domain
sort dns.log | awk '{print $domain}' | sort | uniq -c | sort -rn | head

Почему фильтрация исходящего трафика помогает

Конечные устройства не должны напрямую обращаться к DNS в интернете. Направляйте всех клиентов через внутренние резолверы и блокируйте исходящий UDP/TCP 53 на межсетевом экране.

Это направляет DNS через централизованную точку контроля, где можно вести журнал, проверять запросы и применять данные об угрозах. Кроме того, это нарушает работу имплантов, в которых жёстко заданы внешние резолверы, например 8.8.8.8.

Многоуровневые меры защиты

Объедините средства защиты, чтобы пресечь туннелирование:

  • Централизуйте разрешение имён и блокируйте прямой доступ к внешнему порту 53.
  • Разверните межсетевой экран DNS / RPZ с источниками данных о репутации.
  • Создавайте оповещения при высокой энтропии, большой длине запросов, высокой частоте NXDOMAIN и большом числе уникальных значений для каждого домена.
  • Ограничивайте частоту запросов и, если возможно, их размер.
  • Следите за обращениями DNS через HTTPS к неизвестным конечным точкам, поскольку они скрывают туннелирование внутри HTTPS.

DNS через HTTPS: пробел в обнаружении

DNS через HTTPS оборачивает запросы в TLS и передаёт их через 443, поэтому традиционный контроль порта 53 ничего не видит. Имплант, использующий DNS через HTTPS для обращения к поддельной конечной точке, может незаметно передавать данные, не попадая в пассивное журналирование DNS.

Снизить риск можно, разрешив только утверждённый резолвер DNS через HTTPS, заблокировав на управляемых устройствах известные общедоступные IP-адреса и имена хостов DNS через HTTPS, а также проверяя SNI и репутацию назначения.

Быстрая проверка

Проверьте свою интуицию при обнаружении угроз.

Итоги

Туннелирование через DNS использует поддомены запросов и записи ответов (TXT, NULL, CNAME), создавая скрытый канал для вывода данных и командования и управления. Пропускная способность невелика, поэтому передача идёт медленно, но остаётся малозаметной. Такие инструменты, как iodine и dnscat2, оставляют характерные признаки.

Обнаруживайте туннелирование с помощью анализа энтропии, длины запросов, их объёма и разнообразия; предотвращайте его с помощью централизованных резолверов, фильтрации исходящего трафика, межсетевых экранов DNS/RPZ и контроля DNS через HTTPS. Далее: как DNSSEC и фильтрация защищают систему имён в целом.

Часто задаваемые вопросы

Урок «Туннелирование и извлечение данных через DNS» бесплатный?

Да — полный текст урока «Туннелирование и извлечение данных через DNS» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.

Чему я научусь в уроке «Туннелирование и извлечение данных через DNS»?

Скрытая передача данных через DNS Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cyber Security Academy?

Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Туннелирование и извлечение данных через DNS»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cyber Security Academy?

Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Как работает DNS и каковы его риски
  2. Подмена DNS и отравление кэша
  3. Туннелирование и извлечение данных через DNS
  4. DNSSEC и фильтрация DNS
← Назад к Cyber Security Academy