Deep packet inspection
Deep packet inspection (англ. Deep Packet Inspection, глубинный анализ пакетов, ГАП) — технология анализа сетевого трафика, реализуемая в сетевом оборудовании и выходящая за пределы анализа только заголовков. В отличие от традиционных подходов, оборудование с поддержкой ГАП анализирует содержимое (полезную нагрузку) пакетов, а не только их заголовки. Обычно производится поиск определённых сигнатур для идентификации типа трафика и соответствующей обработки. Глубинный анализ пакетов применяется для таких задач, как приоритизация или замедление отдельных потоков, цензура, обнаружение вторжений. Эти методы внедряются правительствами, интернет-провайдерами и организациями в соответствующих целях.
Использование ГАП может существенно замедлять Интернет-трафик, особенно при высокой нагрузке, из-за больших вычислительных ресурсов, требуемых для анализа. Для повышения производительности используются решения как на уровне ПО, так и на уровне аппаратуры. Применение ГАП сопровождается также вопросами обеспечения конфиденциальности, поскольку анализ трафика затрагивает частную жизнь пользователей.
Технологии
Глубинный анализ пакетов приводит к заметным задержкам в обработке трафика. Для эффективного анализа больших объёмов пакетов необходимы значительные ресурсы памяти и вычислительной мощности. Повысить производительность можно как оптимизацией программной, так и аппаратной составляющей.
ГАП-системы ищут сигнатуры известных приложений с помощью наборов регулярных выражений. Регулярные выражения, используемые в системах обнаружения вторжений, представляют собой набор шаблонов: простых строк, диапазонов символов, джокеров, подшаблонов с повторениями и т.п[1].. Для поиска сигнатур эти выражения преобразуются в конечные автоматы, что требует больших объёмов памяти и вычислительных ресурсов. К путям оптимизации относятся сокращение занимаемой памяти, уменьшение необходимой вычислительной мощности и распределение нагрузки.
Регулярные выражения могут быть преобразованы в два типа автоматов: детерминированные конечные автоматы (ДКА) и недетерминированные конечные автоматы (НКА). В ДКА символ вызывает только один переход из любого состояния; в НКА один и тот же символ может инициировать несколько переходов. На схеме ниже изображён ДКА для выражения abcd.
Детерминированные автоматы обладают рядом преимуществ: строка проходит автомат за один проход; каждый символ вызывает однозначное состояние, поэтому обращения к памяти детерминированы. Кроме того, регулярное выражение может быть преобразовано в автомат с минимальным числом состояний[2]. Недостатком является быстрый рост числа состояний при объединении множества выражений. Следующая схема иллюстрирует НКА для выражения a*ba*.
НКА требуют меньше памяти, но больше вычислительных ресурсов и производят вариативные обращения к памяти[3]. Любой НКА может быть преобразован в ДКА, но зачастую ценой экспоненциального роста числа состояний[4].
Следующая таблица показывает сложность и использование памяти для ДКА и НКА при выражении размера n[5]:
| Сложность | Потребление памяти | |
|---|---|---|
| Недетерминированный | O(n²) | O(n) |
| Детерминированный | O(1) | O(Σn) |
Вложенные шаблоны внутри выражений вызывают циклы в соответствующих автоматах[1]. Например, правило для Snort User-Agent\x3A[^\r\n]*ZC-Bridge ищет совпадение подстроки «ZC-Bridge» только если ранее встретилась «User-Agent\x3A» и до этого не встречался перевод строки. Такие совпадения влияют на переходы в ДКА, но не увеличивают число состояний[6]. Автоматы, описывающие правила анализа во многих системах, обладают высокой избыточностью переходов[1].
При объединении разных выражений или использовании конструкций типа .* рост числа состояний может становиться линейным или экспоненциальным[7]. Ограничения длины, например в ab.{3}cd, могут приводить к экспоненциальному увеличению состояний[7].
Для борьбы со взрывным ростом числа состояний строится гибридный автомат: при увеличении числа состояний при переходе от НКА к ДКА процесс прекращается, создавая автомат с детерминированным стартовым состоянием и недетерминированной частью, обрабатываемой только при достижении соответствующего участка[8].
Для уменьшения размера автоматов также применяются оптимизации регулярных выражений (например, сокращения и классы исключений[9]), а также слияние состояний[10].
Использование конечных автоматов с задержкой входа также позволяет снизить затраты памяти[11].
Все эти методы оптимизации уменьшают объём используемой памяти и вычислительные издержки для автоматов, применяемых как в программных решениях (Snort, Bro/Zeek и др.), так и в специализированном оборудовании.
Глубинный анализ пакетов на основе контекста (context-based deep packet inspection, CDPI) анализирует не отдельные пакеты, а потоки целиком, извлекая семантическую информацию из потока сообщений. Это позволяет выявлять, например, этапы обмена ключами в IPsec и отличать легитимные сообщения от подделок[12].
Появление сетей на скоростях 20/40 Гбит/с и более требует анализа большого трафика в реальном времени. Чаще всего интернет-провайдеры агрегируют трафик с множества маршрутизаторов на мощные серверы; такой подход подразумевает задержки и затруднённую отказоустойчивость. Анализ потоков ГАП на скорости магистрали требует компромисса между точностью, временем, ресурсами и стоимостью[13].
Для распараллеливания распределённой обработки используются технологии MapReduce, в частности реализация Apache Hadoop, разделяющая вычисления и хранение данных между множеством серверов (HDFS). Такой подход позволяет анализировать большие объёмы трафика, однако не всегда даёт realtime-результаты из-за необходимости ожидать завершения всех операций в очередной фазе и из-за существенных задержек на запись на диск[13].
Более адаптированные решения, например, StreamMine3G, используют архитектуру распределённого complex event processing, где фазы (захват/генерация потока, классификация, анализ, представление) образуют непарализующую трубопроводную обработку[14]. Это даёт меньшие задержки и позволяет работать в реальном времени, поскольку результаты фаз хранятся в оперативной памяти.
Сохранение контекста потоков при разделении трафика между узлами решается хешированием (по src/dst адресам) с отправкой пар «хеш+метка времени — пакет» в соответствующие коллекционеры для последующей групповой обработки[15].
Конечные автоматы могут быть реализованы программно, но ради ускорения широко применяются специализированные аппаратные решения, например, на базе FPGA/ASIC. Имплементация НКА в виде логических схем повышает производительность: в FPGA каждый автомат моделируется комбинацией триггеров и связанных таблиц поиска, управляющих переходами[16]. FPGA обеспечивают выигрыш по времени построения автомата (O(n)), а также меньшие требования по памяти по сравнению с традиционными серверами[16].
Использование глубинного анализа пакетов охватывает различные области:
- Pиринговые сети: из-за применения случайных портов и сигнатур в данных, обычные межсетевые экраны неэффективны для выявления P2P. ГАП же позволяет идентифицировать такой трафик[17];
- Качество обслуживания: определяя тип содержимого, ГАП обеспечивает приоритет для отдельных приложений/сервисов (например, в корпоративной сети или для продажи каналов по категориям для провайдеров).
Социальные аспекты
Глубинный анализ пакетов имеет значимые социальные последствия, поскольку в процессе часто анализируются приватные пользовательские данные. Это порождает как юридические, так и этические вопросы.
Поскольку технология относительно нова, применяемое законодательство разнится по странам и не всегда однозначно.
ГАП может применяться для защиты интеллектуальной собственности. Так, P2P-трафик, часто используемый для обмена нелегальными файлами, поддаётся обнаружению с помощью ГАП[17].
В Нидерландах в 2009 году рассматривалась возможность применения ГАП в интересах третьих сторон для контроля за соблюдением авторских прав и противодействия незаконному скачиванию. После критики со стороны НКО инициатива была отклонена[18].
Статья 66 постановления телекоммуникационного регулятора Китая 2000 года гласит: «Свобода и частная жизнь законных пользователей телекоммуникаций защищаются законом. Ни одна организация или лицо не могут исследовать содержание коммуникаций по какой-либо причине»[19].
ГАП может быть инструментом слежки за пользовательскими привычками[20].
Глубинный анализ пакетов используют интернет-провайдеры для таргетированной рекламы[21], регулирования качества сервиса или фильтрации приложений/сайтов в коммерческих целях, что вызывает вопросы о сетевой нейтральности[20].
В 2011 году в Бельгии правозащитники обеспокоились решениями суда о фильтрации P2P-контента через провайдера Scarlet, реализующего ГАП по требованию авторских прав[21]. Данная мера была отменена после обращения в Суд ЕС.
Несмотря на формальный запрет в Китае, технологии ГАП широко внедряются национальными провайдерами[19].
В КНР большинство провайдеров принадлежат государству, и собранные ими данные доступны органам власти, несмотря на декларируемый запрет[19].
В Великобритании с 1996 года Internet Watch Foundation координирует борьбу с детской порнографией, но для блокировки зарубежных материалов был внедрён фильтр Cleanfeed — система, обрабатывающая подозрительные запросы к IP-фильтрам по ГАП; при обнаружении нелегального содержимого возвращается ошибка HTTP 404[21]. Критика касалась чрезмерных полномочий частных операторов фильтрации[22].
В 2008 году URL Википедия попала в список фильтрации Cleanfeed из-за изображения на обложке альбома Scorpions Virgin Killer. Запросы к Википедии четыре дня блокировались, пока страница не была удалена из списка[21].
Применение
Традиционно информационная безопасность в компаниях ограничивалась применением межсетевых экранов на границе сети, однако рост числа портативных устройств и новых угроз сделал ГАП критически важным инструментом для фильтрации, контроля взаимодействий и предотвращения утечек данных (Data Leak Prevention, DLP). Глубинный анализ позволяет настраивать правила и защищать как уровень приложений, так и отдельных пользователей.
Государства Северной Америки, Европы и Азии, помимо внутренней ИТ-безопасности, всё шире применяют ГАП для слежки и цензуры. Например, Иран внедрил такую систему с 2008 года, используя продукты компании Nokia Siemens Networks. В Ливии режим Муаммара Каддафи применял платформу Eagle от Amesys для слежки за оппонентами. Аналогичные системы работают во Франции[23], а также разрабатывались в Сирии. После журналистских расследований работа над проектами была прекращена, а производитель Qosmos публично заявил, что его ПО никогда там не применялось[24].
Интернет-провайдеры используют ГАП для внутренней защиты инфраструктуры, блокировки незаконных коммуникаций, таргетированной рекламы, повышения качества сервиса или предоставления сервисов третьих сторон, в том числе для защиты авторских прав:
- Поскольку провайдеры видят весь пользовательский трафик, они могут анализировать и продавать детальные данные рекламным компаниям (Phorm, NebuAd).
- Применение ГАП в Нидерландах рассматривалось для борьбы с пиратством, но не было утверждено[18]. Во Франции после появления HADOPI анализ P2P-обмена также оценивался, но не был реализован[25].
- Провайдеры объясняют внедрение ГАП необходимостью справедливого распределения пропускной способности (особенно при P2P-обмене большими файлами) и обеспечения приоритета для VoIP, видеоконференций и пр.
- Широкое внедрение ГАП ставит вопросы о соответствии гарантиям QoS, а также затрагивает приватность, поскольку всё содержимое (от сайтов и писем до музыкальных файлов) может анализироваться, блокироваться и классифицироваться.
Критика использования ГАП
Сторонники сетевого нейтралитета и борцы за интернет-свободы считают ГАП нарушением права на личную жизнь[26] и — в зависимости от целей — дискриминирующей технологией противоречащей принципу недискриминации интернет-трафика и праву на доступ в сеть[27].
Примечания
Литература
- Aho, Alfred V.; Corasick, Margaret J. (Июнь 1975). “Efficient string matching: an aid to bibliographic search”. Communications of the ACM [англ.]. 18 (6): 333—340. DOI:10.1145/360825.360855. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Braga, Rodrigo; Mota, Edjard; Passito, Alexandre (Октябрь 2010). “Lightweight DDoS flooding attack detection using NOX/OpenFlow”. 35th Annual IEEE Conference on Local Computer Networks [англ.]: 408—415. DOI:10.1109/LCN.2010.5735752. ISBN 978-1-4244-8389-1. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Roth, Christian; Schillinger, Rolf (Сентябрь 2014). “Detectability of Deep Packet Inspection in common provider/consumer relations”. 25th International Workshop on Database and Expert Systems Applications [англ.]: 283—287. DOI:10.1109/DEXA.2014.64. ISBN 978-1-4799-5722-4. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Piyachon, Piti; Luo, Yan (Декабрь 2006). “Efficient memory utilization on network processors for deep packet inspection”. 2006 Symposium on Architecture For Networking And Communications Systems [англ.]: 71—80. DOI:10.1145/1185347.1185358. ISBN 978-1-59593-580-9. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Zhuli, Meng; Wenjing, Li; ZhiPeng, Gao (Январь 2010). “Context-based Deep Packet Inspection of IKE Phase One Exchange in IPSec VPN”. 2010 International Conference on Innovative Computing and Communication [англ.]: 3—6. DOI:10.1109/CICC-ITOE.2010.8. ISBN 978-1-4244-5635-2. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Zoican, Sorin; Zoican, Roxana (Октябрь 2013). “Intrusive detection system implementation using deep packet inspection”. 2013 11th International Conference on Telecommunications in Modern Satellite, Cable and Broadcasting Services (TELSIKS) [англ.]: 413—416. DOI:10.1109/TELSKS.2013.6704411. ISBN 978-1-4799-0902-5. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Wenga, Ning; Vespaa, Luke; Soewitob, Benfano (Декабрь 2011). “Deep packet pre-filtering and finite state encoding for adaptive intrusion detection system”. Computer Networks [англ.]. 55 (8): 1648—1661. DOI:10.1016/j.comnet.2010.12.007. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Becchi, Michela; Crowley, Patrick (Декабрь 2007). “A Hybrid Finite Automaton for Practical Deep Packet Inspection”. Proceedings of the 2007 ACM CoNEXT conference [англ.]. DOI:10.1145/1364654.1364656. ISBN 978-1-59593-770-4. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Becchi, Michela; Crowley, Patrick (Декабрь 2007). “An Improved Algorithm to Accelerate Regular Expression Evaluation”. ANCS '07 Proceedings of the 3rd ACM/IEEE Symposium on Architecture for networking and communications systems [англ.]: 145—154. DOI:10.1145/1323548.1323573. ISBN 978-1-59593-945-6. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Kumar, Sailesh; Turner, Jonathan; Williams, John (Декабрь 2006). “Advanced algorithms for fast and scalable deep packet inspection”. ANCS '06 Proceedings of the 2006 ACM/IEEE symposium on Architecture for networking and communications systems [англ.]: 81—92. DOI:10.1145/1185347.1185359. ISBN 1-59593-580-0. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Nelms, Terry; AhamadYang2015, Mustaque (Октябрь 2010). “Packet scheduling for deep packet inspection on multi-core architectures”. 2010 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS) [англ.]. DOI:10.1145/1872007.1872033. ISBN 978-1-4503-0379-8. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Yang, Feng (Май 2015). “The tale of deep packet inspection in China: Mind the gap”. 2015 3rd International Conference on Information and Communication Technology (ICoICT) [англ.]: 348—351. DOI:10.1109/ICoICT.2015.7231449. ISBN 978-1-4799-7752-9. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Le Quoc, Do; Martin, André; Fetzer, Christof (Декабрь 2013). “Scalable and Real-Time Deep Packet Inspection”. 2013 IEEE/ACM 6th International Conference on Utility and Cloud Computing [англ.]: 446—451. DOI:10.1109/UCC.2013.88. ISBN 978-0-7695-5152-4. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Nazief, Harish Muhammad; Sabastian, Tonny Adhi; Presekal, Alfan; Guarddin, Gladhi (Октябрь 2014). “Development of University of Indonesia next generation firewall prototype and access control with deep packet inspection”. 2014 International Conference on Advanced Computer Science and Information System [англ.]: 47—52. DOI:10.1109/ICACSIS.2014.7065869. ISBN 978-1-4799-8075-8. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Antonello, Rafael; Fernandes, Steni; Kamienski, Carlos; Sadok, Djamel; Kelner, Judith; Gódor, István; Szabó, Géza; Westholm, Tord (Ноябрь 2012). “Deep packet inspection tools and techniques in commodity platforms: Challenges and trends”. Journal of Network and Computer Applications [англ.]. 35 (6): 1863—1878. DOI:10.1016/j.jnca.2012.07.010. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Peha, Jon M.; Mateus, Alexandre M. (Февраль 2014). “Policy implications of technology for detecting P2P and copyright violations”. Telecommunications Policy [англ.]. 38 (1): 66—85. DOI:10.1016/j.telpol.2013.04.007. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Bendrath, Ralf; Mueller, Milton (Ноябрь 2011). “The end of the net as we know it? Deep packet inspection and internet governance”. New Media & Society [англ.]. 13 (7): 1142—1160. DOI:10.1177/1461444811398031. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Wagner, Ben (Июнь 2009). “Deep Packet Inspection and Internet Censorship: International Convergence on an 'Integrated Technology of Control'”. SSRN [англ.]. DOI:10.2139/ssrn.2621410. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Corwin, Eric H. (Январь 2011). “Deep Packet Inspection: Shaping the Internet and the Implications on Privacy and Security”. Information Security Journal: A Global Perspective [англ.]. 20 (6): 311—316. DOI:10.1080/19393555.2011.624162. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Bendrath, Ralf (Февраль 2009). “Global technology trends and national regulation: Explaining Variation in the Governance of Deep Packet Inspection” (PDF). International Studies Annual Convention New York City [англ.]. Дата обращения 2024-06-27.
- John Hopcroft. Introduction to Automata Theory, Languages, and Computation : [англ.] / John Hopcroft, Jeffrey Ullman. — 1979. — P. 537. — ISBN 0-201-02988-X.
- Holzer, Markus; Maletti, Andreas (Август 2010). “An nlogn algorithm for hyper-minimizing a (minimized) deterministic automaton”. Theoretical Computer Science [англ.]. 411: 3404—3413. DOI:10.1016/j.tcs.2010.05.029. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Kumar, Sailesh; Dharmapurikar, Sarang; Yu, Fang; Crowley, Patrick; Turner, Jonathan (Ноябрь 2006). “Algorithms to accelerate multiple regular expressions matching for deep packet inspection”. ACM SIGCOMM Computer Communication Review [англ.]. 36: 339—350. DOI:10.1145/1151659.1159952. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Fang, Zhifeng; Chen, Yu; Diao, Yanlei; Lakshman, T. V.; Katz, Randy H. (Декабрь 2006). “Fast and memory-efficient regular expression matching for deep packet inspection”. ACM SIGCOMM Computer Communication Review [англ.]. 36: 93—102. DOI:10.1145/1185347.1185360. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Sidhu, Reetinder; Prasanna, Viktor (2001). “Fast Regular Expression Matching Using FPGAs”. The 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines [англ.]: 227—238. ISBN 0-7695-2667-5. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Becchi, Michela; Cadambi, Srihari (Май 2007). “Memory-Efficient Regular Expression Search Using State Merging”. IEEE INFOCOM 2007 [англ.]: 1064—1072. DOI:10.1109/INFCOM.2007.128. ISBN 1-4244-1047-9. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Wang, Chunzhi; Zhou, Xin; You, Fangping; Chen, Hongwei (Январь 2009). “Design of P2P Traffic Identification Based on DPI and DFI”. 2009 International Symposium on Computer Network and Multimedia Technology [англ.]: 1—4. DOI:10.1109/CNMT.2009.5374577. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Qu, Jin; Zhao, Rongcai; Liu, Peng; Li, Zishuang; Li, Qin (Июнь 2011). “A delayed input DFA optimized algorithm of bounding default path”. 2011 IEEE International Conference on Computer Science and Automation Engineering [англ.]. 4: 702—705. DOI:10.1109/CSAE.2011.5952942. ISBN 978-1-4244-8727-1. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Lee, Youngseok; Kang, Wonchul; Son, Hyeongu (Апрель 2010). “An Internet traffic analysis method with MapReduce”. 2010 IEEE/IFIP Network Operations and Management Symposium Workshops [англ.]: 357—361. DOI:10.1109/NOMSW.2010.5486551. ISBN 978-1-4244-6037-3. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Vieira, Thiago; Soares, Paulo; Machado, Marco; Assad, Rodrigo; Garcia, Vinicius (2012). “Evaluating Performance of Distributed Systems With MapReduce and Network Traffic Analysis”. ICSEA 2012 : The Seventh International Conference on Software Engineering Advances [англ.]: 705—802. ISBN 978-1-61208-230-1. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Fontugne, Romain; Mazel, Johan; Fukuda, Kensuke (Апрель 2014). “Hashdoop: A MapReduce framework for network anomaly detection”. 2014 IEEE Conference on Computer Communications Workshops [англ.]: 494—499. DOI:10.1109/INFCOMW.2014.6849281. ISBN 978-1-4799-3088-3. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Stalla-Bourdillon, Sophie; Papadaki, Evangelia; Chown, Tim (Декабрь 2014). “From porn to cybersecurity passing by copyright: How mass surveillance technologies are gaining legitimacy. The case of deep packet inspection technologies”. Computer Law & Security Review [англ.]. 30: 670—686. DOI:10.1016/j.clsr.2014.09.006. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Davies, Chris J.. The hidden censors of the internet (англ.), Wired (Май 2009). Дата обращения: 27 июня 2024.
- Brito, Andrey; Martin, André; Fetzer, Christof; Rocha, Isabelly; Nóbrega, Telles (Октябрь 2013). “StreamMine3G OneClick -- Deploy & Monitor ESP Applications With A Single Click”. 2013 42nd International Conference on Parallel Processing [англ.]: 1014—1019. DOI:10.1109/ICPP.2013.120. ISBN 978-0-7695-5117-3. Дата обращения 2024-06-27.
|access-date=требует|url=(справка) - Pao, Derek; Lam Or, Nga; Cheung, Ray C.C. (Июнь 2013). “A memory-based NFA regular expression match engine for signature-based intrusion detection”. Computer Communications [англ.]. 36: 1255—1267. DOI:10.1016/j.comcom.2013.03.002. Дата обращения 2024-06-27.
|access-date=требует|url=(справка)



