Настройка Microsoft Defender для контейнеров для безопасности рабочей нагрузки
14.04.2025
Эта техническая и образовательная статья призвана помочь аналитикам безопасности, ИТ-администраторам и системным инженерам настроить и оптимизировать Microsoft Defender для контейнеров для защиты рабочих нагрузок на основе контейнеров. В ситуации, когда распространение контейнеров и оркестраторов, таких как Kubernetes, растет, безопасность этих сред становится сложной и важной. Defender for Containers предлагает облачное решение для улучшения, мониторинга и поддержания безопасности ваших контейнерных ресурсов от разработки до производства [1].
Введение
Контейнеры произвели революцию в способах разработки, развертывания и управления приложениями, предлагая портативность, масштабируемость и эффективность. Однако динамичный и распределенный характер контейнерных сред, особенно когда они управляются такими платформами, как Kubernetes (например, Azure Kubernetes Service — AKS), создает новые проблемы безопасности. Уязвимости в образах контейнеров, неправильные настройки оркестратора, несанкционированный доступ к среде выполнения и угрозы цепочки поставок программного обеспечения — это лишь некоторые из рисков, с которыми сталкиваются организации [2].
Microsoft Defender для контейнеров, часть Microsoft Defender для облака, представляет собой комплексное решение для защиты облачных рабочих нагрузок (CWPP), которое легко интегрируется с Azure и другими мультиоблачными средами. Он обеспечивает возможности обеспечения безопасности на протяжении всего жизненного цикла контейнера, включая: безагентную оценку уязвимостей для образов контейнеров в реестре и во время выполнения; защита во время выполнения кластеров Kubernetes, обнаружение подозрительных действий и атак; и мониторинг угроз в режиме реального времени для контейнерных рабочих нагрузок. Это помогает выявлять и устранять уязвимости, защищать от атак и обеспечивать соответствие требованиям [3].
В этом практическом руководстве будет рассмотрено включение Защитника для контейнеров на уровне подписки, интеграция с кластерами Kubernetes (на примере AKS), настройка оповещений системы безопасности и изучение возможностей оценки уязвимостей и защиты во время выполнения. Будут предоставлены пошаговые инструкции, практические примеры и краткие объяснения, чтобы читатель мог реализовать, протестировать и проверить эти функции. Кроме того, будут обсуждаться советы по безопасности, проверка соответствия и лучшие практики, которые помогут обеспечить автономную, профессиональную и надежную защиту ваших контейнерных рабочих нагрузок от новейших угроз.
Почему Microsoft Defender для контейнеров так важен?
- Комплексная видимость: обеспечивает единое представление о состоянии безопасности ваших контейнерных сред, включая кластеры Kubernetes, реестры контейнеров и образы.
- Оценка уязвимостей: сканирует образы контейнеров в реестрах (реестр контейнеров Azure, Docker Hub и т. д.) и во время выполнения для выявления уязвимостей и предоставления практических рекомендаций.
- Защита во время выполнения: постоянно отслеживает активность в кластерах Kubernetes для обнаружения подозрительных действий, таких как выполнение привилегированных команд, доступ к конфиденциальным данным, взаимодействие с вредоносными IP-адресами и другие аномалии.
- Непрерывный мониторинг: обеспечивает обнаружение угроз в режиме реального времени и оповещения системы безопасности, помогая командам быстро реагировать на инциденты.
- Встроенная интеграция. Полная интеграция со службой Azure Kubernetes (AKS), реестром контейнеров Azure (ACR) и другими инструментами экосистемы Azure.
- Поддержка мультиоблачных/гибридных систем: расширяет защиту кластеров Kubernetes, размещенных в AWS, GCP и локальных средах через Azure Arc.
Предварительные условия
Чтобы настроить Microsoft Defender для контейнеров, вам потребуются следующие элементы:
- Активная подписка Azure: подписка Azure для создания ресурсов и управления ими.
- Административный доступ: учетная запись с ролью «Владелец», «Участник» или «Администратор безопасности» в подписке или группе ресурсов, где расположены кластеры Kubernetes.
- Существующие кластеры Kubernetes: кластеры службы Azure Kubernetes (AKS) или другие кластеры Kubernetes (через Azure Arc), которые вы хотите защитить.
- Реестры контейнеров (необязательно): Реестр контейнеров Azure.(ACR) или другие реестры контейнеров для оценки уязвимостей изображений.
Шаг за шагом: настройка Microsoft Defender для контейнеров
Давайте включим Защитник для контейнеров и настроим его функции.
1. Включение Защитника для контейнеров на уровне подписки
Лучше всего включить Защитника для контейнеров на уровне подписки, чтобы автоматически защищать все существующие и будущие кластеры Kubernetes и реестры контейнеров.
- Откройте браузер и перейдите на портал Azure: https://portal.azure.com.
- Войдите в систему под учетной записью, имеющей необходимые разрешения.
- В верхнем поле поиска введите «Microsoft Defender for Cloud» и выберите его из результатов.
- На левой панели навигации Защитника для облака выберите Настройки среды.
- Выберите подписку, в которой вы хотите включить Защитник для контейнеров.
-
На странице планов Defender найдите «Контейнеры» и переключите статус на «Включено».
-
Нажмите «Настройки» для плана «Контейнеры», чтобы просмотреть дополнительные параметры.
- Убедитесь, что «Оценка уязвимостей реестра контейнеров» и «Защита во время выполнения кластеров Kubernetes» включены.
-
Нажмите Сохранить.
- Объяснение. Включение Защитника для контейнеров на уровне подписки гарантирует, что все кластеры AKS и записи ACR в этой подписке (существующие и новые) будут защищены. Для кластеров Kubernetes в других облаках или локально требуется интеграция через Azure Arc.
2. Проверка развертывания и компонентов Defender для контейнеров
После активации Defender for Containers развертывает агенты и расширения в кластерах Kubernetes для сбора данных и применения защиты.
- На портале Azure перейдите к своему кластеру AKS.
- На левой панели навигации в разделе «Мониторинг» выберите Статистика.
- Проверьте, включен ли мониторинг. Защитник для контейнеров использует Azure Monitor для сбора журналов и событий.
- На левой панели навигации Defender for Cloud выберите Инвентарь.
- Фильтруйте по «Типу ресурса» = «Кластеры Kubernetes» и «Реестры контейнеров». Вы должны увидеть свои ресурсы в списке и защищенные Защитником для контейнеров.
3. Оценка уязвимости образа контейнера
Защитник контейнеров автоматически сканирует образы в реестрах контейнеров на наличие уязвимостей.
- На левой панели навигации Защитника для облака выберите Рекомендации.
- Фильтрация по «Типу ресурса» = «Записи контейнера».
- Найдите рекомендации, связанные с «Уязвимости в образах реестра контейнеров должны быть исправлены».
-
Щелкните рекомендацию, чтобы просмотреть подробную информацию, включая затронутые изображения, обнаруженные уязвимости (CVE) и действия по устранению.
- Объяснение: Защитник для контейнеров использует анализ угроз и сканеры уязвимостей Microsoft (например, Qualys) для выявления проблем. Рекомендации обычно включают исправленную версию образа или пакетов, которые необходимо обновить.
4. Мониторинг и защита во время выполнения кластеров Kubernetes
Защитник для контейнеров отслеживает активность ваших кластеров Kubernetes для обнаружения угроз в режиме реального времени.
- На левой панели навигации Защитника для облака выберите Предупреждения безопасности.
- Фильтруйте по «Типу ресурса» = «Кластеры Kubernetes».
-
Здесь вы увидите оповещения, созданные Защитником для контейнеров о подозрительной активности в кластере, например:
Попытка доступа к серверу Kubernetes с повышенными привилегиями.Развертывание привилегированного контейнера.Команда оболочки запускается в контейнере.Общение с вредоносным IP контейнера.
-
Щелкните предупреждение, чтобы просмотреть подробную информацию, включая описание угрозы, затронутые ресурсы, действия по расследованию и рекомендуемые действия по устранению.
Проверка и тестирование
Крайне важно проверить способность Защитника для контейнеров обнаруживать угрозы и генерировать оповещения.
1. Тестирование обнаружения уязвимостей изображений
- Сценарий. Разверните образ контейнера с известными уязвимостями в реестре ACR (если он у вас есть) или кластере AKS. Например, старый Docker-образ веб-сервера или приложения с устаревшими зависимостями.
- ВВы можете использовать образ типа
vulnerable/web-dvwa(в целях тестирования) или образ, основанный на старой версии ОС (например,ubuntu:16.04).
- ВВы можете использовать образ типа
- Ожидаемое действие: Защитник контейнеров должен обнаружить уязвимости в образе и сформировать рекомендации по безопасности.
- Проверка:
- На портале Azure перейдите к Защитник Microsoft для облака > Рекомендации.
- Найдите рекомендации, связанные с уязвимостями в образах контейнеров, которые указывают на развернутый вами образ.
2. Тестирование защиты во время выполнения (имитация вредоносной активности в кластере AKS)
Внимание. Выполняйте этот тест в изолированной среде разработки или тестирования, а не в рабочей среде, и при наличии соответствующих разрешений. Имитация вредоносной деятельности может иметь непредвиденные последствия.
- Сценарий. Разверните модуль в кластере AKS и попытайтесь выполнить привилегированную команду или подозрительное действие в контейнере. Например, попробуйте смонтировать корневой каталог хоста или запустить команду сканирования сети.
- Пример развертывания привилегированного модуля (для тестирования):
```ямл
APIВерсия: v1
вид: стручок
метаданные:
имя: привилегированный-под-тест
спецификация:
контейнеры:
- имя: убунту изображение: Ubuntu: последний команда: ["спать", "3600"] Контекст безопасности: привилегированный: правда хостPID: правда хост-сеть: правда хостIPC: правда ```
- Команда для применения к AKS:
kubectl apply -f привилегированный-под-test.yaml
- Пример выполнения подозрительной команды внутри контейнера (после развертывания обычного модуля):
баш kubectl exec -it <имя_пода> -- bash # Внутри контейнера попробуйте запустить что-нибудь вроде: apt update && apt install -y nmap Nmap локальный хост
- Пример развертывания привилегированного модуля (для тестирования):
```ямл
APIВерсия: v1
вид: стручок
метаданные:
имя: привилегированный-под-тест
спецификация:
контейнеры:
- Ожидаемое действие: Защитник контейнеров должен обнаружить подозрительную активность (например, развертывание привилегированного контейнера, запуск инструментов сканирования) и создать предупреждение системы безопасности.
- Проверка:
- На портале Azure перейдите к Защитник Microsoft для облака > Предупреждения безопасности.
- Ищите оповещения, связанные с смоделированной вами деятельностью (например, «Развертывание привилегированного контейнера», «Выполнение средства сетевого сканирования»).
Советы и рекомендации по безопасности
- Принцип наименьших привилегий: настройте свои модули и контейнеры с минимально возможными привилегиями. По возможности избегайте использования привилегированных контейнеров и монтирования
hostPath. - Непрерывное сканирование изображений. Интегрируйте оценку уязвимостей образов в конвейер CI/CD, чтобы сканировать образы перед их развертыванием в рабочей среде.
- Безопасные базовые изображения: используйте минимальное количество базовых изображений из надежных источников. Обновляйте свои изображения, чтобы они включали последние исправления безопасности.
- Безопасность реестра контейнеров: защитите свой реестр контейнеров Azure (ACR) с помощью строгой аутентификации, RBAC и строгих политик доступа.
- Настройки безопасности Kubernetes: следуйте рекомендациям по безопасности для Kubernetes, например, используйте сетевые политики, стандарты безопасности модулей (или контроллеры доступа) и RBAC для управления доступом и поведением модулей.
- Мониторинг и оповещение: настройте оповещения для всех важных обнаружений угроз в Защитнике для контейнеров и интегрируйте их с вашим SIEM/SOAR (например, Microsoft Sentinel) для автоматического реагирования.
- Регулярная проверка рекомендаций. Регулярно проверяйте рекомендации по безопасности, предоставляемые Defender for Cloud, и действуйте в соответствии с ними, чтобы постоянно улучшать состояние безопасности ваших контейнеров.
Распространенное устранение неполадок
- Защитник для контейнеров не включен:
- Убедитесь, что план «Контейнеры» включен в Microsoft Defender для облака на уровне подписки.
- Убедитесь, что подписка имеет соответствующую лицензию (часто включенную в Security Center Standard).
- Уязвимости изображений не обнаружены:
- Убедитесь, что реестр контейнеров правильно интегрирован с Защитником для контейнеров.
- Убедитесь, что образы помещаются в реестр или кластер после включения Защитника для контейнеров.
- Появление результатов сканирования может иметь небольшую задержку.
- Уведомления о рантиme не генерируются:
- Убедитесь, что в настройках Защитника для контейнеров для параметра «Защита во время выполнения кластеров Kubernetes» установлено значение «Включено».
- Убедитесь, что агент Защитника для контейнеров развернут и правильно работает в кластере AKS. Вы можете проверить состояние модулей, связанных с Защитником, в пространстве имен kube-system или azure-defender.
- Убедитесь, что тестируемое действие действительно запускает правило обнаружения Защитника для контейнеров. Некоторые действия можно считать нормальными в зависимости от контекста.
- Ложные срабатывания (предупреждения о законной активности):
- Изучите оповещение на портале Defender for Cloud, чтобы понять причину оповещения.
- Если это законная деятельность, вы можете отключить оповещение (с осторожностью) или настроить параметры кластера/приложения, чтобы предотвратить пометку этой активности как подозрительной.
- Отправьте в Microsoft отзыв о ложных срабатываниях, чтобы улучшить анализ угроз.
Заключение
Microsoft Defender для контейнеров — это важный инструмент для защиты полного жизненного цикла контейнерных рабочих нагрузок. Обеспечивая оценку уязвимости образов, защиту кластеров Kubernetes во время выполнения и непрерывный мониторинг угроз, он позволяет организациям безопасно создавать и эксплуатировать контейнерные среды. Эффективная реализация этих возможностей имеет решающее значение для снижения рисков, связанных с внедрением контейнеров, обеспечения соответствия требованиям и укрепления общего состояния безопасности. Благодаря этому практическому руководству специалисты по безопасности и ИТ-администраторы будут хорошо подготовлены к настройке, проверке Microsoft Defender для контейнеров и управлению ими, защищая свои наиболее ценные контейнерные активы.
Ссылки:
[1] Microsoft Learn. Что такое Microsoft Defender для контейнеров?. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/defender-for-containers-introduction. [2] Microsoft Learn. Архитектура безопасности контейнеров — Defender for Cloud. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/defender-for-containers-architecture. [3] Microsoft Learn. Защитите свои контейнеры Azure с помощью Защитника для контейнеров. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/tutorial-enable-containers-azure. [4] Microsoft Learn. Настройка компонентов Microsoft Defender для контейнеров. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/defender-for-containers-enable [5] Microsoft Learn. Оценки уязвимостей для поддерживаемых сред. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/agentless-vulnerability-assessment-azure [6] Microsoft Learn. Предупреждения системы безопасности в Microsoft Defender для облака. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/alerts-overview. [7] Microsoft Learn. Матрица поддержки контейнеров в Defender for Cloud. Доступно по адресу: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/support-matrix-defender-for-containers.