Канал о (не)безопасности Kubernetes + микросервисных, контейнеризированных приложений. Ведет команда www.luntry.ru Вопросы, идеи, предложения => @Qu3b3c https://knd.gov.ru/license?id=673ddbc21039886b1d03b7ce®istryType=bloggersPermission
Хотим представить вашему вниманию Kubernetes security diagram (cheatsheet) (исходный код тут). Интересная попытка визаулизировать разные аспекты безопасности Kubernetes
на одной диаграмме. Диаграмма развивается и дополняется - это можно заметить по странице проекта. При желании туда можно и контребьютить ;)
В одном из наших недавних постов мы уже рассказывали как мы сделали honeypot на базе Luntry. И вот недавно один из наших друзей поделился ссылкой на работу "HoneyKube: Designing and Deploying a Microservices-based Web Honeypot" (у данной работы и исходный код выложен на GitHub).
Чего-то супер примечательного и высоко технологичного там нет, но как само описание подхода и полученные результаты может быть интересно.
P.S. А сегодня-завтра можно пообщаться с нашей командой в рамках форума ITSEC, где будет отдельный поток по защите контейнеров ;)
В 2024
году мы писали про OCI
-совместимый runtime для FreeBSD jails, а в 2025
уже второй день все только что и обсуждают нативную поддержку Linux
контейнеров (видео, код 1 и 2) в macOS 26
=)
kubernetesMiracle это специально уязвимое тестовое приложение от ребят из 4rays
, на котором можно как оттачивать свои атакующие навыки, так и тестировать используемые защитные меры и решение.
В приложении есть:
1) Уязвимый Wordpress
с CVE-2019-9978
2) Мисконфиг в RBAC
3) Подмена образа в image registry
На этом БеКон 2025 была парочка замечательных релизов и одним из них является визуализация информационного сообщения ФСТЭК России 240/24/38 от Андрея Слепых. Можно изучить как саму карту, так и презентацию "Как соответствовать требованиям ФСТЭК, если у вас контейнеры и кластеры". И это будет полезно как тем кто идет на сертификацию, так и тем кто просто хочет повысить уровень безопасности своих микросервисных приложений.
Читать полностью…Всем, привет!
Сегодня проходит наша конференци БеКон 2025. Старт уже совсем скоро.
Слайды докладов и возможность спросить вопросы будет тут @bekon_conf
Казалось – через kubectl debug
можно довольно легко сбежать на Node
(если на это есть соответствующие права):
kubectl debug node/desktop-control-plane -it --image=busybox
chroot /host
container runtime
сокетом, можно получить такие ошибки:
ctr: failed to unmount /tmp/containerd-mount2094132404: operation not permitted: failed to mount /tmp/containerd-mount2094132404: operation not permitted
ephemeral container
запускается с недостаточными привилегиями. И это можно исправить просто указав флаг --profile
:
kubectl debug node/desktop-control-plane -it --image=busybox --profile=sysadmin
Rory McCune
у себя в статье – Kubernetes Debug Profiles.kubectl debug
можно передать параметр -n
и тогда debug контейнер запустится в указанном неймспейсе. Особенно удобно поднимать его в kube-system
, поскольку имя Pod
будет что-то вроде node-debugger-desktop-control-plane-9gd7q
и не привлечет много внимания, чего порой нужно добиться на пентесте.
Читать полностью…
Наверняка, если вы проводите пентесты, то попав в изолированное и/или non-root
окружение, в первую очередь вы попытаетесь поднять себе привилегии. Скорее всего для этого вы будете использовать известный всем LinPEAS
(он кстати тоже частично может помочь, если вы оказались в докер контейнере или Kubernetes Pod
).
Однако, ребята из Hacktrics
пошли дальше и сделали набор скриптов – CloudPEASS. Эта штука представляет из себя набор python
скриптов для поднятия привилегий в облачных окружениях GCP
, AWS
и Azure
.
Так что, если проводите пентесты в облаках, CloudPEASS
– must have
!
Недавно наши друзья из исследовательской команды 4rays у себя на канале опубликовали пост про "Безопасность локальных docker-реестров через механизм нотификаций" про отслеживание подозрительной активности в локальных docker
-реестрах.
Честно мы (да думаю и многие) в данном направлении ранее даже не думали. В основном тут все сосредоточенны на:
- Вопросах аутентификации и авторизации
- Безопасной контролируемой сборке
- Registry Staging
- Защищенном registry
- Подписи образов
- Запуску только из разрешенного registry
- Запрет на push
из prod
кластера
- и т.д.
И действительно дополнительным уровнем можно еще добавить мониторинг за операциями работы с образами и их слоями. На пример, когда:
- используется не типичный user-agent
- работа проходит со странных адресов
- работа идет в нерабочее или не типичное время для данной операции
- имя образа не соответствует шаблону именования вашей компании
Кто-нибудь уже так делает или смотрел в эту сторону?
Совсем недавно, проходил очередной контест Pwn2Own
. Примечательно, что организаторы ввели новую категорию AI
с такими таргетами как:- Chroma
- Postgres pgvector
- Redis
- Ollama
- NVIDIA Triton Inference Server
- NVIDIA Container Toolkit
Да, в списке есть тот самый NVIDIA Container Toolkit
для которого мы готовили эксплойт и выпускали статью на этот счет!
Исследователи из WIZ
в рамках Pwn2Own
нашли еще один баг в этом тулките. Официально ни присвоения CVE
, ни патча еще не последовало.
Как обычно, после раскрытия 0-day
в ходе соревнования Pwn2Own
у вендоров есть 90
дней на подготовку и выпуск патча для своих продуктов, прежде чем Trend Micro Zero Day Initiative
опубликует технические подробности.
Отдельно стоит отметить, что категория Cloud-Native/Container
осталась без находок.
Почти месяц назад у Kyverno
вышел новый релиз – 1.14.0
. И это довольно значимый релиз, по скольку с него, можно сказать начинается новая веха в развитии этого Policy Engine
. А именно – управление политиками стало более модульным, оптимизированным и мощным. Из крупных нововведений:
- два новых типа политики ValidatingPolicy
и ImageValidatingPolicy
- улучшения и оптимизации при использовании CEL
в политиках
- Policy exceptions
теперь поддерживают CEL
выражения
- улучшения kyverno CLI
для валидации любых json-объектов
Более подробно об этом релизе и не только можно узнать в блоге Kyverno
и в их документации.
Всем, привет!
Очень внимательные люди в программе на сайте нашей конференции БеКон 2025 заметили упоминание Секретного доклада на закрытии конференции. И полетели вопросы, что это за доклад)
Раскрывать секрет мы сейчас не будем, но правда будет 11-й доклад и он будет без записи и без публикации материалов.
P.S. Билетов осталось совсем мало. И на наш взгляд если вы занимаетесь DevSecOps, безопасностью контейнеров, кластеров Kubernetes, то единственной уважительной причиной не быть на конференции может быть только невозможность быть в Москве в этот день.
У нас в блоге вышла новая замечательная статья "Случайный ханипот: как мы обнаружили криптомайнер в контейнере с помощью Luntry".
Из нее вы узнаете как Luntry может выполнять роль sandbox
, deception system
, honeypot
и помочь ловить даже неизвестные атаки и вредоносный код, не имея никаких заготовленных правил, сигнатур и т.д.
И, конечно, мы расскажем что и как можно сделать чтобы не повторить судьбу такой приманки ;)
Если вы хотите более подробно погрузиться в работу Static Pods
и порождающихся вместе с ними Mirror Pods
, то статья Kubelet Mirror Pod Behaviours точно для вас.
В статье автор рассматривает два интересных поведения Mirror Pods
:
1) Mirror Pods
обходят любые Admission Controls
, т.к деплоятся в обход Kube API
. Хоть этого не видно через kubectl или в логах kubelet
, тем не менее успешный запуск контейнера можно увидеть обратившись напрямую к container runtime socket
.
2) Mirror Pods
возможно создавать в несуществующих namespaces
. Не смотря на то, что нам вернутся ошибки, контейнер будет создан. Это также можно увидеть обратившись напрямую к container runtime socket
.
На канале мы уже как-то рассказывали про Aggregate Roles
в Kubernetes (1, 2), но хочется ещё раз напомнить о таком мощном механизме.
В статье Simplifying RBAC Extension in Kubernetes: Leveraging Aggregate ClusterRoles автор рассказывает как объединить несколько ролей для динамического контроля доступа, упростить управление разрешениями и применять изменения декларативно, используя лучшие практики.
Команда мейнтенеров Go
выпустила патчи для версий golang 1.21.11
и 1.22.4
, устраняющие состояние гонки симлинков при использовании os.RemoveAl
l, однако это проблема затронула и Kubernetes
. Kubernetes Security Response Committee
получил отчет о том, что эта проблема может быть использована в Kubernetes
для удаления произвольных директорий на Node
с правами root
.
Проблема аффектит следующие версии Kubernetes
:- <1.30.2
- <1.29.6
- <1.28.11
- <1.27.15
Исправления доступны в версиях:- 1.30.2+
- 1.29.6+
- 1.28.11+
- 1.27.15+
Интересно, что ни команда Go
, ни команда Kubernetes
не присвоила CVE
для этой проблемы.
Начинаем эту неделю со статьи Top 15 Kubectl plugins for security engineers in 2025, в которой Sysdig
предлагают неплохую подборку krew
плагинов для Security
инженеров.
Из интересного – есть детальная таблица, которая поможет понять поддерживается ли плагин на данный момент, возможно ли работать с новыми версиями K8s
и какой Use Case
может решить плагин.
Небольшая статья Am I Still Contained? от Rory McCune
повествующая о том, что нельзя полагаться на инструменты, которые всегда работают так, как работали раньше.
Автор разбирает довольно старый инструмент amicontained (о котором мы не раз рассказывали на канале), который уже давно не обновлялся, и фиксит там проблему с определением системных вызовов IO_URING
внутри контейнеров.
Новый работающий форк можно найти тут.
У инструмента ctrsploit, который будет полезен при проведении пентеста Kubernetes
кластеров и о котором мы рассказывали на канале вышло очередное обновление! Автор расширил эксплоит пак и добавил туда сплойт для свежей CVE-2025-47290
под containerd
.
Уязвимость позволяет модифицировать файловую систему хоста при скачивании специально скрафченного образа. С помощью ctrsploit
можно собрать такой образ и модифицировать payload
по необходимости.
Что примечательно, ранее в публичном доступе не было эксплойта под CVE-2025-47290
. Уязвимость затрагивает только версию containerd 2.1.0
.
Статья OPA memory usage considerations and lessons from our transition to Kyverno описывает реальный опыт при использовании OPA Gatekeeper
для управления политиками в Kubernetes
-кластерах и их переход на Kyverno
. Основной проблемой при масштабировании кластеров стало высокое потребление памяти OPA
, особенно при синхронизации большого количества объектов, таких как Pod
’ы или CronJob
’ы. Эти ограничения привели к увеличению нагрузку и ухудшению производительности, особенно в многопользовательских средах с высокой динамикой.
В поисках более эффективного решения команда перешла на Kyverno
— нативный для Kubernetes
механизм политик, который работает без необходимости синхронизировать данные и использует Kubernetes API
в реальном времени. Этот подход позволил значительно снизить потребление памяти (в одном случае — с 8 ГБ до 2.7 ГБ) и упростить поддержку политик.
Всем, привет!
Уже завтра состоится конференция БеКон 2025!
Несколько небольших новостей:
1) Мы сделали черновой вариант настольной игры про контейнерную безопасность (130 карточек) и ее можно будет опробовать на стенде Luntry. Игра имеет и развлекательный, и обучающий характер. После правки баланса, опечаток и т.д. будет финальная версия - очень нужна обратная связь. В дальнейшем есть идеи и по дополнениям для новых карточек.
2) В рамках спикерпати будет огненный квиз от широко известных @IT_Friday и @tech_b0lt_Genona ;)
3) С утра будут доступны стикеры от нашего товарища cyberfolk
, который выступал у нас в прошлом году. Успейте взять себе их с утра - их совсем немного.
4) Появился каталог мерча - можете заказать у друзей кто будет на конфе, если вы не сможете присутствовать
5) Все новости, анонсы, слайды (они по прежнему будут публиковаться сразу как докладчик выходит на сцену) будут доступны тут @bekon_conf ! В комментариях к слайдам можно спрашивать свои вопросы и докладчики после выступления ответят на них. Таким образом, это возможность задать свои вопросы для тех кто на конференции присутствовать не может.
BLAFS - инструмент для исключения из образов всего лишнего, не нужного, постороннего для оптимизации размера, уменьшения поверхности атаки и уменьшения количества CVE
в образе.
Подробнее об инструменте можно узнать из его пейпера "The Cure is in the Cause: A Filesystem for Container Debloating".
В документе инструмент называется BAFFS (Bloat Aware File-System), но авторы потом переименовали и выложили по другому адресу. Для своей работы инструмент конвертирует образ контейнера в новый вид с новой ФС и уже с помощью нее понимает, что в образе не используется и можно выкинуть. Естественно для профилирования вам нужно запустить хорошие, полноценные unit tests/integration tests
. Иначе профилирование будет не точное.
Идейно напоминает инструмент Slim/SlimToolKit/Mint
(о нем писали тут), и о с ним также проводится сравнение. Классно что новая предложенная техника также может быть использована вместе с lazy load
.
Всем, привет!
Если вы вчера пытались купить билет и у вас уже это не получилось, то спешим сообщить , что сегодня мы добавили еще небольшую партию билетов ;)
Всем, привет!
До конференции БеКон 2025 остается совсем немного времени и мы хотим сообщить что на площадке впервые будет представлен МЕРЧ store!
Часть нашего лимитированного мерча вы можете уже увидеть на этих фотках ;)
На нашем сайте в раздел Исследований стало доступно видео и слайды выступления "Стандарт безопасности контейнеров NIST 800 190 в 2025 году" с конференции Deckhouse Conf 2025.
P.S. Получив обратную связь по данной работе, мы продолжили работать над картой и в последствии выложим ее в открытый доступ.
Не так давно наш хороший товарищ и докладчик первого БеКон Дмитрий Путилин, хорошо известных в узких кругах Кубоводов, завел свой канал и выпустил невероятный материал Kubernetes The Hard Way на русском языке и с доскональным внимание к деталям.
Насколько детально там все рассматривается можно понять по прямому сравнению с Kubernetes The Hard Way от Kelsey Hightower.
В общем, это просто MUST HAVE материал для тех кто хочет реально понимать Kubernetes
и стать крутым DevOps
специалистом, а не ClickOps
;)
На канале в предыдущих постах мы несколько раз затрагивали важность использования User Namespace
в Kubernetes
.
Сегодня хотим поделиться еще одним ресурсом, на котором еще 6 (!) лет назад обсуждали проблемы и критиковали использование данного механизма.
Если вы еще не выставляете
spec:
hostUsers: false
Всем, привет!
До БеКон 2025 осталось ровно 2 недели.
И мы до сих пор не рассказали еще об одном очень важном аспекте любой конференции это ее выставка. Партнерские стенды у нас появились в том году, а в этом году их стало в 3 раза больше! При этом к их подбору и подготовке мы подходим не слабее, чем к отбору докладов ;)
В этом году в рамках выставки вы можете познакомиться и пообщаться с:
- Разработчиками 4-х платформ контейнеризации - всё запустить
- Крутыми профессионалами в области DevSecOps
- всё просканировать, проанализировать, проконтролировать
- Разработчиками 4-х платформ ASOC/ASMP
- всё затриажить, избавиться от дубликатов и проконтролировать исправление
Так что если вы строите современную инфраструктуры с ориентиром на безопасность, то за 1 день можно посмотреть абсолютно все: от IT-ландшафта, до безопасности оркестратора с обработкой уязвимостей.
Все это полезно ИТ
и ИБ
департаментам.
P.S. Если вы у нас раньше не были, то имейте ввиду. Последние 2 недели это самая жаркая пора по покупке билетов. Так что если вы не успеете их купить, то пеняйте на себя. У нас их ограниченное количество.
Если запустить контейнер в Kubernetes
и ничего не делать с capabilities (это подмножество привилегий, которые обычно предоставляются root
), то в итоге у контейнера они все равно будут. Это так называемые Default Capabilities
:
- cap_chown
- Разрешает изменение владельца файлов.
- cap_dac_override
- Разрешает доступ к файлам, игнорируя права.
- cap_fowner
- Разрешает изменение владельца файлов.
- cap_fsetid
- Разрешает установку битов setuid и setgid.
- cap_kill
- Разрешает отправку сигналов процессам.
- cap_setgid
- Разрешает изменение группы.
- cap_setuid
- Разрешает изменение пользователя.
- cap_setpcap
- Разрешает установку собственных способностей.
- cap_net_bind_service
- Разрешает привязку к привилегированным портам (ниже 1024).
- cap_net_raw
- Разрешает использование сырых сокетов.
- cap_sys_chroot
- Разрешает изменение корневой директории.
- cap_mknod
- Разрешает создание специальных файлов.
- cap_audit_write
- Разрешает запись в журнал аудита ядра.
- cap_setfcap
- Разрешает установку способностей для файлов.
Поэтому всегда не забывайте прописывать в настройках рабочих нагрузок:
securityContext:
capabilities:
drop:
- ALL
99.9%
любых бизнес микросервисов. С инфраструктурными сервисами разговор уже отдельный, но и там необходимо следовать принципу наименьших привилегий.
Читать полностью…
Всем, привет!
Подведем итоги конкурса, который мы не давно проводили. Проходка на конференцию уходит к @gakuseii_1 за его хитрую политику предоставления привилегированного доступа на основании как группы пользователей, так и самих сервисов. Хотя вариант с запретом деплоям по пятницам нам тоже очень сильно понравился. И подумали,а почему бы и не дать еще одну проходку @TheAnastasi )
Есть еще вариант выиграть хорошую скидку в рамках конкурса на канале конференции БеКон.
Так количество доступных билетов очень быстро уменьшается - не тяните до последнего.