Великий Китайский Файрвол – государственна система мониторинга и блокировки интернет-трафика в Китае.Разрабатывается с 1998 года, а с 2003 года введена в эксплуатацию по всей стране. Является одной из самых развитых и эффективных систем подобного рода. Может блокировать даже по Shadowsocks и Obfs4 трафик, что ранее считалось практически невозможным.
Этапы развития
1998–2001
Приняты официальные документы, которые предусматривают создание контент-фильтров и блокировку доступа к определённым сайтам, которые правительство считает нежелательными. Применяются простейшие методы блокировки по IP-адресам и доменным именам.
2001–2003
Всех провайдеров обязали получить государственную лицензию. Благодаря этому правительство получило контроль над инфраструктурой выхода в интернет. Усилился мониторинг трафика: стало собираться больше информации о сайтах, которые посещают пользователи, а также о поисковых запросах.
2003–2009
Внедрение технологии глубокой проверки пакетов (DPI). Она позволяет изучать полезную нагрузку сетевых пакетов, и получать информацию из них по косвенным признакам.
После 2010
Введено обязательное хранение данных на территории Китая. С 2017 года все данные китайских пользователей необходимо хранить только внутри страны.
Борьба с VPN. Жители Китая могут пользоваться только одобренными VPN-сервисами, все остальные блокируются и удаляются из магазинов приложений.
Технологии блокировки
Файрвол является одной из самых технологически развитых систем анализа трафика. По понятным причинам в открытом доступе нет описания работы системы, но некоторые механизмы известны благодаря результатам различных исследований. Для блокировки Файрвол применяет:
- Блокировку IP‑адресов
- Блокировку доменных имён и DNS
- DPI
- Активное обнаружение
Блокировка IP‑адресов
Самый простой вид блокировки. Запрещённые IP-адреса блокируются по спискам, которые постоянно обновляются.
Блокировка доменных имён и и фильтрация DNS
Для защиты от блокировки по IP сайты могут постоянно менять IP-адреса своих серверов. Крупные игроки так делать не будут, а вот сайты помельче часто пользуются такой тактикой. Поэтому вместе с блокировкой по IP работает система блокировки доменных имён.
При подключении к сайту браузер пользователя обращается к DNS-серверам, чтобы по имени сайта получить IP-адрес его сервера. В Китае используются собственные внутренние DNS-сервера, а внешние оперативно блокируются. Когда пользователь пытается зайти на заблокированный домен, ему выдаётся ложный IP-адрес.
Помимо простой подмены DNS-записей, Файрвол может выдавать поддельные DNS-ответы. Это позволяет блокировать запрос, даже если пользователь использует DNS-сервер за пределами страны. Дело в том, что система DNS плохо защищена от подмены информации. Эту проблему пытаются решить с помощью технологии DNSSEC, но широко она пока не применяется.
DPI
DPI – это технология получения информации путём анализа содержимого сетевых пакетов и различных косвенных признаков. Для защиты от DPI используются протоколы, которые передают полезную нагрузку зашифрованной, начиная с первого пакета (Shadowsocks, Obfs4). Это делает невозможным анализ содержимого пакетов.
Однако с 2021 года пользователи в Китае стали сообщать о массовой блокировке Shadowsocks и Obfs4 серверов. Исследователи выяснили некоторые методы, с помощью которых происходят блокировки этих протоколов.
Идея довольно простая. Вместо того, чтобы анализировать зашифрованный трафик, Файрвол применяет простые эвристические правила для исключения трафика, который вряд ли является зашифрованным, а затем просто блокирует весь остальной трафик.
Рассмотрим некоторые известные правила, по которым Файрвол распознаёт зашифрованный трафик:
Анализ отношения битов
Файрвол считает долю единичных битов и проверяет, укладывается ли значение в определённые рамки. Поскольку в полностью шифрованных данных нет различных структурированных заголовков, трафик будет иметь примерно равную долю единичных и нулевых битов. При этом даже пакеты зашифрованных протоколов, вроде TLS, содержат служебные заголовки, которые создают перекос.
Наличие печатных символов
Файрвол анализирует наличие печатных ASCII-символов, применяя следующие правила:
- Первые 6 (или более) байт – это печатные символы
- Более половины байт – печатные символы
- Более 20 последовательных байт – печатные символы
Скорее всего это делается, чтобы не блокировать протоколы, в которых данные передаются открытым текстом.
Исключения для известных протоколов
Чтобы не блокировать популярные протоколы, Файрвол исключает их из анализа. Проверка делается по первым 3-6 байтам пакета. Известно, что точно исключаются протоколы TLS и HTTP. Скорее всего эти протоколы исключены в целях оптимизации из-за их популярности.
Активное обнаружение
Помимо пассивного наблюдения за трафиком Файрвол применяет активные действия для определения запрещённых серверов. Если Файрвол находит подозрительный сервер, то он посылает специально сформированные пакеты и анализирует ответы. В случае, если сервер распознаётся как подозрительный (скажем, это Shadowsocks-сервер) он блокируется.
Например, таким образом в 2012 году Файрвол блокировал узлы TOR. Они выдавали себя тем, что при поединении предлагали нетипичный список криптонаборов. Сейчас Файрвол с помощью этого метода активно определяет сервера Shadowsocks. Вот пример issue на гитхабе с подробным описанием атак и рекомендациями по защите для реализаций Shadowsocks.
Интересные особенности работы
- При блокировке IP-адреса Файрвол не выдаёт информацию об этом пользователю, а просто обрывает соединение. Для клиента это выглядит как долгая попытка загрузки и неудача в итоге
- При подмене IP-адреса в DNS-ответах часто выдаётся несуществующий адрес, с тем же результатом для клиента
- Блокировка работает не всегда, а вероятностно. То есть в некоторых случаях клиент сможет подключиться к серверу, но в конечном итоге всё равно будет заблокирован. Если при соединении клиента к серверу произошла блокировка, то она будет действовать продолжительное время. Скорее всего, это сделано для снижения нагрузки на систему