Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Защита контейнеризации: обеспечиваем безопасность Docker и Kubernetes

Роман Андреев
Роман Андреев
Технический писатель
29 ноября 2022 г.
660
8 минут чтения
Средний рейтинг статьи: 5

Как Управлять Ключами И Базами Данных Redis (1)

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

Защита контейнеризации: что важно знать

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

Образы

Образ контейнера (Image) — первая потенциальная угроза. Все контейнеры запускаются именно из образов, поэтому зараженный образ становится серьезной угрозой для взлома всей системы. Для защиты системы от заражения требуется проводить периодическое сканирование, причем это касается каждого разворачиваемого образа. В целях уменьшения рисков не следует пользоваться образами, полученными из сомнительных источников. И даже если образ скачивается из официального хранилища (например, Docker), он должен быть тщательно проверен перед развертыванием или модификацией.

Реестр

За счет реестра программы контейнеризации и оркестраторы обеспечивают управление образами, поэтому вредоносный код в реестре также ставит под угрозу всю инфраструктуру. При этом уровень реестра считается одним из наиболее уязвимых. Ущерб от вредоносного кода в реестре может быть колоссальным, ведь под угрозу в этом случае ставятся все данные в системе. Для защиты реестра обычно организуют безопасный доступ и сканирование в постоянном режиме. На организацию доступа следует обратить особое внимание, поскольку при получении root-доступа злоумышленники получают возможность интеграции вредоносного кода в образы и исполнения этого кода с правами суперпользователя. Такая ситуация называется root-escape. Еще один распространенный термин: jailbreak.

Программная среда

На первый взгляд, запуску приложений в контейнерах ничего не угрожает, поскольку все процедуры происходят в «пузыре». Однако этот «пузырь» создает программная среда, которая также является источником потенциальных уязвимостей. При этом оценка безопасности среды исполнения приложений — одна из наиболее сложных задач для специалистов по кибербезопасности. Дело в том, что под каждое приложение создается своя программная среда. И уязвимости могут содержаться в самом ПО, при помощи которого работает приложение в контейнере. Задачей специалиста по кибербезопасности в данном случае является выявление нормального поведения контейнерной среды с тем, чтобы затем фиксировать аномальное, то есть отклонения от этой нормы.

Оркестратор

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

Сетевой доступ

Успешность почти всех кибератак зависит от организации сетевого доступа (те же самые роли и права). И ведущую роль здесь играет человеческий фактор. Если допущена ошибка, даже самое надежное защитное ПО не спасет от утечки данных. А решения здесь — повышение грамотности сотрудников и максимальный уровень шифрования трафика. В этом случае даже если злоумышленники получат доступ к данным, извлечь из них пользу не получится. Однако получится их уничтожить, поэтому про обучение своего персонала правилам кибербезопасности забывать не стоит.

Хранилище

Казалось бы, про небрежное обращение с образами контейнеров говорить излишне, но эту ошибку разработчики допускают снова и снова. А здесь нужно следовать одной известной поговорке, которая применительно к контейнерам будет звучать так: «семь раз проверь, один выложи». При помещении образов контейнеров в общее хранилище следите за тем, что в код образа не была «зашита» конфиденциальная информация, особенно логины и пароли.

ОС хоста

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

В отдельных случаях под контейнеры создается своя ОС, которую можно развернуть, например, с помощью технологии виртуализации, запустив ее через виртуальную машину. А разработчики ОС семейства Linux предлагают несколько готовых решений для разработчиков приложений, работающих с контейнерами. Эти системы отличает легкость и компактность, поскольку в них установлен только минимальный набор ПО, которого достаточно для выполнения главной задачи:

  1. Container Linux от Red Hat. Если этого минимума недостаточно, Red Hat предлагает это же решение в интегрированном виде, в составе собственной платформы OpenShift. Аналогичный продукт: Fedora Atomic Host, который также является частью ядра Fedora CoreOS, оптимизированной системы для работы с контейнерами.

  2. RancherOS. Особенностью этой самобытной ОС является то, что здесь любое приложение запускается как контейнер, включая даже систему инициализации.

  3. Photon OS от VMware. Предлагается функционал, аналогичный Fedora CoreOS. Особенностью является оптимизация под собственную платформу виртуализации облачных вычислений vSphere, также разработанную и поддерживаемую VMware.

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

