Краткий обзор технологии DPI — Deep Packet Inspection. Как это работает? Поведенческий и эвристический анализ

Deep Packet Inspection (сокр. DPI , также complete packet inspection и Information eXtraction или IX , рус. Углубленная проверка пакетов) - технология накопления статистических данных, проверки и фильтрации сетевых пакетов по их содержимому. В отличие от сетевых экранов, Deep Packet Inspection анализирует не только заголовки пакетов, но и полное содержимое трафика на всех уровнях модели OSI , начиная со второго и выше. Использование Deep Packet Inspection позволяет обнаруживать и блокировать вирусы, фильтровать информацию, не удовлетворяющую заданным критериям.

Contents

Введение / Постановка задачи защиты информации

Система DPI выполняет глубокий анализ пакетов - анализ на верхних уровнях модели OSI, а не только по стандартным номерам сетевых портов. Помимо изучения пакетов по неким стандартным шаблонам, по которым можно однозначно определить принадлежность пакета определённому приложению: по формату заголовков, номерам портов и прочему, система DPI осуществляет и так называемый поведенческий анализ трафика, который позволяет распознать приложения, не использующие для обмена данными заранее известные заголовки и структуры данных, к примеру, BitTorrent .

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

Другой проблемой, получающей всё большее распространение, является широкое применение средств шифрования сетевого трафика и использование TLS/SSL в составе протокола HTTPS , что не позволяет использовать для них классические средства глубокого анализа.

Системы DPI могут быть реализованы как программно (Tstat, OpenDPI, Hippie, L7-filter, SPID), так и аппаратно (продукты компаний Allot Communications, Procera Networks, Cisco, Sandvine). В последние годы последний вариант становится всё более популярен. Производительность данных решений может варьироваться от сотен Мбит/с до 160 Гбит/с для одного аппаратного устройства, которые также можно объединить в кластеры, увеличив производительность. Стоимость при этом может меняться от нескольких тысяч до миллионов долларов США.

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

Применение

Благодаря внедрению систем DPI, у оператора появляется мощный инструмент по решению различных задач по эксплуатации и развитию сети.

Целевая реклама

Поскольку операторы связи маршрутизируют сетевой трафик всех своих клиентов, они могут проводить детальный анализ поведения пользователей в Сети, что даёт им возможность собирать информацию об интересах пользователей. Данная информация может быть использована компаниями, специализирующимися на целевой рекламе. Данный подход получил международное распространение. Как правило, сбор информации производится без ведома и согласия пользователей.

Реализация QoS

Система DPI может быть использована для нарушения сетевого нейтралитета - реализации QoS . Так, с помощью DPI, оператор данных может контролировать использование каналов, на которых установлены системы DPI, на 7 уровне OSI. Классическое решение задачи реализации QoS основано на построении очередей, на основании маркировки трафика служебными битами в заголовках IP, 802.1q и MPLS, с выделением приоритетного трафика (к примеру, VPN или IPTV). Данному трафику гарантируется заданная пропускная способность в любой момент времени. При этом трафик, обслуживаемый по принципу "Best Effort", к которому относится, в том числе, трафик домашних абонентов, остаётся без контроля, что даёт возможность ряду протоколов, к примеру, BitTorrent, единолично использовать всю свободную полосу.

Использование DPI предоставляет оператору возможность распределить канал между различными приложениями и вводить гибкую политику управления трафиком: к примеру, разрешить трафику BitTorrent использовать в ночное время большую часть полосы, чем днём. Другая частоиспользуемая оператором возможность: блокировка, либо существенное ограничение пропускной способности, определенного вида трафика, к примеру, VoIP-телефонии мобильными операторами, что уменьшает финансовые убытки от неиспользования пользователями услуг связи.

Управление подписками

Другой стороной реализации QoS на основе DPI является возможность доступа по подписке. Правила, на основании которых выполняется блокировка, могут быть заданы посредством двух основных базисов: per-service или per-subscriber. В первом случае оговаривается, что конкретному приложению позволяется использовать определённую полосу. Во втором - привязка приложения к полосе осуществляется для каждого подписчика или группы подписчиков независимо от других, что производится через интеграцию DPI с существующими OSS/BSS системами оператора.

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

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

Использование госорганами

При помощи DPI спецслужбы могут вести наблюдение за сетевой активностью того или иного пользователя. Помимо наблюдения, можно активно влиять на данную активность, ограничивая доступ к использованию VPN, HTTPS и прочим средствам, делающим невозможным анализ сетевого контента. Кроме того, именно решения на основе DPI используются для блокировки доступа к запрещенным веб-ресурсам в США, Китае, Иране, России. Так, в Китае был разработан стандарт по DPI (Y.2770), позднее утверждённый Международным союзом электросвязи (ITU).

DPI является неотъемлемой частью систем, подобных СОРМ-2 и Эшелон.

DPI для зашифрованного трафика

HTTPS и другие протоколы шифрования получают в последние годы всё большее распространение. Шифрование защищает конфиденциальную информацию пользователей в любой точке сети, в том числе в промежуточных узлах. К сожалению, HTTPS представляет собой давнюю проблему для DPI-устройств. Поскольку полезная нагрузка пакетов зашифрована, промежуточные сетевые узлы больше не могут анализировать полезную нагрузку и выполнять свои задачи. Необходимо отметить, что применение протоколов шифрования на прикладном уровне не мешает DPI-системе анализировать трафик более низких уровней, однако существенно понижает её эффективность. Так, HTTPS не помешает DPI-системе изучить TCP-заголовок пакета, чтобы определить порт назначения и попытаться сопоставить его с определенным приложением, однако не даст проанализировать полезную нагрузку прикладного уровня: DPI-система сможет определить время, объем и назначение пакета, но не его содержимое.

На основании вышеизложенного, можно сделать вывод, что шифрование трафика не мешает реализации QoS и управления подписками на основе DPI.

Использование HTTPS поможет защитить данные от DPI лишь при передаче. Если DPI-система установлена на стороне сервера, с которым взаимодействует клиент, то данные будут обработаны в открытом виде. К примеру, при взаимодействиями с серверами Google, несмотря на использование ими HTTPS, DPI-системы собирают информацию для выдачи контекстной рекламы.

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

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

BlindBox

Описание

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

Потенциальными кандидатами являются такие криптографические схемы, как полностью гомоморфное или функциональное шифрование, но эти схемы довольно медленны, и снижают производительность сети на несколько порядков.

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

Модель конфиденциальности на основе полного совпадения гарантирует следующее: промежуточный узел будет в состоянии обнаружить лишь те подстроки трафика, для которых существует полное совпадение с ключевыми словами известных атак. Например, если существует правило для слова "АТАКА", то промежуточный узел узнает, на каком смещении потока появляется, если появляется вообще, слово "АТАКА", но не узнает, что из себя представляют другие части трафика. Трафик, которые не содержит ключевых слов, останется непрочитанным промежуточным узлом.

Модель конфиденциальности на основе вероятной причины основывается на другой логике: промежуточный узел может расшифровать весь поток, если обнаружена подстрока трафика, совпадающая с ключевым словом известной атаки. Данная модель удобна для задач обнаружения атак, которые требуют выполнения анализа с помощью регулярных выражений или скриптов. Данная модель вдохновлена двумя причинами: первая - модель "вероятной причины" уголовного права США: поводом для нарушения конфиденциальности является только наличие причины для подозрений. Вторая - большинство правил в системе обнаружения атак Snort, использующие регулярные выражения, сперва пытаются найти ключевые слова, связанные с атакой, в пакете, а лишь затем начинают использовать поиск с использованием регулярных выражений, поскольку в противном случае обнаружение будет слишком медленным.

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

Архитектура системы

На рисунке 1 представлена архитектура системы. В ней четыре стороны - отправитель (О), получатель (П), промежуточный узел (ПУ), и генератор правил (ГП), что отражает стандартную архитектуру промежуточного узла на данный день. Генератор правил предоставляет правила атаки (также называемые сигнатурами), используемые ПУ для обнаружения атак. Каждое правило пытается описать атаку, и содержит поля: одно или несколько ключевых слов, содержащихся в трафике, информация о смещении для каждого ключевого слова, и, иногда, регулярные выражения. Роль ГП на сегодняшний день выполняют организации, такие каке Emerging Threats, McAfee, Symantec. Отправитель посылает трафик получателю через промежуточный узел, который позволяет отправителю и получателю обмениваться информацией, если он не обнаруживает сигнатур в их трафике.

Рисунок 1. Архитектура BlindBox. Закрашенные элементы обозначают алгоритмы, добавленые в BlindBox.

Рассмотрим модель применения BlindBox. Генератор правил создаёт набор правил, который содержит перечень ключевых слов, которые используются в существующих атаках или представляют интерес для изучения. ГП подписывает их с использованием своего секретного ключа, и отправляет ПУ, своему пользователю. Отправитель и получатель, доверяющие ГП, устанавливают конфигурацию HTTPS BlindBox, которая включает в себя открытый ключ ГП. После этапа инициализации, ГП больше никогда напрямую не вовлечён в протокол. Теперь речь идёт о взаимодействии между отправителем, получателем и ПУ, когда отправитель и получатель инициируют соединение в сети, контролируемой ПУ.

Установка соединения

Сперва, отправитель и получатель осуществляют обычное SSL-рукопожатие, которое позволяет им согласовать ключ . Они используют его для получения трёх ключей (к примеру, с помощью ГПСЧ):

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

В отличии от описанного выше SSL-рукопожатия, которое идентично обычному SSL-рукопожатию, запутанное шифрование правил добавляет новый процесс. Поскольку в существующих решениях, клиент обычно не связываются с DPI-узлами напрямую (в отличии от других типов промежуточных узлов, таких как явные прокси или NAT hole-punching), это лишает полной "невидимости" наличия DPI, это незначительный недостаток по сравнению с преимуществами использования BlindBox.

Отправка трафика

Чтобы отправить сообщение, отправитель должен:

(1) Зашифровать трафик с использованием классического SSL.

(2) Разбить трафик на метки (токены) путем разделения его на подстроки, взятые с различным смещением, и зашифровать результирующие метки с использованием схемы шифрования DPIEnc.

Обнаружение

Промежуточный узел получает зашифрованный SSL-трафик и зашифрованные метки. Модуль обнаружения будет выполнять поиск соответствия между зашифрованными правилами и зашифрованными метками, используя алгоритм обнаружения BlindBox. При обнаружении совпадения, выполняется предопределенное действие: отбрасывание пакета, закрытие соединения, уведомление администратора системы. После выполнения обнаружения, промежуточный узел перенаправляет SSL-трафик и зашифрованные метки получателю.

Получение трафика

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

Схема шифрования DPIEnc

Отправитель шифрует каждую метку (токен) t как:

Где “соль” (salt) - случайно выбранное число, а смысл RS (фактически, ReduceSize) поясняется далее.

Обоснуем необходимость схемы шифрования DPIEnc. Допустим, промежуточный узел передал для каждого правила r пару (r, (r)), но не ключ k. Начнем с рассмотрения простой детерминированной схемы шифрования вместо DPIEnc: шифртекст от t пусть будет равен (t). Чтобы проверить, равен ли t ключевому слову r, ПУ может проверить, выполняется ли (t) ?= (r). К сожалению, в результате стойкость будет низкой, поскольку каждое вхождение t будет иметь одинаковый шифртекст. Для решения данной проблемы, нам необходимо внести элемент случайности в шифрование. Поэтому, мы будем использовать “случайную функцию” H со случайной солью, и шифртекст будет иметь следующую структуру: salt, H(salt, (t)). Конечно же, H должна быть односторонней и псевдослучайной.

Для проверки соответствия, промежуточный узел может вычислить H(salt, (r)) основанную на (r) и соли, и затем провести проверку равенства. Типичная реализация H - SHA-1, но SHA-1 работает не так быстро, поскольку на современных процессорах AES реализовано аппаратно, и это может понизить пропускную способность. Вместо этого, в BlindBox H реализована через AES, но должна использоваться осторожно, поскольку AES имеет другие свойства безопасности. Чтобы достигнуть требуемых свойств, необходимо инициировать AES на ключе, неизвестном промежуточному узлу, пока не найдена сигнатура атаки. Именно поэтому, используется значение (t).

Теперь алгоритм целиком реализован на AES, что обеспечивает высокую скорость работы.

Наконец, RS просто уменьшает размер шифртекста, чтобы уменьшить ограничение пропускной нагрузки, не влияя на безопасность.

В данной реализации, RS это 2 в 40 степени, что даёт длину шифртекста в 5 байт. В результате, шифртекст более не дешифруем, что не является проблемой, поскольку BlindBox всегда дешифрует трафик из первичного SSL-потока.

Теперь, чтобы определить соответствие между ключевым словом r и шифртекстом метки t, промежуточный узел расчитывает , используя соль и знание (r), и затем проверяет их на равенство c .

Поскольку, очевидно, что промежуточный узел выполняет проверку для каждого правила r и метки t, итоговые временные затраты на метку находятся в линейной зависимости от числа правил, что слишком медленно.

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

Результат - значительное улучшение производительности: к примеру, для набора правил с 10 тысячами ключевых слов, логарифмический поиск на четыре порядка быстрее, чем линейный.

Протокол обнаружения

Состояние промежуточного узла состоит из счетчиков для каждого правила r и дерева быстрого поиска, состоящего из для каждого правила r.

Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

Существует два распространенных типа подключения DPI: пассивный и активный.

Пассивный DPI

Пассивный DPI - DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.

Выявляем и блокируем пакеты пассивного DPI

Поддельные пакеты, формируемые DPI, легко обнаружить анализатором трафика, например, Wireshark.
Пробуем зайти на заблокированный сайт:

Мы видим, что сначала приходит пакет от DPI, с HTTP-перенаправлением кодом 302, а затем настоящий ответ от сайта. Ответ от сайта расценивается как ретрансмиссия и отбрасывается операционной системой. Браузер переходит по ссылке, указанной в ответе DPI, и мы видим страницу блокировки.

Рассмотрим пакет от DPI подробнее:

HTTP/1.1 302 Found Connection: close Location: http://warning.rt.ru/?id=17&st=0&dt=195.82.146.214&rs=http%3A%2F%2Frutracker.org%2F
В ответе DPI не устанавливается флаг «Don"t Fragment», и в поле Identification указано 1. Серверы в интернете обычно устанавливают бит «Don"t Fragment», и пакеты без этого бита встречаются нечасто. Мы можем использовать это в качестве отличительной особенности пакетов от DPI, вместе с тем фактом, что такие пакеты всегда содержат HTTP-перенаправление кодом 302, и написать правило iptables, блокирующее их:
# iptables -A FORWARD -p tcp --sport 80 -m u32 --u32 "0x4=0x10000 && 0x60=0x7761726e && 0x64=0x696e672e && 0x68=0x72742e72" -m comment --comment "Rostelecom HTTP" -j DROP
Что это такое? Модуль u32 iptables позволяет выполнять битовые операции и операции сравнения над 4-байтовыми данными в пакете. По смещению 0x4 хранится 2-байтное поле Indentification, сразу за ним идут 1-байтные поля Flags и Fragment Offset.
Начиная со смещения 0x60 расположен домен перенаправления (HTTP-заголовок Location).
Если Identification = 1, Flags = 0, Fragment Offset = 0, 0x60 = «warn», 0x64 = «ing.», 0x68 = «rt.ru», то отбрасываем пакет, и получаем настоящий ответ от сайта.

В случае с HTTPS-сайтами, DPI присылает TCP Reset-пакет, тоже с Identification = 1 и Flags = 0.

Активный DPI

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

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

Изучаем стандарт HTTP

Типичные HTTP-запросы в упрощенном виде выглядят следующим образом:
GET / HTTP/1.1 Host: habrahabr.ru User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/50.0 Accept-Encoding: gzip, deflate, br Connection: keep-alive
Запрос начинается с HTTP-метода, затем следует один пробел, после него указывается путь, затем еще один пробел, и заканчивается строка протоколом и переносом строки CRLF.
Заголовки начинаются с большой буквы, после двоеточия ставится символ пробела.

Давайте заглянем в последнюю версию стандарта HTTP/1.1 от 2014 года. Согласно RFC 7230, HTTP-заголовки не зависят от регистра символов, а после двоеточия может стоять произвольное количество пробелов (или не быть их вовсе).
Each header field consists of a case-insensitive field name followed by a colon (":"), optional leading whitespace, the field value, and optional trailing whitespace. header-field = field-name ":" OWS field-value OWS field-name = token field-value = *(field-content / obs-fold) field-content = field-vchar [ 1*(SP / HTAB) field-vchar ] field-vchar = VCHAR / obs-text obs-fold = CRLF 1*(SP / HTAB) ; obsolete line folding
OWS - опциональный один или несколько символов пробела или табуляции, SP - одинарный символ пробела, HTAB - табуляция, CRLF - перенос строки и возврат каретки (\r\n).

Это значит, что запрос ниже полностью соответствует стандарту, его должны принять многие веб-серверы, придерживающиеся стандарта:
GET / HTTP/1.1 hoSt:habrahabr.ru user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/50.0 Accept-Encoding: gzip, deflate, br coNNecTion: keep-alive ← здесь символ табуляции между двоеточием и значением
На деле же, многие веб-серверы не любят символ табуляции в качестве разделителя, хотя подавляющее большинство серверов нормально обрабатывает и отсутствие пробелов между двоеточием в заголовках, и множество пробелов.

Старый стандарт, RFC 2616, рекомендует снисходительно парсить запросы и ответы сломанных веб-северов и клиентов, и корректно обрабатывать произвольное количество пробелов в самой первой строке HTTP-запросов и ответов в тех местах, где требуется только один:

Clients SHOULD be tolerant in parsing the Status-Line and servers tolerant when parsing the Request-Line. In particular, they SHOULD accept any amount of SP or HT characters between fields, even though only a single SP is required.
Этой рекомендации придерживаются далеко не все веб-серверы. Из-за двух пробелов между методом и путем ломаются некоторые сайты.

Спускаемся на уровень TCP

Соединение TCP начинается с SYN-запроса и SYN/ACK-ответа. В запросе клиент, среди прочей информации, указывает размер TCP-окна (TCP Window Size) - количество байт, которые он готов принимать без подтверждения передачи. Сервер тоже указывает это значение. В интернете используется значение MTU 1500, что позволяет отправить до 1460 байтов данных в одном TCP-пакете.
Если сервер указывает размер TCP-окна менее 1460, клиент отправит в первом пакете данных столько, сколько указано в этом параметре.

Если сервер пришлет TCP Window Size = 2 в SYN/ACK-пакете (или мы его изменим на это значение на стороне клиента), то браузер отправит HTTP-запрос двумя пакетами:

Пакет 1:
GE Пакет 2: T / HTTP/1.1 Host: habrahabr.ru User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/50.0 Accept-Encoding: gzip, deflate, br Connection: keep-alive

Используем особенности HTTP и TCP для обхода активного DPI

Многие решения DPI ожидают заголовки только в стандартном виде.
Для блокировки сайтов по домену или URI, они ищут строку "Host: " в теле запроса. Стоит заменить заголовок «Host» на «hoSt» или убрать пробел после двоеточия, и перед вами открывается запрошенный сайт.
Не все DPI можно обмануть таким простым трюком. DPI некоторых провайдеров корректно анализируют HTTP-заголовки в соответствии со стандартом, но не умеют собирать TCP-поток из нескольких пакетов. Для таких DPI подойдет «фрагментирование» пакета, путем искусственного уменьшения TCP Window Size.

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

Программа для обхода DPI

Я написал программу для обхода DPI под Windows: GoodbyeDPI .
Она умеет блокировать пакеты с перенаправлением от пассивного DPI, заменять Host на hoSt, удалять пробел между двоеточием и значением хоста в заголовке Host, «фрагментировать» HTTP и HTTPS-пакеты (устанавливать TCP Window Size), и добавлять дополнительный пробел между HTTP-методом и путем.
Преимущество этого метода обхода в том, что он полностью автономный: нет внешних серверов, которые могут заблокировать.

По умолчанию активированы опции, нацеленные на максимальную совместимость с провайдерами, но не на скорость работы. Запустите программу следующим образом:
goodbyedpi.exe -1 -a Если заблокированные сайты стали открываться, DPI вашего провайдера можно обойти.
Попробуйте запустить программу с параметром -2 и зайти на заблокированный HTTPS-сайт. Если все продолжает работать, попробуйте режим -3 и -4 (наиболее быстрый).
Некоторые провайдеры, например, Мегафон и Yota, не пропускают фрагментированные пакеты по HTTP, и сайты перестают открываться вообще. С такими провайдерами используйте опцию -3 -a

Эффективное проксирование для обхода блокировок по IP

В случае блокировок по IP-адресу, провайдеры фильтруют только исходящие запросы на IP-адреса из реестра, но не входящие пакеты с этих адресов.
Программа работает как эффективный прокси-сервер: исходящие от клиента пакеты отправляются на сервер ReQrypt в зашифрованном виде, сервер ReQrypt пересылает их серверу назначения с подменой исходящего IP-адреса на клиентский , сервер назначения отвечает клиенту напрямую, минуя ReQrypt.

Если наш компьютер находится за NAT, мы не можем просто отправить запрос на сервер ReQrypt и ожидать ответа от сайта. Ответ не дойдет, т.к. в таблице NAT не создана запись для этого IP-адреса.
Для «пробива» NAT, ReQrypt отправляет первый пакет в TCP-соединении напрямую сайту, но с TTL = 3. Он добавляет запись в NAT-таблицу роутера, но не доходит до сайта назначения.

Долгое время разработка была заморожена из-за того, что автор не мог найти сервер с возможностью спуфинга. Спуфинг IP-адресов часто используется для амплификации атак через DNS, NNTP и другие протоколы, из-за чего он запрещен у подавляющего большинства провайдеров. Но сервер все-таки был найден, хоть и не самый удачный. Разработка продолжается. Добавить метки

В рамках недавней PHDays проходил ряд докладов связанных с анализом эффективности существующих средств защиты:

· В обход DPI, Олли-Пекка Ниеми (Opi)

· Теория лжи: обход современных WAF, Владимир Воронцов

· Десяток способов преодоления DLP-систем, Александр Кузнецов, Александр Товстолип

Почему меня интересовали именно эти доклады? Потому что в рамках своей работы занимаюсь проектированием и внедрением решений, СЗИ и ждал информации которая поможет мне учесть при проектировании дополнительные факторы, при настройке обратить внимание на определенные функции и в итоге получить действительно эффективную, а не “бумажную” системы защиты.

В своем докладе Олли-Пекка рассказал про пентестовую утилиту Evader , некоторые техники обхода средств защиты (evasion ). Сама утилита Evader – вещь отличная, но у доклада было несколько минусов:

· Во-первых, несоответствие содержания и названия. К DPI никакого отношения. Область действия Evader и описываемых способов обхода – в основном сигнатурные сетевые системы защиты (NGFW , IPS)

· Во-вторых, доклад не оправдывал уровень сложности – 200. Вполне хватило бы и 100. Так как это был краткий пересказ определений различных техник обхода и демонстрация интерфейса Evader

· В-третьих, старая тема. Аналогичный доклад я уже слышал в Stonesoft 2 года назад. С того времени новых слов не прибавилось

Теперь по сути вопроса: так как в докладе не прозвучало какие именно средства какими недостатками обладают, нам потребуется самостоятельно развернуть тестовый стенд Evader , о котором я уже писал ранее . Прогнать его используя mongbat со всеми возможными комбинациями обхода (evasion ), определить те, которые не обнаруживаются нашим сетевым средством защиты. Дополнительно настроить средства защиты, так чтобы обнаруживать атаки даже с техниками обхода (уверен, что в 90% случаев это можно сделать). А для оставшихся 10% необнаруживаемых атак принять решение о необходимости иных “компенсирующих” мер.

Например, если у нас web приложение, а FW и IPS не могу определить атаки, то нужен WAF . Либо, как предлагает Stonesoft , использовать временную меру Stonesoft Evasion Prevention System (EPS ), которую можно впихнуть в любую работающую инфраструктуру.

Доклад про обход WAF был очень хорош в части презентационных навыков докладчика и интересности – слушался легко и непринуждённо. НО полезной информации, которая была нужна мне и о которой я писал выше, там не было:

· Сам докладчик говорит, по ряду недостатков WAF (DoS, Protocol-Level Evasion, защищаемые Hostname, HTTP Protocol Pollution), говорит что они связаны с плохой настройкой средства защиты, потом совершает логическую ошибку и говорит что плохи сами WAF.

