Ideco NGFW VPP: новый высокопроизводительный подход к обработке трафика
Дмитрий Хомутов, 12/01/24
Компания Ideco помогает защититься от современных угроз безопасности с помощью своего продукта, межсетевого экрана Ideco NGFW. К обычной версии в 2023 г. добавилась высокоскоростная версия Ideco NGFW VPP. Рассмотрим, за счет чего удалось резко повысить производительность решения.
Автор: Дмитрий Хомутов, директор компании Ideco
Требования к NGFW в больших сетях и датацентрах часто сводятся к трем главным параметрам: производительности, производительности и производительности. Особенно это проявляется при выборе российского решения класса NGFW.
По ряду причин технологического характера российские NGFW зачастую сильно отстают от западных систем, и повышение производительности в обработке сетевого трафика является главным вызовом для отечественных разработчиков. В ответ на этот вызов разработчики Ideco предложили высокопроизводительную версию Ideco NGFW VPP, реализующую новый подход к обработке трафика.
Ядро и пространство пользователя
Основной продукт Ideco NGFW, как многие российские решения, разработан на базе ядерного стека Linux, где архитектура разделена на два основных пространства: ядро (kernel space) и пользовательское пространство (user space).
Ядро Linux работает в привилегированном режиме и имеет прямой доступ к аппаратному обеспечению компьютера. Ядро обеспечивает основные функции операционной системы: управление памятью, планирование задач, обработку системных вызовов и взаимодействие с аппаратным обеспечением.
Пространство пользователя – это область, в которой работают прикладные программы и процессы. В этом контексте программы выполняются в непривилегированном режиме и не имеют прямого доступа к аппаратному обеспечению. Все взаимодействия с аппаратурой и ресурсами осуществляются через системные вызовы, предоставляемые ядром.
Некоторые модули Ideco NGFW, например межсетевой экран, работают на уровне ядра, а другие, такие как IPS и контроль приложений, работают в пользовательском пространстве, и в ядре их реализовать достаточно сложно. Таким образом, получается, что одна часть обработки трафика происходит на уровне ядра, а другая – в пользовательском пространстве. Переключение между этими контекстами непременно ведет к снижению производительности.
Дело в том, что ядро по своей природе является основой для операционной системы, предоставляя ей базовые функции. И никто изначально не задумывался о создании на его основе систем обработки трафика, подобных современным межсетевым экранам нового поколения. Помимо прочего, разработка для ядерного стека затрудняет отладку и оптимизацию, поскольку любое изменение функциональности приводит к большим правкам в коде.
Впрочем, существует технология kernel-bypass, которая позволяет приложению из пользовательского пространства напрямую общаться с аппаратным обеспечением, минуя слой ядра операционной системы. Разработаны фреймворки, которые реализуют такой подход, – DPDK и VPP.
DPDK и VPP
DPDK (Data Plane Development Kit) и VPP (Vector Packet Processing) являются проектами с открытым исходным кодом, в их разработке и поддержке участвует множество компаний. Однако можно выделить двух ключевых участников.
- Компания Intel играет важную роль в разработке и поддержке как DPDK, так и VPP. Проект DPDK был инициирован компанией Intel с целью предоставления высокопроизводительных библиотек и драйверов для обработки сетевых пакетов на аппаратном уровне. Этот проект стал ключевым компонентом для оптимизации сетевых приложений на процессорах Intel.
- Проект VPP был запущен компанией Cisco и позднее передан в сообщество с открытым исходным кодом. Проект активно используется в сетевых решениях Cisco, и компания продолжает поддерживать и развивать VPP в рамках сообщества. Компания Intel также вносит свой вклад в разработку VPP: архитектурные и технические решения от Intel, разработанные для DPDK, часто используются и в VPP.
Важно отметить, что обе технологии, DPDK и VPP, сегодня развиваются как проекты с открытым исходным кодом с широким участием сообщества разработчиков, и многие другие организации внесли свой вклад в их развитие.
При планировании производительной архитектуры Ideco NGFW выбор был сделан в пользу применения VPP, и это дало старт развитию Ideco NGFW VPP, который разрабатывается в духе современных мировых трендов средств обработки трафика.
Архитектура Ideco NGFW VPP
Vector Packet Processing (VPP) – это высокопроизводительная сетевая платформа для работы с трафиком за счет использования векторного подхода.
Идея заключается в том, что обработка всех сетевых пакетов представляется в виде графа, где каждый узел графа – это определенный профиль работы с пакетами, а каждая ветка – логика работы. При векторной обработке операции выполняются над несколькими сетевыми пакетами одновременно. Операции могут включать в себя обработку заголовков, фильтрацию, изменение полей заголовков, агрегацию данных и другие манипуляции.
Благодаря возможности обработки векторами производительность обработки трафика значительно увеличивается по сравнению с традиционными подходами.
Стоит отметить, что компания Intel в своих процессорах нового поколения поддерживает аппаратное ускорение VPP-инструкций, чтобы обработка трафика на базе фреймворка VPP работала максимально быстро без дополнительных аппаратных ускорителей.
Профили: революция в построении политик
Важное принципиальное новшество Ideco NGFW VPP – это использование концепции профилей при построении политик обработки сетевого трафика.
В базовом Ideco NGFW в правилах есть множество фильтрующих модулей: L4-файрвол, L7-файрвол, контент-фильтр, система предотвращения вторжений, антивирус и др.
В Ideco NGFW VPP есть лишь один файрвол, но реализующий на базе профилей все многообразие сценариев обработки. Профилями могут быть IPS, обработка приложений, контент-фильтр, SSL-инспекция и т.п.
Рассмотрим эту концепцию подробнее.
Всем известна сетевая модель OSI с уровнями от L1 до L7. Классический модуль межсетевого экранирования в NGFW отвечает за фильтрацию до транспортного уровня L4, а если нужна инспекция на более высоком уровне, например для прикладного протокола, то используется контент-фильтр или модуль контроля приложений.
Написания правил для NGFW на основе профилей выглядит так: после обработки пакета на L4 можно указать селектор, чтобы выбрать определенную часть трафика, и назначить профиль, который будет подключаться к обработке сессий, подпадающих под указанный селектор.
Например, если в дата-центре трафик идет через шлюз, но при этом значительную его часть составляют видеоданные, то в правилах Ideco NGFW VPP можно отключить профиль IPS для селектора, указывающего на пакеты этого типа. Таким образом можно существенно разгрузить шлюз и увеличить его производительность без ущерба для безопасности.
Другой пример: в сети установлен файловый сервер, работающий по протоколу Samba. Для того чтобы защитить его, нужно установить политику для его IP-адреса и добавить к ней профиль обработки IPS.
Еще один пример: комбинация профилей для зашифрованного HTTPS-трафика. После обработки в межсетевом экране L4 селектор выбирает зашифрованные TLS-сессии, к ним применяется TLS-профиль для расшифровки, а затем по селектору HTTP-сессий – профили URL-фильтрации и контент-фильтра. Если же после расшифровки TLS обнаружился обычный TCP-трафик, для которого в политике селектор не указан, то обработка завершается.
Подход на основе профилей, с одной стороны, позволяет создавать процесс обработки трафика в более удобном и более соответствующем реальному миру ключе, а с другой стороны – избавиться от той части проверок, которая лишена практического смысла, но при этом создает вычислительную нагрузку на шлюз.
Заключение
У большинства российских NGFW-решений, построенных на базе Linux, обработка трафика происходит на уровне ядра. В Ideco NGFW VPP вся обработка вынесена в пространство пользователя, где намного проще разрабатывать и отлаживать код, а значит, можно быстрее развивать продукт. Это также позволяет сделать NGFW более надежным, поскольку любая ошибка на уровне ядра с большой вероятностью приведет к краху системы.
Разработчики Ideco NGFW VPP ставят перед собой амбициозную задачу: обогнать по скорости все отечественные NGFW-решения, при этом быстро нарастив функциональность.
В рамках уже действующей лицензии заказчики могут перейти с обычной версии Ideco NGFW на Ideco NGFW VPP. Увы, из-за принципиально разного подхода к формированию политик обработки невозможно сделать корректный автоматический перенос всей базы правил с обычной версии на VPP, так что все настройки придется создавать с начала.
В дальнейшем продукты Ideco NGFW и Ideco NGFW VPP будут развиваться параллельно, ведь часть модулей и данных используется в обоих продуктах. Например, в правилах IPS есть много сигнатур, в том числе расширенная база правил от "Лаборатории Касперского" и из других источников, включая ФинЦЕРТ и НКЦКИ. Они могут с успехом применяться в обеих версиях Ideco NGFW.
Однако поскольку решение Ideco NGFW VPP архитектурно сильно отличается от Ideco NGFW, то требуется его отдельная сертификация со стороны ФСТЭК России. Этот процесс готовится к старту, причем уже с учетом новых требований – как многофункциональный межсетевой экран, по новой терминологии ФСТЭК России.