Два подхода к уменьшению поверхности атаки на Kubernetes (Алексей Костарев, OSSDEVCONF-2025)
Материал из 0x1.tv
- Докладчик
- Алексей Костарев
В докладе пойдёт речь о двух продуктах компании «Базальт СПО», обеспечивающие уменьшения площади атаки на kubernetes-кластер:
- podsec-k8s (PODman SECurity) — запуск нативного kubernetes в rootless режиме;
- ALT Orchestra — реализация ОС TALOS на платформах ALTLinux (Sisyphus, P11).
Содержание
Видео[править вики-текст]
Презентация[править вики-текст]
Thesis[править | править вики-текст]
Ключевые слова: kubernetes, podman, cri-o, rootless, talos.
Kubernetes поддерживает множество инструментов, обеспечивающих гибкость решений. Но в то же время каждый инструмент повышает поверхность атаки на кластер. В докладе рассматривается два решения, снижающих поверхность атаки на кластер: rootless kubernetes (podsec), sshless kubernetes (ALT Orchestra/Talos).
Rootless kubernetes (podsec)[править | править вики-текст]
Нативный kubernetes запускает в POD’ах образы с внутренним пользователем root в режиме, когда пользователь root в контейнере имеет равные права с суперпользователем root HOST-системы.
В этом случае, примонтировав каталог контейнера к корневому каталогу HOST-системы, злоумышленник может полностью очистить файловую систему.
Rootless режим позволяет запускать POD образов с внутренним пользователем root в rootless (fake root) режиме от обычного пользователя. При этом в рамках POD’а все запущенные процессы имеют права root, позволяющие использовать системные ресурсы в рамках своего namespace, но в рамках HOST-системы все процессы данного POD’а имеют права пользователя, от которого был запущен данный POD.
В этом случае при монтировании каталога POD’а к каталогу HOST-системы злоумышленник не сможет нарушить работу HOST-системы.
RPM-пакеты podsec, podsec-k8s позволяют запускать нативный kubernetes в rootless режиме. При этом, в отличие от нативного kubernetes версии 1.32 и выше, позволяющих запускать отдельные POD’ы в rootless-режиме, podsec запускает все контейнеры, включая контейнеры kubernetes (kube-apiserver, kube-controller, etcd, …), в режиме rootless.
В качестве основного движка kubernetes-кластера используется CRI-O, поддерживающий (как и команда podman) политики доступа к образам, что позволяет создавать группы пользователей с разными правами доступа к образам, регистраторам и т. п.
Кроме этого группа пакетов podsec включает в себя RPM-пакеты:
- podsec-k8s-rbac — работа с Role Based Access Control (RBAC) правилами доступа;
- podsec-inotify — группа команд для мониторинга уязвимостей и конфигурации кластера.
SSHless kubernetes (ALT Orchestra)[править | править вики-текст]
ALT Orchestra представляет собой порт OS Talos на ядро и пакетную базу дистрибутива ALTLinux.
Особенности решения Talos:
- отсутствие доступа к узлам по ssh;
- работа с кластером только через команды talosctl и kubectl;
- минимальная файловая система, размещаемая в оперативной памяти и монтируемая в режиме только для чтения;
- богатый набор встроенных сервисов: CNI, HA, Service Discovery, VIP, …
Особенности ALT Orchestra:
- решение зарегистрировано в реестре российского программного обеспечения — https://reestr.digital.gov.ru/reestr/3607624/;
- все ISO и docker-образы полностью собираются на основе пакетной базы ALTLinux;
- поддерживается собственный стек extensions (расширений) на основе пакетной базы ALTLinux;
- русифицирован и принят в upstream интерфейс image-factory;
- создан собственный сервис image-factory https://factory.altlinux.space/.
Примечания и ссылки[править вики-текст]
- https://github.com/alt-cloud/podsec
- https://www.basealt.ru/alt-orchestra
- https://factory.altlinux.space/
- Костарев А. Ф., Степченко А. С. Реализация rootless kubernetes в рамках ALTLINUX-пакетов — Девятнадцатая конференция разработчиков свободных программ
- PODSEC (PODman SECurity). Общее описание — https://github.com/alt-cloud/podsec/blob/master/README_ru.md
- Исходный код podsec на github — https://github.com/alt-cloud/podsec/
- Rootless kubernetes: описание установки в разных конфигурациях — https://www.altlinux.org/Rootless_kubernetes
- Rootless kubernetes: описание установки в защищённом режиме без доступа в Интернет — https://www.altlinux.org/Инициализация_rootless_кластера_podsec-k8s_в_защищённом_режиме_без_доступа_в_Интернет
- Github: исходный код usernetes — https://github.com/rootless-containers/usernetes
- Описание формата файла описания политик доступа policy.json — https://docs.podman.io/en/v4.4/markdown/podman-image-trust.1.html
- Описание формата вызова команды podman-image-trust работы с политиками доступа — https://docs.podman.io/en/v4.4/markdown/podman-image-trust.1.html
- Описание команд мониторинга безопасности — https://github.com/alt-cloud/podsec/tree/master/podsec-inotify/md/ru
- Запись о программном продукте АЛЬТ ОРКЕСТРАЦИЯ в реестре Российского программного обеспечения — https://reestr.digital.gov.ru/reestr/3607624/
- Описание Альт Оркестрация (ALT Orchestra) — https://www.basealt.ru/alt-orchestra
- WEB-интерфейс factory.altlinux.space создания артефактов: ISO, QCOW образов, PXE, … — https://factory.altlinux.space/
- АЛЬТ ОРКЕСТРАЦИЯ (ALT Orchestra): инструкция по установке
- АЛЬТ ОРКЕСТРАЦИЯ (ALT Orchestra): Руководство администратора
