Telegram Web
Недавно, читая нововведения в Red Hat OpenShift 4.16, наше внимание привлекло "Secure OpenShift cluster networking with Admin Network Policy". Для тех кто ранее с этим не сталкивался то речь идет о ресурсе AdminNetworkPolicy (ранее известном как GlobalNetworkPolicy), который является нативной реализацией clusterwide вариации NetworkPolicy! В Calico для этого есть кастомнный ресурс GlobalNetworkPolicy, а в Cilium есть CiliumClusterwideNetworkPolicy и в Antrea это ClusterNetworkPolicy.

Так вот OpenShift на CNI OVN-Kubernetes стал первым поддерживать данный ресурс (обсуждение в Calico и тоже самое в Cilium и в kube-ovn пока просто идут)! Также поддержка (уже как год) этого ресурса есть в Antrea!

Напомним, что работа над этим ресурсом идет в рамках SIG Network, а именно Network Policy API Meeting в рамках KEP-2091: Add support for AdminNetworkPolicy resources.

И пока это все изучали наткнулись еще на один ресурс над которым идет работа - BaselineAdminNetworkPolicy. Его идея в следующем: "An BaselineAdminNetworkPolicy (BANP) resource will help the administrators set baseline security rules that describes default connectivity for cluster workloads, which CAN be overridden by developer owned NetworkPolicies if needed."

P.S. Еще в документах можно встретить TenancyNetworkPolicy ;)

P.S.S. А еще NetworkPolicy v2 =)
👍12🔥63
Вышла версия Cilium 1.16.0 и со стороны security там достаточно изменений:

- Поддержка диапазона портов в Network Policy
- Network Policy Validation Status. С помощью kubectl describe cnp можно узнать является ли сетевая политика Cilium валидной или нет
- Control Cilium Network Policy Default Deny behavior. Благодаря параметру EnableDefaultDeny можно управлять поведением стандартной запрещающей политики.
- Добавлена поддержка CiliumCIDRGroups в egress правилах в политиках.
- Load "default" Network Policies from Filesystem. Помимо привычной раскатки политик через kubectl apply, теперь их можно подсовывать напрямую из FS.
- Support to Select Nodes as Target of Cilium Network Policies. С помощью новых селекторов ToNodes/FromNodes трафик может быть разрешен или запрещен на основе лейблов target Node.

Полный changelog можно посмотреть тут.
👍14🔥32
Продолжим тему сетевой безопасности. И если вам интересно куда и как развивается механизм сетевого ограничения в Kubernetes, то вам определённо стоит ознакомится с двумя докладами от ребят что непосредственно работают над этим:
- "AdminNetworkPolicy: A New Kubernetes-Native API for Comprehensive Cluster-Wide Network Security" с Kubecon 2023
-"Network Policy: The Future of Network Policy with AdminNetworkPolicy" с Kubecon 2024
🔥9👍31🥰1
Вышла третья статья из цикла Kubernetes Security Fundamentals и в этот раз про Authorization (первая была про API Security и о ней мы писали тут, а вторая про Authentication и почитать про неё можно тут).

Автор кратко разбирает как работают и в чем основные преимущества и недостатки Kubernetes authorization modules, а также рассказывает как устроена авторизация в других компонентах KubernetesKubelet, Scheduler и Controller Manager.
👍122🔥1🥰1
Для того чтобы блокировать операции над subresources, вроде pods/exec или pods/portforward, необходимо внести некоторые изменения в конфигруацию вебхуков PolicyEngine. А именно – добавить операцию CONNECT. По умолчанию этой операции нет, и если её не добавить соответствующая политика на запрет использования pods/exec или pods/portforward просто не будет работать.

Но есть и хорошие новости. Если вы используете Kyverno и применяете политику, где задействован такой subresource (для контроля которого нужна операция CONNECT), то Kyverno автоматически пропатчит конфиг своего вебхука и добавит туда нужную операцию.

Про необходимость использования операции CONNECT мы рассазывали тут.
👍13🔥4🥰2
В статье "Authentication and Authorization with ISTIO and OPA on Kubernetes" рассказывается как можно накрутить Authentication и Authorization между сервисами, запущенными в Kubernetes кластере на базе Istio (с использованием RequestAuthentication и AuthorizationPolicy) и OPA.

К использованию OPA пришлось прибегнуть из-за некоторых ограничений Istio, выраженных в отсутствии поддержки regex as path rule.

P.S. – всем хороших выходных!
👍13🔥5🥰21
Как вы можете помнить, начиная 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👍72
Если вы не знаете, почему Kubernetes не управляет пользователями, то статья с одноименным названием "Why Kubernetes doesn’t manage users?" для вас.

В статье рассказывается о преимуществе такого подхода, а также как можно завести пользователей в кластер с помощью external connectors:

- OIDC
- LDAP
- Webhooks and Custom Auth Plugins
👍103🔥3
Сегодня хотим поделиться небольшой утилитой 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🔥32😢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.

Ознакомиться с самой тулзой можно по ссылке тут. Узнать, то как и где её можно применять можно здесь.
🔥18👍81
На просторах Github мы наткнулись на репозиторий KubernetesCRInjection. Он определенно будет полезен, если вы пишите свой Kubernetes controller и хотите избежать возможных уязвимостей еще на стадии его проектирования.

Когда мы имеем дело с уязвимым Kubernetes controller нужно понимать что, злоумышленники могут контролировать определенные пользовательские ресурсы и внедрять вредоносные полезные нагрузки, которые могут вызвать вредоносное поведение, когда контроллер анализирует, обрабатывает, хранит кастомные ресурсы или генерирует другие связанные ресурсы.

Примеры того как можно классифицировать такие инъекции и реальные примеры таких уязвимостей можно в репозитории.
🔥13👍42
Сегодня выходит Kubernetes версии 1.31 и это значит самое время посмотреть какие улучшения в аспектах ИБ [1,2] он нам принесет.

1) KEP-24 - Поддержка механизма AppArmor в Kubernetes ушло в Stable
2) KEP-2535 - Обеспечение безопасного доступ к образам с IfNotPresent image pull policy
3) KEP-4193 - Контролирование анонимного доступа к endpoints. На пример, к healthz, livez и readyz анонимно обращаться можно, а к другим нельзя даже при разрешениях RBAC.
4) KEP-4193 - улучшение жизненного цикла Bound Service Account Token
5) 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.
👍21🔥54👎1
Небольшая тулза kube-audit-viewer будет вам полезна, если вы собираете Kubernetes Audit Log и хотите удобно их просматривать. По сути это простое веб-приложение, которое принимает на вход файл с логами (через параметр -logfile) и рендерит их на странице в браузере. Также присутствует функционал с простым поиском.

P.S – да, может быть не совсем красиво и удобно, но это лучше чем ничего.
🔥9👍4👎21🤮1
В официальном блоге Kubernetes с релизом версии 1.31 вышла статья "Kubernetes 1.31: Moving cgroup v1 Support into Maintenance Mode", указывающая на очень важный эволюционный момент.

С версии 1.31 поддержка cgroup v1 переведена в maintenance mode. Это означает:
1) Feature Freeze: Никаких новых фич не будет добавляться с поддержкой cgroup v1
2) Security Fixes: Критические исправления безопасности будут доставляться до cgroup v1 реализации
3) Best-Effort Bug Fixes: Основные баги могут быть исправлены если это возможно, но некоторые проблемы могут остаться нерешенными.

Так что уже нужно задуматься об апгрейде своих кластеров, хостовой ОС и рантаймов на cgroup v2, если вы еще об этом не позаботились ;)
👍15🔥31👎1
Когда-то на канале мы рассказывали о фишке, которая может быть полезна при пентесте в Kubernetes окружении – получение адресов всех сервисов в Kubernetes через dig:


dig SRV +short any.svc.cluster.local


Но, начиная с версии CoreDNS 1.9 (вышла около двух лет назад) эту возможность выпилили. А значит в свежих версиях Kubernetes этот трюк точно не будет работать.

P.S – тут может помочь k8spider, про который мы рассказывали в одном из предыдущих постов.
👍115🔥4
На портале TryHackMe есть раздел/направление "K8s Best Security Practices", который как не трудно догадаться целенаправленно посвящен безопасности Kubernetes (если честно, то совсем малой части). Из тем там покрывается:
- Service Accounts
- RBAC
- API Запросы
- общие моменты про сканирование образов, SecurityContext и безопасность etcd

Также есть небольшая практика, где нужно немного пошаманить с RBAC.

На все про все нужно минут 10 (если не читать теорию) ;)
3👍22🔥65
На конференции OFFZONE 2024 наша команда Luntry совместно с нашим хорошим товарищем Николаем Панченко (Ведущий специалист обеспечения безопасности K8s и Cloud, T-Банк) представит доклад "Побеги из контейнеров: Kubernetes 2024 edition".

Тема побегов из контейнеров в K8s не нова. Ввиду эволюции экосистемы и инструментов IT в кластере появляются новые возможности. Но новые возможности, как известно, порождают новые уязвимости! Это ведет к тому, что в инфраструктуре K8s появляется возможность эксплуатации новых векторов атак для побега из контейнера. При этом старые векторы также стабильно присутствуют и не дают о себе забывать. В рамках доклада мы на примерах рассмотрим векторы для побегов, которые стоит знать, помнить и учитывать в 2024 году.

Данное выступление в некотором роде развитие выступления "Container escapes: Kubernetes edition" c ZeroNights 2021 ;)
🔥1733👍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👍27🔥42
Наш хороший товарищ Алексей Федулаев недавно провел замечательный вебинар "Побеги из контейнеров / Docker Escape", который можно посмотреть на его канале и к которому идет сопроводительный репозитарий со всеми инструкциями и исходными кодами!

Среди рассматриваемых побегов, следующие сценарии:
1) с помощью SYS_ADMIN
2) с помощью SYS_PTRACE
3) с помощью SYS_MODULE
4) с помощью DAC_READ_SEARCH
5) с помощью DAC_OVERRIDE
6) с помощью docker soсket внутри контейнера

Также у Алексея есть вебинары "Атаки на CICD", "Безопасность Docker. Ультимативный гайд по харденингу Docker", "Введение в безопасность Docker".

P.S. Про побеги из контейнеров особенно актуально в преддверии нашего доклад на OFFZONE 2024 ;)

P.S.S. Если вы что-то создаете по тематике канала, то не стесняйтесь это присылать!
4👍26🔥93😁2💩2
2025/07/10 01:56:07
Back to Top
HTML Embed Code: