Контейнерная технология Docker изолирует ресурсы почти так же надежно, как и виртуальные машины или контейнеры Linux, но еще не обладает достаточно зрелыми средствами управления и администрирования. Такой вывод сделала аналитическая компания Gartner в отчете, посвященном безопасности Docker.
За счет автоматизации создания и развертывания приложений технология Docker, которая является облегченной формой виртуализации, избавляет разработчиков от зависимости от инфраструктурного ПО, тем самым сокращая расходы и повышая эффективность процесса разработки.
Хотя контейнеры Docker и Linux обеспечивают безопасное использование компьютерных ресурсов, зрелые системы виртуализации, такие как Xen, KVM и VMware, обладают более широкими возможностями, выходящими за границы простой защиты ресурсов. В них предусмотрены средства системного управления виртуальными машинами и операционными системами, которые позволяют следить за операциями, изменениями и авторизацией пользователей, выполняющих определенные действия.
Современные контейнерные технологии пока отстают с точки зрения обеспечения конфиденциальности, целостности и доступности. Однако аналитики Gartner полагают, что уже в скором будущем это положение изменится, а пока что для обеспечения дополнительного уровня безопасности контейнеры можно использовать поверх гипервизоров или облачной инфраструктуры.
Как отмечает Gartner, в настоящее время контейнерная технология Docker подходит для применения в частных и публичных облачных многоарендных (multi-tenant) средах типа «платформа как сервис» (PaaS), которые зачастую используются разработчиками для создания и тестирования приложений. Однако аналитики воздержались от утверждения, что контейнеры пригодны для облачных многоаредных сред типа «инфраструктура как сервис» (IaaS), в которых могут исполняться ответственные приложения нескольких конкурирующих компаний, так как контейнеры пока не обеспечивают полную гарантию того, что вредоносный код из системы одного арендатора не нарушит работу другой системы.
Поэтому Gartner считает, что в случае использования контейнеров в сложных средах с разными уровнями доверия, зонами безопасности и потенциально враждебными арендаторами следует применять дополнительные средства защиты, такие как ОС SELinux, которая ограничивает доступ приложений к файлам и сетевым ресурсам.
Аналитики подчеркивают, что контейнеры Linux вообще, и Docker в частности, не просто являются облегченными вариантами технологии виртуальных машин, но также обеспечивают некоторый уровень безопасности. Они «легче», так как совместно используют ядро главной операционной системы, а в случае виртуальных машин каждое приложение работает на своей операционной системе. В результате один и тот сервер может вместо десятков виртуальных машин исполнять сотни контейнеров, что обеспечивает более высокую плотность использования вычислительных ресурсов.
Однако контейнерная технология еще довольно молода, поэтому Gartner рекомендует применять ее осторожно, начиная с развертывания в ограниченном объеме в ожидании появления стандартов де-факто для управления и администрирования. Сейчас в области контейнеров активно развивается ряд проектов, включая Docker, Kubernetes компании Google и Rocket фирмы CoreOS, которые могут внести вклад в разработку средств управления контейнерами, но эти разработки еще находятся на ранних этапах.
А пока что пользователи контейнеров могут устанавливать границы для действий арендаторов в многоарендных средах с помощью инструмента nsenter, который позволяет задавать границы для взаимодействия между арендатором и его контейнерами. Есть и другие средства, например Apache Mesos, который может применяться для управления в случае масштабного развертывания контейнеров.
В заключение Gartner подчеркивает, что настоящее время безопасность контейнеров является горячей темой, так как предприятия оценивают возможности применения контейнерной технологии для промышленного применения. Однако в средах с совместным использованием главной ОС, к которым относятся и контейнеры, любая ошибка в работе может привести к образованию большой «дыры» в безопасности. Так, недавно в предыдущей версии Docker были обнаружены серьезные ошибки, из-за которых вредоносный код мог получить привилегированный уровень доступа и выполнять несанкционированные действия с файлами.