

24.01.202505:06
Замечательная статья "Runtime Security and the Role of eBPF/BPF-LSM", которая достаточно понятно объясняет как работает настоящий
В качестве подопытных рассматриваются
У нас в Luntry есть функциональность для обнаружения, реагирование со сбором артефактов, предотвращения на базе
Более детально мы сравнивали различные
prevention
(предотвращение) в Linux
с помощью eBPF
. В качестве подопытных рассматриваются
Falco
, Tetragon
и KubeArmor
- все с разными подходами к реализации. Первые два не дают никакого предотвращения, а только реагирование. Falco
из user space
отправляет kill
сигнал, а tetragon
из kernel space
отправляет bpf_send_signal()
. Это характерно не только им, но и всем реализациям, которые опираются не на Linux Security Modules (LSM)
. И если вам рассказывают/заявляют обратное, то вам попросту врут.У нас в Luntry есть функциональность для обнаружения, реагирование со сбором артефактов, предотвращения на базе
AppArmor
(он опирается на LSM
) и уже на подходе собственная реализация предотвращения на базе eBPF-LSM
.Более детально мы сравнивали различные
security runtime
-решения в вебинаре "Runtime Security: на вкус и цвет все фломастеры разные".20.01.202504:47
Начнем эту неделю со статьи "Reproducing CVE-2024-9042: Command Injection in Windows Kubernetes Nodes" про CVE-2024-9042, которая описывается вендором: Command Injection affecting Windows nodes via nodes/*/logs/query API. Ключевые моменты:
- Только
- Должен быть включен
-
-
- Позволяет выполнять команды на всех
Вот как-то само собой так получается, что когда мы рассказываем [1,2] про
P.S. Кто-нибудь
- Только
Windows
- Должен быть включен
NodeLogQuery feature gate
(по умолчанию сейчас выключен и эту ручку упоминали тут) -
pattern
параметр этой фичи напрямую передается в Powershell
без фильтрации-
command injection
любым пользователем и service account
с правами GET
на nodes/logs
- Позволяет выполнять команды на всех
Windows
нодах от NTAuthority\system
Вот как-то само собой так получается, что когда мы рассказываем [1,2] про
Kubernetes
в Windows
мире, это обязательно про какие-то баги. И при этом эти баги не проходные, а которые действительно могут быть очень полезны атакующему.P.S. Кто-нибудь
Kubernetes
кластера на Windows
держит или игрался с ними?

14.01.202505:06
Простая и понятная визуализация на тему как выбрать соответствующий
О том что
Ну и вообще не только
Distroless
образ от Google
для вашего приложения.О том что
distroless
бывают разные мы писали тут. И не забываем что там не все идеально - об этом писали тут ;)Ну и вообще не только
Google
такое делает. И вообще можно это делать своими руками.Медиа контентке
қол жеткізе алмадық
қол жеткізе алмадық
05.11.202405:19
Начнем новую неделю с замечательного туториала "How to Build Smaller Container Images: Docker Multi-Stage Builds". Основная задача материала научить делать маленькие/тонкие и более безопасные образы для приложений. Одним из основных посылов является: "build and runtime images should also be completely separate!". Из статьи вы узнаете:
1) Как делать не надо.
2) Что такое
3) Примеры
1) Как делать не надо.
2) Что такое
Multi-Stage
сборки3) Примеры
Multi-Stage
сборки для Node.js
, Go
, Rust
, Java
, PHP
23.01.202505:04
Неприятная история случилась с
1) 28 августа 2024 года разработчики из
2) 25 ноября 2024 года они получают анонимный отчет от исследователя безопасности о том, что их репозиторий подвержен атаке Pwn request. После этого мейнтейнеры провели ротацию всех секретов в репозитории и вернули триггерное событие обратно на
3) Спустя почти два месяца, а именно 23 декабря 2024 года атакующие начали разведку – они получили доступ к секретам, в том числе к персональному токену доступа
4) Примерно через 22 часа – 24 декабря злоумышленники перешли на основной репозиторий с полученным на предудыщем шаге
5) 29 декабря 2024 года 4 пользователя отметили в
6) 2 января 2025 мейнтейнеры подтвердили, что образ был скомпрометирован, а вунтри него содержался
Более подробно о всей ситуации можно почитать в блоге
Kong Ingress Controller
в конце прошлого года – в прод попал образ, содержащий в себе майнер XMRig
. Таймлайн происходящего был таков:1) 28 августа 2024 года разработчики из
Kong
исправляют свои пайплайны меняя pull_request
на pull_request_target
2) 25 ноября 2024 года они получают анонимный отчет от исследователя безопасности о том, что их репозиторий подвержен атаке Pwn request. После этого мейнтейнеры провели ротацию всех секретов в репозитории и вернули триггерное событие обратно на
pull_request
. Но только для главной ветки. Так что старые неиспользуемые ветки продолжили использовать pull_request_target
, а значит были уязвимы.3) Спустя почти два месяца, а именно 23 декабря 2024 года атакующие начали разведку – они получили доступ к секретам, в том числе к персональному токену доступа
GitHub
, проэксплуатировав уязвимость в одном из репозиториев.4) Примерно через 22 часа – 24 декабря злоумышленники перешли на основной репозиторий с полученным на предудыщем шаге
access token
. Они запушили образ docker.io/kong/kubernetes-ingress-controller
на Dockerhub
с тегом 3.4
.5) 29 декабря 2024 года 4 пользователя отметили в
issue
на GitHub
, что запуск Kong Ingress Controller
приводит к аномально высокой нагрузке на ЦП.6) 2 января 2025 мейнтейнеры подтвердили, что образ был скомпрометирован, а вунтри него содержался
XMRig
.Более подробно о всей ситуации можно почитать в блоге
KIC
тут. Также было опубликовано YARA правило для обнаружения таких нагрузок.17.01.202505:04
Вышло очередное новое видео из серии
Kubernetes Security Fundamentals
от Rory McCune
. Это видео про Authentication
, а вернее о том как работает аутентификация учетных записей сервисов в Kubernetes
. Видео доступно по ссылке тут.

13.01.202505:03
Сегодня вновь затронем тему
Автор рассматривает две функции –
Самое интересное, что даже не нужны сертификаты
Если говорить про перформанс, то такой способ даёт оверхед, хоть и всего 0.2 мкс. Кроме того, средняя нагрузка на процессор, создаваемая каждым хуком, выглядит следующим образом: 0,1% для
eBPF
, а точнее observability
зашифрованного трафика с помощью этой технологии – статья "What Insights Can eBPF Provide into Real-Time SSL/TLS Encrypted Traffic and How?" как раз об этом.Автор рассматривает две функции –
SSL_write()
для записи данный (используется для перехвата данных, записанных клиентом, но еще не зашифрованных) и SSL_read()
для чтения данных из SSL
соединения. Эта функция позволяет перехватить расшифрованные данные, а также разобрать код ответа.Самое интересное, что даже не нужны сертификаты
TLS/SSL
для расшифровки или шифрования трафика. Это позволяет наблюдать за протоколом приложения как до шифрования, так и после расшифровки.Если говорить про перформанс, то такой способ даёт оверхед, хоть и всего 0.2 мкс. Кроме того, средняя нагрузка на процессор, создаваемая каждым хуком, выглядит следующим образом: 0,1% для
uprobe/SSL_write*
, 0,007% для uprobe/SSL_read*
и 0,3% для uretprobe/SSL_read
. Замеры проводились на 1000 запросах для каждого HTTP
метода.02.11.202405:01
Rory McCune
, чьи исследования мы не раз упомянали на канале, начал новую серию статей – на этот раз, посвященную Kubernetes network security
.Первая статья из цикла – The Many IP Addresses of Kubernetes. В ней автор объясняет сложность сетевых
IP
-адресов в Kubernetes
, где используются три основные IP
-диапазона: адреса для Nodes
, overlay сети для Pods
и сети для Service
. Также на примере разбирается как Kubernetes
связывает IP
на уровне ОС с помощью iptables
, управляемых kube-proxy
.22.01.202505:00
На Хабре вышла наша статья "Безопасность Kubernetes-кластеров: вредные советы или bullshit bingo", которая по сути является текстовым представлением нашего выступления с
DevOpsConf 2024
. В общем, для тех кому ближе текст, а не видео. И как всегда задавайте любые вопросы в комментариях!

16.01.202505:03
Сегодня мы вам рекомендуем изучить статью "Building Container Images FROM Scratch: 6 Pitfalls That Are Often Overlooked" (Иван продолжай в том же духе ;)). Название говорит само за себя. Все с наглядными примерами проблем и их решениями.
08.11.202405:00
Продолжая тематику
Статья объясняет, как в
Конфигурация сети хранится в файле
Kubernetes Network Security
, Rory McCune
представил новую заметку в своем блоге – Exploring A Basic Kubernetes Network Plugin.Статья объясняет, как в
Kubernetes
кластере Pods
получают IP
-адреса через сетевые плагины, соответствующие спецификации CNI
. В примере используется kind
с плагином kindnetd
.Конфигурация сети хранится в файле
10-kindnet.conflist
, где указаны IP
-диапазоны для каждого узла. Для маршрутизации трафика между подами на разных узлах kindnetd
создает записи в таблице маршрутизации. В завершение автор отмечает, что работа с сетью в Kubernetes
может быть сложной и зависит от выбранного сетевого плагина.

21.01.202505:03
Сегодняшним постом продолжаем тематику наступательной безопасности в
Наверняка вы знаете, что
Очевидно, что
Бага 2019 года (упоминали про неё на канале тут), но она всё еще работает. Всё что нужно – это перезаписать
Если у вас есть возможность создавать
Эксплуатация уязвимости типа
Про эти и другие способы использования
Kubernetes
, а именно – рассмотрим механизм Proxy
в Kubernetes API Server
. Наверняка вы знаете, что
Kubernetes API Server
может выступать в качестве HTTP
-прокси сервера, позволяя пользователям с соответствующими правами (create nodes/proxy, pods/proxy
) получить доступ к Nodes
или Pods
.Очевидно, что
kubectl proxy
позволяет по сути экспулатировать SSRF
, поэтому рассмотрим несколько интересных способов использования этой функциональности:1) Проксирование на адреса вне кластера
Бага 2019 года (упоминали про неё на канале тут), но она всё еще работает. Всё что нужно – это перезаписать
IP
адрес в поле status
в манифесте Pod
, а затем проксировать запросы на этот адрес. Однако, это может вызвать некоторые сложности, т.к Kubernetes
распознает это изменение как ошибку и изменяет значение на действительный IP
-адрес, поэтому вам придется зацикливать запросы, чтобы сохранить его установленным на нужное вам значение:
2) SSRF через Fake Node
Если у вас есть возможность создавать
Nodes
, то в манифесте достаточно указать желаемый адрес, для того чтобы проксировать туда запросы:
3) CVE-2020-8562 – Обход blacklist
Эксплуатация уязвимости типа
TOCTOU
, на данный момент не имеющей патча, будет особенно интересна, если вы находитесь в окружении облачного провайдера без возможности делать запросы на 169.254.169.254
. Прибегнув к известной технике для эксплуатации SSRF
– DNS rebinding
можно обойти это ограничение, для этого, например, можно воспользоваться сервисом rebinder.Про эти и другие способы использования
kubectl proxy
рассказал Rory McCune
в своей статье "Exploring the Kubernetes API Server Proxy".

15.01.202505:03
Первая конференция в 2025-ом году, которая зацепила наше внимание –
В докладе авторы рассказывают много чего интересного – затрагивают проблемы
Также в докладе был упомянут новый инструмент Seccomp-Diff, который может сравнивать
ShmooCon 2025
. Там было много интересных докладов, в том числе там был доклад и про Kubernetes Security
– "A Commencement into Real Kubernetes Security (Jay Beale and Mark Manning)".В докладе авторы рассказывают много чего интересного – затрагивают проблемы
system call filtering system
, приводящие к TOCTOU
, говорят про инструменты для генерации и управления seccomp
профилями в Kubernetes, показывают демо работы с инструментами peirates
и KubeHound
(1, 2).Также в докладе был упомянут новый инструмент Seccomp-Diff, который может сравнивать
Seccomp
профили двух контейнеров и подсвечивать наиболее опасные системные вызовы. Может работать как CLI
, так и через веб-приложение.

06.11.202405:01
Тем временем, в предверии конференции
- добавлена поддержка подписей
- добавлена поддержка
Также нельзя не упомянуть о ломающих изменениях:
1) С версии
2) CVE-2024-48921 позволяла пользователям с возможностью создавать
KubeCon + CloudNativeCon NA 2024
, вышла новая версия Kyverno
– 1.13
. Основных изменений не так много:- добавлена поддержка подписей
images
, использующих sigstore bundle
- добавлена поддержка
PolicyExceptions
для ValidatingAdmissionPolicies
сгенерированных из Kyverno политик (используя subrule validate.cel
)Также нельзя не упомянуть о ломающих изменениях:
1) С версии
1.13
у контроллеров Kyverno отобраны wildcard
разрешения на просмотр всех ресурсов. Это изменение может повлиять на отчеты, а также на политики mutate
и generate
на пользовательских ресурсах, поскольку контроллер больше не сможет просматривать пользовательские ресурсы2) CVE-2024-48921 позволяла пользователям с возможностью создавать
PolicyExceptions
обходить ClusterPolicy
в конкретном неймспейсе.Көрсетілген 1 - 14 арасынан 14
Көбірек мүмкіндіктерді ашу үшін кіріңіз.