Заголовки

Как выявить и обмануть зондирующий трафик VPN: опыт из Беларуси

Стандартная схема Reality+Xray функционирует по принципу «не пойман — не вор»: зонд подключается без корректного SNI, получает редирект на легитимный сайт и уходит. Однако если зонд знает точный SNI и повторяет попытки сканирования каждые 5 минут с разных подсетей, это усложняет защиту.

В Беларуси автор столкнулся с тем, что за три дня работы детектора не было ни одного зонда с пустым SNI, а лишь аккуратные коннекты с правильным google.com и подозрительным поведением. Для усиления защиты добавили два слоя:

  • Детектор: анализирует логи nginx и pcap-файлы, присваивая «очки подозрительности» на основе поведенческих признаков;
  • Серый список: автоматически перенаправляет выявленных зондов на fallback-сайт, не давая им доступа к VPN.

Главная идея — зонд не должен понять, что его поймали. Он получает ожидаемый ответ и уходит, думая, что ничего интересного не обнаружил. При повторных попытках сканирования даже с правильным SNI зонд получет принудительный редирект на fallback.

Простое банирование через iptables неэффективно, так как зонд воспринимает таймаут или сброс соединения как признак укрытия, что повышает его устойчивость. Перенаправление же на валидный HTTPS-сайт выглядит естественно и не вызывает подозрений.

Архитектура реализована на базе docker-контейнеров с nginx, который читает SNI без расшифровки трафика (ssl_preread), загружает серый список IP и осуществляет маршрутизацию запросов с учетом этого списка.

Детектор использует поведенческий анализ с учётом SNI, длительности сессии, TCP-фингерпринтов и частоты соединений. Каждому признаку присваиваются баллы, и при достижении порога зонд попадает в серый список.

Пример ключевого признака — корреляция во времени: зонд появляется через 1–3 секунды после легитимного клиента, что типично для DPI-сканеров.

Для воспроизведения решения требуется VLESS+Reality, домен, Docker, root-доступ и Python с необходимыми библиотеками. Система автоматически обновляет конфигурации и сертификты, обеспечивая защиту без постоянного вмешательства.

В заключение, защита от DPI — это непрерывная игра в кошки-мышки. Однако простые эвристики позволяют отсеивать до 90% автоматических зондов. Главное — не блокировать, а обманывать зонд, предоставляя ему ожидаемый ответ и сохраняя анонимность системы.

Автор отмечает, что использование AI помогло в подготовке материала.