ch
Feedback
k8s (in)security

k8s (in)security

前往频道在 Telegram

Канал о (не)безопасности Kubernetes + микросервисных, контейнеризированных приложений. Ведет команда www.luntry.ru #ZST99 Вопросы, идеи, предложения => @Qu3b3c https://knd.gov.ru/license?id=673ddbc21039886b1d03b7ce®istryType=bloggersPermission

显示更多

📈 Telegram 频道 k8s (in)security 的分析概览

频道 k8s (in)security (@k8security) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 13 017 名订阅者,在 技术与应用 类别中位列第 9 501,并在 俄罗斯 地区排名第 50 020

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 13 017 名订阅者。

根据 25 八月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 86,过去 24 小时变化为 7,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 25.94%。内容发布后 24 小时内通常能获得 11.47% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 3 375 次浏览,首日通常累积 1 492 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 22
  • 主题关注点: 内容集中在 kubernetes, контейнер, luntry, кластер, kyverno 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
Канал о (не)безопасности Kubernetes + микросервисных, контейнеризированных приложений. Ведет команда www.luntry.ru #ZST99 Вопросы, идеи, предложения => @Qu3b3c https://knd.gov.ru/license?id=673ddbc21039886b1d03b7ce&registryType=bloggersPermission

凭借高频更新(最新数据采集于 26 八月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

13 017
订阅者
+724 小时
+347
+8630
吸引订阅者
八月 '26
八月 '26
+165
在3个频道中
七月 '26
+208
在6个频道中
Get PRO
六月 '26
+165
在5个频道中
Get PRO
五月 '26
+288
在5个频道中
Get PRO
四月 '26
+216
在2个频道中
Get PRO
三月 '26
+260
在8个频道中
Get PRO
二月 '26
+195
在3个频道中
Get PRO
一月 '26
+171
在0个频道中
Get PRO
十二月 '25
+183
在3个频道中
Get PRO
十一月 '25
+163
在2个频道中
Get PRO
十月 '25
+151
在0个频道中
Get PRO
九月 '25
+148
在4个频道中
Get PRO
八月 '25
+228
在2个频道中
Get PRO
七月 '25
+228
在10个频道中
Get PRO
六月 '25
+182
在1个频道中
Get PRO
五月 '25
+234
在5个频道中
Get PRO
四月 '25
+270
在4个频道中
Get PRO
三月 '25
+423
在21个频道中
Get PRO
二月 '25
+289
在3个频道中
Get PRO
一月 '25
+263
在4个频道中
Get PRO
十二月 '24
+229
在5个频道中
Get PRO
十一月 '24
+286
在3个频道中
Get PRO
十月 '24
+342
在13个频道中
Get PRO
九月 '24
+344
在10个频道中
Get PRO
八月 '24
+387
在3个频道中
Get PRO
七月 '24
+296
在6个频道中
Get PRO
六月 '24
+369
在4个频道中
Get PRO
五月 '24
+261
在6个频道中
Get PRO
四月 '24
+320
在7个频道中
Get PRO
三月 '24
+334
在8个频道中
Get PRO
二月 '24
+319
在7个频道中
Get PRO
一月 '24
+357
在9个频道中
Get PRO
十二月 '23
+366
在7个频道中
Get PRO
十一月 '23
+287
在6个频道中
Get PRO
十月 '23
+223
在4个频道中
Get PRO
九月 '23
+341
在0个频道中
Get PRO
八月 '23
+776
在0个频道中
Get PRO
七月 '23
+175
在0个频道中
Get PRO
六月 '23
+408
在0个频道中
Get PRO
五月 '23
+329
在0个频道中
Get PRO
四月 '23
+219
在0个频道中
Get PRO
三月 '23
+155
在0个频道中
Get PRO
二月 '23
+146
在0个频道中
Get PRO
一月 '23
+123
在0个频道中
Get PRO
十二月 '22
+107
在0个频道中
Get PRO
十一月 '22
+154
在0个频道中
Get PRO
十月 '22
+174
在0个频道中
Get PRO
九月 '22
+195
在0个频道中
Get PRO
八月 '22
+157
在0个频道中
Get PRO
七月 '22
+151
在0个频道中
Get PRO
六月 '22
+274
在0个频道中
Get PRO
五月 '22
+135
在0个频道中
Get PRO
四月 '22
+162
在0个频道中
Get PRO
三月 '22
+130
在0个频道中
Get PRO
二月 '22
+131
在0个频道中
Get PRO
一月 '22
+208
在0个频道中
Get PRO
十二月 '21
+134
在0个频道中
Get PRO
十一月 '21
+190
在0个频道中
Get PRO
十月 '21
+198
在0个频道中
Get PRO
九月 '21
+131
在0个频道中
Get PRO
八月 '21
+130
在0个频道中
Get PRO
七月 '21
+176
在0个频道中
Get PRO
六月 '21
+271
在0个频道中
Get PRO
五月 '21
+121
在0个频道中
Get PRO
四月 '21
+114
在0个频道中
Get PRO
三月 '21
+253
在0个频道中
Get PRO
二月 '21
+85
在0个频道中
Get PRO
一月 '21
+68
在0个频道中
Get PRO
十二月 '20
+932
在0个频道中
日期
订阅者增长
提及
频道
26 八月+6
25 八月+8
24 八月+4
23 八月+8
22 八月+9
21 八月+7
20 八月+10
19 八月+11
18 八月+3
17 八月+8
16 八月+2
15 八月+4
14 八月+10
13 八月+8
12 八月+9
11 八月+15
10 八月+3
09 八月+1
08 八月+5
07 八月+1
06 八月+6
05 八月+9
04 八月+2
03 八月+7
02 八月+1
01 八月+8
频道帖子
Kyverno 1.19 — релиз, который фактически завершает переход проекта на CEL-based policies: теперь ValidatingPolicy, MutatingPo
Kyverno 1.19 — релиз, который фактически завершает переход проекта на CEL-based policies: теперь ValidatingPolicy, MutatingPolicy, GeneratingPolicy, ImageValidatingPolicy и DeletingPolicy покрывают весь функционал старого ClusterPolicy. Для Kubernetes Security это особенно важно: policy engine становится ближе к нативному подходу Kubernetes через CEL и ValidatingAdmissionPolicy`/`MutatingAdmissionPolicy. При этом ClusterPolicy, Policy, CleanupPolicy, ClusterCleanupPolicy и legacy PolicyException официально deprecated и будут удалены в Kyverno 1.20, поэтому существующие security policies уже пора мигрировать. В 1.19 это последний релиз с полной поддержкой legacy API, а для миграции есть отдельный kyverno migrate и migration guide. Ещё одно изменение, важное для эксплуатации: CRD теперь управляются через отдельную Helm dependency kyverno-api, поэтому при upgrade стоит проверить собственный процесс установки CRD. Подробности — в официальном анонсе релиза.

2
Идея «сгенерируй мне least-privilege конфиг по тому, что реально делает приложение» стара как seccomp-профили, но каждый год обретает новое воплощение. Свежее — «KubeGuard: LLM-Assisted Kubernetes Hardening via Configuration Files and Runtime Logs Analysis» из Ben-Gurion University: манифесты плюс рантайм-телеметрия скармливаются LLM через цепочки промптов, на выходе рекомендации по Role, NetworkPolicy и Deployment. Источники ровно те, что у вас и так есть (ну или должны быть): - Kubernetes audit logs — какие verbs реально дергали, отсюда RBAC - Hubble (Cilium) — реальные потоки трафика, отсюда NetworkPolicy - SPADE + CLARION — provenance по процессам в контейнерах, отсюда securityContext (штука research-grade, но в проде ее роль ровно так же закроют Tetragon, Falco или Tracee) Два режима: Resource Creation (собрать с нуля) и Resource Refinement (ужать существующий overly permissive). Кода в открытом доступе нет, зато промпты авторы выложили в приложениях. P.S. Не сторонники такого подхода. На наш взгляд при наличии этих данных к решению задачи можно спокойно подойти алгоритмически, а не с помощью вероятностных алгоритмов, которые могут галлюцинировать.
1 911
3
Всем, привет! Завтра 25 августа в 12:00 вместе с коллегами в живом диалоге поговорим про то как ИИ влияет на разных жизненных
Всем, привет! Завтра 25 августа в 12:00 вместе с коллегами в живом диалоге поговорим про то как ИИ влияет на разных жизненных стадиях разработки ПО и его безопасности. И как всегда будем рады ответить на любые вопросы! Ссылка для регистрации.
1 969
4
Kubernetes NetworkPolicy не всегда гарантирует изоляцию между tenant’ами. В статье "Using the API server proxy to bypass netw
Kubernetes NetworkPolicy не всегда гарантирует изоляцию между tenant’ами. В статье "Using the API server proxy to bypass network policies" показано, как API server proxy можно использовать для обхода сетевых политик и доступа к workload’ам другого namespace. Атака основана на возможности изменять IP адрес Pod через его status. Злоумышленник подменяет IP своего Pod на адрес чужого workload и затем обращается к нему через API server proxy. RBAC при этом разрешает запрос, поскольку пользователь обращается к своему Pod, а NetworkPolicy пропускает трафик, поскольку источником фактически выступает API server. В статье также есть видео с демонстрацией атаки и инструкция по воспроизведению.
2 148
5
Многие очень мало внимания уделяют labels и вообще думают, что с безопасностью они никак не связаны... И это большая ошибка. Давайте рассмотрим метку "admission.gatekeeper.sh/ignore", которая поставленная на Namespace, выводит его из под наблюдения OPA Gatekeeper. Тут атакющему понадобится операция: kubectl label namespace <ns-name> admission.gatekeeper.sh/ignore=true Для нее нужны права: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: namespace-labeler rules: - apiGroups: [""] resources: ["namespaces"] verbs: ["get", "patch", "update"] Или если вы живете по GitOps, то сразу создать такой NS в репозитарии. В Kyverno такой специальной label нет. В комментариях можете привести другие критичные labels, которые вы знаете. P.S. Кто живет на OPA Gatekeeper - а у вас есть политика на OPA Gatekeeper, которая проверяет эту метку OPA Gatekeeper ?)
2 876
6
В статье «Introducing Nirmata Runtime for Kyverno» Nirmata представила Runtime — расширение Kyverno, которое переносит enforc
В статье «Introducing Nirmata Runtime for Kyverno» Nirmata представила Runtime — расширение Kyverno, которое переносит enforcement политик с уровня Kubernetes admission непосредственно в Linux kernel. Для этого используются eBPF и BPF-LSM, что позволяет синхронно блокировать опасные действия: запуск процессов, доступ к файлам, сетевые соединения и определённые протоколы. Особенно интересно применение для AI-агентов: Runtime позволяет ограничивать, какие бинарники они могут запускать, к каким endpoint'ам обращаться и какие файлы читать. Политики описываются на CEL, как и в Kyverno, а перед включением enforcement их можно протестировать в monitor mode. Runtime доступен по ссылке — проект уже содержит примеры RuntimePolicy и может работать как самостоятельно, так и вместе с Kyverno для многоуровневого контроля.
2 839
7
О реальном использовании в своей инфраструктуре такого проекта как Firecracker на наших просторах мало кто говорит (да и мало кто использует). НО наши хорошие друзья, которые активно занимаются AI и fuzzing, в одном из своих постов рассказали как и зачем (механика snapshot/restore) в общем можно делать свои собственные для этой легковесной VMM. А если у вас есть опыт использования Firecracker и Kata containers, то делитесь своим опытом в комментариях. А если вы вообще не знаете что это такое, то рекомендуем ознакомиться с нашим докладом "Кубик Runtime в конструкторе Kubernetes для безопасности" ;)
2 607
8
На конференции Black Hat USA 2026 вышел доклад Beyond Seccomp: Breaking and Rebuilding Syscall Filtering for Microservices о
На конференции Black Hat USA 2026 вышел доклад Beyond Seccomp: Breaking and Rebuilding Syscall Filtering for Microservices о том, где современные механизмы фильтрации syscall'ов дают слабину. Авторы выделяют три проблемы: stateless-фильтрация Seccomp не учитывает последовательность вызовов, eBPF-энфорсмент может реагировать слишком поздно, а загрузка политик через Kubernetes Operator создаёт окно между стартом контейнера и применением защиты. Особенно интересно, что авторы не просто показывают атаки, а предлагают архитектуру следующего поколения: stateful-фильтрацию через eBPF, inline-блокировку через LSM-BPF и атомарную установку политик до запуска контейнера. В результате получается защита, которая учитывает контекст syscall'ов и не оставляет временных окон для обхода. Слайды доклада уже доступны по ссылке. И да, этот доклад очень сильно пересекается с нашим секретным докладом с БеКон 2026 — но кто знает, тот знает.
2 788
9
containerPort в манифесте — это документация, а не контроль. Kubernetes его не проверяет: контейнер может слушать порты, которых в YAML нет, и наоборот. Ровно на этом разрыве между декларацией и реальностью построена работа «Inside Job: Defending Kubernetes Clusters Against Network Misconfigurations». Они прогнали 287 публичных Helm-чартов от Bitnami, Banzai Cloud, CNCF, Prometheus Community через связку статического анализа YAML и рантайм-наблюдения в живом кластере. Нашли 634 проблемы у 90% приложений: - 241 — нет никаких NetworkPolicy - 188 — порт открыт, но не задекларирован (привет, админские и debug-интерфейсы) - 67 — порт задекларирован, но не открыт: приходит кто-то другой и занимает его - 35 — контейнер слушает эфемерный порт, который меняется при каждом старте (и никакая политика по портам его не покроет) - 52 — коллизии лейблов, когда чужой Pod попадает под селектор вашего Service, а трафик уезжает не туда Список самых грязных чартов бьет по узнаваемости: kube-prometheus-stack, kube-prometheus, clickhouse, istio-operator, grafana-tempo, zookeeper, jaeger, metallb, node-exporter. То есть ровно то, что стоит у половины читателей канала, причем зачастую в системных неймспейсах. У всей десятки лидеров нет NetworkPolicy и есть незадекларированные порты, 9 из 10 сидят в hostNetwork (а на него, напомним, NetworkPolicy и не действует), 4 из 10 слушают эфемерные порты. Отдельно они сравнили себя с 11 инструментами — Checkov, KubeLinter, kube-score, kubesec, kubeaudit, Kubescape, Trivy, NeuVector, StackRox и т.д. Статические не видят рассинхрон декларации и реальности в принципе, потому что смотрят только в YAML, а рантайм- и платформенные решения его просто не ищут. И самое неприятное: коллизии лейблов сами разработчики оценили как наиболее критичную находку — это готовый MITM внутри кластера.
2 842
10
В статье «Does Kubernetes DRA Replace HAMi?» разбирается, станет ли Kubernetes DRA заменой для HAMi в работе с GPU. DRA предо
В статье «Does Kubernetes DRA Replace HAMi?» разбирается, станет ли Kubernetes DRA заменой для HAMi в работе с GPU. DRA предоставляет нативный механизм для описания, планирования и распределения специализированных устройств, включая возможность делить ресурсы GPU между Pod’ами. Но DRA и HAMi решают разные задачи. DRA отвечает за управление и планирование ресурсов, а HAMi — за runtime enforcement, то есть фактическое ограничение GPU memory и compute внутри контейнера. Поэтому DRA скорее дополняет HAMi, чем заменяет его. В будущем HAMi может использовать DRA как основу для планирования, сохраняя собственные возможности по виртуализации и ограничению GPU.
3 196
11
Когда говорят про sandbox в Linux, обычно вспоминают gVisor, Kata Containers или seccomp-профили. А есть куда более скромный инструмент, который при этом крутится на миллионах десктопов, — bubblewrap. Это тот самый движок песочницы, на котором работает Flatpak, и живёт он в организации containers рядом с Podman и Buildah. Ключевая идея: это container tool для непривилегированного пользователя — никакого демона и root, всё на unprivileged user namespaces. Что даёт: - mount namespace с пустым tmpfs в качестве /, куда руками пробрасываются только нужные куски ФС - user/IPC/PID/network/UTS namespaces - seccomp-фильтры - монтирование ro и nodev по умолчанию - PR_SET_NO_NEW_PRIVS, отрубающий эскалацию через setuid-бинари Но самое интересное — то, что честно написано в README: сам по себе bubblewrap не даёт ничего, уровень защиты полностью определяется аргументами, которые ему передал вызывающий. Пробросили внутрь сокет D-Bus — и песочницы фактически нет. Ничего не напоминает? Ровно та же история, что и с SecurityContext в Kubernetes: примитивы ядра у всех одни и те же, а итоговая защищённость зависит от того, кто и как их сконфигурировал. И показательный момент напоследок: оба CVE за всю историю проекта — и CVE-2020-5291, и свежий CVE-2026-41163 — про один и тот же setuid-режим, который нужен ровно там, где unprivileged user namespaces в ядре запрещены. В версии 0.11.2 завезли опцию сборки вообще без setuid и объявили, что дальше поддержку уберут совсем. Тренд читается однозначно: ставка делается на unprivileged user namespaces как на базовый примитив изоляции.
3 262
12
В официальном блоге Kubernetes вышел пост с обзором основных изменений, которые войдут в Kubernetes 1.37. Если смотреть исключительно на security часть релиза, то есть несколько интересных нововведений. Во-первых, статические Pod'ы больше не смогут ссылаться на Secrets и ConfigMaps — в Kubernetes исправили баг, который позволял им получать доступ к API-ресурсам. Также SELinuxMount включат по умолчанию для поддерживаемых CSI-драйверов, что ускоряет работу с томами, но может привести к проблемам у приложений, которые совместно используют один volume с разными SELinux-контекстами. kubelet в user namespace переходит в Beta. Это позволяет запускать kubelet без root-привилегий на хосте, сохраняя root только внутри namespace, и тем самым уменьшает потенциальный impact от компрометации kubelet.
3 351
13
Недавно прошла конференция KubeCon + CloudNativeCon Japan 2026 (расписание со слайдами, видеозаписи) и мы выделили с нее след
Недавно прошла конференция KubeCon + CloudNativeCon Japan 2026 (расписание со слайдами, видеозаписи) и мы выделили с нее следующие доклады связанные с безопасностью: - Vulnerability Response for Large Open Source Projects - Sandbox for Agentic Application With Cloud Native Stack - Identities and Authentication for Your Agents With Keycloak - User Namespaces in Production: Enabling Root in Containers With RWX - Detecting Compromised CI With eBPF and Cilium Tetragon - Kairos: Immutable OS and Lifecycle Management for Kubernetes Fleets - Lima in 5 Minutes: From Containers To AI Sandboxing - SBOMit: Making SBOMs Accurate With Attestations - Scalable Security and Compliance in the Age of AI - Runtime Security at Scale With EBPF: Hybrid Detection and Root Cause Analysis in CloudNative Systems - Container Forensics for Kubernetes: Building an Evidence Pipeline With Open Source Tools - AuthZEN in Practice: Standardizing Authorization for Cloud Native Platforms and Agents - Behind the CNCF IAM Whitepaper: AuthN & AuthZ in Cloud Native Systems
3 601
14
Очередная LPE уязвимость в Linux — SCTPhantom (CVE-2026-64564), связанная с use-after-free в реализации SCTP. Проблема появил
Очередная LPE уязвимость в Linux — SCTPhantom (CVE-2026-64564), связанная с use-after-free в реализации SCTP. Проблема появилась ещё в ядрах 2.6.25 и связана с некорректной обработкой ASCONF-сообщений, которая приводит к повторному использованию уже освобождённого sctp_transport. Самое интересное здесь — возможность превратить уязвимость в container escape. Исследователям удалось построить цепочку эксплуатации, которая позволяет процессу из контейнера повысить привилегии через ядро и выйти за пределы контейнерной изоляции, получив контроль над хостом. Для Kubernetes это особенно неприятный сценарий: контейнерная изоляция в конечном итоге опирается на ядро хоста, и kernel-level UAF способен превратить компрометацию контейнера в компрометацию всей ноды. Исправление уже отправлено upstream.
3 539
15
Работа с container registry у многих до сих пор сводится к docker pull / docker push, а значит к запущенному демону, docker.sock в раннере и лишним привилегиям там, где они совсем не нужны. regclient — это Go-библиотека и три CLI для работы с OCI-совместимыми реестрами без container runtime и без привилегированного доступа к хосту: - regctl — инспекция, копирование и ретегирование с сохранением digest, работа с OCI Artifacts, referrers и мультиплатформенными индексами, плюс regctl image mod (аннотации, timestamps, смена базового образа и алгоритма digest) - regsync — зеркалирование по YAML-конфигу: по расписанию, разово или только отчётом об устаревших образах, с поддержкой OCI Layout для переноса через air-gap - regbot — скриптование политик на Lua: обход репозиториев, удаление лишних тегов и манифестов, с оглядкой на rate limits Самое интересное здесь — поддержка referrers и digest tags: именно в них живут подписи cosign и аттестации с SBOM. Если тянуть образы во внутренний реестр инструментом, который про них не знает, то образ доедет, а доказательства его происхождения — нет, и вся выстроенная supply chain security тихо превращается в тыкву. И да, regctl image mod с regbot одинаково удобны как для наведения порядка в реестре, так и для того, чтобы незаметно в нём что-то поправить — права на запись в registry стоит раздавать так же скупо, как и в кластер ;)
4 088
16
🔝 Вспоминаем, как это было на БеКон 2026! 🔥 Конференция осталась позади, но самый сок теперь доступен онлайн. Все доклады,
🔝 Вспоминаем, как это было на БеКон 2026! 🔥 Конференция осталась позади, но самый сок теперь доступен онлайн. Все доклады, драйв, инсайты и презентации от топ-экспертов рынка (Luntry, Т-Банк, Альфа-Банк, Ozon, АСТРА и др.) уже ждут вас на сайте. Пересматривайте лучшие моменты, скачивайте слайды и внедряйте лучшие практики в своих проектах. 👇 Забирайте материалы прямо сейчас: 📺 Записи докладов тут 📂 Презентации тут Ставьте ❤️ и делитесь постом с коллегами, которым это будет полезно! 🚀
3 387
17
User Namespaces — одна из самых значимых функций безопасности Kubernetes последних лет, но её работа гораздо сложнее, чем мож
User Namespaces — одна из самых значимых функций безопасности Kubernetes последних лет, но её работа гораздо сложнее, чем может показаться на первый взгляд. В статье User Namespaces in Kubernetes, Part III: The Implementation подробно разбирается, как kubelet, CRI и OCI Runtime совместно создают отдельные user namespace для каждого Pod и управляют UID/GID. Автор также объясняет, как Kubernetes резервирует диапазоны идентификаторов, хранит их состояние и предотвращает конфликты между Pod'ами. Отдельное внимание уделено интеграции с idmapped mounts, благодаря которой User Namespaces работают с томами без изменения владельцев файлов. Это отличный материал для тех, кто хочет разобраться не только в использовании User Namespaces, но и понять, какие изменения потребовались внутри Kubernetes для реализации этой функции и почему она так долго находилась в разработке.
3 542
18
В известном решении по безопасности Tetragon закрыли «Unauthenticated Tetragon gRPC admin API accessible from hostNetwork pods» - CVE-2026-65960 (CVSS 8.8). Суть простая: агент поднимает свой административный gRPC API по TCP на localhost:54321 и без какой-либо аутентификации. Таким образом любой злоумышленник на Node или Pod с hostNetwork: true живёт в сетевом namespace узла — значит этот localhost и его тоже. Что из такого пода может атакующий: - добавлять, удалять и перенастраивать TracingPolicy - менять debug-настройки - в целом крутить поведение агента вплоть до container escape и повышения привилегий Починили в v1.7.0 - уязвимы абсолютно все версии до этой! Отдельно обратите внимание на механику: атакующему здесь не нужно ничего эксплуатировать в первую очередь — ему нужно выключить наблюдение. Снёс TracingPolicy — и дальше работает вслепую для SOC, который как раз на Tetragon и завязан. Средства защиты сами являются частью attack surface и требуют харденинга не меньше, чем прикладные нагрузки, а hostNetwork: true в очередной раз стоит читать как «почти привилегированный под» =)
3 599
19
В Kubernetes постепенно появляются z-pages — специальные диагностические endpoint'ы (statusz, flagz, configz), которые помога
В Kubernetes постепенно появляются z-pages — специальные диагностические endpoint'ы (statusz, flagz, configz), которые помогают понять реальное состояние компонентов кластера. На практике именно configz наиболее полезен для аудита безопасности, так как показывает итоговую конфигурацию с учётом файлов конфигурации, а не только параметров командной строки. Автор статьи Show us Zee Pages, Rory McCune показывает, почему полагаться только на flagz опасно. Если компонент использует конфигурационные файлы, информация может быть неполной или даже вводить в заблуждение. При этом доступ к configz неодинаков для разных компонентов Kubernetes, а для некоторых из них требуются дополнительные права и сетевой доступ. Чтобы упростить анализ, автор разработал утилиту zeedumper, которая собирает данные из statusz, flagz и configz, а также пытается восстановить отсутствующие значения по умолчанию. Это может заметно облегчить аудит и проверку конфигурации Kubernetes-кластеров.
3 358
20
Дефолты — это не константа, а свойство конкретной версии. Меняются они между минорными релизами, а иногда и между патчами, так что любой ваш снимок «как оно настроено из коробки» имеет срок годности. Показательный случай — CVE-2025-46599 в K3s. В ветке 1.32 конфигурацию kubelet перевели с устаревших CLI-флагов на структуру v1beta1.KubeletConfiguration с генерацией YAML drop-in. А у поля ReadOnlyPort в апстримной go-структуре стоит omitempty — и значение 0 просто выпало при маршалинге. kubelet подставил свой дефолт и поднял 10255: неаутентифицированный доступ к /pods со со спецификациями Pod’ов, включая потенциально чувствительные значения в env, аргументах запуска и других полях; в отдельных конфигурациях это могло приводить к раскрытию токенов и credentials. Разбор — в issue #12164, починили только в 1.32.4-rc1+k3s1, то есть проблема присутствовала в нескольких последовательных релизах ветки 1.32. А теперь самое интересное. Всё это время CIS self-assessment guide в пункте 4.2.4 писал ровно обратное: «By default, K3s sets the --read-only-port to 0». И сама проверка сформулирована так: Expected Result: '--read-only-port' is equal to '0' OR '--read-only-port' is not present. После рефакторинга флага в командной строке kubelet не стало — то есть автоматический аудит по этому пункту честно рапортовал PASS, пока порт слушал. Один и тот же коммит и открыл дыру, и ослепил проверку. Вывод простой и невесёлый: все всегда стоит перепроверять и подвергать сомнению =)
3 575