Pull to refresh
Флант
DevOps-as-a-Service, Kubernetes, обслуживание 24×7

В Kubernetes 1.22 режим seccomp сделают активным по умолчанию

Reading time2 min
Views2.5K

На днях стало известно, что в Kubernetes v1.22.0 ожидается альфа-реализация функции, которая при запуске контейнеров превентивно включает режим seccomp (Secure Computing Mode). Идея в том, чтобы фильтрация системных вызовов, которые могут выполнять контейнеры, работала в K8s по умолчанию; сейчас seccomp нужно активировать вручную. Нововведение призвано повысить уровень базовой безопасности Kubernetes.

Инициатор соответствующего KEP (Kubernetes Enhancement Proposal) — немецкий инженер и Open Source-энтузиаст Саша Грунерт (@saschagrunert). Он отметил, что seccomp защищает и от CVE, и от уязвимостей нулевого дня. «Если мы включим seccomp по умолчанию, Kubernetes будет более безопасным», — написал Грунерт.

Новость многих порадовала:

«Это действительно большое дело! Поздравляю всех, кто помог сделать это возможным».
«Это действительно большое дело! Поздравляю всех, кто помог сделать это возможным».
«Вау, правда ли, что Kubernetes seccomp включен по умолчанию после стольких лет? Слава @saschagrunert за то, что сделал это!»
«Вау, правда ли, что Kubernetes seccomp включен по умолчанию после стольких лет? Слава @saschagrunert за то, что сделал это!»

Как seccomp работает сейчас

Приложение в контейнере может быть уязвимо. Без фильтрации системных вызовов злоумышленник без труда выберется из контейнера, после чего скомпрометирует узел или целый кластер. Seccomp — механизм ядра Linux, который защищает от такой компрометации.

Для фильтрации используются профили seccomp, в которых указываются легитимные вызовы. Сами профили активирует исполняемая среда контейнера (container runtime) при его запуске: после этого ядро ОС может контролировать системные вызовы. (Подробнее о том, как работает seccomp в Kubernetes и как его настраивать, можно почитать в этой статье.)

В текущей версии Kubernetes seccomp по умолчанию отключен. Чтобы его включить, нужно прописать профиль seccomp в аннотациях объекта PodSecurityPolicy. Задавать профили seccomp можно на уровне pod’а и на уровне контейнера. Все pod’ы, для которых профиль seccomp не определен, запускаются в режиме Unconfined.

Кстати, PSP (Pod Security Policies) уже устарели для v1.21 и будут удалены в v1.25. Но пока именно они определяют настройки безопасности.

Как это будет реализовано в K8s 1.22.0

В  Kubernetes каждой рабочей нагрузке по умолчанию присваивается встроенный профиль RuntimeDefault. Теперь RuntimeDefault станет еще и seccomp-профилем по умолчанию. То есть ему будет присваиваться значение SeccompProfile.type в настройках PodSecurityContext и SecurityContext.

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

В то же время режим seccomp по умолчанию «не освобождает от ответственности»: сам профиль всё равно придется настраивать, прописывать разрешения, блокировки и т. д.

P.S.

Читайте также в нашем блоге:

Tags:
Hubs:
+27
Comments0

Other news

Information

Website
flant.ru
Registered
Founded
Employees
201–500 employees
Location
Россия
Representative
Тимур Тукаев