Defender для архитектуры контейнеров

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

Сведения о реализации зависят от Azure Kubernetes Service (AKS), Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE) и кластеров Kubernetes с поддержкой Arc.

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

Общие сведения о модели возможностей

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

Capability Безагентное Требуются компоненты внутри кластера
Оценка уязвимостей изображения Yes No
Оценка состояния Kubernetes Yes No
Обнаружение угроз среды выполнения No Yes
Обнаружение угроз уровня управления Yes No

Подключение к реестрам контейнеров

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

Подключение к кластерам Kubernetes

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

Данные среды выполнения, отправляемые из кластеров Kubernetes

Кластеры Kubernetes отправляют данные безопасности среды выполнения с рабочих узлов в серверную часть Microsoft Defender для облака. Эти данные собираются компонентами Defender для контейнеров, работающими в кластере, и отправляются наружу для анализа. Этот путь подключения поддерживает обнаружение угроз в процессе выполнения и другие возможности на основе датчиков.

Подключение к API поставщика облачных служб

Microsoft Defender для облака подключается к API поставщика облачных служб для обнаружения ресурсов и выполнения анализа безопасности в рамках процесса подключения к облачной среде. Этот путь подключения устанавливается при подключении облачной среды к Microsoft Defender для облака.

Журналы аудита Kubernetes, отправленные из облачной инфраструктуры

Облачная инфраструктура отправляет журналы аудита Kubernetes в Microsoft Defender для облака для обнаружения угроз уровня управления и анализа безопасности. Метод, используемый для сбора и отправки журналов аудита, зависит от поставщика облачных служб и среды, в которой выполняются кластеры Kubernetes.

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

Поддержка прокси-сервера и частного подключения

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

Архитектура для каждой среды Kubernetes

Компоненты архитектуры

Если Defender для облака защищает кластер, размещенный в Служба Azure Kubernetes, он собирает данные из журналов аудита Kubernetes напрямую через инфраструктуру Azure, не требуя дополнительных агентов или конфигурации. Чтобы получить полную защиту, предлагаемую Microsoft Defender для контейнеров, вам потребуются следующие компоненты:

  • Defender датчик: облегченный DaemonSet, развернутый на узлах AKS, который собирает данные телеметрии времени выполнения (события Kubernetes, процессы и сетевые данные) с помощью технологии eBPF. Она отправляет данные телеметрии безопасно в Defender для облака для защиты от угроз во время выполнения. Датчик регистрируется в рабочей области Log Analytics и выступает в качестве конвейера данных. Но данные журнала аудита не хранятся в рабочей области Log Analytics. Датчик Defender развертывается как профиль безопасности AKS, который нативно интегрирован с поставщиком ресурсов AKS (RP).

Note

При настройке датчика Defender в кластере AKS он активирует процесс выверки. Этот процесс происходит в рамках плана Защита для контейнеров, что является ожидаемым поведением.

  • Политика Azure для Kubernetes: pod, расширяющий возможности open-source Gatekeeper v3 и регистрирующийся в качестве вебхука для контроля допуска Kubernetes. С помощью этого pod вы можете централизованно и согласованно применять меры по защите и обеспечению соблюдения политики для ваших кластеров. Политика Azure для Kubernetes развертывается как надстройка AKS, и её нужно установить только на одном узле в кластере. Он предоставляет возможность принудительного применения правил конфигурации. Узнайте больше о защите нагрузок Kubernetes и Политика Azure для Kubernetes.
  • Интеграция ACR: триггеры push и периодическое сканирование изображений для Реестр контейнеров Azure, обеспечивая оценку уязвимостей без дополнительных компонентов.
  • Обнаружение без агента: Обеспечивает видимость кластеров Kubernetes без необходимости использования каких-либо агентов, используя собственные возможности Azure для обнаружения и оценки конфигураций кластера.
  • Сканирование без агента для компьютеров: Периодические моментальные снимки дисков узлов Kubernetes для внеполосного анализа конфигурации операционной системы и файловой системы. Эта функция не нуждается в установленных агентах или сетевом подключении и не влияет на производительность компьютера.
  • Интеграция с Microsoft XDR: интегрируется с платформой Microsoft для расширенного обнаружения и реагирования для унифицированных операций по обеспечению безопасности и реагированию на инциденты.

Схема общей архитектуры взаимодействия между Microsoft Defender для контейнеров, Службой Azure Kubernetes и Политикой Azure.

Note

Эти компоненты не требуют входящих подключений к кластерам и используют собственную инфраструктуру безопасности Azure. Все компоненты используют подключение только для исходящего трафика (не требуется входящего доступа).

Сведения о компоненте датчика Defender

Имя pod Namespace Kind Краткое описание Возможности Ограничения ресурсов Требуется выход
microsoft-defender-collector-ds-* kube-system DaemonSet Собирает данные телеметрии среды выполнения (события Kubernetes, процессы и сетевые данные) с узлов с помощью технологии eBPF и безопасно отправляет его в Defender для облака. Системный администратор
SYS_RESOURCE,
SYS_PTRACE
память: 296Mi

ЦП: 360 млн
No
microsoft-defender-collector-misc-* kube-system Deployment Собирает события инвентаризации на уровне кластера и события безопасности, которые не привязаны к определенным узлам. N/A память: 64Mi

ЦПУ: 60m
No
microsoft-defender-publisher-ds-* kube-system DaemonSet Публикует собранные данные телеметрии в серверной службе Microsoft Defender для контейнеров для обработки и анализа. N/A память: 200Mi

ЦПУ: 60m
HTTPS 443

Подробнее о предварительных требованиях к исходящему доступу

* Не удается настроить ограничения ресурсов. Дополнительные сведения об ограничениях ресурсов Kubernetes.

Как работает обнаружение без агента для Kubernetes в Azure?

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

Схема архитектуры разрешений.

Если включить обнаружение без агента для расширения Kubernetes, происходит следующий процесс:

  • Создать:
    • Если включить расширение CSPM в Defender, Defender для облака создает идентификацию в вашей среде под названием CloudPosture/securityOperator/DefenderCSPMSecurityOperator.
    • Если вы включите расширение Defender for Containers, Defender для облака создаст удостоверение в вашей среде под названием CloudPosture/securityOperator/DefenderForContainersSecurityOperator.
  • Assign: Defender для облака назначает встроенную роль, называемую Kubernetes Agentless Operator, этому удостоверению на уровне подписки. Роль содержит следующие разрешения:
    • AKS чтение (Microsoft.ContainerService/managedClusters/read)
    • Доверенный доступ AKS со следующими разрешениями:
      • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/write
      • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/read (Чтение привязок ролей доверенного доступа в управляемых кластерах)
      • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/delete Узнайте больше о доверенном доступе AKS.
  • Discover: Используя назначенное системой удостоверение, Defender для облака обнаруживает кластеры AKS в вашей среде, выполняя вызовы API к серверу API AKS.
  • Привязка: После обнаружения кластера AKS, Defender для облачных сервисов выполняет операцию привязки AKS, создавая ClusterRoleBinding между созданной сущностью и Kubernetes ClusterRoleaks:trustedaccessrole:defender-containers:microsoft-defender-operator. Он ClusterRole виден через API и предоставляет Defender для облака права на чтение плоскости данных внутри кластера.

Note

Скопированный моментальный снимок остается в том же регионе, что и кластер.