· Техники обхода перечислялись в режиме пересказа, без демонстраций, деталей и т.п.

· По ходу дела докладчик неоднократно говорит “в корпоративных WAF всё настолько плохо, что я не буду их рассматривать в данном разделе, рассмотрю только open source средства защиты”. Из этого я делаю вывод, что у докладчика всё настолько плохо с получением “корпоративных” WAF на тестирование и с опытом их настройки, что он не хочет трогать эту больную тему

· Докладчик ссылается на недавнее сравнение облачных сервисов WAF , в котором делаются выводы об их слабой эффективности. Тут я могу сказать только то, что облачные сервисы на данный момент действительно слабые (слабее чем выделенные корпоративные WAF ). Связано это с настройкой WAF у данного конкретного провайдера услуг, а не с какой-то со слабостью решений типа WAF в принципе.

· Часть уязвимостей, приведенных автором, являются уязвимостями конечных сервисов и приложений и не имеют отношения к WAF (который их отлично детектирует). Зачем автор привел их в данной теме? Наверное, решил выложить все, что он знает в безопасности web .

· В самом конце докладчик говорит, что разрабатывает собственное принципиально новое средство защиты web приложений (вот и открылись истинные причины критики WAF )

На самом деле, в WAF есть достаточно много правил нормализации и контроля протоколов, надо только их корректно настроить. Вполне возможно автор доклада не потратил достаточно времени на изучение возможных вариантов настройки “корпоративных” WAF .

Сами принципы и технологии работы современных корпоративных WAF сильно отличаются от того, про что рассказывал докладчик, это давно уже не набор детектируемых сигнатур. В них уже есть:

· система полномочного разграничения доступа, в которой мы задаем явно, что можно делать пользователю в web приложении (не путать с блокированием запросов по сигнатурам атак)

· динамическое профилирование, в рамках которого система автоматически стоит профили запросов нормальных пользователей и обнаруживает аномальное отклонение

· защита от автоматизированных атак (Automated Attack ), в рамках которой обнаруживаются внешняя инвентаризация, перебор, фазинг и т.п.

· корреляция с системами защиты БД, в рамках которого WAF получает информацию, о том какой реально запрос и ответ прошел от сервера web приложения к серверу БД

Эти механизмы не упоминались и делаю вывод, что они докладчику были неизвестны.

Преодоление DLP . По мнению докладчиков основные проблемы из-за настроек по-умолчанию, ошибок в конфигурации, не поддерживаемой системы. Но были и явные недостатки самих DLP решений (к сожалению, без уточнения, какая версия какого продукта тестировалась):

· отключение службы с правами администратора (путем переименования файла службы)

· копирование защищаемых документов в локально-подключенный криптоконнтейнер

· побитовое копирование документа в конец картинки

· когда система сначала разрешает копирование, потом блокирует и удаляет файл с носителя, можно попробовать произвести восстановление удаленного файла

· удаление лога с событиями DLP с правами администратора

Все приведенные недостатки могут быть использованы с натяжкой. Так что, в процессе устранения вендорами таких недостатков, можно принимать альтернативные меры – грамотно настраивать права пользователей в ОС и к файловой системе, контролировать перечень установленного стороннего ПО и постоянную активность сервисов DLP .

4.Общей же мыслью всех трех докладчиков является необходимость грамотной настройки средств защиты информации, постоянному мониторингу и оптимизации настройки. Принцип “поставил и забыл” в мире реального ИБ – не работает.

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

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

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

6.Ещё один вывод – Чтобы хакер смог понять, как обойти нашу систему защиты, ему нужно развернуть и протестировать у себя точный аналог. Если мы используем дорогое корпоративное решение, то обычному хакеру этот вариант недоступен.

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

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

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

Трудности с обнаружением приложений связаны, в первую очередь, с эволюцией самих приложений и сетевых протоколов которые они используют. Всё больше приложений используют динамически назначаемые порты, и поэтому традиционных методов квалификации сетевых соединений по статическим портам TCP/UDP уже недостаточно. Приложения становятся более закрытыми и непрозрачными, зачастую используются различные механизмы шифрования и туннелирования. Многие приложения в рамках сессий предполагают как передачу данных, так и одновременную передачу голосовых и видео потоков. Для доступа к приложениям удобно использовать Web-интерфейс, так как при этом не требуется инсталляции дополнительного клиентского программного обеспечения – пользователю достаточно иметь только Web-браузер. Использование Web-браузера удобно, доступно, и позволяет использовать любое устройство (персональный компьютер, мобильный телефон, планшет и т.д.) для доступа к приложению. Таким образом, многие приложения становятся “скрытыми” за протоколами шифрования HTTP/HTTPS, которые обеспечивают их передачу, и по сути становятся новыми транспортными протоколами.

Многие традиционные средства классификации сетевого трафика (например, NBAR) неспособны обнаруживать приложения которые используют протокол IPv6 в своем трафике.

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

Для таких целей и используется технология DPI — deep packet inspection, устройство или программный комплекс предназначенные для «глубокого»(вплоть до 7 уровня модели OSI) анализа и классификации проходящих через него пакетов. Помимо изучения пакетов по неким стандартным правилам, по которым можно однозначно определить принадлежность пакета к определённому приложению, скажем, по формату заголовков, номерам портов и т.п., система DPI осуществляет и так называемый поведенческий анализ трафика, который позволяет распознать приложения, не использующие для обмена данными заранее известные заголовки и структуры данных. Яркий пример тому – Bittorrent. На основе анализа протоколов, портов, сигнатур и т.д., DPI определяет к какому типу трафика принадлежит данный пакет и в зависимости от заданных правил может произвести какие либо действия над трафиком.

