Тайные коридоры интернета: как закрыть уязвимости DNS-туннелирования
Подробно о том, что такое DNS-туннелирование, чем эта угроза опасна для корпоративной сети и как ее можно заблокировать
Эксперт с большим опытом работы в сфере кибербезопасности. Имеет два технических образования. За плечами несколько стартапов с хорошими треками, в некоторых остался соучредителем.
Мир кибератак принимает все более изощренные формы — злоумышленники продолжают искать способы обхода традиционных систем защиты. Одним из таких способов является DNS-туннелирование, при котором используют инфраструктуру протокола DNS для передачи данных, скрывая трафик в DNS-запросах и ответах. Это позволяет обходить межсетевые экраны и различные системы обнаружения вторжений. Давайте разберемся, чем DNS-туннелирование опасно для организаций и как его можно обнаружить и заблокировать.
Что такое DNS-туннелирование
Протокол DNS является важнейшей частью работы интернета, обеспечивая преобразование доменных имен в IP-адреса для корректного маршрутизации трафика. Злоумышленники используют особенности этого протокола для создания туннелей, по которым могут передаваться данные, минуя защитные средства.
Злоумышленники могут использовать DNS-туннелирование для установления скрытого канала связи между атакующим сервером и скомпрометированным устройством в корпоративной сети. С помощью этого метода они могут передавать украденные файлы или команды управления вредоносным ПО. Происходит этот процесс в три этапа:
- Установка вредоносного ПО. Вначале на целевую систему устанавливается вредоносное ПО, которое будет взаимодействовать с DNS-сервером злоумышленника. Это может произойти через фишинговые письма или уязвимости в программном обеспечении.
- Использование DNS-запросов. Вредоносное ПО использует DNS-запросы для передачи данных на удаленный сервер. Данные (например, строки или файлы) разбиваются на части и кодируются в QNAME. QNAME — это запрашиваемое доменное имя, например, example.com. Эти запросы могут маскировать передаваемые данные в виде поддоменов. Например, данные "Hello, World!" могут быть закодированы как aGVsbG8=.example.com.
- Контроль через DNS-ответы. Злоумышленник получает эти запросы через свой DNS-сервер, расшифровывает данные и может передавать команды обратно через параметры DNS-запросов: TXT, A, CNAME и др. Эти ответы интерпретируются зараженной системой как команды для дальнейших действий.
Как злоумышленники используют DNS-туннелирование
- Кража данных. Один из самых распространенных сценариев использования — эксфильтрация данных из сети. Через DNS-запросы злоумышленники могут медленно передавать конфиденциальные данные, такие как логины, пароли, финансовая информация или другие критические данные.
- Управление вредоносным ПО. DNS-туннелирование также часто используется для командно-контрольных серверов (C2) для управления ботнетами или другими вредоносными программами. Злоумышленники могут передавать команды для выполнения на скомпрометированных системах, используя легитимные DNS-запросы и ответы.
- Обход защитных механизмов. Поскольку DNS-трафик часто пропускается через межсетевые экраны и системы фильтрации, злоумышленники могут использовать этот канал для обхода фильтрации веб-сайтов, обхода ограничений на доступ к интернет-ресурсам или для скрытого туннелирования других типов трафика (HTTP, FTP и т.д.).
Почему DNS-туннелирование сложно обнаружить
- Недостаток внимания к DNS-трафику. DNS является важным протоколом, необходимым для нормальной работы интернета, но подавляющее большинство компаний не фильтрует DNS трафик. Это позволяет злоумышленникам скрывать вредоносную активность в потоке обычных DNS-запросов. Согласно исследованиям IDC, 79% всех нарушений включают в себя работу с DNS-слоем, а 34% кибератак можно избежать с помощью фильтрации и анализа трафика на DNS уровне (Cisco Threats Report", 2023).
- Низкий объем данных. Злоумышленники могут использовать DNS-туннелирование для передачи небольших объемов данных, что затрудняет выявление аномалий в сетевом трафике.
- Использование легитимных доменов. Часто злоумышленники используют зарегистрированные домены и управляемые ими DNS-серверы, что делает выявление злонамеренных запросов еще более сложным. Они могут работать через прокси или использовать легитимные сервисы для сокрытия своих действий.
- Шифрование трафика. Некоторые методы DNS-туннелирования используют шифрование для маскировки данных, что делает их недоступными для традиционных систем мониторинга и анализа трафика.
- Схожесть с нормальными запросами. Туннелированные данные часто маскируются под стандартные DNS-запросы, поэтому бывает трудно отличить их от легитимного трафика. Например, данные могут передаваться через стандартные поля, например, через имя домена, что визуально делает запросы законными.
Как заблокировать DNS-туннелирование
Технические меры
Самой лучшей технической мерой для блокировки DNS-туннелирования является использование специального сервиса по DNS-фильтрации. Такие решения, как SkyDNS, позволят фильтровать DNS-запросы, блокируя подозрительные или неизвестные домены, а также контролировать трафик по белым и черным спискам. Также можно использовать современные NGWF с уже встроенными модулями по DNS фильтрации.
Процедурные меры
1. Мониторинг аномалий DNS-трафика
Один из самых эффективных способов обнаружения туннелирования — это мониторинг DNS-трафика на наличие аномалий:
- Частые или длинные DNS-запросы. Туннелирование часто требует отправки большого количества запросов или использования длинных строк в поддоменах. Системы мониторинга могут выявлять такие аномальные запросы и сигнализировать о подозрительной активности.
- Запросы на неизвестные или редкие домены. Если в сети появляются DNS-запросы к неизвестным или подозрительным доменам, это может быть индикатором туннелирования.
2. Ограничение и контроль использования внешних DNS-серверов
Внедрение политики использования только разрешенных DNS-серверов и блокировка доступа к внешним серверам, не принадлежащим компании. Это предотвратит возможность использования внешних серверов для туннелирования данных.
3. Внедрение DNSSEC
DNSSEC (Domain Name System Security Extensions) — это расширение протокола DNS, которое добавляет цифровую подпись к DNS-запросам и ответам, обеспечивая их подлинность и целостность. Внедрение DNSSEC позволяет снизить риск использования поддельных запросов и ответов, хотя оно не является полной защитой от туннелирования.
4. Машинное обучение
Современные системы защиты активно используют методы машинного обучения для анализа DNS-трафика, например, анализ энтропии Fully Qualified Domain Name. В отличие от обычных запросов, запросы FQDN, используемые в DNS-туннелировании, содержат случайные или сгенерированные символы для передачи данных. Подсчет и анализ энтропии доменных имен помогает выявлять подозрительные запросы: чем выше энтропия, тем более вероятно, что запрос использует DNS-туннелирование. Решения на базе машинного обучения могут автоматически отслеживать аномалии и блокировать трафик с подозрительно высокой энтропией, предотвращая утечку данных или управление вредоносным ПО.
5. Ограничение объема данных в DNS-запросах
Организации могут ограничить объем данных, передаваемых через DNS-запросы и ответы, что затруднит использование туннелей для передачи больших объемов информации. Это может быть реализовано на уровне межсетевых экранов или специализированных сервисов по DNS-фильтрации.