Туннелирование (компьютерные сети)
Содержание:
Выявление DNS-туннелирования

При анализе нагрузки защищающаяся сторона ищет аномалии в данных, передаваемых в обе стороны, которые могут быть обнаружены статистическими методами: странно выглядящие имена хостов, тип DNS записи, которая не используется настолько часто, или нестандартная кодировка.
При анализе трафика оценивается число DNS запросов к каждому домену по сравнению со среднестатистическим уровнем. Злоумышленники, использующие DNS-туннелирование, будут генерировать большой объём трафика на сервер. В теории, значительно превосходящий нормальный обмен DNS-сообщениями. И это необходимо отслеживать!
Утилиты DNS-туннелирования
Если вы хотите провести собственный пентест и проверить, насколько хорошо ваша компания сможет обнаружить и отреагировать на такую активность, то для этого есть несколько утилит. Все они умеют туннелировать в режиме IP-Over-DNS:
- – доступна на многих платформах (Linux, Mac OS, FreeBSD и Windows). Позволяет установить SSH-шелл между целевым и управляющим компьютером. Вот неплохой по настройке и использованию Iodine.
- – проект DNS-туннелирования от Дэна Каминского, написанный на Perl. С ним можно подключаться по SSH.
- – «DNS-туннель, от которого не тошнит». Создаёт зашифрованный C2-канал для отправки/скачивания файлов, запуска шеллов и т.д.
Утилиты DNS-мониторинга
Ниже представлен список нескольких утилит, который будет полезен для обнаружения туннелирующих атак:
- – Python-модуль, написанный для MercenaryHuntFramework и Mercenary-Linux. Считывает .pcap файлы, извлекает DNS-запросы и производит сопоставление геолокации, что помогает при анализе.
- – утилита на Python, читающая .pcap файлы и анализирующая DNS-сообщения.
Ведущие протоколы VPN туннелирования
OpenVPN

Это очень популярный и безопасный протокол, используемый многими VPN провайдерами. Он работает либо по TCP, либо по UDP интернет-протоколу. Первые гарантируют, что ваши данные будут доставлены в полном объеме и в правильном порядке, а вторые будут сосредоточены на более высоких скоростях. Многие VPN позволят выбрать между ними.
Плюсы:
- Открытый исходный код, это значит, что он прозрачный. Любой желающий может проверить код на наличие скрытых бэкдоров или уязвимостей, которые могут поставить под угрозу безопасность вашего VPN.
- Универсальность. Он может использоваться с массивом различных протоколов шифрования и трафика, настроенных для различных целей, или быть настолько безопасным или легким, как вам это нужно.
- Безопасность. Он может запускать практически любой протокол шифрования, что делает его очень безопасным.
- Обходит большинство брандмауэров. Совместимость брандмауэра не является проблемой при использовании VPN, но может возникнуть, если вы когда-либо настроите свой собственный VPN. К счастью, с OpenVPN вы сможете легко обойти брандмауэр.
Минусы:
Сложная настройка. Его универсальность означает, что большинство пользователей могут зайти в тупик с выбором и сложностью, если попытаются создать свою собственную OpenVPN.
IPSec/IKEv2

Этот протокол закладывает основу для безопасного VPN соединения, устанавливая зашифрованное соединение. Он был разработан Microsoft и Cisco, чтобы быть быстрым, стабильным и безопасным. Протокол преуспевает на всех этих фронтах, но там, где он действительно блистает – это его стабильность.
Плюсы:
- Стабильность. IKEv2 обычно использует инструмент IPSec, называемый протоколом Mobility and Multi-homing, который обеспечивает VPN-соединение при перемещении между подключениями к интернету. Эта возможность делает IKEv2 очень надежным и стабильным протоколом для мобильных устройств.
- Безопасность. Являясь частью пакета IPSec, IKEv2 работает с большинством ведущих алгоритмов шифрования, что делает его одним из самых безопасных VPN.
- Скорость. Он занимает небольшую полосу пропускания, когда активен, и его обход NAT делает подключение и обмен данными более быстрыми. Это также помогает ему обойти брандмауэры.
Минусы:
Ограниченная совместимость. IKEv2 не совместим со многими системами. Это не будет проблемой для пользователей Windows, так как Microsoft помогла создать этот протокол, но некоторые другие операционные системы будут нуждаться в адаптированных версиях.
Wireguard

