Я много лет участвовал в создании систем сетевого мониторинга (да что уж там скрывать.. систем 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, какие уязвимости в нём есть и как антиблокировочные сообщества Китая находят способы обхода?
Что такое 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 теперь:
Расшифровывает QUIC Initial-пакеты на лету: Используя DCID и соль, файрвол извлекает содержимое TLS Client Hello, включая SNI.
Применяет эвристические фильтры: Если SNI соответствует домену из чёрного списка, GFW блокирует все последующие UDP-пакеты от клиента к серверу на 180 секунд.
Блокирует по тройке: Блокировка основана на комбинации (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 предложили несколько эффективных методов, которые уже внедряются антиблокировочными сообществами:
Высокие порты назначения. Коллеги утверждают, что если порт назначения ≥ порта источника, GFW игнорирует соединение. Это можно реализовать через iptables, перенаправляя трафик на высокий порт (например, 65535).
Предварительный UDP-пакет. Отправка случайного UDP-пакета перед QUIC Initial заставляет GFW считать его первым в потоке, и последующие QUIC-пакеты не проверяются.
Фрагментация QUIC Initial. Разделение SNI на несколько UDP-датаграмм или QUIC-фреймов делает его нечитаемым для GFW. Mozilla Firefox (версия 137) и quic-go (v0.52.0) уже используют эту технику.
Миграция соединений. QUIC позволяет менять сетевые параметры (IP или порт) после 1-RTT handshake, что обходит блокировку.
Encrypted Client Hello (ECH). ECH шифрует SNI асимметричным ключом, недоступным для GFW. Пока файрвол не блокирует ECH, если внешний SNI не в чёрном списке.
Согласование версий. Отправка 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, но и предложили практичные решения (за что между прочим можно и срок в Китае получить), которые помогают миллионам пользователей.