Опубликовано видео моего выступления "Kubernetes Resource Model (KRM): Everything-as-Code" с VK Kubernetes Conference, которая прошла
Именно так я (и многие в индустрии) видят правильное использование
Доклад не про безопасность, но все это справедливо и для безопасности:
- Security as Code
- Policy as Code
- Compliance as Code
На мой взгляд только так можно достичь высокого уровня безопасности в условиях:
- частых и постоянных изменений микросервисов,
- разительной разницы в количестве между разработкой и ИБ,
- нескончаемых патчей
- набирающих обороты атак на supply chain.
Старые подходы являются реактивными, пришло время проактивных.
9 декабря 2021 года
.Именно так я (и многие в индустрии) видят правильное использование
Kubernetes
, которое позволяет на максимум раскрыть его возможности. Доклад не про безопасность, но все это справедливо и для безопасности:
- Security as Code
- Policy as Code
- Compliance as Code
На мой взгляд только так можно достичь высокого уровня безопасности в условиях:
- частых и постоянных изменений микросервисов,
- разительной разницы в количестве между разработкой и ИБ,
- нескончаемых патчей
1day
и 0day
уязвимостей, - набирающих обороты атак на supply chain.
Старые подходы являются реактивными, пришло время проактивных.
YouTube
Kubernetes Resource Model (KRM): Everything-as-Code
Дмитрий Евдокимов, CTO Luntry
Это доклад про YAML для YAML-инженеров и тех, кто пока что в нем не разбирается. Эксперт рассказывает, как в Kubernetes правильно смотреть на эту картину и выжимать максимум пользы для своей компании.
— О взаимосвязи ресурсов…
Это доклад про YAML для YAML-инженеров и тех, кто пока что в нем не разбирается. Эксперт рассказывает, как в Kubernetes правильно смотреть на эту картину и выжимать максимум пользы для своей компании.
— О взаимосвязи ресурсов…
Один из читателей канала подсветил один очень интересный момент касательно
Как вы знаете все в
- pods/exec
-
Но оказывается они идут через операцию
1) Политика для
2) Статья "Using K8s Admission Controllers to Detect Container Drift at Runtime" с самописным
P.S. Ну и про корректный RBAC не забывайте!
P.S.S. Когда-то еще был DenyEscalatingExec ...
Policy Engines
и subresources. Этим бы я и хотел сегодня с вами поделиться ;)Как вы знаете все в
Kubernetes
это YAML
и все YAML
проходят через mutating и validating admission controllers, на которых и базируются Policy Engines
. Но есть и исключения в виде subresources
:- pods/exec
-
pods/attach
- pods/log
- pods/portforward
На просторах сети можно встретить информацию, что их нельзя обработать как другие ресурсы. И я тоже так думал....Но оказывается они идут через операцию
CONNECT
(не CREATE
, UPDATE
) в виде ресурса PodExecOptions
, дочерним для Pod
, и это можно обработать! Посмотрите:1) Политика для
Kyverno
(для Gatekeeper
должно тоже работать)2) Статья "Using K8s Admission Controllers to Detect Container Drift at Runtime" с самописным
admission controller
(исходный код)P.S. Ну и про корректный RBAC не забывайте!
P.S.S. Когда-то еще был DenyEscalatingExec ...
Telegram
k8s (in)security
А сегодня, в продолжении прошлого поста, давайте посмотрим на kubectl exec или на POST запрос /api/v1/namespaces/{namespace}/pods/{name}/exec кому как удобнее и приятнее - с точки зрения RBAC.
И тут для начала нужно вспомнить, что некоторые Kubernetes ресурсы…
И тут для начала нужно вспомнить, что некоторые Kubernetes ресурсы…
Вокруг моего любимого Security Profiles Operator все больше новостей и движухи!
Так за последнее время вышло:
1) Отдельное выступление "Enhancing Kubernetes with the Security Profiles Operator" с KubeCon EU 2021про него
2) Статья "What's new in Security Profiles Operator v0.4.0" в официальном блоге
3) Статья "Secure your Kubernetes deployments with eBPF" на портале
Если вы все еще задаетесь вопросом когда это вообще может пригодится, то посмотрите раздел User Stories из документации проекта и все точно станет на свои места =)
Так за последнее время вышло:
1) Отдельное выступление "Enhancing Kubernetes with the Security Profiles Operator" с KubeCon EU 2021про него
2) Статья "What's new in Security Profiles Operator v0.4.0" в официальном блоге
Kubernetes
3) Статья "Secure your Kubernetes deployments with eBPF" на портале
Red Hat Developer
Если вы все еще задаетесь вопросом когда это вообще может пригодится, то посмотрите раздел User Stories из документации проекта и все точно станет на свои места =)
Telegram
k8s (in)security
Сегодня я хочу рассказать о проекте, который мне чрезвычайно нравится и за которым я слежу. При этом я надеюсь, что в рамках разработки нашего продукта мы также внесем вклад в его развитие.
The Kubernetes Security Profiles Operator - данный проект призван…
The Kubernetes Security Profiles Operator - данный проект призван…
Если вы вдруг захотите самостоятельно разработать решение по аутентификации для компонентов вашей системы (
Уже в
1)
2)
Стандарт используется в
При этом есть и референсная реализация данного стандарта в проекте SPIRE (
1)
2)
workload identity
), то не спешите все делать с нуля!Уже в
CNCF
существует стандарт SPIFFE (Secure Production Identity Framework For Everyone
). Там описывается 3 вещи: 1)
SPIFFE ID
- уникальный ID
для аутентификации2)
SVID (SPIFFE Verifiable Identity Document)
- проверяемое криптографическое представление для SPIFFE ID
3) Workload API
- для работы с этим всемСтандарт используется в
Kubernetes
, Docker
, Istio
, Consul
, Dapr
и многих других проектах.При этом есть и референсная реализация данного стандарта в проекте SPIRE (
SPIFFE Runtime Environment
). Состоит из 2-х частей:1)
Server
- является signing authority
и реестром идентификаторов2)
Agents
- часть workload
для предоставления SPIFFE Workload API
И помните как и в любых реализация любых стандартов есть ошибки. Что и показал 3rd party security audit данного проекта (SPIRE
).Компания
Обойти такой метод проверки вредоносному коду ничего не стоит:
1) Запуститься только при определенных действиях (На пример, при соединении к приложению)
2) Запуститься через какое-то время или при наступлении какого-то времени
Но, конечно, что-то такое что работает тупо в лоб - данный инструмент может.
GitLab
зарелиза забавный внутренний проект Package Hunter. Задача которого заключается в обнаружении вредоносных зависимостей в коде через динамический анализ. А именно под капотом у него находится Falco. В общем если во время работы Falco ничего не обнаружит по своим сигнатурам ничего криминального, то считается что вредоносных зависимостей в коде нет ... Так можно это все встроить прозрачно в свой CI
.Обойти такой метод проверки вредоносному коду ничего не стоит:
1) Запуститься только при определенных действиях (На пример, при соединении к приложению)
2) Запуститься через какое-то время или при наступлении какого-то времени
Но, конечно, что-то такое что работает тупо в лоб - данный инструмент может.
И снова один из читателей канала поделился интересным фактом из
В
1) Либо шифровать весь трафик
2) Либо относится к своей сети как к доверенному окружению (Облака?!) (то есть некоторые модели нарушителя просто не рассматривать)
Это фигурирует только в документации от версии 0.8, а далее этот момент полностью пропал из документации ... Но на практике так все и продолжает работать (опросил ряд компаний)!
Я думаю, что наличие такой
С наскоку забуриться в исходный код
P.S. Может и в правду сделать рубрику #читателипишут ?!
Kubernetes
безопасности.В
CNI Cilium
в заголовке пакетов добавляется информация об identity
контейнера, что передает данные! При этом разработчик признают, что это security sensitive information
и рекомендуют:1) Либо шифровать весь трафик
2) Либо относится к своей сети как к доверенному окружению (Облака?!) (то есть некоторые модели нарушителя просто не рассматривать)
Это фигурирует только в документации от версии 0.8, а далее этот момент полностью пропал из документации ... Но на практике так все и продолжает работать (опросил ряд компаний)!
Я думаю, что наличие такой
default
капабилити у контейнеров как CAP_NET_RAW
[1,2,3] - открывает атакующим множество интересных атак и это достойно отдельного исследования ;)С наскоку забуриться в исходный код
Cilium
и найти эту часть там у меня не получились. Может кто уже копал в этом направлении или хочет к этому присоединиться? P.S. Может и в правду сделать рубрику #читателипишут ?!
А сегодня поднимем тему шифрование трафика в кластере
1) На уровне
-
-
3) На уровне ваших приложений с помощью:
-
Заметьте что от реализации к реализации в разных
Kuberneres
между Pods
. Это может потребоваться как для соответствия каким-нибудь compliance, так и в условиях работы в недоверенном окружении. Я выделил 3
способа (если я что-то забыл пишите в комментариях):1) На уровне
CNI
плагинов (Calico, Cilium) с помощью:-
IPSec
- Wireguard
2) На уровне Service Mesh
(Istio, Linkerd) с помощью:-
mTLS
3) На уровне ваших приложений с помощью:
-
SSL/TLS
протоколовЗаметьте что от реализации к реализации в разных
CNI
есть поддержка разных фич Wireguard.Telegram
k8s (in)security
Статья "A Practical Guide to the Different Compliance Kubernetes Security Frameworks and How They Fit Together"
Это сравнение популярных Kubernetes security и compliance фреймворков: чем они отличаются друг от друга, когда и что использовать, их основные…
Это сравнение популярных Kubernetes security и compliance фреймворков: чем они отличаются друг от друга, когда и что использовать, их основные…
В этом году, проводя свои тренинги по безопасности
НО стоит помнить, что все равно остаются системные вызовы, через которые можно это совершить (через них также возможно совершить побег через хостовое ядро).
При этом мой хороший товарищ, автор великолепной Linux Kernel Defence Map подсказал замечательную статью проекта
Это полезно знать как
Kubernetes
, я был приятно удивлен встретить компании, у которых микросервисы, реализующие бизнес-задачи, выполнялись с описанием:securityContext:Это очень круто уменьшает
capabilities:
drop:
- all
attack surface
для побега из контейнера через уязвимости ядра хостовой ОС (особенно с учетом того, что CAP_NET_RAW
есть by default
). НО стоит помнить, что все равно остаются системные вызовы, через которые можно это совершить (через них также возможно совершить побег через хостовое ядро).
При этом мой хороший товарищ, автор великолепной Linux Kernel Defence Map подсказал замечательную статью проекта
grsecurity
под названием "False Boundaries and Arbitrary Code Execution" (заметка не свежая, но актуальная и по сей день). Где рассказывается о том, что capabilities
в архитектурном плане скажем так не без греха, и в каком-то плане даже сломаны.Это полезно знать как
blue team
, так и red team
. Поэтому даже в условиях drop all
стоит заботиться о том, что происходит в ваших контейнерах. Тоесть runtime security
все равно остается важным элементов Kubernetes security
.kubesec.io
containers[] .securityContext .capabilities .drop | index("ALL") :: kubesec.io
Всех с наступающим Новым Годом!
И сегодня хотелось бы подвести итоги
1) Мы с командой наконец-то показали миру нашу разработку Лантри и будем дальше покорять Мир =)
2) Данный канал продолжает расти (
3) Наконец-то удалось выступить на
4) Помимо
5) В этом году я также вернулся к своим корпоративным
6)
Всем большое спасибо, что читаете, комментируете, спрашиваете!
Всем хорошо встретить Новый Год, отдохнуть в праздники и не болеть!
И сегодня хотелось бы подвести итоги
2021
года и немного заглянуть в 2022
:1) Мы с командой наконец-то показали миру нашу разработку Лантри и будем дальше покорять Мир =)
2) Данный канал продолжает расти (
> +1200
) и надеюсь радовать вас интересным и качественным контентом. Если что-то не так, то всегда пишите ;)3) Наконец-то удалось выступить на
offline
конференциях [1,2,3,4,5] и лично познакомиться с многими классными людьми из Kubernetes
сообщества. Если ничего экстренного не произойдет, то в следующем году также выступлю на 2-3 мероприятиях (точно буду на HighLoad++)4) Помимо
offline
активности у меня были и online
выступления [1,2], online
тренинги [1] и записи podcasts
[1,2]. На следующий год уже точно запланировано несколько вещей в этом же направлении.5) В этом году я также вернулся к своим корпоративным
offline
тренингам, побывал в море крутых компаний, поделился своими знаниями и посмотрел какие Kubernetes
строят у себя лидеры ИТ. На следующий год тренинги уже расписаны по апрель!6)
Kubernetes
радует своим развитием, появлением новых фич, улучшениями observability
и security
. Вообще Cloud Native
сообщество очень продуктивно и не дает заскучать.Всем большое спасибо, что читаете, комментируете, спрашиваете!
Всем хорошо встретить Новый Год, отдохнуть в праздники и не болеть!
Всем привет после затяжных праздников!
Начнём потихоньку ;)
Эксклюзивное видео моего доклада "Kubernetes: трансформация к SecDevSecOpsSec" с
Помимо рассмотрения безопасности в
Всем продуктивного и успешного Нового Года!
P.S. До 30 января идет прием заявок на
Начнём потихоньку ;)
Эксклюзивное видео моего доклада "Kubernetes: трансформация к SecDevSecOpsSec" с
DevOpsConf 2021
. Описание и слайды можете посмотреть на данной странице. Помимо рассмотрения безопасности в
Kubernetes
, я затрагиваю тему DevSecOps
и моего отношения к нему (спойлер: я не люблю данный термин). Я предпочитаю больше термин Continuous Security
по аналогии с Continuous Integration
и Continuous Delivery
. За подробностями уже ныряйте в видео!Всем продуктивного и успешного Нового Года!
P.S. До 30 января идет прием заявок на
DevOpsConf 2022
- о чем бы вам было интересно там послушать от меня?YouTube
Kubernetes: трансформация к SecDevSecOpsSec / Дмитрий Евдокимов (Luntry)
Приглашаем на DevOpsConf 2025, которая пройдет 7 и 8 апреля 2025 в Сколково в Москве.
Программа, подробности и билеты по ссылке: https://devopsconf.io/moscow/2025
---------
DevOpsConf 2021
Профессиональная конференция по интеграции процессов разработки…
Программа, подробности и билеты по ссылке: https://devopsconf.io/moscow/2025
---------
DevOpsConf 2021
Профессиональная конференция по интеграции процессов разработки…
Важной частью концепции контейнеров является
И есть замечательный цикл статей что их подробно рассматривает (
- Digging into Linux namespaces - part 1
- Digging into Linux namespaces - part 2
Отдельно отмечу раздел про USER namespaces, где описывается операция
P.S.
Linux namespaces
(не путайте их с Kubernetes namespaces
!)И есть замечательный цикл статей что их подробно рассматривает (
PID
, NET
, USER
, MNT
, UTS
, IPC
, CGROUP
):- Digging into Linux namespaces - part 1
- Digging into Linux namespaces - part 2
Отдельно отмечу раздел про USER namespaces, где описывается операция
mapping UIDs и GIDs
и связь с capabilities
. От сюда вы узнаете почему даже с использование новой фичи Kubernetes 1.22
под названием Kubelet-in-UserNS (aka Rootless mode) все равно нужно грамотно управлять capabilities
и убирать не нужные для вашего приложения, хотя с этой фичей картина куда лучше ;)P.S.
Capabilities
тоже привязаны к USER namespace
Quarkslab
Digging into Linux namespaces - part 1 - Quarkslab's blog
Process isolation is a key component for containers. One of the key underlying mechanisms are namespaces. We will explore what they are, and how they work, to build our own isolated container and better understand each piece.
Если вы или ваши разработчики до сих пор задаетесь вопросом чем плох доступ к
На канале я не раз [1,2,3,4] уже писал о том, что часто в компаниях можно встретить как данный сокет или выкидывают вообще сеть в интернет или пробрасывают внутрь контейнера или
Спойлер: доступ к
Краткое содержание и основные моменты:
1) Как взаимодействовать с данным сокетом с помощью
2) На базе матрицы MITRE ATT&CK для контейнеров рассматриваются все тактики от
3) Не обходится без демонстрации побега из контейнера на хост через: маунт корня хоста в контейнер и
Так на уровне Policy Engine вы может проверять что монтируется внутри ваших
Docker socket
, то статья "Why is Exposing the Docker Socket a Really Bad Idea?" должна полностью снять все вопросы по этой теме.На канале я не раз [1,2,3,4] уже писал о том, что часто в компаниях можно встретить как данный сокет или выкидывают вообще сеть в интернет или пробрасывают внутрь контейнера или
Pod
в Kubernetes
(чаще всего для сборки образов).Спойлер: доступ к
Docker socket
= root
доступ на Host
В статье рассматривается почему так и как этого можно добиться. Очень полезно знать как атакующим, так и защищающимся!Краткое содержание и основные моменты:
1) Как взаимодействовать с данным сокетом с помощью
curl
, socat
если нету docker
клиента под рукой2) На базе матрицы MITRE ATT&CK для контейнеров рассматриваются все тактики от
Initial Access
до Impact
с техниками из них3) Не обходится без демонстрации побега из контейнера на хост через: маунт корня хоста в контейнер и
Privileged
+ notify_on_release
В Kubernetes
у вас могут быть и другие container runtime
(совместимые с CRI), но суть та же и роль играет то от какого пользователя они работают (root
, не root
) и что там у вас с USER namespace ;)Так на уровне Policy Engine вы может проверять что монтируется внутри ваших
Pods
.Quarkslab's blog
Why is Exposing the Docker Socket a Really Bad Idea?
It is written almost everywhere: do not expose the Docker socket on Linux! This is followed by the statement that doing so grants root access to the host. But why? What can be done and how? This is what we are about to explore in this article.
Очень часто я для повышения безопасности в
Тут важно понимать, что при создании политик можно ошибиться или что-то не предусмотреть и в итоге это позволит обойти данную проверку. Я, периодически помогая компаниям проверить их политики для
На пример, в политике может быть прописан запрет на пробрасывание внутрь контейнера пути
Поэтому привила для
Kubernetes
кластере рекомендую использовать Policy Engines. Но стоит помнить, что это всего лишь движки, которые производят проверки Kubernetes
ресурсов с учетом политик, которые пишутся людьми.Тут важно понимать, что при создании политик можно ошибиться или что-то не предусмотреть и в итоге это позволит обойти данную проверку. Я, периодически помогая компаниям проверить их политики для
Policy Engines
с учетом их специфики процессов и окружения, встречаю подобные проблемы.На пример, в политике может быть прописан запрет на пробрасывание внутрь контейнера пути
/var/run/docker.sock
. А по факту в компании вообще используется /var/run/crio/crio.sock
, да и обойти это можно через /
,/var/
,/var/run/
,/var/run/crio/
... Поэтому привила для
Policy Engines
нужно писать, учитывая как Linux
специфику, так и ваше конкретное окружение ;)Telegram
k8s (in)security
Компания Amazon опубликовала серию постов "Policy-based countermeasures for Kubernetes" [1,2].
По сути, это свежий (от 31 марта 2021) обзор и сравнение policy engines, который поможет вам выбрать наиболее подходящий для вашей компании. Среди рассматриваемых…
По сути, это свежий (от 31 марта 2021) обзор и сравнение policy engines, который поможет вам выбрать наиболее подходящий для вашей компании. Среди рассматриваемых…
Всех с первой рабочей пятницей 2022 года =)
Забавная статья "K8s.io KinD inside a Sysbox Container" от авторов Sysbox. О данном проекте я уже говорил в рамках поста о том, что начало появляться много разных Container Runtime. В статье есть 2 основные части:
1) "Running KinD inside an Unprivileged Sysbox Container"
2) "Running KinD inside an Unprivileged Sysbox Pod" (через
Тоесть там рассказывают, как KinD запускать не на хосте или
Опять же вся магия вокруг USER namespaces ;)
Если вам для тестирования нужно использовать
Всем хороших выходных!
Забавная статья "K8s.io KinD inside a Sysbox Container" от авторов Sysbox. О данном проекте я уже говорил в рамках поста о том, что начало появляться много разных Container Runtime. В статье есть 2 основные части:
1) "Running KinD inside an Unprivileged Sysbox Container"
2) "Running KinD inside an Unprivileged Sysbox Pod" (через
Kubernetes
ресурс RuntimeClass)Тоесть там рассказывают, как KinD запускать не на хосте или
VM
, а в Sysbox Container
. Основное преимущество описывается данным абзацем: "However, by placing the KinD cluster inside a Sysbox container, you can significantly harden the isolation because the privileged containers are only privileged inside the Sysbox container. The Sysbox container itself is unprivileged (aka rootless) and provides strong isolation."Опять же вся магия вокруг USER namespaces ;)
Если вам для тестирования нужно использовать
KinD
, то вам это может быть очень полезным для повышения уровня изоляции.Всем хороших выходных!
Запись моего выступления "Container escapes: Kubernetes edition" с секции
В рамках данного доклада я рассматривал, как и что могут атакующие и что можно сделать, чтобы усложнить побег из
И небольшой инсайд: в этом году я также планирую представить новое исследование на тему
Defensive Track
конференции ZeroNights, что была 30 июня 2021.В рамках данного доклада я рассматривал, как и что могут атакующие и что можно сделать, чтобы усложнить побег из
Pod
’а.И небольшой инсайд: в этом году я также планирую представить новое исследование на тему
Kubernetes
на ZeroNights 2022. На текущий момент это скорее всего будет исследование с рабочим названием "NetworkPolicy: родной межсетевой экран Kubernetes"
. Посмотрим на то как и что могут NetworkPolicy и как они устроены в различных CNI и куда они развиваются.Хороший пост "What an SBOM Can Do for You", который все раскладывает по полочкам о текущем состоянии
-
-
-
-
-
-
-
-
-
О
Software Bill of Materials (SBOM)
, если вы о нем раньше не слышали. Основные разделы:-
What Is Exactly an SBOM?
-
The Two SBOM Standards
– речь о CycloneDX и SPDX -
The Ultimate Purpose(s) of the SBOM
-
Locate and Describe a Software Component
-
Automation
-
Licensing
-
Security
-
Status of Tools and Cooperation
- отдельно выделю инструменты bom и syft-
The Future: Your Tool Will Be SBOMin’ Soon
- особенно круто будет когда SBOM
станет частью того же образа контейнера и в любой момент можно понять и проверить содержимое.О
SBOM
для Kubernetes
я уже писал и всегда можно посмотреть его для последних версий. Также я очень жду, когда кто-нибудь возьмет и напишет Kubernetes operator
для генерации SBOM (по аналогии со Starboard) и хранения результатов в Custom Resources
(иначе придется это делать самому). Все это полезно будет и для observability
и для troubleshooting
.www.chainguard.dev
Unchained: Our Blog
Read the latest software supply chain & open source security updates, from our opinions on security technologies to research & remedies for the biggest threats.
Довольно интересный репозиторий CKS-Exercises на
В принципе, если вы даже его и не планируете получать, то проглядеть все равно его стоит - среди затрагиваемых тем с примерами:
-
-
-
-
-
-
Данная сертификация лично мне не нравится, так как для ее прохождения авторы явно навязывают конкретные инструменты для решения, что на мой взгляд не правильно.
GitHub
, который содержит в себе упражнения призванные помочь в подготовке к экзамену на Certified Kubernetes Security Specialist
о появлении которого я писал ранее.В принципе, если вы даже его и не планируете получать, то проглядеть все равно его стоит - среди затрагиваемых тем с примерами:
-
Cluster setup
-
Cluster Hardening
-
System Hardening
-
Minimise Microservice Vulnerabilities
-
Supply Chain Security
-
Monitoring, Logging and Runtime security
Данная сертификация лично мне не нравится, так как для ее прохождения авторы явно навязывают конкретные инструменты для решения, что на мой взгляд не правильно.
GitHub
GitHub - moabukar/CKS-Exercises-Certified-Kubernetes-Security-Specialist: A set of curated exercises to help you prepare for the…
A set of curated exercises to help you prepare for the CKS exam - moabukar/CKS-Exercises-Certified-Kubernetes-Security-Specialist
Недавно довелось поиграться со сканером Kubei, которой состоит из двух частей:
- Сканера уязвимостей в
- Сканера плохих практик в
Главной особенностью данного сканера (как считают авторы) является то, что его не нужно встраивать в
1) Запускается в
2) Смотрит какие
3) Создает
Классно это тем, что сканируется только то, что реально у вас используется и не важно откуда эти образы у вас появились.
НО мне не понравилось, что вот эти сканирующие
PS Цикл про сканеры.
- Сканера уязвимостей в
images
на базе Grype - Сканера плохих практик в
dokerfiles
по CIS Docker Benchmarks
на базе Dockle Главной особенностью данного сканера (как считают авторы) является то, что его не нужно встраивать в
CI/CD
и никак интегрировать с image registry
(все это верно и для Starboard operator). Как он работает:1) Запускается в
Kubernetes
2) Смотрит какие
Pods
там работают и какие images
они используют3) Создает
Jobs
, которые порождают Pods
, и там производит сканирование Классно это тем, что сканируется только то, что реально у вас используется и не важно откуда эти образы у вас появились.
НО мне не понравилось, что вот эти сканирующие
Jobs
он создает в чужих Namespaces
, что при условии наличия LimitRange
, ResourceQuota
может сыграть злую шутку. Поэтому по прежнему лучшей реализацией я считаю Straboard operator - он все делает внутри своего Namespace
.PS Цикл про сканеры.
Один из читателей канала недавно опубликовал (и поделился ссылкой) на эксплоит для нашумевшей уязвимости CVE-2021-25741 в
Атакующий должен иметь права на создание
Напомню уязвимые версии:
Уязвимые версии:
-
Всем хорошей пятницы и выходных!
kubelet
.Атакующий должен иметь права на создание
Pods
. После успешной эксплуатации можно получить доступ к файловой системе Node
из Pod
с возможностью писать и читать.Напомню уязвимые версии:
Уязвимые версии:
-
v1.22.0 - v1.22.1
- v1.21.0 - v1.21.4
- v1.20.0 - v1.20.10
- <= v1.19.14
Так что для тех, кто еще не обновил свой Kubernetes
это дополнительный стимул ;)Всем хорошей пятницы и выходных!
Forwarded from Fidelina
В белой-белой компании Luntry
Белый-белый хакер Дмитрий Евдокимов (@Qu3b3c)
Пишет прозрачно-белый observability для k8s
В таких условиях легко найти черный код... или не все так чисто?
Детективная история будет разворачиваться прямо у вас в ушах уже в эту cleaning-пятницу в 20:00 на подкасте в DevOps-курилке.
Шерлок Фиделина @fidelina_ru, Хомяк-Холмс @Asgoret и what's up?
Рекомендации: Чтобы следить за ходом расследования желательно подключаться с desktop машинки, так будет виднее)
При поддержке @k8security <—- Дмитрий Белый Евдокимов именно здесь обитает) @devops_ru @devops_jobs
——-
Белый-белый хакер Дмитрий Евдокимов (@Qu3b3c)
Пишет прозрачно-белый observability для k8s
В таких условиях легко найти черный код... или не все так чисто?
Детективная история будет разворачиваться прямо у вас в ушах уже в эту cleaning-пятницу в 20:00 на подкасте в DevOps-курилке.
Шерлок Фиделина @fidelina_ru, Хомяк-Холмс @Asgoret и what's up?
Рекомендации: Чтобы следить за ходом расследования желательно подключаться с desktop машинки, так будет виднее)
При поддержке @k8security <—- Дмитрий Белый Евдокимов именно здесь обитает) @devops_ru @devops_jobs
——-
Проект sbom-operator поможет вам собрать все Software Bill of Materials (SBOM) для ваших
Очень новый проект, но и очень многообещающий. Под капом у данного
-
Лично мне еще не хватает возможности получения результата работы в виде отдельного
images
в Kubernetes
кластере и результат положить в Git
.Очень новый проект, но и очень многообещающий. Под капом у данного
Kubernetes
оператора проект Syft и библиотека go-containeregistry, которая позволяет скачать нужный образ для анализа с различных реджистри. В официально поддерживаемых:-
ACR (Azure Container Registry)
- ECR (Amazon Elastic Container Registry)
- GAR (Google Artifact Registry)
- GCR (Google Container Registry)
- GHCR (GitHub Container Registry)
- DockerHub
В дальнейшем данную информацию можно использовать и для организации безопасности supply chain и для контроля развития ваших микросервисов (в какой версии какие зависимости каких версий использовались).Лично мне еще не хватает возможности получения результата работы в виде отдельного
Custom resource
, ссылающегося по ownerReference
на ту же ReplicaSet
, чтобы можно было быстро оценить картину на текущий момент.