Перейти к содержимому

Микросегментация Kubernetes с помощью Akamai Guardicore

    Статья Майи Люсан и Омера Майера, Akamai Guardicore

    Заполните эту форму, чтобы заказать пилот или расчет стоимости Akamai Guardicore >>>

    Заказать демо, пилот или расчет стоимости Akamai Guardicore



    Kubernetes (K8s) — одна из наиболее широко применяемых технологий для развертывания приложений и управления ими в облачных средах. По данным Gartner, к 2026 году 90% организаций по всему миру будут использовать контейнерные приложения в prod-среде — по сравнению с 40 % в 2021 году (Отчет Gartner).

    Однако у K8s есть один существенный недостаток: безопасность.

    Согласно отчету Red Hat о состоянии безопасности Kubernetes за 2022 год, в котором приняли участие более 300 специалистов DevOps, инженеров и специалистов по ИБ, 93% респондентов столкнулись как минимум с одним инцидентом безопасности в своих средах K8s за последние 12 месяцев. Эти инциденты потенциально могут быть использованы злоумышленниками для установки программ-вымогателей и других типов вредоносного программного обеспечения.

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

    Зачем нужна сегментация в средах Kubernetes?

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

    На этом изображении показано взаимодействие между модулями в плоском сетевом кластере K8s.
    Рис. 1. Кластер Kubernetes по умолчанию плоский, без ограничений между подами

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

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

    В чем сложность сегментации трафика в средах Kubernetes?

    C Kubernetes не всегда все просто. Это сложная среда с множеством различных ресурсов, пространств имен и взаимодействий между компонентами. Из-за своей динамической природы ресурсы постоянно создаются, удаляются или обновляются, что затрудняет применение и управление сетевыми политиками K8s в режиме реального времени.

    Одной из распространенных проблем при работе с K8 является отсутствие видимости (visibility). Команды безопасности и разработчики не знают и поэтому не могут понять, что происходит внутри кластера K8s. Для создания эффективных политик команды должны визуализировать трафик внутри и снаружи кластеров и видеть зависимости между коммуникациями.

    Как Akamai Guardicore решает эти сложности?

    Akamai Guardicore Segmentation является программным решением микросегментации со специальной поддержкой защиты кластеров K8s. Продукт неинтрузивен и разработан с учетом возможности масштабирования и обеспечения высокой производительности. Решение не требует ни выделенной консоли, ни локального доступа к кластерам.

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

    На этом изображении показано, как кластер выглядит на карте сегментации Akamai Guardicore. Если дважды щелкнуть кластер, на карте будут показаны все соединения внутри кластера.
    Рис. 2: Кластеры, представленные на Reveal-карте Akamai Guardicore Segmentation; двойной щелчок по карте показывает пространства имен и их взаимосвязи внутри кластера.

    Как Akamai обеспечивает сегментацию в средах Kubernetes?

    Akamai использует встроенный в K8 способ реализации сетевой политики, используя подключаемый модуль сетевой политики — Container Network Interface (CNI). K8s имеет встроенный ресурс, предназначенный для применения сетевых политик. Этот подключаемый модуль политики сетевой безопасности был специально разработан для обеспечения сегментации сети в среде K8s.

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

    Что делает подход Akamai уникальным?

    Есть две вещи, которые отличают подход Akamai:

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

      Akamai Guardicore Segmentation содержит карту для визуализации коммуникаций внутри и между центрами обработки данных для всех типов технологий, таких как Kubernetes, виртуальные машины, контейнеры Docker и т. д. Клиенты зачастую впервые получают возможность легко визуализировать всю свою среду K8s, что значительно упрощает создание политик и обеспечивает точность процесса защиты.
    1. Использование нативного способа сегментации Kubernetes. Akamai понял, что наиболее интуитивный, масштабируемый и неинтрузивный способ применения политик — это использование инфраструктуры K8s. K8s предоставляет контроллер CNI на каждом узле, который отвечает за трафик этого узла. Он распределен и предназначен для работы в масштабе даже крупных инсталляций. Это нативный для K8 способ управления трафиком в кластере, и он был разработан для поддержки сетевой микросегментации.

    На рис. 3 показано, как работает микросегментация трафика Akamai в контейнерах. Политика настраивается в решении Akamai Guardicore Segmentation, а затем передается на выделенный под в кластере K8s, преобразуется в формат сетевой политики K8s и через API и отправляется в CNI для каждой релевантной ноды.

    На этой диаграмме показано, как работает принудительное исполнение Akamai. Политика настраивается в решении Akamai Guardicore Segmentation, а затем передается модулю gc-kube-enforce в кластере K8s, транслируется в формат сетевой политики K8s и через API и отправляется в CNI для каждого соответствующего узла.
    Рис. 3. Как работает политика принудительного применения Akamai Guardicore Segmentation

    Какие задачи обычно решают с помощью сегментации Kubernetes?

    Мы видим три наиболее популярных варианта использования сегментации Kubernetes:

    1. Защита периметра приложений. Используя лейблы подов, клиенты могут предотвратить любой нежелательный доступ к / от приложений внутри кластера. Защита периметра приложения позволяет блокировать латеральное движение злоумышленника, уже находящегося в кластере, или разрешить внешний вход/выход в/из приложения K8s.
    2. Сегментация namespace-ов. Когда в подах нет меток или когда уровень детализации, обеспечиваемый метками, не требуется, можно определить правила для пространств имен, которые разрешают или блокируют связь между ними (рис. 4).
    На этом изображении показано, как выглядит экран правил в Akamai Guardicore Segmentation.
    Рис. 4: Экран политики сегментации Akamai Guardicore
    1. Контроль входящего/исходящего трафика в кластере K8s. Это делается для предотвращения бокового перемещения из одной части дата-центра в кластер K8s и наоборот. Важно контролировать трафик, идущий из-за пределов кластера к приложениям внутри кластера K8s; это делается путем применения политик микросегментации, а также путем ограничения доступа к другим частям дата-центра для определенных приложений K8s.

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

    Как лейблы Kubernetes упрощают процесс сегментации?

    Лейблы являются важной частью любого функционирующего кластера K8s. Поскольку поды регулярно запускаются и уничтожаются, их IP-адреса постоянно меняются. Вот почему для применения политики, которая будет сохраняться независимо от масштабирования, сегментация Akamai Guardicore использует метки вместо того, чтобы полагаться на IP-адреса. Он импортирует метки из K8s в консоль сегментации Akamai Guardicore Segmentation и использует их для определения правил и политик. Таким образом, как только пользователь использует метки для создания правила, оно применяется ко всем подам, связанным с этой меткой, независимо от их IP-адресов.

    Akamai импортирует все лейблы в кластер с помощью оркестрации Kubernetes Orchestration. В дополнение Guardicore создает иные полезные лейблы, таких как пространства имен и Cluster IDs, отправляя запросы к API-серверу кластера K8s и регулярно обновляя их. Агенты сегментации Akamai Guardicore собирают метаданные о каждом модуле на каждом узле и сообщают об этом вместе с наблюдаемыми сетевыми соединениями.

    Что интересного в роадмапе Akamai Guardicore?

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

    Демо, пилот и цены Akamai Guardicore

    Заполните эту форму, чтобы узнать больше о микросегментации Akamai Guardicore.