Это новейший и самый быстрый протокол туннелирования, о котором говорит вся индустрия VPN. Он использует современную криптографию, которая затмевает нынешних лидеров-OpenVPN и IPSec/IKEv2. Тем не менее, он все еще считается экспериментальным, поэтому провайдерам VPN приходится искать новые решения для преодоления уязвимостей Wireguard.
Плюсы:
- Бесплатный и с открытым исходным кодом. Любой пользователь может заглянуть в его код, что упрощает развертывание, аудит и отладку.
- Современный и очень быстрый. Он состоит всего из 4000 строк кодов, что делает его “самым компактным” протоколом из всех существующих. Для сравнения, код OpenVPN содержит в 100 раз больше строк.
Минусы:
Незавершенный. Wireguard обещает стать “большим событием”, но его реализация все еще находится на ранней стадии и требует многих улучшений. В настоящее время он не может обеспечить пользователям полную анонимность, поэтому провайдерам VPN необходимо найти пользовательские решения для обеспечения необходимой безопасности без потери скорости.
SSTP
Протокол Secure Socket Tunneling Protocol – это достаточно безопасный VPN протокол, созданный Microsoft. У него есть свои плюсы и минусы, а это означает, что каждый пользователь должен для себя решить, стоит ли использовать этот протокол. Несмотря на то, что SSTP в основном является продуктом Microsoft, он также доступен и на других системах, помимо Windows.
Плюсы:
- Принадлежит компании Microsoft. Имея львиную долю рынка, вы можете быть уверены, что ваша ОС Windows будет поддерживать SSTP. Это также означает, что если вы попытаетесь настроить его самостоятельно, то это будет легко сделать, и вы можете рассчитывать на поддержку Microsoft.
- Безопасный. Как и другие ведущие VPN, SSTP поддерживает протокол шифрования AES-256.
- Обходит брандмауэры. SSTP может пройти через большинство брандмауэров, не прерывая вашу связь.
Минусы:
Принадлежит компании Microsoft, что означает, что код недоступен для тестирования в области безопасности. Некоторые пользователи подозревают, что система может иметь бэкдоры, поэтому многие VPN провайдеры избегают этого протокола.
Угрозы DNS-туннелирования

- Вывод данных (эксфильтрация) – хакер скрытно передаёт критичные данные поверх DNS. Это определённо не самый эффективный способ передачи информации с компьютера-жертвы — с учётом всех издержек и кодировок — но он работает, и при этом – скрытно!
- Управление и контроль (Command and Control, сокращённо C2) – хакеры используют DNS-протокол для отправки простых управляющих команд, скажем, через (Remote Access Trojan, сокращённо RAT).
- Туннелирование IP-Over-DNS – это может звучать безумно, но существуют утилиты, реализующие IP-стек поверх запросов и ответов DNS-протокола. Это делает передачу данных с помощью FTP, Netcat, ssh и т.д. относительно простым занятием. Крайне зловеще!
История атак через DNS-туннелирование
У всего есть начало, включая идею захвата DNS-протокола для хакерских целей. Насколько мы можем судить, первое такой атаки проводилось Оскаром Пирсаном (Oskar Pearson) в почтовой рассылке Bugtraq в апреле 1998 года.
К 2004 году, DNS-туннелирование было представлено на Black Hat как хакерский метод в презентации Дэна Каминского (Dan Kaminsky). Таким образом, идея очень быстро переросла в настоящий инструмент атаки.
На сегодня DNS-туннелирование занимает уверенные позиции на карте (и блогеров в сфере информационной безопасности часто просят его объяснить).
Слышали ли вы о ? Это действующая кампания киберпреступных группировок — скорее всего, спонсируемая государством, — направленная на захват легитимных DNS-серверов с целью перенаправления DNS-запросов на собственные сервера. Это означает, что организации будут получать «плохие» IP-адреса, указывающие на поддельные веб-страницы под управлением хакеров, — например, Google или FedEx. При этом злоумышленники смогут заполучить учётные записи и пароли пользователей, которые те неосознанно введут их на таких поддельных сайтах. Это не DNS-туннелирование, но просто ещё одно скверное последствие контроля DNS-серверов хакерами.
Типы
Ниже перечислены два типа проходки тоннелей:
Добровольное туннелирование
В этом типе туннелирования клиент начнет процесс инициализации соединения с VPN сервером. Существует требование для того, чтобы процесс работал, и это требование представляет собой существующее соединение между сервером и клиентом. Это соединение, которое VPN клиент будет использовать для создания туннельного соединения с VPN сервером. Для добровольного туннелирования компьютер пользователя будет рассматриваться в качестве конечной точки туннеля и будет выступать в качестве клиента туннеля. Клиент здесь или пользователь выдаст запрос конфигурации и создаст добровольный туннель. Им потребуется коммутируемое соединение или подключение к локальной сети (LAN). В этом типе туннелирования требуется, чтобы компьютер клиента имел соответствующее программное обеспечение и чтобы протоколы были предварительно установлены, чтобы соединение стало возможным.
Обязательное прокладка тоннелей
В этом типе туннелирования будет создано соединение между двумя VPN серверами и двумя устройствами VPN доступа или VPN маршрутизаторами. При этом сервер удаленного доступа будет настраивать и настраивать VPN с помощью устройства, которое называется сервером коммутируемого доступа. Это будет действовать как клиент туннеля. При использовании принудительного туннеля компьютер пользователя не считается конечной точкой туннеля.
3. Основные компоненты туннеля
Основными компонентами туннеля являются:
- один или несколько туннельных терминаторов.
- инициатор туннеля;
- маршрутизируемая сеть;
- туннельный коммутатор;
Инициатор туннеля встраивает инкапсулирует пакеты в новый пакет, содержащий наряду с исходными данными новый заголовок с информацией об отправителе и получателе. Несмотря на то, что все передаваемые по туннелю пакеты являются пакетами IP, инкапсулируемые пакеты могут принадлежать к протоколу любого типа, включая пакеты немаршрутизируемых протоколов. Маршрут между инициатором и терминатором туннеля определяет обычная маршрутизируемая сеть IP, которая может быть и сетью, отличной от Internet. Терминатор туннеля выполняет процесс, который является обратным инкапсуляции — он удаляет новые заголовки и направляет каждый исходный пакет в локальный стек протоколов или адресату в локальной сети. Инкапсуляция сама по себе никак не влияет на защищенность пакетов сообщений, передаваемых по туннелю VPN. Но инкапсуляция даёт возможность полной криптографической защиты инкапсулируемых пакетов. Конфиденциальность инкапсулируемых пакетов обеспечивается путём их криптографического закрытия, т. е. зашифровывания, а целостность и подлинность — путём формирования цифровой подписи. Так как существует множество методов криптозащиты данных, необходимо чтобы инициатор и терминатор туннеля использовали одни и те же методы и могли согласовывать друг с другом эту информацию. Более того, для возможности расшифровывания данных и проверки цифровой подписи при приеме инициатор и терминатор туннеля должны поддерживать функции безопасного обмена ключами. Чтобы туннели VPN создавались только между уполномоченными пользователями, конечные стороны взаимодействия требуется аутентифицировать.
Типы протоколов[править | править код]
В процессе инкапсуляции (туннелирования) принимают участие следующие типы протоколов:
- транспортируемый протокол;
- несущий протокол;
- протокол инкапсуляции.
Протокол транзитной сети является несущим, а протокол объединяемых сетей — транспортируемым. Пакеты транспортируемого протокола помещаются в поле данных пакетов несущего протокола с помощью протокола инкапсуляции. Пакеты-«пассажиры» не обрабатываются при транспортировке по транзитной сети никаким образом. Инкапсуляцию выполняет пограничное устройство (маршрутизатор или шлюз), которое находится на границе между исходной и транзитной сетями. Извлечение пакетов транспортируемого протокола из несущих пакетов выполняет второе пограничное устройство, расположенное на границе между транзитной сетью и сетью назначения. Пограничные устройства указывают в несущих пакетах свои адреса, а не адреса узлов в сети назначения.
Типы протоколов
В процессе инкапсуляции (туннелирования) принимают участие следующие типы протоколов:
- транспортируемый протокол;
- несущий протокол;
- протокол инкапсуляции.
Протокол транзитной сети является несущим, а протокол объединяемых сетей — транспортируемым. Пакеты транспортируемого протокола помещаются в поле данных пакетов несущего протокола с помощью протокола инкапсуляции. Пакеты-«пассажиры» не обрабатываются при транспортировке по транзитной сети никаким образом. Инкапсуляцию выполняет пограничное устройство (маршрутизатор или шлюз), которое находится на границе между исходной и транзитной сетями. Извлечение пакетов транспортируемого протокола из несущих пакетов выполняет второе пограничное устройство, расположенное на границе между транзитной сетью и сетью назначения. Пограничные устройства указывают в несущих пакетах свои адреса, а не адреса узлов в сети назначения.
Основные компоненты туннеля
Основными компонентами туннеля являются:
- инициатор туннеля;
- маршрутизируемая сеть;
- туннельный коммутатор;
- один или несколько туннельных терминаторов.
Инициатор туннеля встраивает (инкапсулирует) пакеты в новый пакет, содержащий наряду с исходными данными новый заголовок с информацией об отправителе и получателе. Несмотря на то, что все передаваемые по туннелю пакеты являются пакетами IP, инкапсулируемые пакеты могут принадлежать к протоколу любого типа, включая пакеты немаршрутизируемых протоколов.
Маршрут между инициатором и терминатором туннеля определяет обычная маршрутизируемая сеть IP, которая может быть и сетью, отличной от Internet.
Терминатор туннеля выполняет процесс, который является обратным инкапсуляции — он удаляет новые заголовки и направляет каждый исходный пакет в локальный стек протоколов или адресату в локальной сети. Инкапсуляция сама по себе никак не влияет на защищенность пакетов сообщений, передаваемых по туннелю VPN. Но инкапсуляция даёт возможность полной криптографической защиты инкапсулируемых пакетов.
Конфиденциальность инкапсулируемых пакетов обеспечивается путём их криптографического закрытия, т. е. зашифровывания, а целостность и подлинность — путём формирования цифровой подписи. Так как существует множество методов криптозащиты данных, необходимо чтобы инициатор и терминатор туннеля использовали одни и те же методы и могли согласовывать друг с другом эту информацию. Более того, для возможности расшифровывания данных и проверки цифровой подписи при приеме инициатор и терминатор туннеля должны поддерживать функции безопасного обмена ключами. Чтобы туннели VPN создавались только между уполномоченными пользователями, конечные стороны взаимодействия требуется аутентифицировать.
Согласование транспортных протоколов
Туннель может быть использован, когда две сети с одной транспортной технологией необходимо соединить через сеть, использующую другую транспортную технологию. При этом пограничные маршрутизаторы, которые подключают объединяемые сети к транзитной, упаковывают пакеты транспортного протокола объединяемых сетей в пакеты транспортного протокола транзитной сети. Второй пограничный маршрутизатор выполняет обратную операцию.
Обычно туннелирование приводит к более простым и быстрым решениям по сравнению с трансляцией, так как решает более частную задачу, не обеспечивая взаимодействия с узлами транзитной сети.
Публикация URL — зачем мне это?
Мы добавили возможность публикации внутреннего ресурса (например http://192.168.1.1) под внешним доменным именем вида https://your-name.vpnki.ru. Это НЕ услуга Dynamic DNS и не хостинг ваших приложений. Эта услуга основана на технологии reverse proxy (обратный прокси). Это означает, что один VPN туннель — в домашнюю сеть вам по-прежнему нужен, а вот вместо второго туннеля вы можете сделать «соответствие» (маппинг) своего внутреннего web-ресурса в внешнее доменное имя. Эта услуга вам поможет тогда, когда вы не можете или не хотите создавать больше одного туннеля. Услуга по публикации URL, естественно, работает лишь с web-ресурсами и имеет некоторые технические ограничения. Более подробно смотрите в инструкции.
Как работает DNS-туннелирование
Так или иначе, по своей сути DNS-протокол занимается передачей запроса на сервер и его ответа обратно клиенту. А что, если злоумышленник добавит срытое сообщение внутрь запроса доменного имени? Например, вместо ввода вполне легитимного URL, он введёт данные, которые хочет передать:
Управляя сервером, хакеры могут подделывать ответы и отправлять данные обратно на целевую систему. Это позволяет им передавать сообщения, спрятанные в различных полях DNS-ответа, во вредоносное ПО на заражённой машине, с указаниями наподобие поиска внутри определённой папки.
«Туннелирующая» часть данной атаки заключается в данных и команд от обнаружения системами мониторинга. Хакеры могут использовать наборы символов base32, base64 и т.д., или даже шифровать данные. Такая кодировка пройдёт незамеченной мимо простых утилит обнаружения угроз, которые осуществляют поиск по открытому тексту.
И это и есть DNS-туннелирование!