k8security | Неотсортированное

Telegram-канал k8security - k8s (in)security

10261

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

Подписаться на канал

k8s (in)security

В процессе, подготовки нового исследования, копаясь на сайте проекта gVisor, который является sandbox runtime, была найдена интересная/хайповая формулировка.

В новых реалиях мы будем защищаться не только от не доверенного, стороннего кода, но и от сгенерированного машиной кода с помощью Large Language Model (LLM).

В контейнерных окружениях с этим будет попроще, но вот с чисто Windows и Linux окружениями ....

P.S. Напоминаем, что идет конкурс и есть возможность выиграть билет на БеКон 2024!

Читать полностью…

k8s (in)security

В Calico нашли новую CVE-2024-33522 – она аффектит как Open Source версии (v3.27.2 и ниже), Calico Enterprise (v3.19.0-1, v3.18.1, v3.17.3 и ниже), и Calico Cloud (v19.2.0 и ниже). Сценарий эксплуатации довольно редкий – злоумышленник должен попасть на ноду (и при этом не быть root). Проблема возникает из-за некорректной установки SUID бита в сочетании с возможностью контролировать входной бинарный файл для установки CNI Calico, что позволяет злоумышленнику запустить произвольный бинарь с повышенными привилегиями.

Интересно, что в Calico находят примерно один баг в год, тогда как в Cilium довольно активное security сообщество (только за 2024-ый год было найдено 5 CVE). Связано ли это в целом с более активным и масштабным коммьюнити Cilium думайте сами 😉

Читать полностью…

k8s (in)security

Коротенькая, но очень полезная статья с говорящим названием javier-canizalez/policy-enforcement-in-kubernetes-restricting-kubectl-exec-with-gatekeeper-7e99823465c9">"Policy Enforcement in Kubernetes: Restricting kubectl exec with Gatekeeper".

Из нее вы узнаете:
1) почему стоит контролировать не только операции CREATE и UPDATE, но и CONNECT над ресурсами.
2) как можно гибко контролировать и ограничивать то что пользователь хочет выполнить в kubectl exec. Например, разрешить все кроме интерактивных сессий или сделать whitelist команд.

P.S. В качестве домашнего задания можете сделать тоже самое и на Kyverno ;)

Читать полностью…

k8s (in)security

Матрица MITRE ATT&CK получила обновление v15.1 (она обновляется два раза в год). И если матрицы, вроде Windows или Mobile получили существенные изменения, то про Container Matrix такого сказать нельзя.

Из изменений можно отметить добавление новой саб-техники Container Service, а также обновление техники Deploy Container. В саб-технике Container Service не добавили по факту ничего нового, а в технике Deploy Container просто расширили описание (мы проверили и сравнили с прошлой версией).

P.S – в одном из докладов мы подробно рассказывали об основных матрицах угроз для контейнеров и K8s, об их отличиях и недостатков, а также на примерах показывали как это может работать и не работать.

Читать полностью…

k8s (in)security

С большим удивлением для себя узнаем, что очень много людей, что занимается приложениями в контейнерах, Kubernetes, облаках не слышали о 12 факторах. Статья "tech_18484/introduction-701b7a8f4730">The Twelve-Factor App: Best Practices for Cloud-Native Applications" позволяет закрыть данный пробел.

Очень часто в наших выступлениях мы говорим о том что, безопасность начинается с правильной архитектуры, правильных процессов, с правильного подхода к разработке. Закладывая правильный фундамент, обеспечивать его безопасность в дальнейшем будет и проще, и эффективнее.

Читать полностью…

k8s (in)security

Замечательное сравнение "Benchmark results of Kubernetes network plugins (CNI) over 40Gbit/s network [2024]"!

Условия:
- Kubernetes 1.26
- Ubuntu 22.04
- CNI с версиями на январь 2024

Подопытные (в скобках текущая доступная версия, чтобы сравнить насколько за это время CNI обновился):
- Antrea v1.15.0 (v2.0.0)
Варианты: Default / No encapsulation / IPsec / Wireguard
- Calico v3.27.2 (v3.27.3)
Варианты: Default / eBPF / Wireguard / eBPF+Wireguard / VPP / VPP IPsec / VPP Wireguard
- Canal v3.27.2 (v3.27.3) (Это CNI flannel с NetworkPolicy от Calico)
Варианты: Default
- Cilium v1.15.2 (v1.15.4)
Варианты: Default / with Hubble / No hubble / No kubeproxy / IPsec / Wireguard
- Kube-OVN v1.12.8 (v1.12.13)
Варианты: Default
- Kube-router v2.1.0 (v2.1.1)
Варианты: Default / All features

