Всем привет!
Недавно была опубликована новая уязвимость – CVE-2022-0847, получившая имя «Dirty Pipe». Ее эксплуатация позволяет модифицировать файлы, которые должны быть доступны только для чтения.
Интересный анализ влияния этой уязвимости на контейнеры провел Rory McCune из команды Aqua Security. Он применил ее для модификации файлов в используемых образах контейнеров.
Если упростить, то модификация существующего файла в контейнере никак не должна модифицировать этот самый файл в используемом образе, что обусловлено использованием overlay filesystems.
Для проверки гипотезы Rory сделал следующее:
🍭 Взял самый обычный образ Ubuntu 21.04 с Dockerhub
🍭 При помощи exploit, подготовленного Max Kellerman, добавил “Hello world” в /etc/shells, находясь внутри контейнера [1]
🍭 Запустил новый контейнер [2] из того же самого образа Ubuntu 21.04 и… “Hello world” был в /etc/shells
Детали, screenshots и т.д. – можно посмотреть в статье по ссылке. Также рекомендуем почитать пост в блоге Max Kellerman, в котором приведено детальное описание Dirty Pipe, информация о способах противодействия (как обычно – patch) и пример рабочего exploit
P.S. Ссылка на саму CVE-2022-0847 в NVD
Недавно была опубликована новая уязвимость – CVE-2022-0847, получившая имя «Dirty Pipe». Ее эксплуатация позволяет модифицировать файлы, которые должны быть доступны только для чтения.
Интересный анализ влияния этой уязвимости на контейнеры провел Rory McCune из команды Aqua Security. Он применил ее для модификации файлов в используемых образах контейнеров.
Если упростить, то модификация существующего файла в контейнере никак не должна модифицировать этот самый файл в используемом образе, что обусловлено использованием overlay filesystems.
Для проверки гипотезы Rory сделал следующее:
🍭 Взял самый обычный образ Ubuntu 21.04 с Dockerhub
🍭 При помощи exploit, подготовленного Max Kellerman, добавил “Hello world” в /etc/shells, находясь внутри контейнера [1]
🍭 Запустил новый контейнер [2] из того же самого образа Ubuntu 21.04 и… “Hello world” был в /etc/shells
Детали, screenshots и т.д. – можно посмотреть в статье по ссылке. Также рекомендуем почитать пост в блоге Max Kellerman, в котором приведено детальное описание Dirty Pipe, информация о способах противодействия (как обычно – patch) и пример рабочего exploit
P.S. Ссылка на саму CVE-2022-0847 в NVD
Aqua
Dirty Pipe Linux Vulnerability: Overwriting Files in Container Images
CVE-2022-0847 Dirty Pipe in the Linux kernel allows users on Linux hosts running containerized applications to modify files in container images on the host
👍1
Привет!
В последнее время участились случаи добавления в open source проекты модификаций, применимых при использовании на территории РФ.
Они могут быть безобидными для ИТ - например, вставка каких-то сообщений в логи, а могут быть и достаточно "ощутимыми" - например, перезапись содержимого файла (пример с VueJS).
Одним из выходов (по возможности) может быть явное указание версий (проверенных) используемого open source без обновления до последних/актуальных версий.
Второй - контроль и аналитика используемого open source в сборке и создание SBOM, чтобы оперативно понять - присутствует ли уязвимый компонент у вас или нет.
Есть инициатива по ведению реестра такого "искаженного" open source, пока что просто в google-документах. Если у вас есть, что добавить в этот перечень, нужно воспользоваться формой.
В последнее время участились случаи добавления в open source проекты модификаций, применимых при использовании на территории РФ.
Они могут быть безобидными для ИТ - например, вставка каких-то сообщений в логи, а могут быть и достаточно "ощутимыми" - например, перезапись содержимого файла (пример с VueJS).
Одним из выходов (по возможности) может быть явное указание версий (проверенных) используемого open source без обновления до последних/актуальных версий.
Второй - контроль и аналитика используемого open source в сборке и создание SBOM, чтобы оперативно понять - присутствует ли уязвимый компонент у вас или нет.
Есть инициатива по ведению реестра такого "искаженного" open source, пока что просто в google-документах. Если у вас есть, что добавить в этот перечень, нужно воспользоваться формой.
GitHub
!!!!!!!!!!!! Please do something to warn USERS besides publishing new versions · Issue #7054 · vuejs/vue-cli
See https://github.com/RIAEvangelist/node-ipc/issues/233#issuecomment-1068182278 the node-ipc is doing things far more than ever expected. If any users are using ip in russia, all their file will b...
👍3
NSA_CISA_K8S.PDF
1.8 MB
Всем привет!
В марте 2022 года CISA и NSA обновили свой Kubernetes Hardening Guide.
Первая версия была выпущена в августе 2021 и получила смешанные отзывы. Отчасти это связано с тем, что первая версия рассматривала способы повышения ИБ кластера, которые были deprecated, например, Pod Security Policy.
Ребята прислушались к мнению community и доработали документ. Он состоит из следующих частей:
🍭 Threat Model
🍭 Kubernetes Pod Security
🍭 Network Separation and Hardening
🍭 Authentication and Authorization
🍭 Audit Logging and Threat Detection
Кстати, некоторые «артефакты» первой версии все еще есть в Приложениях, однако, там теперь явно указано о статусе «Deprecated». Сам документ прилагаем.
В марте 2022 года CISA и NSA обновили свой Kubernetes Hardening Guide.
Первая версия была выпущена в августе 2021 и получила смешанные отзывы. Отчасти это связано с тем, что первая версия рассматривала способы повышения ИБ кластера, которые были deprecated, например, Pod Security Policy.
Ребята прислушались к мнению community и доработали документ. Он состоит из следующих частей:
🍭 Threat Model
🍭 Kubernetes Pod Security
🍭 Network Separation and Hardening
🍭 Authentication and Authorization
🍭 Audit Logging and Threat Detection
Кстати, некоторые «артефакты» первой версии все еще есть в Приложениях, однако, там теперь явно указано о статусе «Deprecated». Сам документ прилагаем.
🔥3
Всем привет!
Regula – простая и удобная утилита, которая позволяет идентифицировать недостатки в конфигурационных файлах Cloud Formation, Terraform, Azure Resource Management и Kubernetes.
"Из коробки" доступна часть правил, их можно добавлять самостоятельно. Есть небольшая инструкция с рекомендациями в официальной документации.
А если не хочется тестировать локально, но все равно интересно посмотреть на результаты, то можно почитать статью, в которой:
🍭 Используется простой pod-манифест, который «с первого взгляда» вроде и не очень опасен
🍭 Этот манифест анализируется при помощи Regula далее идет процесс по привидению в соответствие с комментариями от автора
Есть несколько вариантов использования: например, локальный анализ манифестов или встраивание Regula в pipeline для автоматизации указанных проверок
Regula – простая и удобная утилита, которая позволяет идентифицировать недостатки в конфигурационных файлах Cloud Formation, Terraform, Azure Resource Management и Kubernetes.
"Из коробки" доступна часть правил, их можно добавлять самостоятельно. Есть небольшая инструкция с рекомендациями в официальной документации.
А если не хочется тестировать локально, но все равно интересно посмотреть на результаты, то можно почитать статью, в которой:
🍭 Используется простой pod-манифест, который «с первого взгляда» вроде и не очень опасен
🍭 Этот манифест анализируется при помощи Regula далее идет процесс по привидению в соответствие с комментариями от автора
Есть несколько вариантов использования: например, локальный анализ манифестов или встраивание Regula в pipeline для автоматизации указанных проверок
GitHub
GitHub - fugue/regula: Regula checks infrastructure as code templates (Terraform, CloudFormation, k8s manifests) for AWS, Azure…
Regula checks infrastructure as code templates (Terraform, CloudFormation, k8s manifests) for AWS, Azure, Google Cloud, and Kubernetes security and compliance using Open Policy Agent/Rego - fugue/r...
Способы интеграции HashiCorp Vault и Kubernetes
Всем привет!
В статье приводится сравнение способов интеграции HashiCorp Vault и Kubernetes, которое можно реализовать несколькими способами:
🍭 Использование Vault Sidecar Injector
🍭 Использованием Vault Container Storage Interface (CSI) Provider
Начинается статья с общего описания и принципов работы Vault Sidecar и Vault CSI, что они из себя представляют и как решают задачу по инъекции секретов в контейнеры.
Далее – описываются преимущества и недостатки подходов, а в конце – самое интересное! Сводная таблица, резюмирующая все, о чем говорится в статье.
Итого: станет понятно, в чем разница и какой способ является оптимальным для вас ☺️
Если кратко, то Vault Sidecar обладает большим функционалом, однако Vault CSI гораздо проще реализовать и поддерживать.
Всем привет!
В статье приводится сравнение способов интеграции HashiCorp Vault и Kubernetes, которое можно реализовать несколькими способами:
🍭 Использование Vault Sidecar Injector
🍭 Использованием Vault Container Storage Interface (CSI) Provider
Начинается статья с общего описания и принципов работы Vault Sidecar и Vault CSI, что они из себя представляют и как решают задачу по инъекции секретов в контейнеры.
Далее – описываются преимущества и недостатки подходов, а в конце – самое интересное! Сводная таблица, резюмирующая все, о чем говорится в статье.
Итого: станет понятно, в чем разница и какой способ является оптимальным для вас ☺️
Если кратко, то Vault Sidecar обладает большим функционалом, однако Vault CSI гораздо проще реализовать и поддерживать.
👍5
Профилирование приложений для оптимизации их работы
Привет!
Для поиска проблем в работающем ПО зачастую обращаются к логам. Но этого может быть не всегда достаточно.
В статье автор предлагает рассмотреть возможность профилирования приложения для идентификации «проблемных мест» (bottlenecks).
Основная цель профилирования – оптимизация эффективности работы, что достигается за счет анализа потребления памяти, времени выполнения отдельных функций и т.д.
В качестве инструмента рассматривается open source продукт – Pyroscope. Автор приводит принципы его работы, сведения о поддерживаемых языках и об архитектуре.
В завершении – установка, настройка и несколько примеров встраивания для Python, .Net и Golang.
Полученную информацию можно фильтровать и анализировать для того, чтобы идентифицировать наиболее ресурсоемкие/длительные операции и разбираться «а должно ли оно быть так на самом деле?»
P.S. Ссылка на открытую документацию Pyroscope
Привет!
Для поиска проблем в работающем ПО зачастую обращаются к логам. Но этого может быть не всегда достаточно.
В статье автор предлагает рассмотреть возможность профилирования приложения для идентификации «проблемных мест» (bottlenecks).
Основная цель профилирования – оптимизация эффективности работы, что достигается за счет анализа потребления памяти, времени выполнения отдельных функций и т.д.
В качестве инструмента рассматривается open source продукт – Pyroscope. Автор приводит принципы его работы, сведения о поддерживаемых языках и об архитектуре.
В завершении – установка, настройка и несколько примеров встраивания для Python, .Net и Golang.
Полученную информацию можно фильтровать и анализировать для того, чтобы идентифицировать наиболее ресурсоемкие/длительные операции и разбираться «а должно ли оно быть так на самом деле?»
P.S. Ссылка на открытую документацию Pyroscope
Beellz Dev
Continuous Profiling in Kubernetes Using Pyroscope
Let's look into continuous profiling in K8s clusters & dive deep into how you can monitor CPU usage with Pyroscope to identify performance bottlenecks
👍1
Бесплатные курсы по Dev(Sec)Ops
Всем привет!
По ссылке приводится емкий обзор бесплатных курсов по тематике Dev(Sec)Ops. Примеры того, что можно найти «внутри»:
🍭 GitOps Fundamentals
🍭 Certified Calico Operator: Level 1
🍭 Gitlab 101 Certification
🍭 Elastic Observability Fundamentals
🍭 Introduction to Service Mesh with Linkerd
И много другое! Есть как «просто курсы», так и подборки материалов (видео/статей) по теме, как, например, VMWare Kube Academy или Aqua Cloud Native Academy
Всем привет!
По ссылке приводится емкий обзор бесплатных курсов по тематике Dev(Sec)Ops. Примеры того, что можно найти «внутри»:
🍭 GitOps Fundamentals
🍭 Certified Calico Operator: Level 1
🍭 Gitlab 101 Certification
🍭 Elastic Observability Fundamentals
🍭 Introduction to Service Mesh with Linkerd
И много другое! Есть как «просто курсы», так и подборки материалов (видео/статей) по теме, как, например, VMWare Kube Academy или Aqua Cloud Native Academy
Medium
Cloud Native Free Training and Certifications
We are already a little past the middle of 2021, which has been as convulsive and unpredictable as 2020, which surprised us with so many…
🔥8👍1
Управление инфраструктурой через… Kubernetes!
Привет!
Любите Kubernetes, любите YAML(вы правда есть?), любите писать CRD и хотите управлять всей инфраструктурой, как сущностями Kubernetes?
Тогда проект Crossplane для вас! Согласно документации, он «превращает ваш K8S кластер в универсальный control plane, что позволяет ему (кластеру) управлять ИТ-инфраструктурой и managed-сервисами».
Работает все это через CRD, которых "из коробки" достаточно много, например:
🍭 Helm
🍭 Terraform
🍭 SQL
🍭 GitLab
🍭 Styra
И другие (полный перечень можно найти по ссылке). После установки и настройки Crossplane создаем YAML-файлы с описанием, например, БД, применяем их на кластере и «общаемся» с ними через знакомые
Возможно, такой подход покажется не самым удобным, но имеет место быть, да и сама идея достаточно оригинальная.
Если хочется узнать больше про архитектуру, сценарии использования, рекомендуем почитать вот этот документ.
P.S. У Crossplane открытая документация, с которой можно ознакомиться по ссылке.
Привет!
Любите Kubernetes, любите YAML
Тогда проект Crossplane для вас! Согласно документации, он «превращает ваш K8S кластер в универсальный control plane, что позволяет ему (кластеру) управлять ИТ-инфраструктурой и managed-сервисами».
Работает все это через CRD, которых "из коробки" достаточно много, например:
🍭 Helm
🍭 Terraform
🍭 SQL
🍭 GitLab
🍭 Styra
И другие (полный перечень можно найти по ссылке). После установки и настройки Crossplane создаем YAML-файлы с описанием, например, БД, применяем их на кластере и «общаемся» с ними через знакомые
kubectl get ... и т.д.Возможно, такой подход покажется не самым удобным, но имеет место быть, да и сама идея достаточно оригинальная.
Если хочется узнать больше про архитектуру, сценарии использования, рекомендуем почитать вот этот документ.
P.S. У Crossplane открытая документация, с которой можно ознакомиться по ссылке.
crossplane.io
Crossplane Is the Cloud-Native Framework for Platform Engineering
Create platforms like cloud providers by building your own APIs and services with control planes, extending Kubernetes to manage any resource anywhere, and using a library of components to assemble your platform faster
👍1
Управление правами Cluster Admin
Всем привет!
Некоторые утилиты, по умолчанию, требуют привилегий Cluster Admin. Это «удобно», но не всегда нужно и зачастую бывает избыточным.
Что можно делать в таких случаях? Вариантов несколько.
Первый – использование принципа «запрещено все, что явно не разрешено». Т.е. можно сделать Role, в которой явно прописать что и с чем можно делать. Однако, такой подход может быть достаточно ресурсоемким.
Второй вариант – использование принципа «разрешено все, что явно не запрещено». И тут появляется сложность: ролевая модель Kubernetes может давать права, но не может их отбирать. Как быть в таком случае?
Ребята из GiantSwarm решили использовать Admission Controller для решения задачи – Kyverno. Они написали политику, которая фильтровала запросы по параметрам – объект воздействия, автор запроса, действие. Таким образом, они смогли "отобрать права" на некоторые действия, даже у Cluster Admin.
Помимо рассматриваемого примера есть еще несколько use case применения Admission Controller применительно к управлению RBAC, которые описаны в статье.
Всем привет!
Некоторые утилиты, по умолчанию, требуют привилегий Cluster Admin. Это «удобно», но не всегда нужно и зачастую бывает избыточным.
Что можно делать в таких случаях? Вариантов несколько.
Первый – использование принципа «запрещено все, что явно не разрешено». Т.е. можно сделать Role, в которой явно прописать что и с чем можно делать. Однако, такой подход может быть достаточно ресурсоемким.
Второй вариант – использование принципа «разрешено все, что явно не запрещено». И тут появляется сложность: ролевая модель Kubernetes может давать права, но не может их отбирать. Как быть в таком случае?
Ребята из GiantSwarm решили использовать Admission Controller для решения задачи – Kyverno. Они написали политику, которая фильтровала запросы по параметрам – объект воздействия, автор запроса, действие. Таким образом, они смогли "отобрать права" на некоторые действия, даже у Cluster Admin.
Помимо рассматриваемого примера есть еще несколько use case применения Admission Controller применительно к управлению RBAC, которые описаны в статье.
Marcus Noble
Restricting cluster-admin Permissions
Generally, and by default, operators of the cluster are assigned to the cluster-admin ClusterRole. This gives the user access and permission to do all operations on all resources in the cluster. There's very good reason for this, an admin generally needs…
👍2
Перечень container breakout уязвимостей
Привет!
По ссылке доступна сводная информация об уязвимостях, которые могут привести к несанкционированному доступу из контейнера на уровень хоста или к «побегу из контейнера».
Подборка структурирована следующим образом:
🍭 Linux CVE
🍭 runC CVE
🍭 Containerd CVE
🍭 CRI-O CVE
🍭 Docker CVE
🍭 Kubernetes CVE
Для некоторых уязвимостей, помимо общего описания, приводится дополнительная информация. Например, PoC-реализации или статьи с детальным описанием уязвимости.
Это может быть полезно, например, для изучения принципов «побега из контейнера» или для анализа сред контейнерной оркестрации на предмет отсутствия указанных CVE.
Привет!
По ссылке доступна сводная информация об уязвимостях, которые могут привести к несанкционированному доступу из контейнера на уровень хоста или к «побегу из контейнера».
Подборка структурирована следующим образом:
🍭 Linux CVE
🍭 runC CVE
🍭 Containerd CVE
🍭 CRI-O CVE
🍭 Docker CVE
🍭 Kubernetes CVE
Для некоторых уязвимостей, помимо общего описания, приводится дополнительная информация. Например, PoC-реализации или статьи с детальным описанием уязвимости.
Это может быть полезно, например, для изучения принципов «побега из контейнера» или для анализа сред контейнерной оркестрации на предмет отсутствия указанных CVE.
[“container-security site”]
Container Breakout Vulnerabilities
[“A site about container security”]
👍3
Уведомления о проблемах в pods
Привет!
Kwatch – утилита, которая позволяет получать информацию о некорректной работе приложений (с точки зрения pods) в режиме реального времени и направлять информацию, например, в Telegram!
Установка и настройка очень просты:
🍭 Необходимо определить количество строк лога, которые хочется получать. Или выбрать вариант – «покажи все!»
🍭 Указать интересующие namespace, pods которых будут проверяться на наличие проблем
🍭 Настроить интеграцию с интересующим messenger
🍭 И установить несколько флагов – например, игнорировать FailedGracefullShutdown или проверки на обновления Kwatch
🍭 Применить подготовленный манифест конфигурации и манифест самого Kwatch
Готово! Кстати, он не требует избыточных полномочий, только ClusterRole с
Привет!
Kwatch – утилита, которая позволяет получать информацию о некорректной работе приложений (с точки зрения pods) в режиме реального времени и направлять информацию, например, в Telegram!
Установка и настройка очень просты:
🍭 Необходимо определить количество строк лога, которые хочется получать. Или выбрать вариант – «покажи все!»
🍭 Указать интересующие namespace, pods которых будут проверяться на наличие проблем
🍭 Настроить интеграцию с интересующим messenger
🍭 И установить несколько флагов – например, игнорировать FailedGracefullShutdown или проверки на обновления Kwatch
🍭 Применить подготовленный манифест конфигурации и манифест самого Kwatch
Готово! Кстати, он не требует избыточных полномочий, только ClusterRole с
["get", "watch", "list"] для ["pods", "pods/log", "events"]GitHub
GitHub - abahmed/kwatch: :eyes: monitor & detect crashes in your Kubernetes(K8s) cluster instantly
:eyes: monitor & detect crashes in your Kubernetes(K8s) cluster instantly - abahmed/kwatch
Анализ состояния ИБ Kubernetes
Всем привет!
В цикле статей (статья 1, статья 2) приводится общая информация о том, как можно получить доступ к кластеру Kubernetes и развить атаку.
Во многом статья базируется на постулате: «Обычно это отключено, но если конфигурация некорректна, тогда…». Приводится много примеров, в том числе команд и описание действий для самостоятельного анализа.
В частности, в статьях рассмотрены такие моменты, как:
🍭 Получение информации об exposed портах кластера
🍭 Взаимодействие с API-endpoints API-server/ETCD для получения информации
🍭 API-запросы к Kubelet, использование утилиты kubelectl для упрощения взаимодействия с API Kubelet
🍭 Получение сведений о Service Account Token и как его можно использовать для развития атаки
🍭 Способы совершения «побега» из контейнера
🍭 hostPathMount и его «особенности» с точки зрения ИБ
🍭 Использование конфигурационного файла kubectl (при условии, что он был компрометирован)
В статье нет «готовых рецептов» как и что сделать, но приводится много справочной информации, к тому же все достаточно удобно структурировано
Всем привет!
В цикле статей (статья 1, статья 2) приводится общая информация о том, как можно получить доступ к кластеру Kubernetes и развить атаку.
Во многом статья базируется на постулате: «Обычно это отключено, но если конфигурация некорректна, тогда…». Приводится много примеров, в том числе команд и описание действий для самостоятельного анализа.
В частности, в статьях рассмотрены такие моменты, как:
🍭 Получение информации об exposed портах кластера
🍭 Взаимодействие с API-endpoints API-server/ETCD для получения информации
🍭 API-запросы к Kubelet, использование утилиты kubelectl для упрощения взаимодействия с API Kubelet
🍭 Получение сведений о Service Account Token и как его можно использовать для развития атаки
🍭 Способы совершения «побега» из контейнера
🍭 hostPathMount и его «особенности» с точки зрения ИБ
🍭 Использование конфигурационного файла kubectl (при условии, что он был компрометирован)
В статье нет «готовых рецептов» как и что сделать, но приводится много справочной информации, к тому же все достаточно удобно структурировано
Medium
[Kubernetes] Attack Path (Part 1) — Discovery & Initial Access
Intro
👍1
Vault Agent Injector Tutorial
Всем привет!
В статье приводится много-много-много информации о Vault Agent Injector. Основной его задачей является подстановка (инъекция, injection) секретов в pod, запускаемые в кластере среды контейнерной оркестрации.
Начинается статья с описания принципов работы Agent и того, чем он является – Mutating Webhook, который «перехватывает» события create/update для pod и анализирует их на предмет наличия определенных annotations.
Описывается назначение и функциональная разница Init/Sidecar-контейнеров, которые используются Vault Agent’ом.
Далее приводится подробная инструкция о том, как его установить, включая необходимые манифесты с кратким описанием что к чему.
В завершении статьи приводятся примеры конфигурации Vault и pod’s для того, чтобы реализовать инъекцию секретов через Vault Agent Injector.
Если «никогда не пробовали, но очень хотели» - то статья вам точно подойдет! Все подробно, детально, с большим количеством примеров и пояснений
Всем привет!
В статье приводится много-много-много информации о Vault Agent Injector. Основной его задачей является подстановка (инъекция, injection) секретов в pod, запускаемые в кластере среды контейнерной оркестрации.
Начинается статья с описания принципов работы Agent и того, чем он является – Mutating Webhook, который «перехватывает» события create/update для pod и анализирует их на предмет наличия определенных annotations.
Описывается назначение и функциональная разница Init/Sidecar-контейнеров, которые используются Vault Agent’ом.
Далее приводится подробная инструкция о том, как его установить, включая необходимые манифесты с кратким описанием что к чему.
В завершении статьи приводятся примеры конфигурации Vault и pod’s для того, чтобы реализовать инъекцию секретов через Vault Agent Injector.
Если «никогда не пробовали, но очень хотели» - то статья вам точно подойдет! Все подробно, детально, с большим количеством примеров и пояснений
DevOpsCube – Easy DevOps, SRE Guides & Reviews
Vault Agent Injector Tutorial: Setup Init & Sidecar Agents
In this vault agent injector tutorial, You will learn to use Hashicorp vault agent configurations to inject agents and render secrets in a kubernetes pod.
👍1
Open source версия StackRox!
Всем привет!
После того, как Red Hat купил StackRox в 2021 году ребята создали community для формирования open source версии продукта. И... случилось!!!
Вышла open source версия StackRox, при этом Red Hat продолжит развивать "родственный проект" - Red Hat Advanced Cluster Security for Kubernetes (ACS). ACS позиционируется, как Enterprise-ready.
Функций у StackRox много:
🍭 Анализ всего и вся - dockerfile, образы контейнеров, манифесты и т.д.
🍭 Автоматизация создания Network Policy
🍭 Собственный Admission Webhook
🍭 Профилирование контейнеров и многое другое!
Крайне рекомендуем ознакомиться с документацией, чтобы больше узнать о функционале решения. Документация на ACS и StackRox едина на текущий момент времени.
Отличительной особенностью StackRox является Kubernetes-native подход. Т.е. он никак не влияет на логику работы контейнеров и оркестратора
Всем привет!
После того, как Red Hat купил StackRox в 2021 году ребята создали community для формирования open source версии продукта. И... случилось!!!
Вышла open source версия StackRox, при этом Red Hat продолжит развивать "родственный проект" - Red Hat Advanced Cluster Security for Kubernetes (ACS). ACS позиционируется, как Enterprise-ready.
Функций у StackRox много:
🍭 Анализ всего и вся - dockerfile, образы контейнеров, манифесты и т.д.
🍭 Автоматизация создания Network Policy
🍭 Собственный Admission Webhook
🍭 Профилирование контейнеров и многое другое!
Крайне рекомендуем ознакомиться с документацией, чтобы больше узнать о функционале решения. Документация на ACS и StackRox едина на текущий момент времени.
Отличительной особенностью StackRox является Kubernetes-native подход. Т.е. он никак не влияет на логику работы контейнеров и оркестратора
www.stackrox.io
Open Source StackRox Is Now Available | StackRox Community
Announcing StackRox as an open source project
👍8🤔1
Исследование на тему HPA
Всем привет!
YoYo-attack - атака, цель которой - использование доступных механизмов по масштабированию ресурсов против объекта, осуществляющего масштабирование.
В статье ребята эмулируют атаку на кластер K8S, расположенный в облаке. Они посылают большое количество трафика, horizontal pod autoscaler (HPA) начинает создавать новые pods. Со временем атака прекращается. Через некоторый промежуток времени (примерно 5 минут, которые, по умолчанию, выжидает HPA для восстановления исходной картины) атака повторяется.
В качестве тестового приложения ребята взяли 4 сервиса. A - взаимодействует с клиентом; B и С взаимодействующие с А и сервис D, который взаимодействует с D.
Вопросы, на которые хотелось найти ответы:
🍭 Как быстро отреагирует кластер и начнет создавать pod?
🍭 Какой сервис (A, B, C или D) будет "отмасштабирован" первым?
🍭 Как быстро, после прекращения атаки, все вернется в исходное состояние?
🍭 Новые реплики какого сервиса будут удалены первыми?
Ответы, графики мониторинга и размышления на тему следующего эксперимента можно найти в статье
Всем привет!
YoYo-attack - атака, цель которой - использование доступных механизмов по масштабированию ресурсов против объекта, осуществляющего масштабирование.
В статье ребята эмулируют атаку на кластер K8S, расположенный в облаке. Они посылают большое количество трафика, horizontal pod autoscaler (HPA) начинает создавать новые pods. Со временем атака прекращается. Через некоторый промежуток времени (примерно 5 минут, которые, по умолчанию, выжидает HPA для восстановления исходной картины) атака повторяется.
В качестве тестового приложения ребята взяли 4 сервиса. A - взаимодействует с клиентом; B и С взаимодействующие с А и сервис D, который взаимодействует с D.
Вопросы, на которые хотелось найти ответы:
🍭 Как быстро отреагирует кластер и начнет создавать pod?
🍭 Какой сервис (A, B, C или D) будет "отмасштабирован" первым?
🍭 Как быстро, после прекращения атаки, все вернется в исходное состояние?
🍭 Новые реплики какого сервиса будут удалены первыми?
Ответы, графики мониторинга и размышления на тему следующего эксперимента можно найти в статье
Medium
YOYO attack on a K8S cluster
How a k8s cluster of “non-trivail service” topology will deal with a Yo-Yo attack?
👍1
Добавление пользователя в Kubernetes
Всем привет!
Ложки пользователей не существует, есть только сертификаты. Наверное, каждый сталкивался с некоторым недоумением, когда пытался понять – а как добавить пользователя для доступа к кластеру Kubernetes? Где вводить логин и пароль? Как их можно посмотреть и т.д.?
Если вам это только предстоит, рекомендуем прочитать статью, в которой описано что к чему на наглядном примере и почему не следует рассматривать процесс добавления пользователей в Kubernetes с «привычной точки зрения».
В статье, в качестве AuthN рассматривается использование X.509 сертификатов и весь путь, который надо пройти:
🍭 Создание ключевой пары, генерация Certificate Signing Request
🍭 Понимание того, какой именно Certification Authority должен его подписать (да, их может быть и скорее всего будет несколько)
🍭 Что делать с полученным Certificate, как его использовать для доступа – использование KubeConfig
🍭 Что такое Context и как его создать; что делать, если надо подключаться к нескольких кластерам и переключаться между Context и т.д.
В статье все детально описано, включая, где и что лежит, на что обращать внимание и как это реализовать.
И самое интересное в конце – без корректной Role созданный пользователь может сделать… ничего. Но это уже про AuthZ (авторизацию) и ролевую модель Kubernetes
Всем привет!
Если вам это только предстоит, рекомендуем прочитать статью, в которой описано что к чему на наглядном примере и почему не следует рассматривать процесс добавления пользователей в Kubernetes с «привычной точки зрения».
В статье, в качестве AuthN рассматривается использование X.509 сертификатов и весь путь, который надо пройти:
🍭 Создание ключевой пары, генерация Certificate Signing Request
🍭 Понимание того, какой именно Certification Authority должен его подписать (да, их может быть и скорее всего будет несколько)
🍭 Что делать с полученным Certificate, как его использовать для доступа – использование KubeConfig
🍭 Что такое Context и как его создать; что делать, если надо подключаться к нескольких кластерам и переключаться между Context и т.д.
В статье все детально описано, включая, где и что лежит, на что обращать внимание и как это реализовать.
И самое интересное в конце – без корректной Role созданный пользователь может сделать… ничего. Но это уже про AuthZ (авторизацию) и ролевую модель Kubernetes
Medium
How to add an user to a Kubernetes cluster? An overview of AuthN in k8s
How does k8s AuthN works? Where can I find certificates on a node? How do I add new credentials into my KubeConfig? Join me in this…
👍1
Identity provider на базе Authentik
Всем привет!
Authentik – open-source identity provider, который можно использовать для настройки аутентификации.
Из коробки доступны следующие providers:
🍭 OAuth2
🍭 SAML
🍭 LDAP
🍭 Proxy Provider
Инструмент также позволяет настраивать политики. Например «Have I Been Pwned Policy» проверяет есть ли пароль, созданный пользователем в одноименной базе данных, а политика «Password-Expire Policy» позволяет реализовать механизм ротации паролей.
Вместе, целевая система, политики и providers формируют application, одну из ключевых сущностей Authentik. Именно они будут использованы для дальнейшего подключения к целевым системам.
На сайте можно найти сводную табличку, в которой представлено небольшое сравнение Authentik с Keycloak, MS AD, Okta и т.д.
Кроме того, решение обладает минималистичным web-интерфейсом, в котором можно посмотреть всю необходимую информацию.
P.S. С документацией и исходным кодом можно ознакомиться тут и тут соответственно
Всем привет!
Authentik – open-source identity provider, который можно использовать для настройки аутентификации.
Из коробки доступны следующие providers:
🍭 OAuth2
🍭 SAML
🍭 LDAP
🍭 Proxy Provider
Инструмент также позволяет настраивать политики. Например «Have I Been Pwned Policy» проверяет есть ли пароль, созданный пользователем в одноименной базе данных, а политика «Password-Expire Policy» позволяет реализовать механизм ротации паролей.
Вместе, целевая система, политики и providers формируют application, одну из ключевых сущностей Authentik. Именно они будут использованы для дальнейшего подключения к целевым системам.
На сайте можно найти сводную табличку, в которой представлено небольшое сравнение Authentik с Keycloak, MS AD, Okta и т.д.
Кроме того, решение обладает минималистичным web-интерфейсом, в котором можно посмотреть всю необходимую информацию.
P.S. С документацией и исходным кодом можно ознакомиться тут и тут соответственно
goauthentik.io
Welcome | authentik
Bring all of your authentication into a unified platform.
Добавление прав в Kubernetes
Привет!
В одном из предыдущих постов мы писали про то, как предоставить доступ к кластеру Kubernetes (AuthN – authentication).
Закончилось все тем, что у пользователя нет никаких полномочий что-либо делать, ведь вопросы AuthZ (authorization) не были адресованы.
В продолжении Автор описывает, что из себя представляет ролевая модель Kubernetes на базе RBAC и как ее настроить.
Рассматриваются такие аспекты как:
🍭 Какие бывают роли?
🍭 Из чего состоит роль в Kubernetes?
🍭 Кому и как можно назначать роли?
🍭 Примеры, примеры и еще раз примеры
Статья достаточно базовая, но в ней все очень удобно собрано и детально объясняются очень значимые вещи, особенно с точки зрения информационной безопасности.
Ведь при наличии столь гибкой ролевой модели можно ошибиться. Например, предоставить повышенные привилегии или дать права не к тому ресурсу Kubernetes.
Привет!
В одном из предыдущих постов мы писали про то, как предоставить доступ к кластеру Kubernetes (AuthN – authentication).
Закончилось все тем, что у пользователя нет никаких полномочий что-либо делать, ведь вопросы AuthZ (authorization) не были адресованы.
В продолжении Автор описывает, что из себя представляет ролевая модель Kubernetes на базе RBAC и как ее настроить.
Рассматриваются такие аспекты как:
🍭 Какие бывают роли?
🍭 Из чего состоит роль в Kubernetes?
🍭 Кому и как можно назначать роли?
🍭 Примеры, примеры и еще раз примеры
Статья достаточно базовая, но в ней все очень удобно собрано и детально объясняются очень значимые вещи, особенно с точки зрения информационной безопасности.
Ведь при наличии столь гибкой ролевой модели можно ошибиться. Например, предоставить повышенные привилегии или дать права не к тому ресурсу Kubernetes.
Medium
Assign permissions to an user in Kubernetes. An overview of RBAC-based AuthZ in k8s
In this article, you will get an introduction to Kubernetes Authorization with RBAC and learn how to create roles and assign them to users.
🔥2
Vault plugin для ArgoCD
Привет!
По ссылке доступен plugin, который позволяет упростить получение секретов из Vault при использовании ArgoCD.
На текущий момент поддерживаются следующие типы Vault backends:
🍭 HashiCorp Vault
🍭 IBM Cloud Secrets Manager
🍭 AWS Secrets Manager
🍭 GCP Secret Manager
🍭 AZURE Key Vault
🍭 SOPS
🍭 Yandex Cloud Lockbox
🍭 1Password Connect
Ставится просто и быстро, а для инъекции секретов необходимо указать требуемые параметры в annotations для последующего извлечения секрета по пути.
О настройках определенных типов backend можно посмотреть в документации – все детально и с примерами.
Привет!
По ссылке доступен plugin, который позволяет упростить получение секретов из Vault при использовании ArgoCD.
На текущий момент поддерживаются следующие типы Vault backends:
🍭 HashiCorp Vault
🍭 IBM Cloud Secrets Manager
🍭 AWS Secrets Manager
🍭 GCP Secret Manager
🍭 AZURE Key Vault
🍭 SOPS
🍭 Yandex Cloud Lockbox
🍭 1Password Connect
Ставится просто и быстро, а для инъекции секретов необходимо указать требуемые параметры в annotations для последующего извлечения секрета по пути.
О настройках определенных типов backend можно посмотреть в документации – все детально и с примерами.
GitHub
GitHub - argoproj-labs/argocd-vault-plugin: An Argo CD plugin to retrieve secrets from Secret Management tools and inject them…
An Argo CD plugin to retrieve secrets from Secret Management tools and inject them into Kubernetes secrets - argoproj-labs/argocd-vault-plugin
👍2
Синхронизация ConfigMap/Secret между Namespace и не только
Всем привет!
Config Syncer (ранее – Kubed) – утилита, которая позволяет синхронизировать данные ConfigMap и/или Secret между namespace и/или cluster.
Для чего это может быть применимо?
Например, требуется, чтобы во всех или в нескольких namespaces был один и тот же Secret, который содержит данные для ImagePull. Или для распространения и поддержки в актуальном состоянии любых других ConfigMap/Secret, которые используются более чем одним namespace или cluster.
Небольшой сценарий использования представлен в документации:
🍭 Создается базовый (source) ConfigMap в Namespace “Demo”
🍭 К нему добавляется одна annotation:
🍭 В случае, если произойдет обновление (в примере меняют “leave” на “live” в блоке data), то ConfigMap обновится везде.
Возможна гибкая настройка Config Syncer: можно управлять перечнем namespace, которые будут получать ConfigMap/Secret, можно их удалять.
Об установке, параметрах конфигурации и иных сценариях использования можно прочитать в документации.
Всем привет!
Config Syncer (ранее – Kubed) – утилита, которая позволяет синхронизировать данные ConfigMap и/или Secret между namespace и/или cluster.
Для чего это может быть применимо?
Например, требуется, чтобы во всех или в нескольких namespaces был один и тот же Secret, который содержит данные для ImagePull. Или для распространения и поддержки в актуальном состоянии любых других ConfigMap/Secret, которые используются более чем одним namespace или cluster.
Небольшой сценарий использования представлен в документации:
🍭 Создается базовый (source) ConfigMap в Namespace “Demo”
🍭 К нему добавляется одна annotation:
kubed.appscode.com/sync: ""
🍭 После этого все namespace (как существующие, так и вновь созданные) получат этот ConfigMap🍭 В случае, если произойдет обновление (в примере меняют “leave” на “live” в блоке data), то ConfigMap обновится везде.
Возможна гибкая настройка Config Syncer: можно управлять перечнем namespace, которые будут получать ConfigMap/Secret, можно их удалять.
Об установке, параметрах конфигурации и иных сценариях использования можно прочитать в документации.
GitHub
GitHub - config-syncer/config-syncer: 🛡️ Kubernetes Config Syncer (previously kubed)
🛡️ Kubernetes Config Syncer (previously kubed). Contribute to config-syncer/config-syncer development by creating an account on GitHub.
👍1
CI/CD Goat (заведомо уязвимый CI/CD)
Привет!
Ребята из Cider Security подготовили repo, который позволяет провести небольшой CTF в CI/CD. «Испытуемое окружение» состоит из Gitea, Jenkins, LocalStack и Lighttpd.
В качестве «вдохновения» авторы использовали собственные наработки, посвященные уязвимостям, которые могут быть характерны для сборочного контура.
В CTF можно найти 10 challenges:
🍭 Insufficient Flow Control Mechanisms
🍭 Inadequate Identity and Access Management
🍭 Dependency Chain Abuse
🍭 Poisoned Pipeline Execution (PPE)
🍭 Insufficient PBAC (Pipeline-Based Access Controls)
🍭 Insufficient Credential Hygiene
🍭 Insecure System Configuration
🍭 Ungoverned Usage of 3rd Party Services
🍭 Improper Artifact Integrity Validation
🍭 Insufficient Logging and Visibility
Рекомендуем прочесть информацию на сайте Cider Security или на их GitHub про уязвимости в CI/CD. С одной стороны – полезно, с другой – может помочь при решении challenges
Привет!
Ребята из Cider Security подготовили repo, который позволяет провести небольшой CTF в CI/CD. «Испытуемое окружение» состоит из Gitea, Jenkins, LocalStack и Lighttpd.
В качестве «вдохновения» авторы использовали собственные наработки, посвященные уязвимостям, которые могут быть характерны для сборочного контура.
В CTF можно найти 10 challenges:
🍭 Insufficient Flow Control Mechanisms
🍭 Inadequate Identity and Access Management
🍭 Dependency Chain Abuse
🍭 Poisoned Pipeline Execution (PPE)
🍭 Insufficient PBAC (Pipeline-Based Access Controls)
🍭 Insufficient Credential Hygiene
🍭 Insecure System Configuration
🍭 Ungoverned Usage of 3rd Party Services
🍭 Improper Artifact Integrity Validation
🍭 Insufficient Logging and Visibility
Рекомендуем прочесть информацию на сайте Cider Security или на их GitHub про уязвимости в CI/CD. С одной стороны – полезно, с другой – может помочь при решении challenges
GitHub
GitHub - cider-security-research/cicd-goat: A deliberately vulnerable CI/CD environment. Learn CI/CD security through multiple…
A deliberately vulnerable CI/CD environment. Learn CI/CD security through multiple challenges. - cider-security-research/cicd-goat
👍9