Стоит отметить, что наиболее крупными игроками и их продуктами на рынке standalone DPI являются Allot Communications , Procera Networks , Cisco , Sandvine . Всё более и более популярными становятся интегрированные в маршрутизаторы решения DPI. Так поступают многие - Cisco, Juniper, Ericsson и т.д. по списку. Такие решения, как правило, достаточно компромиссные, и не могут предоставить весь спектр сервисов, доступных standalone решениям. Важной отличительной особенностью настоящего DPI является возможность аналитики трафика за счёт сбора различного рода статистики с разбивкой по приложениям, по тарифным планам, по регионам, по типам абонентских устройств и т.д. По этой причине замечательный NBAR имени Cisco хоть и позволяет детектировать и осуществлять контроль трафика по приложениям, полноценным решением DPI не является, т.к. в нём отсутствует ряд важных компонентов. Система DPI, как правило, устанавливается на границе сети оператора в разрыв существующих аплинков, уходящих от пограничных маршрутизаторов. Тем самым, весь трафик, который покидает или входит в сеть оператора, проходит через DPI, что даёт возможность его мониторинга и контроля. Для решения специфических задач можно устанавливать эту систему не на границе сети, а спускать её ниже, ближе к конечным пользователям, на уровень BRAS/CMTS/GGSN/… Это может быть полезно тем операторам, которые по ряду причин помимо утилизации внешних каналов также хотят решать задачу контроля внутренних. Естественно, здесь речь идёт о достаточно крупных сервис-провайдерах с большой распределённой сетью масштабов страны и с достаточно дорогими канальными ёмкостями.

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

Что дальше?

Реализация QoS

С точки зрения эксплуатации, оператор может контролировать утилизацию подключенных через DPI каналов на уровне приложений. Раньше задачи реализации QoS (Quality of Service) решались исключительно средствами построения очередей на основании маркировки трафика служебными битами в заголовках IP, 802.1q и MPLS, выделяя наиболее приоритетный трафик (разного рода VPN’ы, IPTV, SIP и т.д.), и гарантируя ему определённую пропускную способность в любой момент времени. Трафик типа Best Effort, к которому относится весь интернет трафик домашних абонентов (HSI - High Speed Internet), оставался фактически без контроля, что давало возможность тому же Bittorrent забрать себе всю свободную полосу, что, в свою очередь, вело к деградации любых других веб-приложений. С использованием DPI у оператора появляется возможность распределить канал между различными приложениями. К примеру, в ночные часы разрешить трафику Bittorrent забирать себе больше полосы, чем днём, в часы-пик, когда в сети ходит большое количество другого веб-трафика. Другая популярная мера у многих мобильных операторов – блокировка Skype-трафика, а также любых видов SIP-телефонии. Вместо полной блокировки оператор может разрешать работу данных протоколов, но на очень низкой скорости с соответствующей деградацией качества предоставления сервиса у конкретного приложения, чтобы вынудить пользователя платить за услуги традиционной телефонии, либо за специальный пакет услуг, разрешающий доступ к VoIP-сервисам.

Subscriber Management

Важным моментом является то, что правила, на основании которых выполняется шейпинг/блокировка, могут быть заданы посредством двух основных базисов – per-service или per-subscriber. В первом случае простейшим образом оговаривается, что конкретному приложению позволяется утилизировать определённую полосу. Во втором привязка приложения к полосе осуществляется для каждого подписчика или группы подписчиков независимо от других, что производится через интеграцию DPI с существующими OSS/BSS системами оператора. Т.е. можно настроить систему таким образом, что подписчик Вася, который за неделю накачал торрентов на 100 гигабайт, до конца месяца будет ограничен по скорости скачивания этих же торрентов на уровне 70% от купленного им тарифа. А у подписчика Пети, который купил дополнительную услугу под названием «Skype без проблем», трафик приложения Skype не будет блокироваться ни при каких условиях, но любой другой – легко. Можно сделать привязку к User-Agent и разрешить браузинг только при помощи рекомендуемых браузеров, можно делать хитрые редиректы в зависимости от типа браузера или ОС. Иными словами, гибкость тарифных планов и опций ограничена лишь здравым смыслом. Если же речь идёт о трафике мобильных операторов, то DPI позволяет контролировать загрузку каждой базовой станции в отдельности, справедливо распределяя ресурсы БС таким образом, чтобы все пользователи остались довольны качеством сервиса. Разумеется, данную задачу можно решать силами мобильного ядра, но это не всегда бюджетно.

Зачем это всё надо?

Звучит это всё, конечно, не очень оптимистично, но для многих операторов по экономическим причинам значительно дешевле поставить систему DPI для контроля утилизации каналов, чем расширять аплинки. Причём, сделать это без особых потерь абонентской базы, т.к. давно известно, что большая часть трафика генерируется примерно 5% наиболее активных абонентов. И в этом случае оператору экономически целесообразней снизить абонентскую базу, но платить меньше денег за аплинки, т.к. уйдут самые активные качальщики, из-за которых оператор вынужден каждый месяц платить немаленькую сумму за аплинки. Это ночной кошмар любого маркетолога, но в некоторых случаях потерять клиентов – выгодно. Деликатность ситуации заключается в том, что рано или поздно наступит такой момент, когда все операторы так или иначе будут что-либо шейпить при помощи DPI. Т.е. если сегодня один оператор начнёт рубить торренты, самые активные качальщики разом уйдут к другому. После этого у того сильно скакнёт загрузка его каналов и клиенты начнут жаловаться на то, что плохо работает веб-браузинг. Оператор подумает, подсчитает, и в итоге купит DPI. И так до тех пор, пока все игроки на рынке не обзаведутся подобной системой. Разумеется, установка DPI не снимает с оператора задачу по периодическому расширению аплинков и увеличению скорости доступа для подписчиков. Просто теперь эти расширения не будут бесконтрольными. Т.е. оператор всегда будет знать трафик какого типа и в каком количестве пойдёт через его каналы, это будет прогнозируемо. Разумеется, когда речь идёт о коробках стоимостью $1M, дело не только в аплинках, необходимо это понимать.

Новая модель услуг

Мы плавно перешли к задаче развития сети и её услуг. Глядя на то, как подписчики пользуются купленной ими полосой, какие приложения используют, оператор может изучать потребности каждой категории подписчиков и предлагать им более гибкие и совершенные тарифные планы. К примеру, основываясь на том, что подписчики тарифа Silver активно пользуются услугами сторонней SIP-телефонии, можно предложить им дополнительный пакет, позволяющий использовать аналогичный сервис, предоставляемый оператором, но со скидкой. Остальные подписчики при желании воспользоваться более дешёвой телефонией будут мотивированы переходить на более дорогой тариф, приобретая дополнительные бонусы в виде повышения скорости. Можно придумать много кейсов, это лишь один из них. Подход очень интересный, и выгодный как для пользователя, так и для оператора. Тенденции развития телекоммуникационного рынка таковы, что для операторов продавать трубу, как они делают сейчас, скоро будет просто невыгодно, есть масса исследований, подтверждающих это. ARPU не увеличивается, конкуренция высока, оборудование необходимо апгрейдить всё чаще и чаще, расходы операторов растут, а желание получать прибыль никуда не девается. Задача DPI в данном разрезе - реализовать новые модели предоставления услуг конечному пользователю. Некоторые мировые операторы маленькими шагами уже двигаются к данной идее. В России, очевидно, процесс этот будет долгим и мучительным, т.к. для достижения задачи необходимо перестраивать мозги абонентов на другую частоту, что очень непросто, т.к. отучить человека не качать торренты, а покупать легальный контент - непросто.

DPI отлично умеет работать в связке с различными VAS (Value Added Services) системами, такими как антиспам, антивирус, видеооптимизаторы и т.п. Суть функционала заключается в отводе части трафика по заданным администратором критериям, на сторонние устройства, для осуществления более глубокого анализа и обработки.

Довольно легко можно организовать предоставление пользователям услуг по родительскому контролю, которые становятся всё более и более актуальными.

Спецслужбы

В конце хотелось бы сказать пару слов о том, для чего также закупается DPI, кроме как для издевательств над абонентами. Оборудование DPI, в связи со своим умением видеть всё и вся, что происходит на сети, является весьма интересным устройством для товарищей в погонах, без которых сейчас никуда. При помощи DPI спецслужбы могут вести наблюдение за сетевой активностью того или иного пользователя. Можно перекрыть ему VPN, HTTPS и прочие прелести, делающие невозможным анализ контента. Разумеется, можно закрывать доступ пользователей к неугодным властям сайтам, что очень актуально в связи с последними событиями в законотворческой деятельности в России.

Сетевой нейтралитет

И, наконец, хотелось бы сказать пару слов о многострадальном сетевом нейтралитете, который существует в некоторых странах. Если коротко, то операторам в отсутствие перегрузок на аплинках нынче запрещено блокировать трафик законных/легальных приложений. Т.е. начать выборочную блокировку любого трафика теперь разрешается только в случае возникновения перегрузки. Но, в то же время, ещё нет чётких формулировок на тему того, какие именно приложения являются законными, а какие – нет. По логике, незаконным может быть только контент, а не приложения. К примеру, детская порнография явно относится к незаконному контенту, но протоколы HTTP и Bittorrent, посредством которых можно осуществлять его передачу – вполне себе легальны. Так что тут имеется ещё достаточно большой простор для споров, а тема, на мой взгляд, весьма интересна. Пока что у нас сетевым нейтралитетом не пахнет, посему у операторов на руках - все карты для управления трафиком при помощи DPI.

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

Сам герой интервью пожелал остаться анонимным. Это бывший российский ИТ-специалист, который уже 6 лет проживает в континентальном Китае, работая в местной телекоммуникационной компании старшим инженером-администратором. Это серьёзный разговор о сетевых технологиях... обращённых против самой сети, а также о будущем глобальной сети и открытости нашего общества.

Дело даже уже не в инициативах государства российского — как грибы стали появляться уже частные фирмы, которые предлагают собственные решения цензурирования сети, те же фильтры трафика по спискам Роскомнадзора и Минюста, например широко известный Carbon Reductor . Поэтому стоит взглянуть на этот китайский опыт со всей серьёзностью и внимательностью, дабы заранее осознать всю глубину той норки, в которую нас так старательно пытаются затолкнуть.

— Расскажите про Великий китайский фаервол, который китайцы сами называют как «Золотой щит», что он из себя представляет в техническом плане? Каково его главное предназначение?

На данный момент это три составляющие, три дракона, на которых он базируется — технологии Deep Packet Inspection (DPI), Connection probe и Support vector machines (SVM). Все вместе они представляют собой очень продвинутый фильтр, который блокирует доступ к запрещенным коммунистической партией ресурсам из внешнего интернета.

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

— Давайте подробно рассмотрим каждую из названных составляющих. Итак, что такое Deep Packet Inspection?

Говоря кратко, это технология низкоуровневой проверки и фильтрации сетевых пакетов по их содержимому. Тут сразу нужно провести красную черту: коренное отличие от уже всем привычных брандмаеров в том, что DPI анализирует не столько заголовки пакетов (что, конечно, тоже может), сколько зарывается в содержимое транзитного трафика на уровнях модели OSI со второго и выше.

Подчеркну, всё это делается в режиме реального времени и с точки зрения внешнего наблюдателя никаких задержек или манипуляций с трафиком практически не заметно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ситуация с VPN довольно противоречивая — отдельные провайдеры его агрессивно подавляют, некоторые — почти нет. Своими блокировками широко известен China Unicom — один из крупнейших магистральных провайдеров континентального Китая. На данный момент им определяется и блокируется более 5 разновидностей 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.

— Абстрагируясь от китайских городов-датацентров и их ультрасовременной технической начинки, что из себя представляет китайский интернет с точки зрения внешнего наблюдателя? Какие у него особенности развития, какова его специфика адаптации к подобной цензурирующей среде?

— Дело в том, что интернет сам по себе — не только в Китае, — достаточно реактивная среда. Методы обычной цензуры, основанные на технических средствах и грубых запретах, слабо применимы к ней.

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

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

— Я читал, что недавно было официально заявлено, что Китай создал подразделение государственных аналитиков мнений в Интернете, в которое набрал 2 миллиона сотрудников. Предполагается, что эти аналитики будут патрулировать виртуальное пространство в качестве своей основной работы. У них нет никаких прав по удалению какой-либо информации — их задача контролировать интернет-тренды, изучать общественные настроения граждан КНР, а также манипулировать ими согласно специальной методике.

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