Решения для защиты контейнеризации

На российском и мировом рынках существует немало компаний, предлагающих решения для безопасности контейнеров. Перечислим и кратко опишем те, которые попадают в топ рейтингов IT-порталов. Но перед этим рассмотрим инструменты самих операционных систем. В Linux существуют: 

  • Избирательный контроль доступа или DAC. Это система контроля доступа к файлам с настройкой прав чтения, записи, исполнения файлов.

  • chroot / pivot_root для настройки иерархии файловой системы. Этот инструмент обеспечивает невидимость для конкретного пользователя тех элементов, которые расположены выше по иерархическому дереву.

  • namespace — помещает процесс в своеобразную «тюрьму», аналогично тому, как работает технология контейнеризации. Служит для дополнительной защиты контейнеров и образов.

  • cgroup или Control Groups — ограничивает доступ к определенным ресурсам, причем не программным, а физическим. Это важно, поскольку внутри контейнера может находиться что угодно, а просканировать содержимое не всегда возможно. И в этом случае вредоносный код не проникнет в те области системы, которые были отсечены с помощью cgroup.

  • capabilities — создает привилегии для процессов, то есть отдельные процессы смогут выполнять только пользователи с root-доступом, что снижает риск взлома из-за человеческого фактора.

Как видим, в операционных системах семейства Linux достаточно собственных инструментов защиты контейнеров. Однако не помешает задействовать и специальное ПО от разработчиков, специализирующихся на вопросах кибербезопасности. Вот некоторые решения:

  1. CipherTrust Transparent Encryption Container Security — набор криптографических инструментов, контроль доступа, журналирование.

  2. Guardicore Centra Security Platform — решение для комплексной защиты тандема Docker + Kubernetes, есть инструменты для защиты на уровне ЦОД.

  3. Aqua Cloud Native Security Platform — сканирует образы и реестр, поддерживает безопасность в облаке, ведет логи и разворачивает брандмауэр, разработанный под платформы контейнеризации.

  4. Qualys Container Security — поддерживает защиту контейнеров на протяжении всего их жизненного цикла. Определяет уязвимости еще на этапе сборки. Также поддерживает собственный сканер безопасности в виде отдельного слоя в контейнере.

  5. NeuVector Container Security — защита процессов и файлов в контейнерах, онлайн-сканирование на предмет поиска уязвимостей, многоуровневый фаерволл. Отдельные функции для дополнительной безопасности Kubernetes.

  6. CloudGuard for Container Security — расширенный инструментарий для безопасности Kubernetes, исправление ошибок конфигураций, настройка правил работы контейнеров, централизация отслеживаемых данных и создание отчетов.

  7. StackRox Kubernetes Security Platform — создание и управление правилами, белыми списками, контроль поведения во время работы контейнеров, возможность совместной работы с другими сканерами образов и контейнеров (например, от Google).

  8. Tenable.io Container Security — решение для корпоративной защиты, среди инструментов которого онлайн-мониторинг ранее неизвестных угроз, проверка целостности образов, оценка уровня риска в соответствии с настройками пользователя и оценка уровня защищенности платформы контейнеризации.

  9. Prisma Cloud Compute — многоуровневая защита контейнерных стеков, включая обеспечение безопасности реестра, ОС хоста и самих контейнеров. Также есть инструменты для облачной безопасности.

  10. MVision Cloud for Container Security — решение для безопасности контейнеров в облаке. Поддерживается интервальный мониторинг контейнеров для проверки неизменности кода.

  11. Cloud One Container Security — встроенный сканер образов, настройка политик для разрешения или блокировки развертывания и запуска контейнеров, а также инструменты облачной безопасности.

  12. Sysdig Secure — полезное вспомогательное ПО, включающее набор модулей для отслеживания уязвимостей, настройки исполняемой среды, уровня защиты контейнерных приложений.

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону