Российским платформам приказали ограничить пользователей с VPN. Разбор Теплицы

Разбираемся, возможно ли закрыть россиянину с VPN доступ к «Сберу» и VK

В новой рубрике «Разбор Теплицы» мы в режиме реального времени разбираемся в определенной проблеме и рассказываем о новостях интернет-цензуры и рассказываем:

  • что происходит;
  • как это устроено;
  • как с этим можно бороться.

В первом разборе изучаем требование минцифры РФ закрыть пользователям с VPN доступ к крупнейшим российским интернет-платформам. Министерство уже разослало ресурсам инструкции по ограничениям.

Цель публикации — дать рекомендации для разработчиков, как можно обойти «методичку Минцифры».

Источники

«Методичка Минцифры», канал Профсоюз работников IT.
Материал RKS Global с анализом 30 приложений и исходниками исследования.

По опубликованным исходникам исследования RKS Global видно, что Android‑часть методички уже реализована приложениями частично и фрагментарно. Судя по данным исследования — полностью всю Android‑методику (GeoIP + прямые + косвенные признаки по матрице решений) не реализует ни одно из 30 приложений, но значимая их часть использует отдельные части (особенно прямые признаки и отправку статуса VPN на сервер).

Короткие выводы сравнения данных исследования и методички

  • Выявлено в рамках исследования RKS Global реализация (см. Методичку):

    • TRANSPORT_VPN
    • системный Proxy
    • Tor/proxy‑детект
    • проверка интерфейсов tun/tap/wg/ppp
    • чтение /proc/net/tcp*
    • отправка статуса VPN/Proxy на сервер

  • Частично реализовано:

    • характерные proxy‑порты
    • локальные proxy / localhost‑признаки
    • GeoIP‑этап (вероятно, приложения реализуют проверку на уровне сервера).

Разработчикам, для создания помех проверке по методичке важно бить именно по тем признакам, которые уже массово используются в Android‑приложениях: TRANSPORT_VPN, интерфейсы tun0/…, чтение /proc/net/tcp*, системный Proxy и отправка статуса на сервер. Ниже – рекомендации именно для разработчиков VPN/анонимайзеров (и других приложений обхода), чтобы усложнить проверку.

1. Уводить туннель с клиентского устройства

1.1. VPN на роутере / точке доступа

Поднимать VPN на домашнем/офисном роутере, чтобы на Android‑устройстве не было TRANSPORT_VPN, tun0, изменённых маршрутов и DNS.

  • Примеры: Практически все крупные сервисы (Proton, Mullvad, IVPN, NordVPN и др.) публикуют официальные гайды для OpenWrt, AsusWRT и других роутеров (OpenVPN/WireGuard на роутере).

1.2. VPN / Proxy внутри VM или контейнера

Запускать обход внутри виртуальной машины / контейнера, а приложения снаружи, в «чистой» сети.

  • Примеры: Многие провайдеры дают конфиги WireGuard/OpenVPN для установки в VM (WSL2, VirtualBox, VMware), а в сообществах OpenWrt/WSL2 описаны паттерны «VPN в отдельной VM, хост — без tunneling для некоторых приложений».

2. На Android: минимизировать системные признаки

2.1. Не поднимать системный VPN для всех приложений

Вместо глобального VpnService использовать либо in‑app proxy (прокси в самом приложении), либо split tunneling, чтобы чувствительные приложения не видели VPN.

  • Примеры:

    • Ряд «браузерных VPN» и прокси‑браузеров реализует обход только внутри своего приложения, вообще без системного профиля.
    • Многие коммерческие VPN используют app‑based split tunneling (раздельное туннелирование на уровне отдельных приложений) — приложения, исключённые из туннеля, работают с обычной сетью и не видят TRANSPORT_VPN.

2.2. Split tunneling с исключением банков/гос‑приложений

Суть рекомендации: дать пользователю простой способ исключить конкретные приложения из туннеля, чтобы они не светили VPN‑флаги.

  • Примеры:

    • ProtonVPN, NordVPN и др. — при split tunneling есть режим «exclude apps» (исключения приложений), с примерами именно про банки/стриминги, которые не любят VPN.
    • Tailscale позволяет реализовать split tunneling по приложениям.

