Отъявленный программист: лайфхакинг из первых рук — страница 18 из 52


В России в последнее время очень много пишут о внедрении DPI, многие федеральные операторы (особенно это касается мобильных операторов) даже якобы уже имеют его в рабочем виде. Можно ли сказать, что нами перенимается китайский опыт?


Российские и китайские DPI кроме общего названия и принципов работы практически ничего не объединяет. Дело тут прежде всего в масштабе и серьезности их реализации. Как очевидно из описанного ранее способа работы, DPI потребляет прорву ресурсов, ведь все многочисленные операции, производимые им (например, дефрагментация пакетов, их распаковка, распознавание типов данных и протоколов, сканирование содержимого, многочисленные эвристики и многоемногое другое), должны происходить в режиме реального времени. Поэтому главный критерий степени серьезности DPI — глубина анализа транзитного трафика, который может позволить себе эта система, чтобы при этом сохранять приемлемый уровень латентности.

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

Часто в этой ситуации применяются технологические или оптимизирующие ноу-хау, а можно пойти иначе — просто радикально увеличить вычислительную мощность. Так вот, когда мы говорим о китайском проекте DPI, нужно понимать, что это именно последний путь — реально это датацентр размером с самый настоящий районный город, который применяет роевой интеллект (Swarm Intellegence) для управления балансировкой и обработкой данных между его бесчисленными частями-узлами.

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


Переходим ко второму китайскому дракону — что такое connection probe?


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

Если, например, вы используете запрещенный в Китае сервис, то его клиентский протокол должен быть серьезно обфусцирован, чтобы суметь преодолеть сигнатурный механизм поиска DPI. При использовании против вас connection probe потребуется обфускация ответа уже и со стороны сервера, то есть в общем случае вы не сможете пользоваться стандартными публичными сервисами в случае их запрета.

На данный момент connection probe позволяет достаточно точно и малыми ресурсами определить тип внешнего сервиса, которым желает воспользоваться пользователь из Китая. Если приводить более жизненный пример, то именно эта технология была с успехом применена против оверлейной сети i2p, после чего оная в Китае была заблокирована.


Кстати говоря, что можно сказать о системах типа Tor, i2p? Насколько они реально эффективны в условиях подобной агрессивной сетевой цензуры?


Не хочу никого огорчать, но они малоэффективны и вовсе не так живучи, как об этом шумит народная молва, — все упомянутые системы в Китае давно заблокированы. Более того, заблокировать Tor или i2p можно десятком разных способов, самый простой из которых — блокировка bootstrap-процедуры в момент инициализации их клиентов. Заблокировать подобным образом входные ноды этих сетей (например, Tor directory nodes) — тривиальная задача даже для администратора средней руки. Если же говорить с учетом тех возможностей, которые есть у правительства Китая, в первую очередь я имею в виду высокотехнологическую дубинку DPI, — это и вовсе тривиальная задача.

Вы можете заглянуть в i2p netDB — там нет нод с китайскими IPадресами, если же посмотреть на открытую статистику пользователей сервиса Tor, то они фиксируют максимум 1000 уникальных китайских IP-адресов в месяц, и это на такую многомиллиардную страну, как Китай, у которой самое большое количество интернет-пользователей в мире.

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


Как обстоят дела с VPN и SSH?


Ситуация с VPN довольно противоречивая — отдельные провайдеры его агрессивно подавляют, некоторые — почти нет. Своими блокировками широко известен China Unicom — один из крупнейших магистральных провайдеров континентального Китая. На данный момент им определяется и блокируется более пяти разновидностей VPN. Если быть более конкретным, это: OpenVPN, PPTP, L2TP, SSTP и Cisco.

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

Говоря более общо, насколько мне известно, правительство Китая собирается лицензировать сферу использования VPN, то есть после соответствующей государственной регистрации разрешить применение VPN в целях легального бизнеса, и это будет своя собственная версия протокола на базе OpenVPN. После вступления этого закона в силу все отличные от государственного варианта VPN-протоколы будут тотально «резаться» на трансграничном шлюзе.

Что же касается сервиса SSH, попытки его блокировок также имеют место быть. По ряду косвенных признаков подобные испытания проводятся и в публичных сетях, в таких случаях в логах можно найти множество сброшенных или неудачных соединений с типичной ошибкой Bad protocol version identification. При этом при попытке подключения к серверам вне Китая на них впоследствии можно увидеть несколько ложных попыток подключения с китайских IP-адресов, предшествующих самому сброшенному подключению. Предположительно, это скрининг принимающего сервера по типу connection probe, который мы уже обсудили выше.

Часто подобные тестовые подключения принимают за brute force, хотя в данном случае это скорее попытка пассивной идентификации удаленной системы/протокола по характерным паттернам отклика (fingerprint scanning).

После идентификации подобного сервиса его адрес вносится (как правило, на 1–3 месяца) в соответствующие фильтры и стоп-списки, чтобы впредь в целях экономии ресурсов избегать рекурсивных запросов по уже однажды обнаруженному и идентифицированному хосту. Подобные фильтры постепенно пополняются запрещенными в Китае сервисами. Так, в том числе благодаря connection probe, полностью в автоматическом режиме растет и расширяется база Великого китайского фаервола.


Чтобы сделать наше описание полным, давайте рассмотрим и последнего зловещего дракона — Support vector machines (SVM).


Я бы хотел подчеркнуть, что и connection probe, и тем более SVM следует рассматривать как расширение, еще большую интеллектуализацию DPI.


Метод опорных векторов (SVM) — еще один шаг в этом направлении. Это алгоритм машинного обучения, применяемый для автоматической классификации больших массивов разнородных данных. Мы уже обсуждали, что DPI — это фильтрующая машина, вычленяющая некие данные в потоке согласно статическим правилам, или сигнатурам. В противоположность этому SVM дает возможность сканировать интернет-поток на основе статистического анализа без жесткого набора правил. Например, проводить анализ частоты определенных символов, длин пакетов, анализ подозрительной активности с заданных адресов, замечать различные диспропорции и сетевые аномалии, этим выявляя скрытые закономерности. SVM — это интеллектуальная насадка на DPI, которая, продолжая нашу антивирусную аналогию, привносит эвристические возможности («shrinking» heuristic) к процессу фильтрации интернет-трафика.

Приведу пример: в Китае нельзя упоминать о годовщине протестов на площади Тяньаньмэнь в Пекине 4 июня 1989 года, когда на волне крупных беспорядков множество студентов были буквально раздавлены танками. DPI, динамически сканируя национальный трафик, блокирует любые URL-адреса с упоминаниями указанной даты.

После того как китайцы стали обозначать эту дату как 35 мая (и множеством других остроумных способов), обычный сигнатурный анализ значительно затруднился. Но эвристика SVM пришла на помощь, она способна, распознавая контекст, обнаруживать такие «подозрительные даты» с минимальным вмешательством человека.


Подводя черту, учитывая все сказанное, можно ли сказать, что планируемое внедрение «всероссийского» проекта DPI со стороны «Ростелекома» — это некое зловещее предзнаменование, черная метка для всего Рунета?


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

DPI позволяет выполнять огромное количество полезной для сети работы — многие мировые провайдеры применяют его для контроля и балансировки своего трафика, мобильные операторы с его помощью собирают подробную статистику для каждого отдельного пользователя, также эта технология дает возможность адаптивно управлять скоростью передачи отдельных пакетов (QoS) и многое другое. В целом DPI обеспечивает огромное количество уникальных возможностей в широком спектре — от высококачественного шейпинга до создания продвинутых шпионских систем типа PRISM.