Нас часто спрашивают что рекомендуем мы. У нас нет какого-то любимчика, главное чтобы команда клиента могла с этим CNI работать и была поддержка NetworkPolicy. У нас даже в Luntry одновременно есть автоматическая генерация NetworkPolicy во всех форматах: Native, Calico, Cilium (для полноты не хватает Antrea, но пока не встречали у клиентов).

Читать полностью…

k8s (in)security

Cегодня хотим подсветить вам очень интересный доклад - "How to get Slim with SOCI and Star(g)s: Minifying Containers with Lazy Image Loading in ContainerD". Из него вы узнаете про:
- минификацию образов, которой занимается проект mint
- что такое ленивая загрузка образов на базе SOCI и Stargs.

Всем, хороших выходных!

Читать полностью…

k8s (in)security

Container Image Layers and Container Image Scanning Explained – неплохая статья для новичков и тех, кто хочет разобраться с тем как устроены слои в docker image, а также как работают сканеры образов.

Если говорить верхнеуровнево, то как правило, такие сканеры работают примерно по одному и тому же принципу:

1) Выкачивают образы из registry
2) Анализируют каждый слой образа – извлекают tar-файлы и проверяют наличие пакетов по заранее известным путям
3) Объединяют результаты анализа
4) Сканируют найденные пакеты на уязвимости

Читать полностью…

k8s (in)security

Замечательная исследовательская заметка "Fun with Kubernetes Authorization Auditing - multiple authz plugins" от Rory McCune. Рассказ о том как гибкость Kubernetes может добавить ряд сложностей и в данном моменте тут про авторизацию. Я думаю многие в курсе что в стандартном кластере обычно у вас сразу два обработчика авторизации это RBAC и Node. Но можно и больше и мнение каждого будет учитываться.

Идея статьи сводится к тому что если вы используете свою кастомную авторизацию, то встроенные механизмы k8s, на примере, kubectl auth can-i могут работать некорректно. Но могу честно сказать по нашему многолетнему опыту аудитов командой Luntry такого мы еще не встречали ...

В статье содержится код проекта, демонстрирующий как вы еще можете написать и добавить свой собственный Authz Webhook с логикой. И на память приходит реализация ReBAC, о которой мы писали ранее.

Также тут несколько раз повторяется о том что admission control всегда имеет последнее слово и при желании может отменить, то что разрешила авторизация. На пример, ограничить в правах Cluster Admin ;)

Читать полностью…

k8s (in)security

Всем, привет!

Мы опубликовали программу БеКон 2024!
И как всегда оставляем за собой права добавить туда еще что-ниюудь интересное ближе к конференции ;)

Напомним, что билетов ограниченное количество, и взять их можно тут.

P.S. Всем хороших выходных!

Читать полностью…

k8s (in)security

Вчера была раскрыта CVE-2024-3177: Bypassing mountable secrets policy imposed by the ServiceAccount admission plugin. Уязвимость получила Low (2.7) оценку по CVSS Rating: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N.

Благодаря этой уязвимости злоумышленник мог обойти mountable secrets policy, которая реализуется ServiceAccount admission plugin (в большинстве кластеров он включен по умолчанию), при использовании контейнеров, init и ephemeral контейнеров с выставленным полем envFrom. Также немаловажным условием для эксплуатации уязвимости является наличие аннотации kubernetes.io/enforce-mountable-secrets.

Соответствующие патчи для последних трёх поддерживаемых версий уже выпущены – 1.29.4, 1.28.9, 1.27.13. Уязвимость аффектит все версии Kubernetes <=1.27.12.

По своей природе уязвимость очень похожа на CVE-2023-2728: Bypassing mountable secrets policy imposed by the ServiceAccount admission plugin – о ней мы рассказывали на канале ранее.

Читать полностью…

k8s (in)security

Сегодня хотим подсветить инструмент Dredge, автором которого является человек, создавший The Kubenomicon (о нём рассказывали в прошлом посте).

Поиск секретов это всегда утомительная задача из-за большего количества false positive. Dredge призван решить эту проблему, используя полуручной анализ найденных результатов. Кроме того, в нём есть то, чего нет в других инструментах для поиска sensitive info:

- При поиске кредов обычно ищут фактический пароль. Но что если вы не знаете пароль? Dredge позволяет создавать очень общие запросы, такие как API_KEY=, и анализировать результаты на предмет чувствительной информации;
- Wordlist может быть адаптирован к среде, в которой в ищете секреты;
- Dredge поддерживает поиск и копирование kubeconfig файлов;
- Это просто bash script. Никаких внешних зависимостей.

Читать полностью…

k8s (in)security

Вчера на одном достаточно кулуарном мероприятии по ИБ общались с друзьями из разных продуктовых команд безопасности по поводу темы управления уязвимостями. Тема, конечно, очень большая и нас как вы понимаете в первую очередь интересовала область касаемая уязвимостей в пакетах образов контейнеров.

Если раньше можно было часто слышать про zero tolerance к уязвимостям, то теперь эта риторика постепенно сходит.

Давайте рассмотрим такой самый распространенный случай (разработчики не дадут соврать):
1) Обновили feed - в проде есть critical.
2) Есть задача обновиться на последнюю версию.
3) При обновлении выясняется, что там несколько high или другой critical.

И вот эту ситуацию решает кто как с учетом как у них работают или не работают security gates и механизмы принятия рисков ...

Давайте в комментариях поделимся своим опытом и своим взглядом на эту ситуацию.

P.S. С удивлением для себя открыл, что некоторым проще жить с той багой что уже на проде, чем как-то обходить security gates и выкатывать новое.

P.S.S. А сегодня будем рады пообщаться в рамках CISO Forum 2024 ;)

Читать полностью…

k8s (in)security

Сегодня хотим поделиться с вами прикольным расширением Argo CD для Trivy Operator. Расширение позволяет прямо в интерфейсе Argo CD отображать vulnerability reports, созданные Trivy Operator в результате сканирования на уязвимости docker образов.

Для того чтобы установить расширение к себе в Argo CD необходимо немного пропатчить Deployment argo-cd sever. А именно – добавить init-container с необходимым React Component.

Читать полностью…

k8s (in)security

25 марта AWS зарелизила новую функцию, которая позволяет по умолчанию внедрять IMDSv2 на уровне региона для newly-launched instances. Хоть это и долгожданное обновление, тем не менее у этой функции всё еще есть некоторые недостатки.

Использование IMDSv2 защищает от SSRF уязвимостей, которые в противном случае позволили бы злоумышленнику получить креды из Instance Metadata Service (IMDS).

Это отличный способ включить безопасные настройки по умолчанию , но пока это не так. Вероятно, скоро это изменится, согласно заявлению AWS:

Mid-2024 – Newly released Amazon EC2 instance types will use IMDSv2 only by default. For transition support, you will still be able to enable/turn on IMDSv1 at launch or after launch on an instance live without the need for a restart or stop/start.


Больше технических подробностей про IMDSv2 можно найти в статье "IMDSv2 enforcement: coming to a region near you!".

Читать полностью…

k8s (in)security

15 мая в 12:00 в рамках активности КОД ИБ под названием БЕЗОПАСНАЯ СРЕДА пройдет вебинар "С чем безопаснику стоит есть Kubernetes и почему это отличается от всего с чем вы работали раньше?".

Наша команда Luntry примет участие вмести с крутыми специалистами и нашими хорошими друзьями из Тинькофф, Wildberries и Okko.

Зарегистрироваться можно тут.

Читать полностью…

k8s (in)security

Сегодня мы хотим запустить конкурс!

Приз: Проходки на конференцию БеКон 2024

Задание: Напишите какие костыли вы, ваши коллеги, ваши друзья делали/видели в компаниях для обеспечения ИБ в Kubernetes кластерах или в процессе безопасной разработки контейнерных приложений (DevSecOps).

Условия: 3 cамые интересные на наш взгляд истории, описанные в комментарии к данному посту до 15 мая получат приз ;)

P.S. Уже работаем над стикер паком для конференции! Будет такой же классный и будет выдан всем участникам.

Читать полностью…

k8s (in)security

Отдельно ваше внимание хочется обратить на группу докладов про Service Mesh. Это "Строим заборы между сервисами" и "Все ли Service Mesh одинаковы полезны для ИБ?" соответственно от Андрея Бойцева и Максима Чудновского.

В первом, речь пойдет про Authorization Policy от Istio и то, как с этим работать и к чему нужно готовиться. Знаем многие хотят L7 политики, но боятся и не знают как к этому подступиться - тут будет представлен реальный опыт.

Во втором докладчик нас погрузит в ближайшее будущее/настоящее и покажет, как Service Mesh в sidecar-less реализации (Cilium Service Mesh, Istio Ambient Mesh) помогут в вопросах ИБ с точки зрения шифрования, взаимной аутентификации и авторизационных политик. В общем, посмотрим, как это устроено под капотом и где мы получим это бесплатно, а где нет.

Напомним, что все доклады программы БеКон — это приглашенные доклады - мы целенаправленно идем к конкретным людям и просим от них конкретный материал. Все это с учетом нашего опыта и наблюдений по отрасли и запросов рынка и компаний. Так что за всей программой стоит строгая концепция, которая призвана помочь вам применить это все в работе.

Времени, как и билетов на конференцию осталось уже не много – спешите! Билеты можно взять тут.

Читать полностью…

k8s (in)security

Очень хочется обратить ваше внимание на один из докладов с нашей конференции БеКон 2024. Речь идет про доклад "Почему защитой k8s должно заниматься целое подразделение?" от Артема Мерец.

Почему именно на него? За прошлый год к нам порядка 4-5 раз обращались разные компании с просьбой помочь обосновать наличие выделенного департамента/отдела/... , который целенаправленно специализируется на безопасности Kubernetes кластеров и нагрузки в нем. Сейчас у многих картина выглядит печально и за это отвечает, где AppSec, где DevOps, где DevSecOps, где Infrastructure team и т.д. и это помимо других задач и направлений. В итоге, и фокуса, и ответственных, и результата значительного нет …

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

Читать полностью…

k8s (in)security

Недавно прошла замечательная конференция Container Plumbing Days 2024 (сайт, расписание/cлайды, видео) с которой уже доступны все материалы! Думаем что это замечательное время препровождения на этих выходных, предвкушая приближающийся БеКон 2024 ;)

Отдельно мы отметим такие доклады как:
- "Confidential Containers with the Crun-Krun Container Runtime"
- "Kata Containers: Security and Containers Without Compromise"
- "Usernetes Gen2: Kubernetes in Rootless Docker, with Multiple Nodes"
- "Hot Fix: Securing the Vulnerable Images with Copa"
- "CDI: The Future of Specialized Hardware in Containers"

Читать полностью…

k8s (in)security

Чуть больше 1 месяца (точнее 39 дней) осталось до нашей второй конференции БеКон 2024!

Недавно на Хабре опубликовали небольшой анонс с обзором прошлогодней - если еще не решили идти или нет, то рекомендуем ознакомиться ;)

В этом году доклады покроют такие темы как:
- Management/organization
- Cluster security
- Image security
- Network security
- Secret management
- Multitenancy

Читать полностью…

k8s (in)security

Если вам захотелось посмотреть как выглядит ваш ETCD внутри, то инструмент ETCD Keeper может с этим помочь.

По сути это небольшой web ETCD client с возможностью просматривать, добавлять, обновлять или удалять ноды, а также сами ключи и их значения. Есть поддержка как v2 так и v3 версии.

Читать полностью…

k8s (in)security

Nimbus – инструмент, который авторы позиционируют как систему автоматизации безопасности на основе намерений.

Главная его цель максимально разделить намерения безопасности от их фактической реализации, благодаря использованию Policy Engine, Network Policy и других механизмов в Kubernetes. Так, например пользователь может задать ресурс в виде высокоуровневой абстракции "Не допускать privilege escalation" или "Запретить общаться по DNS со всеми, кроме Kube-DNS", а nimbus преобразует его в конкретную политику и применит к необходимому Pod.

В данный момент тулза имеет три адаптера и может генерировать соответствующие политики для KubeArmor, Kyverno и Native Network Policy.

Несмотря на кажущуюся простоту и удобство использования, инструмент выглядит как дополнительный слой абстракции над текущими механизмами, что кажется только усложняет всю систему.

Читать полностью…

k8s (in)security

Kyverno – одно из самых гибких решений из класса Policy Engine. Его можно использовать не только для контроля Kubernetes ресурсов, но и впринципе для любых других данных. Разработчики решения пошли дальше и сделали kyverno-envoy-plugin.

По сути, это некоторый плагин для Kyverno, который использует External Authorization от Envoy, перехватывает запросы и валидирует их в зависимости от контекста политики Kyverno.

Пока что это очень сырой, но тем не менее работающий проект. Авторы планируют добавить использование Admission Controller для инжекта kyverno-envoy в качестве sidecar контейнера в довесок к основному.

P.S. Про гибкость Kyverno мы рассказывали в докладе "Нестандартное применение Kyverno".

Читать полностью…

k8s (in)security

Вышла новая версия Kubernetes под номером 1.30 и это помимо появления новых фич, говорит нам о скором завершении поддержки 1.27 ...

О ряде security фич мы уже писали в одном из наших предыдущих постов. А сегодня остановимся на том, что не писали и/или кажется особо важным на наш взгляд. А это:
1) AppArmor перешел из beta (там он был с 1.4) в GA (прошло 7 лет)! Теперь нужно задавать его не в аннотации, а в PodSecurityContext и SecurityContext.
2) Поддержка User Namespaces перешла в beta! Очень бодрый переход такой важной фичи, которая только в 1.29 появилась в статусе alpha. Определенно в будущем будет просто включена по умолчанию.

А об остальных изменениях, отличиях по сравнению с 1.29 можно прочитать тут.

Читать полностью…

k8s (in)security

Сегодня у нас в центре внимания статья/заметка с говорящим названием "How to Port a Sample Application to Chainguard Images" от создателей Chainguard Images. Здесь прям по шагам рассматривается как портировать приложение на NodeJS и Python на тонкие образы. В результате получаем и образы более маленького размера и 0 CVE в графе уязвимостей. Ну не прекрасно ли ?)

Читать полностью…

k8s (in)security

The Kubenomicon - это база знаний одного начинающего исследователя, который хотел для себя задокументировать как можно атаковать Kubernetes. Если матрица угроз для Kubernetes от Microsoft нацелена на специалистов, что занимаются защитой данной системы, то данный проект нацелен на тех, кто атакуют данную систему.

Так проект Kubenomicon для многих новичков будет полезным, но помните, что он еще очень сырой ... много что там не описано и ждет доработки, ну и неточности/неполнота тоже имеются, так что будьте аккуратны. Ну и как-то практически все описывается без оглядки на RBAC, что создает ложную иллюзию простоты. Явно тут не хватает описания моментов/механизмов, которые могут противодействовать этому и почему у вас может, так сказать, не получаться по инструкции)

По данной теме наша команда Luntry в лице Сергея Канибора на VK Kubernetes Conf 2023 в рамках доклада "Экскурсия по матрицам угроз для контейнеров и Kubernetes" уже рассказывала об основных матрицах угроз для контейнеров и K8s, об их отличиях и недостатка, а также на примерах показывала, как это может работать и не работать. То есть что там есть далеко не все, и мы на своих проектов применяем больше, чем есть в этих матрицах.

Читать полностью…

k8s (in)security

Вечернее чтение не особо примечательной статьи "PIDs limit — How to Change K8S POD’s Limit", описывающей то, как инженер повышал количество возможных PID внутри Pod для Mongo, которая создает на каждой соединение по процессу, навела на ряд интересных мыслей:
1) Возможность DOS системы за счет исчерпания доступного лимита на Node. И как оказалось это не оригинальная идея и она уже рассматривалась в документации OpenShift.
2) Возможность ограничить количество PID на контейнер, что не позволит атакующему/злоумышленнику в таком контейнере создать новые процессы (получить shell и т.д.). Тут через поиск нашелся тикет Allow setting pids-limit on containers #43783, но решение так и не появилось ...

Что думаете про такое?)

Читать полностью…

k8s (in)security

Ingress Node Firewall - проект с открытым исходным кодом из репозитария OpenShift, реализующий Ingress node firewall в виде Kubernetes operator с помощью eBPF XDP kernel плагина. У данного оператора есть 3 CustomResource:
- IngressNodeFirewallConfig
- IngressNodeFirewallNodeState
- IngressNodeFirewall

По сути он позволяет ограничить от кого на какие порты сервисы на Node могут принимать соединения, а от кого нет.

Подробнее о данном операторе можно узнать из презентации "OCP 4.14 Stateless Ingress Node Firewall" и в этом 20 минутном видео. А примеры ресурсов тут.

Читать полностью…

k8s (in)security

Сегодня мы рады анонсировать еще 1 доклад с нашей конференции БеКон 2024. Таким образом уже анонсировали 9 докладов.

#9

Название: Строим заборы между сервисами
Докладчик: Андрей Бойцев (Яндекс Финтех)
Описание: В этом докладе мы расскажем о нашем опыте внедрения авторизационных политик (построение zero-trust межсервисной авторизации на базе Istio) в нескольких кластерах, обсудим примеры и сложности с которыми мы столкнулись во время внедрения.

Напомним, что билетов ограниченное количество, и взять их можно тут.

Читать полностью…
Подписаться на канал