На просторах сети попалась очень добротная статья "Kubernetes Security Best Practices Part 2: Network Policies" - про нативные
В статье отражены и очень важные базовые моменты для использования
Отдельно обращу ваше внимание на раздел про
А так же в статье отдельно четко прописан момент про
NetworkPolicy
(не забываем что есть и кастомные от Calico
и Cilium
).В статье отражены и очень важные базовые моменты для использования
NetworkPolicy
, и примеры к ним, что позволит новичкам воспринимать данную тему проще.Отдельно обращу ваше внимание на раздел про
"Deny-all NetworkPolicy"
, так как далеко не все понимают истинный смысл данной политики (и скорее используют на автомате, бездумно).А так же в статье отдельно четко прописан момент про
"NetworkPolicies have to be defined on both sides"
- не забывайте ;)После релиза
1)
2)
Так что некорректное соотношение гайдов к окружению может дать абсолютно непрогнозируемые результаты (
PCI Security Standards Council
документа "Guidance for Containers and Container Orchestration Tools" исследователи продолжают его анализировать и оценивать его применимость к Kubernetes
. Так в новой статье "The Challenges of Assessing Kubernetes clusters for PCI Compliance" автор рассматривает проблемы/вызовы с которыми может столкнуться аудитор при рассмотрении сред Kubernetes
в виду их разнообразия (не забываем, что Kubernetes
это фреймворк и каждый его готовит и использует по своему). Фундаментально автор рассматривает 2
важных аспекта:1)
Managed against Unmanaged
- тут и возможность проверить настройки Control Plane
и точное расположение файлов и имен или вообще как отдельный кейс OpenShift
.2)
Kubernetes Versions
- достаточно сказать об очень динамичном развитии Kubernetes
с появлением новых возможностей (в стадиях “alpha”
, “beta”
, “GA”
), так и с исчезновением старых (“deprecated”
). Так что некорректное соотношение гайдов к окружению может дать абсолютно непрогнозируемые результаты (
false positive
или false negative
).Telegram
k8s (in)security
PCI Security Standards Council выпустил документ "Guidance for Containers and Container Orchestration Tools", делался он в рамках специальной SIG группы и по сути состоит из 3-х частей:
1) Общая информация о контейнерах и оркестраторах - совсем базовая информация.…
1) Общая информация о контейнерах и оркестраторах - совсем базовая информация.…
В официальном блоге появилась емкая и короткая заметка c очень говорящим названием "Kubernetes 1.25: alpha support for running Pods with user namespaces".
Если кратко, то она о фичи которая позволяет контейнерным процессам работать в отдельном пространстве (
Для работы с этой фичей необходимо:
1) Включенный
2) Настройка
Также в документации есть более детальный пример использования данной фичи в разделе "Use a User Namespace With a Pod".
P.S. Кстати, не путайте эту фичу с KubeletInUserNamespace, появившейся в
P.S.S. Для полного погружения в тему изучите 1 и 2.
Если кратко, то она о фичи которая позволяет контейнерным процессам работать в отдельном пространстве (
user namespace
), отличном от хостового. И root
в одном не является root
в другом. Что также позволяет уменьшить возможный ущерб в случае эксплотации ряда уязвимостей в контейнере.Для работы с этой фичей необходимо:
1) Включенный
UserNamespacesStatelessPodsSupport
feature gate 2) Настройка
"hostUsers: false"
в спецификации Pod
3) Container Runtime
с соответствующей поддержкой: CRI-O >= v1.25
или containerd >= 1.7
(еще не вышла)Также в документации есть более детальный пример использования данной фичи в разделе "Use a User Namespace With a Pod".
P.S. Кстати, не путайте эту фичу с KubeletInUserNamespace, появившейся в
1.22
.P.S.S. Для полного погружения в тему изучите 1 и 2.
На днях прошла конференция KubeHuddle 2022 в расписании которой есть много всего интересного, а видео уже доступно [1,2,3,4]. На пример:
- eBPF or sidecars?
- Securing Kubernetes with Open Policy Agent
- Hacking Kubernetes Like a Beginner with kdigger 🔥
- Secret Management: The Soft Way
- Hacking Kubernetes: Live Demo Marathon 🔥
- Who Can You Really Trust?
- Step by step Kubernetes observability with eBPF
- How to protect your Kubernetes cluster using Crowdsec
- Policy + Cloud Controllers = Secure Scalable Dev-Centric Infrastructure.
- EBPF and Kubernetes - Next level observability
- BumbleBee: Or How I Learned To Stop Worrying And Love eBPF
P.S. Видео с eBPF Summit 2022 также уже доступно ;)
- eBPF or sidecars?
- Securing Kubernetes with Open Policy Agent
- Hacking Kubernetes Like a Beginner with kdigger 🔥
- Secret Management: The Soft Way
- Hacking Kubernetes: Live Demo Marathon 🔥
- Who Can You Really Trust?
- Step by step Kubernetes observability with eBPF
- How to protect your Kubernetes cluster using Crowdsec
- Policy + Cloud Controllers = Secure Scalable Dev-Centric Infrastructure.
- EBPF and Kubernetes - Next level observability
- BumbleBee: Or How I Learned To Stop Worrying And Love eBPF
P.S. Видео с eBPF Summit 2022 также уже доступно ;)
Статья "Exploiting Distroless Images" с прикольной техникой эксплотации в контейнерах на базе
А все это базируется на присутствующей внутри этого образа
Таким образом, атакующий, получивший доступ к
Помните в одном из прошлых постов писал, что не все
Так что
P.S. О данной проблеме/особенности было сообщено
gcr.io/distroless/base
, которая позволяет читать, писать произвольные файлы и выполнять команды в этом distroless image
!А все это базируется на присутствующей внутри этого образа
OpenSSL
! Да, shell
внутри такого образа нет, но зато можно использовать interactive command prompt
от OpenSSL
;)Таким образом, атакующий, получивший доступ к
Kubernetes
кластеру, может, через установленный OpenSSL
в distroless base
образе, прочитать service account tokens (SA)
, прокинутые secrets
и даже получить интерактивное выполнение команд через загрузку custom shell
.Помните в одном из прошлых постов писал, что не все
Distroless Images
одинаковые (static/base/cc/interpreted
)?! Так что
distroless images
это не панацея, а лишь одна из техник усиления (hardening
) - и никто behavior monitoring
, AppArmor
не отменял.P.S. О данной проблеме/особенности было сообщено
Google
в августе 2021
и они решили не фиксить это.Обновляя свой тренинг по безопасности
Также сегодня хочу сказать, что наша небольшая команда Luntry продолжает медленно, но верно расти и искать новых единомышленников! Сейчас мы ищем:
- Middle/Senior Go Developer - работа с
- Frontend/Full-stack-разработчик (Middle/Senior) - работа с незаурядными интерфейсами, графиками, графами и
Можно откликаться как там, так и писать на прямую мне - репост приветствуется =)
Kubernetes
до соответствующей последней доступной версии 1.25, поймал себя на мысли, что она для меня стала в один ряд с версией 1.22 по вкладу в аспекты безопасности. То есть стала одной из любимых, если так можно по этому вопросу выразиться) Понятное дело, что много классных нововведений и изменений там еще находиться в стадии alpha
, но это не принижает их вклада.Также сегодня хочу сказать, что наша небольшая команда Luntry продолжает медленно, но верно расти и искать новых единомышленников! Сейчас мы ищем:
- Middle/Senior Go Developer - работа с
Kubernetes operators
и высокой нагрузкой.- Frontend/Full-stack-разработчик (Middle/Senior) - работа с незаурядными интерфейсами, графиками, графами и
API
.Можно откликаться как там, так и писать на прямую мне - репост приветствуется =)
Telegram
k8s (in)security
Не многие знают, но я периодически провожу тренинг "Cloud Native безопасность в Kubernetes" — это 3-х дневное обучение для компаний. Это теоретический курс, который покрывает абсолютно все аспекты безопасности Kubernetes, но обратной стороной его всеобъемлемости…
Из статьи "Introducing Wolfi – the first Linux (Un)distro designed for securing the software supply chain" вы узнаете о дистрибутиве Wolfi (хотя авторы для него придумали название
- Наличие
- Минималистичный образ
- Поддержка
- Полностью
- Поддeржка
В первую очередь проект будет интересен тем кто хочет делать свои собственные distroless образы и тщательно следить за supply chain security.
undistro
) для supply chain security и он сфокусирован на container/cloud-native
окружениях с рядом специализированных особенностей/возможностей:- Наличие
SBOM
во время сборки для всех пакетов- Минималистичный образ
- Поддержка
apk package
формата- Полностью
declarative
и reproducible
билд система- Поддeржка
glibc
и musl
С помощью данного проекта как раз и создают Chainguard Images, а это у нас реализация distroless образов! Подробнее о таких образах можно узнать из статьи "Minimal Container Images: Towards a More Secure Future" и понять что вам самим может проект Wolfi.В первую очередь проект будет интересен тем кто хочет делать свои собственные distroless образы и тщательно следить за supply chain security.
www.chainguard.dev
Introducing Wolfi: The first Linux (un)distro designed for securing the software supply chain
The massive push for software supply-chain integrity and transparency has left organizations struggling to secure their pipelines and manage vulnerabilities. Existing tooling doesn’t support supply chain security natively and requires users to bolt on critical…
Достаточно хорошее сравнение
А вот тут можно посмотреть наше с коллегой сравнение - оно сделано немного на другом уровне.
О сравнение этих движков с
А так я лично отношусь к ним обоим нормально (поэтому в Luntry есть поддержка одного и второго), но предпочтение отдаю
Policy Engine
: Gatekeeper
и Kyverno
в статье "Kubernetes Policy Comparison: OPA/Gatekeeper vs. Kyverno".А вот тут можно посмотреть наше с коллегой сравнение - оно сделано немного на другом уровне.
О сравнение этих движков с
PSP
и PSA
я писал ранее тут.А так я лично отношусь к ним обоим нормально (поэтому в Luntry есть поддержка одного и второго), но предпочтение отдаю
Kyverno
;)Сегодня я хочу поделится с вами записью и слайдами своего
Большое спасибо организаторам за возможность открыть конференцию, поделиться своим опытом, знанием и идеями/взглядами с сообществом!
Если вам хочется понимать как в современных реалиях нужно подходить к ИБ и просто хочется лучше понимать мои взгляды на ИБ, то доклад определенно стоит посмотреть - я в него вложил много своего опыта и знаний.
Некоторое продолжение/развитие данная тема получит у меня в докладе "Сочетание несочетаемого в Kubernetes: удобство, производительность, безопасность" на
keynote
-доклада "Заметки путешественника между мирами: ИБ, ИТ" с конференции OFFZONE 2022
.Большое спасибо организаторам за возможность открыть конференцию, поделиться своим опытом, знанием и идеями/взглядами с сообществом!
Если вам хочется понимать как в современных реалиях нужно подходить к ИБ и просто хочется лучше понимать мои взгляды на ИБ, то доклад определенно стоит посмотреть - я в него вложил много своего опыта и знаний.
Некоторое продолжение/развитие данная тема получит у меня в докладе "Сочетание несочетаемого в Kubernetes: удобство, производительность, безопасность" на
HighLoad++
в Москве 24-25
ноября.YouTube
Дмитрий Евдокимов. Заметки путешественника между мирами: ИБ, ИТ
На данный момент большинство крупных и средних компаний, вне зависимости от отрасли, перешагнуло в понимании ИТ за рамки наличия только внутренней инфраструктуры. Собственная разработка программных продуктов уже является скорее стандартом, чем исключением…
Недавно в комментариях к посту спрашивали, что такое
- "Signing And Verifying Container Images With Sigstore Cosign And Kyverno" - краткий видео экскурс в тему
- "Securing GitOps Supply Chain with Sigstore and Kyverno" - выступление с примером кода для реализации с учетом
Image Registry lookups
и Image Verification
в контексте Policy Engine
. Сегодня я подготовил подборку по этой теме того, что уже писал и не писал на канале. Основные герои это Sigstore Cosign
и Kyverno
, которые хорошо дружат между собой. И так поехали:- "Signing And Verifying Container Images With Sigstore Cosign And Kyverno" - краткий видео экскурс в тему
- "Securing GitOps Supply Chain with Sigstore and Kyverno" - выступление с примером кода для реализации с учетом
ArgoCD
- "Protect the Pipe! A Policy-based Approach for Securing CI/CD Pipelines" - выступление с примером кода для реализации с учетом Tekton
- Пошаговая инструкция по использованию Cosign
и Kyverno
- Пост про политики, ограничивающие/контролирующие Image Registry
Telegram
k8s (in)security
Достаточно хорошее сравнение Policy Engine: Gatekeeper и Kyverno в статье "Kubernetes Policy Comparison: OPA/Gatekeeper vs. Kyverno".
А вот тут можно посмотреть наше с коллегой сравнение - оно сделано немного на другом уровне.
О сравнение этих движков с…
А вот тут можно посмотреть наше с коллегой сравнение - оно сделано немного на другом уровне.
О сравнение этих движков с…
В сети стала доступна видеозапись доклад "Pentesting Kubernetes: From Zero to Hero" (и слайды) от моего коллеги Сергея Канибора с
Данный доклад скорее является
Если вы только начинаете свой путь в этом направлении, то это прям
VolgaCTF 2022
!Данный доклад скорее является
RoadMap
, а не полной инструкцией по пентесту Kubernetes
. Уместить некоторые моменты в пределах одного доклада не представляется возможным. Так же как и рассказать о всех возможных техниках и нюансах с которыми можно столкнуться при пентесте Kubernetes
кластера. Но мы постарались это рассказать максимально компактно и понятно. Если вы только начинаете свой путь в этом направлении, то это прям
MUST WATCH
!YouTube
Pentesting Kubernetes: From Zero to Hero / Сергей Канибор / VolgaCTF 2022
Слайды: http://archive.volgactf.ru/volgactf_2022/slides/VolgaCTF_2022_Kanibor.pdf
Pentesting Kubernetes: From Zero to Hero
Спикер: Сергей Канибор, Luntry
________________________
Pentesting Kubernetes: From Zero to Hero
by Sergey Kanibor, Luntry
Pentesting Kubernetes: From Zero to Hero
Спикер: Сергей Канибор, Luntry
________________________
Pentesting Kubernetes: From Zero to Hero
by Sergey Kanibor, Luntry
В заметке "Learn about Kubernetes security best practices for your cloud native application development" из блога
1) Правильная мысль и цитата: "By integrating security as early as possible throughout the development lifecycle, or even earlier with interactive developer training, security organizations can enable preventative security rather than reactive security." из Cloud Native Security Whitepaper.
Это ровна та мысль которую я постоянно говорю на своих тренингах и вебинарах ... И как всегда приятно, что к этой мысли пришел не один я. Безопасность в текущих условиях должна быть первентивной, а не реактивной.
2) Ссылка на очень старый материал "9 Box of Controls" от ребят из
Этот материал можно просто весь разобрать на цитаты - на столько он хорош и актуален сегодня и особенно для
CNCF
мое внимание привлекло не само содержимое текста, а то какие там материалы были использованы (да бывает и такое).1) Правильная мысль и цитата: "By integrating security as early as possible throughout the development lifecycle, or even earlier with interactive developer training, security organizations can enable preventative security rather than reactive security." из Cloud Native Security Whitepaper.
Это ровна та мысль которую я постоянно говорю на своих тренингах и вебинарах ... И как всегда приятно, что к этой мысли пришел не один я. Безопасность в текущих условиях должна быть первентивной, а не реактивной.
2) Ссылка на очень старый материал "9 Box of Controls" от ребят из
BlackBerry
. Заглавная картинка как раз от туда.Этот материал можно просто весь разобрать на цитаты - на столько он хорош и актуален сегодня и особенно для
Kubernetes
(думаю что это заслужит даже отдельного поста).version-checker это простенький инструмент для
При этом поддерживается порядочный набор
-
-
Kubernetes
, который смотрит какие версии образов контейнеров запущены в кластере и на сколько они соответствуют последним версиям данного проекта. Тоесть позволяет очень просто контролировать актуальность используемых образов. Результаты проверки вывешиваются как Prometheus metrics
, отображаются на dashboard
и могут информировать об этом оператора. При этом поддерживается порядочный набор
registries
:-
ACR
- Docker Hub
- ECR
- GCR
(включая k8s.gcr.io
)-
Quay
- Self Hosted
(Docker V2 API
совместимые реджистри типа artifactory
и т.д.)Kubernetes Security Technical Implementation Guide (STIG) документ с перечнем технических требований для безопасной настройки
Самое ценное в архиве это
По сути это конкурент/аналог CIS Kubernetes Benchmark и в меньшей степени раскритикованного [1,2] документа "Kubernetes Hardening Guidance" от
Кстати,
Kubernetes
(1.16.7 и новее), подготовленный Defense Information Systems Agency (DISA)
по заказу Department of Defense (DoD)
.Самое ценное в архиве это
U_Kubernetes_STIG_V1R6_Manual-xccdf.xml
- в этой XML
описаны все требования, действия для проверки и исправления! Еще один [1,2] замечательный материал от ребят из DoD
по Kubernetes
.По сути это конкурент/аналог CIS Kubernetes Benchmark и в меньшей степени раскритикованного [1,2] документа "Kubernetes Hardening Guidance" от
NSA
с CISA
.Кстати,
kube-bench
уже имеет поддержку STIG
для EKS
;)На конференции
Мы в нашей команде Luntry любим смотреть на безопасность
Данный доклад будет полезен
P.S. В комментариях можно предлагать свои идеи - я уверен, что в данном направлении можно придумать еще много всего интересного ;)
OFFZONE 2022
в этом году у меня было аж два доклада и второй из них (видео и слайды) это "Безопасность Kubernetes: Фаза Deception" (первый - это мой `keynote`-доклад). Мы в нашей команде Luntry любим смотреть на безопасность
Kubernetes
со всех сторон и под абсолютно разными углами. И в рамках данного доклада я рассмотрел как, защищая свой Kubernetes
, можно повысить шансы на обнаружение злоумышленника за счет его обмана (deception
)! При этом всем будем использовать всю специфику окружения и его встроенные механизмы - тут k8s
открывает прям безграничные возможности как по мне.Данный доклад будет полезен
Red
и Blue team
, работающих с Kubernetes
.P.S. В комментариях можно предлагать свои идеи - я уверен, что в данном направлении можно придумать еще много всего интересного ;)
YouTube
Дмитрий Евдокимов. Безопасность Kubernetes: Фаза Deception
Фаза deception в организации безопасности информационных систем часто незаслуженно остается без внимания. Притом что она позволяет спровоцировать злоумышленника, проникающего в вашу систему или уже проникшего, выдать себя и таким образом обнаружить его.
…
…
Буквально недавно открыл для себя https://www.kubernetes.dev/ - где очень удобно можно следить за Kubernetes Enhancement Proposals (KEPs) (также искать/копаться в них) и на страничке Release смотреть какие фичи появятся в новой версии (
Так, на пример, я/мы/все теперь могу намного проще следить за "KEP-2091: Add support for AdminNetworkPolicy resources". О нем я уже как-то писал тут, но с тех времен ресурс
Enhancements Tracking Sheet
) и в какие даты выйдет (kubernetes/sig-release v1.26 milestone
).Так, на пример, я/мы/все теперь могу намного проще следить за "KEP-2091: Add support for AdminNetworkPolicy resources". О нем я уже как-то писал тут, но с тех времен ресурс
ClusterNetworkPolicy
переименовали в AdminNetworkPolicy
.www.kubernetes.dev
Kubernetes Community
Welcome to the Kubernetes Contributor Community!
Недавно наткнулся на политику "Verify Image Check CVE-2022-42889" в постоянно расширяемой библиотеке политик
Она позволяет проверить есть ли в образе последняя нашумевшая уязвимость в
Все это делается на основании информации из
За деталями реализации помимо самого примера для данной уязвимости будет полезно почитать разделы:
- Verify Images - проверка образов
- JMESPath -
Также можно обратить внимание на следующие политики связанные с работой с уязвимостями:
- "Require Image Vulnerability Scans" - есть скан на уязвимости не старше 1 недели
- "Check Tekton TaskRun Vulnerability Scan" - скан на уязвимости не содержит уязвимости с рейтингом больше
Kyverno
(уже 232 политики).Она позволяет проверить есть ли в образе последняя нашумевшая уязвимость в
Apache Commons Text library
или нет и решить разрешить ли выкатку микросервиса с таким образом или нет.Все это делается на основании информации из
SBOM
, которая предварительно генерируется в CI
, а далее в самой политике прописываем где она лежит, в каком форма, название какого компонента нас интересует и какой версии.За деталями реализации помимо самого примера для данной уязвимости будет полезно почитать разделы:
- Verify Images - проверка образов
- JMESPath -
JSON
язык запросовТакже можно обратить внимание на следующие политики связанные с работой с уязвимостями:
- "Require Image Vulnerability Scans" - есть скан на уязвимости не старше 1 недели
- "Check Tekton TaskRun Vulnerability Scan" - скан на уязвимости не содержит уязвимости с рейтингом больше
8.0
Сегодня в
11:00
(по Мск) я (от лица Luntry) в приятной компании буду участвовать в онлайн-конференции AM Live
«Российский DevSecOps в условиях импортозамещения». По мне это прекрасная возможность послушать как различные вендоры, интеграторы и дистрибьюторы смотрят на вопрос DevSecOps
.Вместе с командой сейчас работаем над добавлением в Luntry функциональности связанной с
- Отсутствие реализации проверок - идет как
- Отсутствие поддержки новых версий
В итоге, запуская/используя тот или иной инструмент с этими проблемами вы получаете не корректную картину по своей инфраструктуре.
P.S. Не ленитесь читать код OpenSource проектов!
Compliance
, а именно CIS Kubernetes Benchmark. Предварительно мы проанализировали множество OpenSource
и коммерческих решений - первые на уровне кода и UI
, вторые чисто на уровне UI
. Остановимся на первых и обсудим к каким не утешительным выводам мы пришли. И так, обнаруженные проблемы:- Отсутствие реализации проверок - идет как
TODO
или manual check
- Не полная реализация проверок - этот факт даже отмечается в комментариях (partial check
)- Отсутствие поддержки новых версий
Kubernetes
- для кого-то может быть новостью, но CIS Kubernetes Benchmark
обновляется с новыми релизами Kubernetes
. В итоге, запуская/используя тот или иной инструмент с этими проблемами вы получаете не корректную картину по своей инфраструктуре.
P.S. Не ленитесь читать код OpenSource проектов!
Luntry
Luntry - Российское решение для защиты контейнеров и Kubernetes
Традиционные средства безопасности не эффективны при использовании их в микросервисной инфраструктуре. Динамичность и скорость изменений инфраструктуры ведет к расширению поверхности атаки и уникальным моделям нарушителя. Команды безопасности не успевают…