3. Интерфейсы, маршруты, DNS

3.1. Имена интерфейсов

Избегать стандартных tun0, wg0, ppp0 и т.п., которые методичка предлагает использовать как косвенный признак.

  • Примеры: Некоторый софт (особенно кастомные WireGuard‑обвязки и корпоративные решения) уже использует нестандартные имена интерфейсов; это видно в документации и некоторых конфигах.

3.2. Маршрутизация и MTU

Не выделяться по MTU и маршрутам — использовать значения, максимально схожие с обычными мобильными/домашними сетями, избегать лишних специальных маршрутов.

  • Примеры: У ряда провайдеров есть статьи «почему у нас MTU такой‑то, и как его менять», где обсуждаются проблемы с фрагментацией; некоторые уже рекомендуют конфигурации, минимально отличающиеся от стандартных именно ради стабильности.

3.3. DNS

Не ставить системный DNS на 127.0.0.1, если это не необходимо; держать DNS максимально «обычным» (например, нейтральный публичный) и шифровать его в туннеле на своей стороне.

  • Примеры: Много VPN‑клиентов реализуют DoH/DoT внутри туннеля при сохранении на устройстве «нормального» DNS; это отмечается в описаниях как «DNS leak protection, без изменения ваших системных настроек DNS».

4. Минимизация видимости через /proc

4.1. Локальные порты и /proc/net/*

Не держать очевидные локальные слушатели на стандартных Tor/VPN‑портах и не плодить соединения к 127.0.0.1.

  • Пример: Часть коммерческих VPN уже ушла от модели «локальный SOCKS на 127.0.0.1:1080» к более интегрированным решениям.

4.2. Имена пакетов и процессов

Не использовать в именах пакетов очевидные слова vpn, proxy, tor, xray, если продукт ориентирован на обход ограничений.

  • Пример: видно по ряду мобильных приложений, которые не содержат vpn в package‑ID, хотя в маркетинговом названии это слово есть. Иногда и в маркетинговых названиях можно встретить VPS (вместо VPN), что технически, конечно, не одно и то же.

5. Профили split tunneling и исключения (как превентивная защита от клиентских детекторов)

5.1. Профили «безопасных приложений»

Заранее предлагать пользовательские профили в приложении, где типичные «пехотинцы Минцифры» (банки, гос‑сервисы, крупные маркетплейсы) находятся в списке исключений из VPN.

  • Пример: некоторые мобильные клиенты в инструкциях прямо приводят список типов приложений, которые имеет смысл исключать.

5.2. Перехват/подмена действий приложений по по методичке

Как отдельный «щит» для продвинутых — использовать техники подмены ответов ConnectivityManager, /proc и др. в конкретных приложениях.

  • Пример: Существующий проект «Android VPN detection bypass» на Frida показывает, что такая модель работоспособна: он именно перехватывает и подменяет вызовы.

6. UX и режимы работы

6.1. Чётко объяснять режимы

В UI VPN‑клиента явно разносить режимы «полный туннель», «split tunneling», «только выбранные приложения» и отдельно подсвечивать режимы, совместимые с «чувствительными» приложениями.

  • Примеры: некоторые VPN-клиенты уже имеют UI для настроек split tunneling, иногда в мануалах это объясняется без связи с обходом определения VPN, а называется «режим совместимости с банковскими и государственными приложениями», можно использовать именно такие формулировки.

7. Явные «дыры» методички, на которые уже опираются разработчики

  • VPN/Proxy на роутере массово рекомендовано провайдерами, и методичка сама признаёт, что на уровне клиента это почти не ловится.
  • VPN/Proxy внутри VM/контейнера активно используется технически продвинутыми пользователями и в корпоративных решениях.
  • App‑based split tunneling (Tailscale, крупные VPN) позволяет реализовать ровно то, чего методичка боится: сценарий, где «опасные» приложения видят чистую сеть, а остальное нет.

Кстати, рассылку сложнее заблокировать. Так что каждую неделю мы рассказываем о самом важном в области технологий и безопасности: как уберечь свои данные, финансы и себя в условиях блокировок, шатдаунов и финансовых ограничений. Подпишитесь!