Канал о (не)безопасности Kubernetes + микросервисных, контейнеризированных приложений. Ведет команда www.luntry.ru Вопросы, идеи, предложения => @Qu3b3c https://knd.gov.ru/license?id=673ddbc21039886b1d03b7ce®istryType=bloggersPermission
В пятницу как обычно хочется чего-то легко, непринуждённого и у нас есть сегодня такой контент.
Мы уверены, что контейнеры не только значительно займут нишу серверных приложений, но и откусят хороший кусок пирога на клиентской стороне. Особенно где будет требоваться высокий уровень изоляции и безопасности.
Сегодняшний проект Neko это self-hosted
виртуальный браузер (и не только), который запущен в Docker
и использует WebRTC
.
Все это к тому же о чем мы писали в контексте Virtual Desktop Infrastructure (VDI)
систем!
P.S. Нет машины - нет поверхности атаки ;)
Если вам по каким либо причинам нужны все JSON
схемы для всех версий объектов во всех версиях Kubernetes
, то данный проект это все в себе и содержит!
Это может быть полезно, на пример, при написании своего собственного валидатора Kubernetes
ресурсов ;) А такие инструменты как Kubeconform
и Kubeval
, как раз этот проект и используют у себя под капотом.
Единственное помните, что это позволяет проверить только соответствие OpenAPI Schema
, но не гарантирует соответствие Server Side Field Validation! Ресурс на корректность в Kubernetes
проверяется в 2
-х местах.
Недавно из одного репоста довелось узнать про такую новую метрику как LEV (Likely Exploited Vulnerabilities, вероятно эксплуатируемые уязвимости)
. Если совсем кратко и не дублировать пост и текст самого документа NIST CSWP 41: "Likely Exploited Vulnerabilities: A Proposed Metric for Vulnerability Exploitation Probability", то она призвана повысить эффективность и экономичность усилий по устранению уязвимостей. При этом она не отменяет Exploit Prediction Scoring System (EPSS)
и Known Exploited Vulnerabilities (KEV)
, а дополняет и использует первую метрику в процессе вычисления (даже инструмент уже есть).
И тут бы хотелось развенчать 3
утопичные мысли/плана:
1) закрывать абсолютно все уязвимости
2) закрывать только самое критичные уязвимости
3) закрывать только известные уязвимости
Реальность намного суровее и все сталкиваются с количественными и временными ограничениями, доступными ресурсами, кадрами, бюджетами, точностью инструментов, возможностями и мастерством атакующих, наличие 0day
и 0,5day
уязвимостей. Так или иначе любой из этих планов рушится на том или ином аспекте. А нам нужно систему делать безопасной (на деле, а не на бумаге).
Поэтому намного выгоднее вкладываться не в закрытие конкретной уязвимости (это лишь частный случай), а в закрытие целого класса, вектора через харденинги, митигейшены. У контейнеров в Kubernetes
как мы недавно обсуждали таких механизмов предостаточно.
22
июля (вторник) в 14:00
наша команда Luntry в лице Дмитрия Евдокимова примет участие в вебинаре «Container Security: современное развитие».
В очень крутой компании коллег из Swordfish Security
, ПСБ Банк
мы обсудим насущные вопросы по контейнерной безопасности со стороны интегратора, разработчика средства защиты и заказчика.
Будет интересно и полезно:
- CISO
и CIO
- Архитекторы и инженеры DevOps
- Руководители разработки приложений
Зарегистрироваться можно тут.
Сегодня хочется рассказать про один интересный инструмент, который, к сожалению, уже толком не поддерживается, но наталкивает и подсвечивает очень важный момент про уязвимости в OpenSource
компонентах.
CVE Half-Day Watcher - это инструмент, который, используя информацию из National Vulnerability Database (NVD)
, идентифицирует недавно опубликованные CVE
со ссылками на GitHub
, которые еще не имеют выпущенных патчей! Тоесть инструмент демонстрирует возможность злоумышленников автоматизировано находить такие окна/разрывы и использовать для написания эксплоитов для реальных атак. В качестве примера авторы приводят ситуацию с нашумевшим Log4shell
.
Так что в полку 1day
, 0day
пополнение - 0,5day
=)
Кто внимательно смотрит наши выступления на конференциях про такое уже точно слышали - вот и публичный инструмент есть. И тот знает что в наше время защищаться только от известных уязвимостей (1day
) уже недостаточно.
Сегодняшний пост будет просвещён проекту одного из наших читателей!
Cloud (IaC) Security (проект на github) это плагин для JetBrains IDEs
.
Этот плагин помогает находить различные проблемы в dockerfile
, Docker Compose
и Kubernetes
файлах с упором на проверки безопасности. Как говорит сам автор: "Kubernetes проверки сейчас в активной разработке, но покрыт уже Kubernetes Pod Security Standards Baseline и немного захватил Kubernetes NSA hardening guide."
Все проверки работают прямо в редакторе кода (самый край Shift Left Security
) и сразу подсвечивают проблемы если имеются, также есть чуть более расширенная документация по подсвеченным проблемам и функционал по автоматическому исправлению проблем!
Проект бесплатный, разрабатывается уже около года и постоянно получает обновления!
Автор будет очень благодарен за обратную связь ;)
P.S. Если у вас есть проекты по безопасности контейнеров и Kubernetes, то не стесняйтесь нам о них писать и мы с большим удовольствием расскажем о них нашей аудитории. И возможно это привлечет большее внимание к проекту и вдохнет в него новую жизнь)
В блоге разработчика CNI Calico
вышла интересная статья "Calico Whisker & Staged Network Policies: Secure Kubernetes Workloads Without Downtime". Из данной статьи вы узнаете:
1) Про новый тип политик - Staged Network Policy
, которые призваны облегчить тестирование сетевых политик, без поспешного использования enforce
режима
2) Как компонент Whisker UI позволяет анализировать влияние сетевых политик на трафик
3) О режиме установке Calico for Policy
, который позволяет в существующий кластер, на CNI
отличном от Calico
привнести чисто ее сетевые политики и работать с ними поверх чужого CNI
!
4) Что перевод сетевой политики из такого отладочного режима в enforce
это просто замена kind: StagedNetworkPolicy
на kind: NetworkPolicy
от Calico
5) О новом тестовом приложении yaobank (“yet-another-bank”), с которым можно развлекаться и проводить те или иные тесты
Всем хороших выходных!
В поле нашего внимания попала статья "Securing Kubernetes Using Honeypots to Detect and Prevent Lateral Movement Attacks" от авторов проекта Beelzebub. Данный проект это фреймворк для создания высоко интерактивных honeypots
с помощью low code
с применением AI
. С достаточно небольшими трудозатратами можно делать сервисы мимикрирующие под тот же ssh
или даже под kube-apiserver
.
С первого взгляда звучит как проект, который собрал в себя все хайпое (или bullshit bingo
). Но идея мимикрирования под легитимные, хорошо известные сервисы силами AI
явно интересная и имеет право на жизнь.
Несколько дней назад наши друзья достаточно сильно обновили свой фреймворк Jet Container Security Framework (JCSF).
Если вы не знаете, что это, для чего это и как с этим работать, то мы в феврале проводили совместный вебинар "Фреймворк безопасности контейнеров JCSF" (слайды, видео), где это все обсуждали и обсуждали как его можно улучшить и поправить. Здорово что многое из того было учтено в новом релизе!
yardstick - инструмент для сравнения результатов сканирования сканеров уязвимостей. Из коробки поддерживает grype
, syft
. И можно добавлять другие сканеры самостоятельно. Потом смотреть качество результатов сканирования как в рамках одного сканера и различных версий, так между разными сканерами.
Из замечательной заметки "How It Works — Validating Admission Policy" вы узнаете:
1) Как реализованы данные политики в виде Kubernetes controller
и admission plugin
, пройдя по исходному коду Kubernetes API Server
2) Как и какую гибкость дают правила на Common Expression Language (CEL)
3) Какие Prometheus
метрики доступны из коробки (policy violation count
и latency
)
Напомним, что с версии 1.30
механизм уже находиться в статусе stable
. И он как минимум сделает все проприетарные решения класса policy engine
бесполезными с их vendor lock
. Ну а open source
реализации уже адаптируются к этому быстро меняющемуся миру - об этом мы писали тут.
В статье Kubernetes Troubleshooting: Fixing Pod Issues with Restricted UID in securityContext автор рассказывает о проблемах, с которыми он столкнулся при попытке запустить Pod
в Kubernetes
от имени непривилегированного пользователя с помощью параметра securityContext.runAsUser
, используя образ nginx
.
Попытки указать случайный UID
или даже правильный (например, 101
для пользователя nginx
) приводили к ошибкам доступа к файлам и директориям. Решение было найдено через использование initContainers
, которые изменяют права на нужные каталоги до запуска основного контейнера, а также корректировку команды запуска, чтобы избежать операций, требующих root
-доступа. Однако самым надёжным способом оказалось создание собственного Docker
-образа с директивой USER
и заранее подготовленными правами доступа.
В процессе автор подробно разобрал, как работает kubectl logs
, как взаимодействуют kubelet
и API
-сервер, и как грамотно настроить безопасность в Kubernetes
.
Ребята из AWS
сделали Threat Technique Catalog для своего облака. Этот каталог явно вдохновлялся матрицей угроз от MITRE
, но содержит как известные техники, так и те что обнаружил AWS CIRT
. Всего представлено на сегодняшний день 70
техник.
На наш взгляд это может быть полезно не только тем кто живет в AWS
, но и вообще в облаках (так или иначе все можно принести на свое облако) и самим облачным провайдерам, чтобы понимать где у них и их клиентов могут быть проблемы.
Сегодня у нас рубрика "А знали ли вы?".
А знали ли вы что в банке данных угроз безопасности информации от ФСТЭК на текущий момент 227
угроз и последние 5
(можно сказать самые последние добавленные) посвящены контейнерным угрозам!
- УБИ. 223 "Угроза несанкционированного доступа к контейнерам, предоставляющего пользователям расширенные привилегии"
- УБИ. 224 "Угроза нарушения целостности (подмены) контейнеров"
- УБИ. 225 "Угроза нарушения изоляции контейнеров"
- УБИ. 226 "Угроза внедрения вредоносного программного обеспечения в контейнеры"
- УБИ. 227 "Угроза модификации (подмены) образов контейнеров"
Конечно, тут далеко не все, но начало уже положено и радостно что нашу тему активно начинают везде добавлять и упоминать ;)
P.S. Честно сами узнали об этом совсем недавно пока помогали студентам в рамках нашей кураторской программы в процессе защит их дипломов. То есть не только мы помогаем и учим, но и сами учимся =)
Начнем неделю со статьи "ETCD Production setup with TLS", которая представляет из себя небольшую инструкцию по настройке ETCD
.
Инструкция описывает построение защищенного 3
-х нодового ETCD
кластера, используя OpenSSL
с полным TLS
шифрованием (peer/client
), управлением CA
и настройкой systemd
.
Сегодня хочется с вами поделиться порталом KEVIntel, который содержит информацию из различных источников об уже эсплуатируемых уязвимостях.
В глаза, конечно, сразу бросается цифра 0,7%
.
Это процент уязвимостей что были замечены в атаках за все время по отношению ко всем уязвимостям в базе CVE
.
Обязательно рекомендуем посмотреть страничку с общей статистикой - там много интересного.
Как мы уже говорили раньше в наших постах, по нашему опыту анализа защищенности контейнерных сред, уязвимостями мы редко пользуемся - чаще всего это проблемы или отсутствие контроля YAMLs
, отсутствие принципа наименьших привилегий в RBAC
, отсутствие микросегментации с помощью NetworkPolicy
, бесконтрольное использование образов контейнеров.
31 июля
в рамках Kubernetes Community Day наша команда Luntry поучаствует в программе с докладом "Ретроспектива уязвимостей Kubernetes" от Сергея Канибора и в круглом столе на тему "Что в K8s можно закрыть security by design, а что наложенной безопасностью?" с Дмитрием Евдокимовым.
Продолжаем нести светлое, прекрасное, безопасное в этот Мир)
Начнем эту неделю с публикации всех материалов нашего вебинара «Предотвращение Runtime угроз в контейнерах и Kubernetes»! Из слайдов и выступления вы узнаете:
- чем отличается детектирование, реагирование и предотвращение
- что общего и разного у AppArmor
, SeLinux
, seccomp
- как NetworkPolicy
относится к теме предотвращения
- что такое Linux Security Module (LSM)
и при чем тут eBPF
- как Luntry помогает предотвращать Runtime
угрозы.
В своих предыдущих постах мы уже писали про уязвимости в NVIDIA Container Toolkit
(1,2,3). А также в рамках своего блога делали большую статью "Ломаем ваши видеокарты: распаковка эксплойта для CVE-2024-0132 под NVIDIA Container Toolkit" на эту же тему.
И сейчас те же исследователи из Wiz
опубликовали статью "NVIDIAScape - Critical NVIDIA AI Vulnerability: A Three-Line Container Escape in NVIDIA Container Toolkit (CVE-2025-23266)" с деталями своего эксплоита с Pwn2Own.
Эксплоит представляет из себя специально подготовленный контейнер, где dockerfile
всего 3
строчки, с so
библиотекой в виде payload
. А проблема связана с обработкой переменных окружения в nvidia-ctk
.
Всем, хороших выходных!
Давненько мы ничего не писали про наш любимый eBPF
=)
И тут для многих не безызвестная организация National Security Agency (NSA)
у себя на GitHub выложила проект SeaBee на языке Rust
.SeaBee
это акроним для Security Enhanced Architecture for eBPF
. Суть проекта обеспечить безопасность проектов, которые используют eBPF
объекты для своей работы, то есть это такой механизм самозащиты (подобное есть и у классических антивирусов).
Про атаки на eBPF
инструменты мы писали в наших других постах и с ними можно ознакомиться тут и тут.
P.S. Так как наш код Luntry тоже написан на Rust
, то будет достаточно просто прикрутить в будущем это и к нам ;)
Почти месяц назад прошел KubeCon + CloudNativeCon Japan 2025 ( все видео) и там было не так много докладов про безопасность, но один с очень говорящим названием всё-таки привлек наше внимание - "Your SBOM Is Lying To You – Let’s Make It Honest" (слайды, видео).
Помимо поднятия проблемы со SBOM
(об этом пишут и говорят уже давно), в данном случае авторы также дают и рецепт решения, который по их мнению выглядит следующим образом: SBOMit = SBOM
+ in-toto
(дополнительная аттестационная информация).
Так или иначе мы перешли от фазы "покажи из чего состоит твое ПО", к фазе "а не врешь ли мы мне?".
В начале года мы уже писали на канале про инструмент seccomp-diff. И сейчас автор данного инструмента (широко известный в узких кругах Mark 'Antitree' Manning
) сделал пост у себя в блоге под названием "Seccomp-Diff: Syscall Accountability Tool". И если кратко описать суть данной заметки, то его отлично описывает одна фраз из него: "Setting seccomp profiles is undeniably a great way to harden your container in principle, but in practice, it loads up two guns to shoot at your foot." =)
Действительно очень многие не понимают насколько вообще сложно сформировать полноценный custom seccomp profile
и поддерживать его в актуальном состоянии для своего приложения. Что в конечном счете приводит к выстрелу себе в ногу ...
P.S. И напоминаем, что сегодня в 11:00
мы проведем вебинар "Предотвращение Runtime угроз в контейнерах и Kubernetes". Для всех участников мы подготовили очень полезный подарок ;)
На прошлой неделе прошла конференция fwd:cloudsec North America 2025.
Спикеры представили крутейшие доклады по тематике Cloud Security
, затронув AWS
, Azure
и GCP
. Однако, контейнеры и Kubernetes
также не обошли стороной.
Тут хотим отметить доклад The Good, the Bad, and the Ugly: Hacking 3 CSPs with 1 Vulnerability от инженеров из WIZ
. В докладе они рассказали про то, где им удалось проэксплуатировать ранее найденную ими и нашумевшую CVE-2024-0132
в NVIDIA Container Toolkit
, позволяющую реализовать побег из контейнера.
Все видео с fwd:cloudsec North America 2025
можно найти в этом плейлисте.
P.S – для тех кто еще не видел, вот тут можно прочитать наш разбор CVE-2024-0132
.
В статье Building Docker Images Without Root or Privilege Escalation автор рассказывает о способе сборки docker
образов в условиях строгих ограничений, без root
прав и возможности повышения привилегий.
Для сборки используется виртуализация QEMU
для инкапсуляции docker buildkit
внутри microVM
.
Если вы работали с Argo CD,
то наверняка в курсе, что ролевая модель задается в configmap argo-rbac-cm
. Для того чтобы задавать права пользователей нужно каждый раз её править, что в случае больших команд инженеров не всегда удобно.
Для такого случая есть Argo CD RBAC Operator
, который позволяет через кастомные ресурсы управлять ролевой моделью Argo
.
Более подробно о том как работает оператор можно почитать в этой статье. Сам оператор можно найти здесь.
Всем, привет!
Наша команда Luntry продолжает расти и защищать важные контейнерные инфраструктуры на Kubernetes
. А сейчас мы в поисках Middle/Senior Go Developer. Если вы не просто пишете на Go
, но и понимаете как он работает под капотом, если HighLoad
для вас не просто слова, а повседневные будни, то мы с радостью рассмотрим вас к нам в команду!
Откликнуться можно как на HH, так и написать в личку контакту данного канала ;)
Всем, привет!10 июля
наша команда Luntry проведет вебинар на тему "Предотвращение Runtime угроз в контейнерах и Kubernetes". Расскажем и покажем как вообще можно не доводить дело до инцидентов и спать спокойно ;)
Зарегистрироваться можно тут.
Всем, хороших выходных!
В AIStore Operator от NVIDIA
нашли уязвимость, связанную с избыточными привилегиями RBAC
. Service Account
, используемый оператором обладал правами на чтение и листинг секретов и конфигмап, что могло привести к раскрытию чувствительной информации.
Уязвимости присвоен CVE-2025-23260
и оценку 5.0
по CVSS(Medium)
.
Уязвимы все версии AIStore Operator
до 2.3.0
.
Сегодня расскажем про очередной новый оператор – Kubeconfig Operator.Kubeconfig Operator
генерирует конфиги с ограничениями, которые можно гранулярно раздавать на уровне кластера. Оператор позволяет устанавливать конкретные ограничения в RBAC
, namespace
, а также устанавливать expiration time
.
Может быть полезно, когда нет нормального Identity Provider
, но дать доступ в кластер очень нужно.
В завершении недели Kubernetes
преподносит нам ещё одну уязвимость – CVE-2025-4563: Nodes can bypass dynamic resource allocation authorization checks.
При использовании feature gates DynamicResourceAllocation
атакующий на скомпрометированной Node
может создать mirror pod
, чтобы получить доступ к unauthorized dynamic resources
, что потенциально может привести к повышению привилегий.
Уязвимости присвоен низкий уровень критичности по CVSS
.
Затграгивает версии:- kube-apiserver: v1.32.0 - v1.32.5
- kube-apiserver: v1.33.0 - 1.33.1
Патчи доступны для:- kube-apiserver >= v1.32.6
- kube-apiserver >= v1.33.2
В качестве меры митигации предлагается выключить feature gate DynamicResourceAllocation
.