Раскрывая секреты Великого китайского файрвола: как GFW цензурирует QUIC и как их хулиганы обходят это

Я много лет участвовал в создании систем сетевого мониторинга (да что уж там скрывать.. систем Lawful Interception/СОРМ и веб-фильтрации тоже) и одновременно конечно же понимал всё больше и способы их обхода.

Взгляд и оценка с двух сторон позволяет мне оценить масштаб и сложность работы, проделанной командой GFW Report (https://gfw.report/publications/usenixsecurity25/en/?utm_source=Securitylab.ru). Их исследование, представленное на USENIX Security Symposium 2025, под названием «Exposing and Circumventing SNI-based QUIC Censorship of the Great Firewall of China» - это реально титанический труд, который во многом раскрывает механизмы цензуры протокола QUIC в Великом китайском файрволе (GFW). Могу подтвердить: они описали всё так, как оно работает на самом деле не только в Китае. Система фильтрации действительно примерно одними методами работает и ночью, когда сетевой трафик минимален, фильтрация и ограничение данных происходят гораздо эффективнее, чем днём, когда потоки информации огромны. Кстати именно поэтому многие операции кибератак в последние 5 лет стали проводится днём, тогда как раньше данный промысел был в основном ночным (город засыпал и просыпаласть кибермафия). Так как же GFW справляется с QUIC, какие уязвимости в нём есть и как антиблокировочные сообщества Китая находят способы обхода?

Раскрывая секреты Великого китайского файрвола: как GFW цензурирует QUIC и как их хулиганы обходят это

Что такое QUIC и почему он важен

QUIC (Quick UDP Internet Connections) — это современный транспортный протокол, разработанный Google и стандартизированный IETF в 2021 году (RFC 9000). Он лежит в основе HTTP/3, обеспечивая низкую задержку, шифрование всех пакетов и управление перегрузкой на уровне браузера. По данным Cloudflare, в 2024 году более 30% веб-запросов использовали QUIC, что делает его ключевой частью интернет-экосистемы.

Как человек, работавший с сетевыми протоколами, я могу сказать, что QUIC — это шаг вперёд по сравнению с TLS over TCP. Он работает поверх UDP, что снижает задержки, и шифрует все пакеты, включая начальный (QUIC Initial), содержащий TLS Client Hello с полем SNI (Server Name Indication), где указано доменное имя сервера. Но есть нюанс: хотя QUIC Initial зашифрован, ключ можно вывести из общедоступных данных — Destination Connection ID (DCID) и version-specific salt. Это делает протокол уязвимым для анализа пассивными наблюдателями, такими как GFW.

Как GFW цензурирует QUIC

В апреле 2024 года я узнал о новом подходе GFW: вместо блокировки всего протокола QUIC, как это было раньше, файрвол начал выборочно цензурировать соединения на основе SNI. Команда GFW Report подтвердила, что GFW теперь:

  1. Расшифровывает QUIC Initial-пакеты на лету: Используя DCID и соль, файрвол извлекает содержимое TLS Client Hello, включая SNI.
  2. Применяет эвристические фильтры: Если SNI соответствует домену из чёрного списка, GFW блокирует все последующие UDP-пакеты от клиента к серверу на 180 секунд.
  3. Блокирует по тройке: Блокировка основана на комбинации (IP-источника, IP-получателя, порт назначения). При этом серверные пакеты к клиенту проходят без ограничений.

Этот подход меня впечатлил своей технической изощрённостью. GFW не просто перехватывает пакеты, а анализирует их в реальном времени, что требует значительных вычислительных ресурсов. Но, как и в любой сложной системе, здесь есть слабые места, о которых я расскажу ниже.

Суточный ритм цензуры

Мой опыт подсказывает, что эффективность сетевых фильтров сильно зависит от нагрузки. GFW Report подтвердили это, обнаружив чёткий суточный цикл: ночью, с 00:00 до 06:00 по китайскому времени, когда трафик минимален, блокировка работает почти безупречно. Днём же, при пиковых нагрузках, значительная часть QUIC-соединений с запрещёнными доменами проходит без помех. Это связано с высокой вычислительной стоимостью расшифровки QUIC Initial-пакетов. Я сам замечал, что ночью фильтровать и ограничивать данные проще, чем днём, когда потоки данных огромны.

Портовая фильтрация и другие особенности

GFW использует интересный фильтр: он блокирует соединения, только если порт источника больше порта назначения (например, клиентский порт > 443). Это позволяет отсеять серверный трафик, так как клиенты обычно используют высокие эфемерные порты (32768–65535). Ещё одна особенность — GFW не пересобирает фрагментированные QUIC Initial-пакеты, что делает его уязвимым для обхода через разделение SNI. Также цензура работает только с QUIC версии 1 (байтовый шаблон 0x00000001), а QUIC версии 2 остаётся неподверженным блокировке.

Исследователи протестировали нестандартные пакеты и обнаружили, что GFW:

  • Блокирует пакеты с нулевой длиной CRYPTO-фрейма, если в них есть SNI.
  • Игнорирует пакеты с некорректной версией протокола или неправильным тегом аутентификации.
  • Не анализирует домены в других TLS-расширениях, например ALPN.

Эти упрощения напоминают мне подходы, которые я видел в системах мониторинга HTTPS, где также анализируется SNI. GFW явно следует принципу «хуже — значит лучше», жертвуя точностью ради скорости.

Уязвимости GFW: Атаки на отказ и деградацию

Атака на доступность

Одна из самых тревожных находок GFW Report — возможность использовать цензуру QUIC для атак на отказ в обслуживании. Злоумышленник, подделывая IP-адрес жертвы, может отправить QUIC Initial-пакет с запрещённым SNI, вызывая 180-секундную блокировку всех UDP-соединений жертвы с целевым сервером. Повторяя такие пакеты, можно сделать блокировку постоянной.

Я был поражён, когда увидел результаты их эксперимента:

  • Они подделали QUIC Initial-пакеты от имени 32 AWS EC2-инстансов по всему миру, направляя их на сервер в Гуанчжоу.
  • В 17 случаях связь полностью блокировалась, в 7 — частично. Остальные 8 инстансов не пострадали из-за разных сетевых путей.
  • Такая атака могла бы, например, заблокировать доступ к внешним DNS-резолверам, вызвав массовые сбои.

Я сам сталкивался с подобными уязвимостями в системах фильтрации, и они всегда вызывали беспокойство. GFW Report ответственно раскрыли эту проблему CNCERT 22 января 2025 года. Ответа не последовало, но с 13 марта 2025 года GFW перестал блокировать входящие QUIC-соединения, что частично решило проблему. Однако атака всё ещё возможна для трафика из Китая.

Атака на деградацию

Ещё одна уязвимость, которую я нахожу особенно интересной, — это атака на деградацию. GFW Report показали, что отправка большого числа QUIC Initial-пакетов (даже с некензурируемыми SNI) перегружает GFW, снижая его способность блокировать соединения. В их эксперименте:

  • С узла в США отправлялись пакеты в сеть /14, где находился китайский сервер, со скоростью от 100 до 1500 kpps.
  • При 1200 kpps более 60% соединений с запрещёнными SNI проходили без блокировки.
  • Контрольные UDP-пакеты той же длины не вызывали деградации, что подтверждает: проблема именно в обработке QUIC.

Этот подход напоминает мне техники, которые я использовал для тестирования систем мониторинга. Высокая вычислительная нагрузка на расшифровку делает GFW уязвимым, особенно в часы пик.

И что делают Китайцы, желающие почитать ужасные порно-издания типа CNN?

Работая над обходом систем фильтрации, все всегда ищут способы использовать архитектурные слабости. GFW Report предложили несколько эффективных методов, которые уже внедряются антиблокировочными сообществами:

  1. Высокие порты назначения. Коллеги утверждают, что если порт назначения ≥ порта источника, GFW игнорирует соединение. Это можно реализовать через iptables, перенаправляя трафик на высокий порт (например, 65535).
  2. Предварительный UDP-пакет. Отправка случайного UDP-пакета перед QUIC Initial заставляет GFW считать его первым в потоке, и последующие QUIC-пакеты не проверяются.
  3. Фрагментация QUIC Initial. Разделение SNI на несколько UDP-датаграмм или QUIC-фреймов делает его нечитаемым для GFW. Mozilla Firefox (версия 137) и quic-go (v0.52.0) уже используют эту технику.
  4. Миграция соединений. QUIC позволяет менять сетевые параметры (IP или порт) после 1-RTT handshake, что обходит блокировку.
  5. Encrypted Client Hello (ECH). ECH шифрует SNI асимметричным ключом, недоступным для GFW. Пока файрвол не блокирует ECH, если внешний SNI не в чёрном списке.
  6. Согласование версий. Отправка QUIC Initial с неподдерживаемой версией (например, QUIC v2) заставляет сервер отправить Version Negotiation-пакет, а GFW игнорирует последующие пакеты.

Я видел, как подобные методы работали годами против других цензурных систем. Например, фрагментация пакетов — это классический способ борьбы с DPI (глубокой проверки пакетов). Команда GFW Report поделилась этими находками с разработчиками Mozilla Firefox, quic-go, Hysteria, V2Ray и других инструментов. Уже в мае 2025 года quic-go v0.52.0 внедрил SNI-slicing, что позволило многим инструментам обходить цензуру.

Сравнение с другими механизмами цензуры

GFW утверждает, что QUIC-блокировка охватывает около 58 тысяч доменов (из 7 миллионов в Tranco-листе), что меньше, чем списки DNS (107 тысяч), HTTP (105 тысяч) и TLS-SNI (102 тысячи). При этом 40 тысяч доменов пересекаются между всеми списками, а 11 тысяч блокируются только по QUIC, из них лишь 2,3 тысячи поддерживают QUIC. Это наводит на мысль, что GFW может превентивно блокировать домены, ожидая их перехода на QUIC.

Такая децентрализация списков - это скорее всего признак распределённой архитектуры GFW. Разные механизмы цензуры, вероятно, управляются разными командами, что усложняет координацию, но увеличивает охват.

Этика и ответственность

Работая над системами слежки и обхода, обычно специалисты всегда сталкиваются с этическими дилеммами. GFW Report тщательно подошли к этому вопросу:

  • Атака на доступность. Они протестировали атаку только на своих серверах, чтобы избежать вреда. Раскрытие уязвимости CNCERT было необходимо для защиты пользователей.
  • Атака на деградацию. Эта атака затрагивает только GFW, поэтому её раскрыли сначала антиблокировочным сообществам, чтобы не помочь цензорам.
  • Мониторинг сетей. Эксперименты проводились с ограниченным TTL и контролем сетевых метрик, чтобы не повредить сторонним пользователям.

Моя работа в области сетевой безопасности научила меня, что даже самые сложные системы имеют слабые места. Исследование GFW Report показало, что GFW, несмотря на свою мощь, уязвим из-за вычислительных ограничений, упрощённой обработки пакетов и зависимости от портовых фильтров. Атаки на деградацию и доступность подчёркивают эти слабости, а предложенные методы обхода — от фрагментации до ECH — доказывают, что цензуру можно преодолеть.

Как человек, который видел обе стороны, я восхищён работой команды GFW Report. Они не только раскрыли механизмы цензуры QUIC, но и предложили практичные решения (за что между прочим можно и срок в Китае получить), которые помогают миллионам пользователей.

1