Обновить

Как технически устроена DPI-фильтрация у российских провайдеров и как её детектировать: разбор open-source инструментов

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели15K
Всего голосов 34: ↑33 и ↓1+36
Комментарии18

Комментарии 18

Из-за неверных и двойственных формулировок, как в этой статье, в головах у простых пользователей складывается картина, что фильтрацию выполняют провайдеры.
Если беретесь писать статью, добавляйте абзац про регуляторику, разделение зон отвественности, про 139 ФЗ и 90 ФЗ, их разницу, про "угрозы" и борьбу с ними, про централизванное управление и ЦМУ ССОП.
Заранее спасибо.

Стоит отметить, что некоторые провайдеры действительно сами занимаются блокировками и блокируют даже то, что ещё не заблокировал РКП.

Как мне объясняли пара провайдеров 9а точнее их представителей), сами провайдеры блокируют точечно по IP и при этом есть официальное уведомление на странице сайта или домена, куда пытается попасть пользователь

Провайдеры блокируют по официальному списку РКН. В этом списке ресурсы, на блокировку которых есть решения суда. Ютуба, телеги и vpn сервисов в этом списке нет. И вот их блокирует сам РКН на своем оборудовании (ТСПУ).

Во истину! Можно провести жирную черту между двумя ФЗ - 139 и 90.
139 - это обязанность оператора блокировать доступ к ресурсам РКН. Для этого оператор сам разворачивает любые системы, выгружает из личного кабинета ГРЧЦ список ресурсов и... блокирует! Контроль за блокировками по 139 ФЗ выполняет оборудование Ревизор. В случае возникновения "пропусков" оператор получает предписание, затем - штраф.
Сами списки ресурсов формируется на основе решений судов РФ. Как следствие, скорость блокировки какой-либо информации здесь невысокая, требуется соблюсти все формальности, процедуры...

90 - здесь в обязанность оператора входит установка ТСПУ (оборудование предоставляет ГРЧЦ). Сами ТСПУ разделяются на ТСПУ ТГ (трансграничные) - это которые стоят на международных каналах из-за рубежа в РФ; и ТСПУ ШПД - которые отделяют абонентские сегменты сети оператора от "грязного" интернета. ТСПУ ТГ должен ставить владелец канала, ТСПУ ШПД - оператор, если у него > 10 Гбит/с трафика, а если менее - то ТСПУ ШПД ему ОБЯЗАН(!) предоставить вышестоящий(ие) оператор(ы), т.н. аплинки.
В 90 ФЗ вводится поняние "угрозы", в отношение неё обеспечивается "централизованное управление сетью", результатом которого и являются все фокусы с замедлениями, устареваниями, поломкой легитимных сайтов, корпоративных и технологических VPN, ошибками обновления приложений через Google Play и т.д., и т.п. Скорость выявления "угроз" и "введения ЦУ" куда выше, чем блокировки по 139 ФЗ, а способы технической реализации максимально ухищренные - тут не просто фильтрация IP или URL, там и сигнатуры, и эвристика, и всё-всё-всё...

Итого, есть минимум* 3 системы, 3 кордона, которые осуществляют ту самую "фильтрацию у российских провайдеров", вот только ни на одной из них ни один оператор не влияет на способы этой самой фильтрации:
- по ФЗ 139 ему в списках РКН говорят что и как фильтровать (IP целиком или URL);
- по ФЗ 90 задача оператора обеспечить пропуск трафика через ТСПУ ШПД, а уж что там работает и как - не его дело дело государственной важности;
- по ФЗ 90 весь внешний периметр российской сети Интернет перекрыт ТСПУ ТГ, якобы там идет защита от DDoS, но этого никто не может проверить. Косвенно можно определить, что какие-то блокировки работают именно на нем, например, несколько недель назад, когда максимально зажали Telegram, вероятней всего подключили блокировку по IP адресам именно на ТСПУ ТГ.

*-иногда для надежности блокировку по 139 ФЗ включают эшелоном - сначала свою, потом покупают еще у вышестоящего оператора. Цель - максимально защититься от штрафов из-за "пропусков".

Тем временем крупные провайдеры: госкорпорации, директора из пермского заксобрания и прочие любители рыбок и любимые бизнесмены Ладимыча

Метод 2: TCP 16-20 (он же rps-разрыв). Селективный сброс TCP-соединения после определённого числа байтов в потоке. Чаще всего DPI ждёт первые 16-20 пакетов

16-20 там килобайт, а не пакетов.

всё таки пакетов, тспу блокирует подключение после 25 пакетов в любом направлении, обычно пакеты максимального размера, поэтому скачивание файлов через браузер отображает примерно 16кб данных

можете сами проверить отправку 50 пакетов размером 2 байта на заблок айпи адрес:

nping -c50 --delay 50ms --udp -g $(shuf -i 49152-65535 -n 1) -p 443 --data-length 2 --ttl 4 89.167.91.206

(мне в ответ приходит 25 пакетов)

отправка 50 пакетов размером 1400 байт на заблок айпи адрес

nping -c50 --delay 50ms --udp -g $(shuf -i 49152-65535 -n 1) -p 443 --data-length 1300 --ttl 4 89.167.91.206

(мне в ответ приходит 25 пакетов)

если у вас ответов нет то нужно увеличивать ttl пока ответы не пойдут

на сети без блокировок в ответ приходит 50 пакетов

но описание блокировки от автора статьи неверно, ответил в другом комменте про это https://habr.com/ru/articles/1033456/comments/#comment_29956318

TCP 16-20

если они «подозрительные» (содержат SNI определённых хостов),

отправляет одной или обеим сторонам RST-пакет

название и описание про совершенно разные блокировки... 16-20kb блок это БЕЛЫЙ список SNI, а не чёрный как вы описываете, и RST пакеты там не отправляются, соединение тихо блокируется и разрывается уже самим сервером и клиентом по таймауту

чуть подробнее есть у меня в статьях

и ещё я не понял как автор получил 16кб при обращении к дискорду, его домен в чёрном списке и у меня ни 1 байта оттуда не приходит:

curl -vk https://discord.com

зависает на client hello, если бы там было 16-20 то было бы видно как минимум tls сертификат

Загадка:

curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36 Edg/148.0.3967.54" \
-4v --connect-to ::149.154.167.220 https://rutracker.org -k
Вывод терминала

Это что и к чему?

Вот мне интересно почему у меня сегодня полдня Хабр открывался только через КВН. Его же вроде не блокировали. Посмотрел и жалоб, кроме меня, вроде не было на "не открывание".

подмена DNS-ответов

Старый и грубый метод

ИМХО это простой, элегантный, дешёвый и, при требовании в госучреждениях использовать конкретный DNS, этичный метод. Единственный метод который и должен навязываться государством.

Есть еще достаточно простой который НЕ используется (госструктурами) хотя для опасного для пользователей (реально опасного - по мнению пользователя - ну там скам, порнография если человеку ее не надо,etc) контента - вполне хорошо работает :) (списки для adblock и подобных,разного вида)

вот захотелось проверить статью и внезапно возникли некоторые...вопросы

wget https://github.com/hyperion-cs/dpi-checkers/releases/download/dpich-v0.2.3/dpich_linux_amd64

Не работает ( wget https://github.com/hyperion-cs/dpi-checkers/releases/download/dpich-v0.6.0/dpich-v0.6.0-linux-amd64.zip + unzip dpich-v0.6.0-linux-amd64.zip - работает)

зачем то в ~/bin/ (внезапно у меня его нет в ubuntu), при этом ./dpich не используется хотя казалось бы - чего уж если качаем бинарник)

команда dpich \ --target www.youtube.com \ --mode tcp16-20 \ --timeout 15s

выдает что нету флага target.

Возможные на мой взгляд варианты ответов:

  • у автора dpich несколько минорных релизов (которые при этом ломают cli) менее чем за сутки

  • github автора dpich взломан в последние сутки и там совсем другое

  • автор статьи сам не проверял команды которые приводит (а что тогда ЕЩЕ не проверялось?)

  • статья на самом деле - написана Искусственным Идиотом (потому что Исскуственный Интеллект - в состоянии проверить ключи (собственно даже Claude Code после просьбы проверить статью на корректность - сказала что похоже WebFetch глючит - явные галлюцинации в ответе)

  • я где то серьезно ошибаюсь в анализе

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации