Как устроены блокировки в интернете: обзор современных методов на реальном примере

в 7:25, , рубрики: Блог компании INFATICA.io, блокировки, инфраструктура, исследование, цензура

Как устроены блокировки в интернете: обзор современных методов на реальном примере - 1

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

Вводные данные

В последние годы исследователи из разных стран провели множество исследований методов блокировок, которые применяют в считающихся «несвободными» странах – например, в Китае или Иране. Однако даже демократические государства, вроде Индии, в последние годы развернули масштабную инфраструктуру для осуществления цензуры в интернете.

В ходе исследования ученые составили список из 1200 потенциально заблокированных в стране сайтов. Данные собирали из открытых источников, вроде Citizen Lab или Herdict. Затем, был организован доступ в интернет с помощью девяти наиболее популярных интернет-провайдеров.

Для определения факта цензуры и блокировки сайта изначально использовался инструмент OONI.

OONI vs собственный скрипт для поиска блокировок

Изначально исследователи собирались использовать популярный инструмент обнаружения цензуры под названием OONI. Однако уже в ходе эксперимента выяснилось, что он дает много ложных срабатываний – ручная проверка полученных результатов выявляла много неточностей.

Низкое качество определения цензуры может быть связано с устаревшими механизмами работы OONI. Так при обнаружении фильтрации DNS инструмент сравнивает IP-адресс заданного хоста, возвращаемый Google DNS (он считается неподцензурным), с IP-адресом, назначенным сайту интернет-провайдером.

Если адреса не совпадают, то OONI сигнализирует о наличии блокировки. Однако в реалиях современного интернета разные IP-адреса ни о чем не говорят и, например, могут быть свидетельством использования CDN-сетей.

Таким образом, исследователям пришлось написать собственные скрипты для выявления блокировок. Ниже – обзор популярных способов блокировки контента в интернете и анализ их эффективности в современных условиях.

Как осуществляют блокировки или что такое middleboxes

Анализ показал, что во всех случаях блокировок различного типа, они осуществляются с помощью внедренных сетевых элементов. Исследователи назвали их middleboxes – они перехватывают пользовательский трафик, анализируют его, и в случае, если обнаруживают попытку соединения с запрещенным сайтом, встраивают в трафик специальные пакеты.

Для обнаружения middleboxes исследователи разработали собственный метод Iterative Network Tracing (INT), который использует принципы утилиты traceroute. Его суть сводится к отправке веб-запросов к заблокированным сайтом с увеличением значений TTL в IP-заголовках.

Как устроены блокировки в интернете: обзор современных методов на реальном примере - 2

Механизм middlebox для перехвата данных

Блокировки DNS

Процесс разрешения DNS – это главный шаг на пути к получению доступа к любому веб-сайту. Введенный пользователем URL сначала разрешается в связанный IP-адрес. При использовании блокировки DNS цензоры всегда вмешиваются именно на этом шаге – подконтрольный резолвер возвращает пользователю неверный IP-адрес, в итоге сайт просто не открывается (DNS poisoning).

Еще один способ блокировки – использование инъекций DNS – в этом случаей middlebox между клиентом и резолвером перехватывает DNS-запрос и отправляет собственный ответ, содержащий некорректный IP-адрес.

Для выявления блокировок DNS со стороны интернет-провайдеров, исследователи использовали TOR с выходными нодами в странах без цензуры – если с помощью него сайт открывается, а с помощью простого подключения через провайдера – нет, то имеет место факт блокировки.

После выявления сайтов, заблокированных по DNS, исследователи определяли способ блокировки.

Как устроены блокировки в интернете: обзор современных методов на реальном примере - 3

Метод итеративной сетевой трассировки: клиент отправляет специальные запросы (DNS/HTTP GET), содержащий заблокированный сайт и постоянно увеличивающееся TTL

Фильтрация пакетов TCP/IP

Блокировки с помощью фильтрации по заголовкам пакетов считаются популярным способом интернет-цензуры. В интернете можно найти немало исследований, авторы которых пытаются выявить именно такой способ блокировки сайтов.

В реальности же проблема в том, что такой способ легко перепутать с обычными системными сбоями, приводящими к затруднениям в работе сети и снижению ее пропускной способности. В отличие от блокировок по HTTP, при фильтрации TCP/IP пользователь не получает никаких оповещений о том, что нужный ему сайт заблокирован – он просто не открывается. Провести валидацию и отделить случаи блокировок от обычных сбоев и ошибок в работе сети очень трудно.

Тем не менее, исследователи попытались это сделать. Для этого использовалась процедура хендшейка. handshake-пакеты туннелировались через Tor с выходными нодами в странах без цензуры. В случае сайтов, с которыми удалось установить соединение с помощью Tor, процедура хендшейка осуществлялась еще пять раз подряд с задержкой в примерно две секунды. Если каждая из попыток оказывалась неудачной, с высокой долей вероятности речь шла о преднамеренной фильтрации.

В итоге для всех протестированных интернет-провайдеров такой метод блокировки не был обнаружен.

HTTP-фильтрация

Зато в случае пяти из девяти провайдеров была обнаружена фильтрация HTTP. Этот метод подразумевает анализ содержимого HTTP-пакетов. Осуществить его можно с помощью тех самых промежуточных сетевых элементов (middleboxes).

Для выявления HTTP-фильтрации исследователи создали Tor-контуры, оканчивающиеся в странах без интернет цензуры. Затем они сравнивали контент, полученный в ответ на запросы к заблокированным сайтам, совершенные внутри страны и с помощью Tor.

Одной из первых задач было выявление момента, в котором происходит блокировка. К примеру, в случае некоторых провайдеров, после отправки запроса HTTP GET, в ответ приходил ответ HTTP 200 OK с установленным битом TCP FIN с уведомлением о блокировке — именно он заставляет браузер клиента прервать соединение с целевым сайтом. Однако после этого также приходил и пакет от сайта. В таких случаях было непонятно, что стало триггером блокировки – запрос клиента, или ответ сайта.

Выяснить это удалось с помощью простой манипуляции: в заголовке пакета HTTP в GET-запросе поле Host заменяли на HOST. Этого оказывалось достаточно, для того, чтобы заблокированный сайт начал открываться. Это доказывает, что цензоры проверяют лишь запросы клиента, а не ответы сервера.

Заключение: все ли провайдеры осуществляют блокировки

Зачастую блокировки сайтов конкретные интернет-провайдеры осуществляют не сами, а надеются в этом плане на провайдеров, управляющих «соседними» сетями. В рассмотренном эксперименте несколько поставщиков интернет-услуг ни разу не были замечены в использовании собственных блокировок, но при этом заблокированные в стране сайты у их пользователей могли точно также не открываться.

Другие статьи по теме использования резидентных прокси для бизнеса:

Автор: Иван Сергеев

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js