Примерно два года тому назад китайский интернет взорвался от довольно странного случая смерти. Молодой парень, который был арестован за незаконную вырубку леса рядом с домом, попал в китайскую тюрьму. Там он скончался через пару дней при довольно странных обстоятельствах. Власти официально объяснили причину его смерти якобы тем, что «в тюрьме он играл в прятки с сокамерниками и, споткнувшись, упал, ударившись при этом головой о стенку». Китайский интернет очень живо подхватил эту историю, назову лишь одну цифру: на QQ.com в течение суток появилось более 50 000 комментариев по этому делу, все остальные интернет-платформы также были буквально переполнены возмущением от нелепости этого инцидента. Сказать, что цензоры просто физически не справлялись с удалением следов «народного гнева» в эти дни — не сказать ничего.

По забавному стечению обстоятельств иероглиф «играть в прятки» в китайском языке имеет и второе значение — «убегать от кошки», чем и воспользовались китайские блогеры. Даже по прошествии нескольких лет в интернете можно нагуглить огромное количество упоминаний этой истории про погибшего в китайской тюрьме заключенного, «который разбился о стенку, пытаясь спастись бегством от кошки ». Блогеры своей версией про роковую кошку пытались довести абсурд официального объяснения до предела, что породило то, что сейчас бы назвали «интернет-мемом». Тогда китайский сегмент интернета просто бурлил, цензоры не могли повлиять на ситуацию, своими действиями замалчивания и удаления сообщений лишь подливая масла в огонь, раскручивая маховик недоверия и острой критики в адрес правительства КНР.

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

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

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

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

— Можно ли как-то сравнить интернет Китая с привычным Рунетом по степени свободы их граждан?

— На самом низшем уровне в Китае действительно практически нет цензуры — если вы посмотрите их социальные сети, то они переполнены слухами и обвинениями власти, где на общий клубок эмоций туго намотаны правда и откровенная чушь. Практически никто не читает это, равно как личную стену, я думаю, 70% безвестных участников нашей соцсети ВКонтакте, которые вольны писать там все, что им только вздумается.

Следующий уровень — это систематическая критика, аргументация, яркие и активные блогеры со своей аудиторией, вот здесь уже наблюдается определенное напряжение, есть активная цензура и удаление провокационных сообщений. За квартал, по данным киетолога Г.Кинга из Гарварда, органами сетевой цензуры КНР удаляются до миллиона сообщений и комментариев к ним. И, наконец, третий уровень — топ-блогеры с огромной аудиторией. Либо же это ситуации, когда какая-то тема выстреливает и получает широкий общественный и сетевой резонанс.

Тут возможны самые разные варианты активного противодействия и наказания: если блогера-инициатора можно в чем-то обвинить, его могут арестовать, вырвав «больной зуб с корнем». Если сетевая эпидемия слишком сильна и делокализована, то к делу подключают «сетевой спецназ», который пытается «спустить пар» с помощью различных хитроумных технологий контроля общества через soft power (например, описанная ранее история с неудачной попыткой бегства заключенного от кошки).

Все эти три одновременно существующих уровня создают противоречивое мнение и определенную путаницу, часто пуская первое впечатление стороннего человека по ложному следу. Так случайные и внешние по отношению к стране люди («туристы») видят множество антиправительственной критики в безымянных акаунтах, что создает ложное ощущение относительной свободы. С другой стороны, в прошлом году власти арестовали сразу 6 известных блогеров и бросили в тюрьму, обвинив их в «распространении слухов о готовящемся военном перевороте».

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

— Насчет трех «китайских уровней» всё ясно. Что можно сказать насчет анонимности?

— В Китае нет анонимности. В КНР действуют законы, обязывающие блогеров регистрироваться с указанием своих реальных паспортных данных. Это делается под предлогом «улучшения доверия в сети друг к другу и защиты интересов сторонних пользователей».

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

Добавьте к этому постоянный фоновый контроль (я говорю не только про интернет, вспомните хотя бы недавний запрет в США продаж оборудования от Huawei, которое оказалось нашпигованным жучками, или питерскую историю про китайские утюги, которые самовольно подключаются к публичным сетям Wi-Fi), где весь ваш трафик и активность в сети тщательно контролируют и логируют. Здесь любой, даже самый технически отсталый пользователь сети прекрасно понимает, что его активность фиксируется.

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

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

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

— Глядя со стороны, каков ваш прогноз в отношении Рунета? Во главе нашей большой страны, физически обслуживающей главный кластер русскоязычного интернета, стоит бессменный президент, полковник КГБ и член КПСС с 1975 года, какие тенденции в развитии сети вы ожидаете в связи с этим?

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

Поэтому, повторю еще раз, не надо пугать местную сеть «китайским вариантом». Скорее всего отсутствие реальных технических возможностей будет компенсироваться бурным законотворчеством и чисто административной «грубой силой». Единственное общее с Китаем — со временем такой прессинг сформирует у населения синдром самоцензуры по китайскому типу. То есть манеру думать одно, а говорить (комментировать) другое, с постоянной оглядкой на «как бы чего не вышло», что, мягко говоря, далеко от нормального человеческого общения и самовыражения.

Впрочем, в российских широтах, ИМХО, это приведёт скорее не к покорности, а к непредсказуемости уже хватанувшего «глотка свободы» населения.

— Завершим наше описание азиатского Интернета последним вопросом, поставленным ребром: назовите самые экстремальные для своей безопасности вещи, которые можно сделать в Китайском интернете прямо сейчас?

— Я бы выделил два серьёзных момента: это любые высказывания против самих цензоров и цензуры, а также любые призывы к коллективным народным действиям в офлайне.

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

Что касается второго — если вы хотите собрать людей с какой-либо целью — это будет жестко пресечено. Ещё раз напомню про основную часть стратегии: личные критические высказывания или фрагментированная критика со стороны граждан чаще всего приемлемы, а вот любые попытки коллективных обсуждений, самоорганизации или объединений на почве общих взглядов и, тем более, выход с ними в офлайн — категорически недопустимы. По этой причине в сети блокируют даже группы любителей велосипедной езды, если они пытаются массово собраться в офлайне. Китайская власть панически боится любой консолидации граждан, впрочем, именно эту функцию, как я считаю, и будет обеспечивать более «взрослый» интернет будущего.



В продолжение темы:
Windows

Часть вторая : "Важнейшие характеристики каждого семейства процессоров Intel Core i3/i5/i7. Какие из этих чипов представляют особый интерес" Введение Сначала мы приведём...

Новые статьи
/
Популярные