Deep packet inspection
Deep Packet Inspection (сокр. DPI) — технология проверки сетевых пакетов по их содержимому с целью регулирования и фильтрации трафика, а также накопления статистических данных. В отличие от брандмауэров, Deep Packet Inspection анализирует не только заголовки пакетов, но и полезную нагрузку, начиная со второго (канального) уровня модели OSI. Технология Deep Packet Inspection позволяет Интернет-провайдерами и государственным органам применять гибкие политики QoS к различным видам трафика, ограничивать доступ к запрещённым ресурсам, выявлять вторжения в сеть и останавливать распространение компьютерных вирусов.
Deep Packet Inspection может принимать решение не только по содержимому пакетов, но и по косвенным признакам, присущим каким-то определённым сетевым программам и протоколам. Для этого может использоваться статистический анализ (например, статистический анализ частоты встречи определённых символов, длины пакета и т. д.).
Deep Packet Inspection иногда используется для блокировки некоторых протоколов, таких как BitTorrent. С помощью Deep Packet Inspection можно определить приложение, сгенерировавшее или получившее данные, и на основании этого предпринять какое-либо действие. Deep Packet Inspection может собирать подробную статистику соединения каждого пользователя по отдельности. Также при помощи QoS Deep Packet Inspection может управлять скоростью передачи отдельных пакетов, подняв её или, напротив, уменьшив. По мнению некоторых Интернет-провайдеров, Deep Packet Inspection позволяет сдерживать приложения, забивающие Интернет-канал, изменять приоритеты передачи различных типов данных, например, ускоряя открытие Интернет страниц за счёт уменьшения скорости загрузки больших файлов. Иногда Deep Packet Inspection используется в больших корпорациях для предотвращения случайных утечек данных, а также для защиты от отправки по e-mail внутренних защищённых файлов.
История
Первые брандмауэры могли быть реализованы двумя способами.
В первом способе прокси-сервер защищал внутреннюю локальную сеть от доступа из внешнего мира. Прокси-сервер проверяет, удовлетворяют ли сетевые пакеты заданным критериям. После этого либо отсеивает их, либо пересылает дальше. Такой способ использовался традиционно, так как он снижает риски, что кто-либо сможет воспользоваться уязвимостями протокола.
Во втором способе брандмауэром использовалась программа, осуществляющая фильтрацию сетевых пакетов по наборам правил. Такие программы получили название фильтрующих брандмауэров. Фильтрующий брандмауэр способен блокировать пакеты, не удовлетворяющие некоторым простым правилам, таким как IP источника, IP назначения, порт источника, порт назначения. Такие пакетные фильтры являются наиболее быстро работающим типом брандмауэров, так как делают совсем немного вычислений. Простота реализации позволяет делать такой брандмауэр в виде микросхемы.
С самого начала прокси-серверы были признаны более безопасными, нежели пакетные фильтры, поскольку они более детально осуществляли проверку пакетов[1].
Эволюция брандмауэров на основе прокси-серверов привела к появлению первых программ Deep Packet Inspection. Они были созданы в целях устранения сетевых проблем и для блокирования вирусов, а также в целях защиты от DoS-атак. Первоначально компьютеры, на которых был установлен Deep Packet Inspection, не были достаточно мощными, чтобы контролировать весь Интернет-трафик пользователей в режиме реального времени.
Через некоторое время, когда появилась возможность работы программ Deep Packet Inspection в режиме реального времени, они использовались интернет-провайдерами в основном для организации целевой рекламы и уменьшения заторов в сети. Сегодня же Deep Packet Inspection способно на много большее, чем просто обеспечивать безопасность. Интернет-провайдеры получили возможность контролировать проходящий трафик любого своего клиента. Наличие инструментов для выборочного блокирования трафика даёт интернет-провайдерам возможность добавлять дополнительные платные услуги и получать с этого дополнительный доход, хотя по сути, это нарушает сетевой нейтралитет.[2] В настоящий момент в некоторых странах интернет-провайдеры обязаны выполнять фильтрацию в соответствии с законодательством страны. Программы Deep Packet Inspection иногда используют для обнаружения и блокирования трафика, содержащего незаконные материалы или нарушающего авторские права[3], или для сбора информации о посещаемых сайтах для последующей её продажи рекламным сетям[4].
В последнее время объём проходящего трафика заметно возрос. Начинает вновь возникать проблема, что компьютеры не справляются с анализом всего трафика в реальном времени или же стоимость компьютеров будет слишком велика. Однако современные технологии уже позволяют сделать полнофункциональный Deep Packet Inspection в виде специального роутера[5].
Пример работы Deep Packet Inspection
Идентификация протокола транспортного уровня сетевой модели OSI
В структуре пакета протокола IPv4 выделен специальный байт для указания номера протокола транспортного уровня. Им является десятый байт от начала заголовка IPv4 пакета. Например: номер 6 — для TCP, 17 — для UDP.
В структуре пакета IPv6 также существует специальная область, в которой находится аналогичный идентификатор протокола транспортного уровня. Эта область носит название Next Header[6].
Идентификация IP
Устройства DPI могут ограничивать доступ к хостам или ресурсам по их IP-адресам. Это распространённый простой дешёвый и эффективный способ блокировки запрещённого контента. Сложность заключается в том, что не всегда IP-адрес является единственным и однозначным идентификатором сервера. В этом случае могут пострадать и разрешённые сервисы, которые хостятся на этом же IP-адресе. Также данный метод сложно эффективно применять, если используется сеть доставки контента, состоящая из множества меняющихся IP-адресов. В Иране и Китае по IP-адресу ограничивется доступ к использующимся для обхода блокировок прокси-серверам, в том числе входящих в Tor[7].
Идентификация DNS
Одним из распространённых триггеров в работе DPI являются DNS-запросы. Любому пользователю для того, чтобы открыть веб-страницу в Интернете, необходимо отправить DNS-серверу доменное имя искомого хоста или ресурса. Обмен пакетами между DNS серверами и клиентами происходит в незашифрованном виде по протоколу UDP. Характерной особенностью DNS, позволяющей определить его среди остального трафика, является работа исключительно по 53 порту. Таким образом устройства DPI могут выявлять запросы к любым публичным DNS-серверам[8][9].
Ключевые слова
Выявить трафик по определённым ключевым словам затруднительно, поскольку полезная нагрузка, как правило, зашифрована (исключение — обмен по протоклу http). Целевой сервис может быть косвенно определён по строке Server Name Indication, передающейся в рамках установления TLS-сессии в незашифрованном сообщении Client Hello[7].
Идентификация BitTorrent
Клиенты BitTorrent соединяются с трекером по протоколу TCP. Для того, чтобы обнаружить среди всего трафика TCP такие пакеты, достаточно проверить, что содержимое данных TCP пакета со второго байта совпадает с «BitTorrent protocol»[10].
Также для их идентификации осуществляется анализ последовательности пакетов, обладающими одинаковыми признаками, таким как Source_IP:port – Destination_IP:port, размер пакета, частота открытия новых сессий в единицу времени и т.д., по поведенческим (эвристическим) моделям, соответствующим таким приложениям. Интерпретации поведенческих моделей соответствующих протоколов, а значит и точность детектирования разнится у разных производителей оборудования[11].
Идентификация HTTP
Для идентификации HTTP протокола достаточно проверить, что пакет является TCP, и содержимое этого TCP пакета начинается с одной из следующих команд: «GET», «POST», «HEAD», «PUT», «DELETE», «CONNECT», «OPTIONS», «TRACE», «PATCH»[12]. Кроме того, после команды должен стоять пробел, а также через некоторый промежуток должен встретиться текст «HTTP/». Если всё это выполняется, то этот пакет несёт в себе HTTP запрос[10].
Идентификация RTSP
Для того, чтобы обнаружить среди всего трафика пакеты RTSP, достаточно убедиться, что пакет является TCP и содержимое этого TCP пакета начинается с одной из следующих команд: «OPTIONS», «DESCRIBE», «ANNOUNCE», «PLAY», «SETUP», «GET_PARAMETER», «SET_PARAMETER», «TEARDOWN». После команды должен стоять пробел. Также, через некоторый промежуток должен встретиться текст «RTSP/»[10].
Для чего применяется DPI?
Реализация 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 позволяет контролировать загрузку каждой базовой станции в отдельности, справедливо распределяя ресурсы БС таким образом, чтобы все пользователи остались довольны качеством сервиса. Большинство производителей пакетного ядра EPC (Evolved Packet Core) для LTE интегрирует в свой PDN-GW функциональность DPI, приспособленный для решения задач мобильных операторов.
Программное обеспечение
Hippie (Hi-Performance Protocol Identification Engine) — реализация Deep Packet Inspection для Linux с открытым исходным кодом на C.[10]
L7-filter — ещё одна реализация Deep Packet Inspection для Linux с открытым исходным кодом на C, ориентированная на классификацию данных седьмого уровня модели OSI.[13]
SPID (Statistical Protocol IDentification) — реализация Deep Packet Inspection для Windows с открытым исходным кодом на C#. Идентифицирует протокол седьмого уровня модели OSI с помощью статистического анализа трафика[14].
Использование Deep Packet Inspection в России и мире
Deep Packet Inspection способно изменять данные в пакетах. В Соединённых Штатах Америки и Великобритании Deep Packet Inspection часто используется для генерации рекламы, основанной на поведении абонентов. Таким образом реализуется так называемый целевой маркетинг[15].
Основные сотовые операторы России внедрили DPI в 2009 (Мегафон, оборудование Huawei), 2010 (МТС, Cisco) и 2011 (Билайн, Procera) годах. Они могут использовать DPI в том числе для подавления peer-to-peer и VoIP сервисов[16][17]. Ростелеком планирует внедрить DPI для мобильного интернета в 2014 году.
Кипрская компания iMarker (зарегистрирована и действует по законам Республики Кипр[18]) с начала 2010 года предлагала интернет-провайдерам бесплатную установку DPI-систем (Gigamon, Xterica) с целью таргетирования интернет-рекламы. Подобная система получает информацию обо всех сайтах, посещаемых пользователями и на базе этого может предложить ему персонализированную рекламу. По данным газеты Ведомости, такая система уже установлена у 11 операторов, включая 4 региональных филиала Ростелекома; общий охват оценивался основателем компании на конец 2013 года в 12 % российской интернет-аудитории[19][20][21][22]. Позже iMarker фактически стала частью американской компании Phorm, предлагающей подобные услуги для европейских интернет-провайдеров.
В России тенденции к внедрению Deep Packet Inspection у интернет-провайдеров также связаны с федеральным законом № 139 о внесении изменений в закон «О защите детей от информации, причиняющей вред их здоровью и развитию» (вступил в силу 1 ноября 2012 года). Большинство интернет-провайдеров обеспечивают блокирование сайтов, занесённых в чёрный список, основываясь только на IP-адресах этих сайтов. Но некоторые провайдеры могут блокировать выборочные URL-адреса, если у них используется Deep Packet Inspection для анализа HTTP-запросов[23][24]. К шифрованным соединениям (HTTPS) применение техники DPI затруднено.
Одним из препятствий обязательного применения DPI-технологий российскими провайдерами для блокировки запрещенных сайтов стала дороговизна подобных решений, а также наличие более дешевых альтернатив для фильтрации по URL-адресу с целью исполнения закона[25].
Основные доводы противников использования Deep Packet Inspection — нарушение таких прав человека, как право на неприкосновенность частной жизни, и право на тайну переписки, а также несоответствие внедрений правилам конфиденциальности. Также использование Deep Packet Inspection для приоритизации трафика нарушает сетевой нейтралитет[26].
12 мая 2017 года в Азербайджане после блокировок независимых оппозиционных новостных сайтов — были заблокированы целиком[27] (либо максимально ограничены, в плане скорости доступа к сервисам) любые звонки через Интернет, включая такие мессенджеры как Skype, WhatsApp[28]. При этом, никаких официальных заявлений со стороны правительства республики сделано не было.
Начиная с 27 сентября 2020 года, в связи с началом Второй Карабахской войны, "Министерство транспорта, связи и высоких технологий Азербайджана" ввело ограничения на использование интернета в стране. Полной блокировке подверглись Facebook, WhatsApp, YouTube, Instagram, TikTok, LinkedIn, Twitter, Zoom, Skype[29]. Блокировка коснулась иных ресурсов, как VPN сервисы, онлайн-банкинг, медиа-сайты. Начиная с 4-го октября активно подавляется p2p, UDP трафик, что повлияло на обмен данными по протоколам Bittorrent, VoIP. Также используются автоматизированные алгоритмы для выявления и блокировки IP адресов(входящий/исходящий трафик), в связи с чем наблюдаются проблемы нестабильной доступности национальных серверов за границей[30][31].
Примечания
- What is «Deep Inspection»?
- Deep packet inspection: the end of the internet as we know it? Архивировано 9 сентября 2014 года.
- The End of the Internet?
- Geere, Duncan How deep packet inspection works . Wired UK (27 апреля 2012). — «it can also be used by ISPs selling your data to advertising companies».
- Cisco: Application Visibility and Control (AVC)
- Assigned Internet Protocol Numbers: Protocol Numbers
- Ramesh, Raman, 2020, с. 3.
- Yadav, Sinha, 2016, с. 255.
- Куроуз, Росс, 2016, с. 167.
- Sourceforge.net: hippie
- Краткий обзор технологии DPI — Deep Packet Inspection . habr.com. Дата обращения: 21 октября 2020.
- Методы HTTP запроса - HTTP | MDN . developer.mozilla.org. Дата обращения: 29 января 2021.
- Официальный сайт l7-filter
- Sourceforge.net: spid
- Profiling the Profilers: Deep Packet Inspection and Behavioral Advertising in Europe and the United States
- Роман Дорохов, Российская iMarker научилась зарабатывать на чужом интернет-трафике. Компания бесплатно ставит операторам систему анализа трафика, собирает данные о поведении пользователей и продает их рекламодателям // Ведомости, 28.08.2013: «С помощью DPI операторы могут вводить новые тарифные планы — например, делать бесплатным доступ к собственным сайтам или резко снижать скорость доступа в интернет пользователю после того, как тот использовал выделенный ему суточный лимит трафика. Поэтому первыми в России DPI начали внедрять сотовые операторы: „Мегафон“ — в 2009 г., МТС — в 2010 г. и „Вымпелком“ — в 2011 г.»
- Интернет-фильтрация в России: еще и слежка // Forbes, 02.11.2012: «К лету 2012 года все три национальных оператора сотовой связи уже поставили DPI на своих сетях: Procera стоит в „Вымпелкоме“, Huawei используется в „Мегафоне“, а МТС закупил DPI от Cisco. … траффик-шейпинг,… с помощью DPI мобильные операторы получили возможность подавлять определенные сервисы — прежде всего, торренты, peer-to-peer протоколы или Skype»
- http://www.imarker.ru/static/partner_offer.pdf Архивная копия от 26 сентября 2013 на Wayback Machine - Оферта iMarker: «предложение Компании „VSP VIRTUAL SERVICES PROVIDER“ Ltd. (адрес: Iasonos, 5, Palodeia, P.C. 4549, Limassol, Cyprus, далее — „IMARKER“)»
- Роман Дорохов, Российская iMarker научилась зарабатывать на чужом интернет-трафике. Компания бесплатно ставит операторам систему анализа трафика, собирает данные о поведении пользователей и продает их рекламодателям // Ведомости, 28.08.2013: «Он предлагает заработать на адресной интернет-рекламе с помощью систем контроля и управления трафиком DPI (Deep Packet Inspection). Эта система умеет отслеживать любой незашифрованный трафик пользователей — от электронной переписки и звонков до изображений и личных сообщений в соцсетях. … iMarker работает с января 2010 г., её систему установили 11 операторов (в том числе в четырех филиалах „Ростелекома“) и она собирает данные по 12 % пользователей рунета, говорит Берлизев.»
- iMarker зарабатывает на трафике 12 % пользователей рунета // theRunet, 28 августа 2013
- Российские провайдеры собирают для рекламщиков данные о поведении пользователей // Компьютерра, Андрей Письменный 29 августа 2013
- iMarker Selects Gigamon® for Deployment With Its TargetJ-Based Advertising Platform Архивировано 30 августа 2013 года. — Пресс-релиз Gigamon, 2011/05/03: «VSP iMarker … target-based advertising service platform, which is deployed in several telecom operators' networks across Russian Federation, including OJSC Svyazinvest regional telco companies (MRK).»
- inopressa: В России вступил в силу закон об интернет-цензуре — по материалам Die Presse Russland: Gesetz für Internet-Zensur in Kraft, 05.11.2012
- Интернет-фильтрация в России: еще и слежка // Forbes, 02.11.2012: "Самое опасное в новой всероссийской системе блокировки интернет-ресурсов … операторам придется закупить и установить технологию DPI (глубокого чтения пакетов). .. реестр требует ограничения доступа к ресурсам .. по указателям отдельных страниц (URL), для блокировки которых наиболее эффективна эта технология. "
- Евгений Тетенькин: Блокировка сайтов не должна травмировать Рунет Архивная копия от 10 июня 2015 на Wayback Machine // CNews Безопасность, 2012/11/30
- What Is Deep Packet Inspection? Архивировано 25 июня 2012 года.
- Whatsapp, Facebook Messencer, Viber, Skype, Facetime niyə işləmir? (англ.), BBC Azərbaycanca (19 May 2017). Дата обращения 27 мая 2017.
- В Азербайджане заблокировали WhatsApp? - наши беды. Дата обращения 27 мая 2017.
- В Азербайджане объяснили, почему ограничили доступ в интернет . EADaily. Дата обращения: 8 октября 2020.
- Social media restricted in Azerbaijan amid clashes with Armenia over Nagorno-Karabakh (англ.) ?. NetBlocks (27 сентября 2020). Дата обращения: 8 октября 2020.
- Отключай своих, чтобы чужие боялись. Азербайджан ограничил гражданам доступ в Интернет . Life.ru (4 октября 2020). Дата обращения: 8 октября 2020.
Литература
- Requirements for deep packet inspection in Next Generation Networks (Y.2770) // ITU-T
- Джеймс Куроуз, Кит Росс. Компьютерные сети. Нисходящий подход. — Москва: Издательство Э, 2016. — 912 с. — ISBN 978-5-699-78090-7.
- Reethika Ramesh, Ram Sundara Raman, Matthew Bernhard, Victor Ongkowijaya, Leonid Evdokimov, Anne Edmundson†, Steven Sprecher, Muhammad Ikram, Roya Ensafi. Decentralized Control: A Case Study of Russia (англ.) // Network and Distributed Systems Security : журнал. — Сан-Диего, 2020. — P. 18. — ISBN -891562-61-4.
- Tarun Kumar Yadav, Akshat Sinha, Piyush Kumar Sharma, Sambuddho Chakravarty, Devashish Gosain. Where The Light Gets In: Analyzing Web CensorshipMechanisms in India (англ.) : журнал. — Дели, 2016. — P. 252-264.
Ссылки
- Краткий обзор технологии DPI — Deep Packet Inspection / habr.com, sahe, 20 февраля 2013 (рус.)