Making Sense of Kubernetes Initial Access Vectors Part 1 – Control Plane – неплохая статья от
Глобально автор разделил окружения на
WIZ
, посвященная более глубокому разбору техник для получения Initial Access
в Kubernetes
кластере.Глобально автор разделил окружения на
Control Plane, Data Plane, CI/CD
и Cloud Access
. В рамках данной статьи автор разбирает техники, относящиеся к Control Plane
: Kubelet API Access, Management interfaces
и K8s API Access
.👍8🔥5👏2❤1
В рамках конференции Cloud Native Rejekts 2024 прошел доклад “Malicious Compliance Automated: When You Have 4000 Vulnerabilities and only 24 Hours Before Release” от Duffie Cooley и Kyle Quest. Данный доклад является логическим развитием одного из моим самых любимых докладов за последнее время "Malicious Compliance: Reflections on Trusting Container Image Scanners" =)
В новом докладе авторы обманывали сканеры уязвимостей всеми правдами и неправдами уже не в ручную, а автоматизировано и получили результат с нескольких тысяч уязвимостей до
Кто там сторонник
В новом докладе авторы обманывали сканеры уязвимостей всеми правдами и неправдами уже не в ручную, а автоматизировано и получили результат с нескольких тысяч уязвимостей до
0
=) В основном для это авторы использовали инструмент mint. Кто там сторонник
zero tolerance
к уязвимостям?! В общем сезон образов без уязвимостей объявляется открытым!👍7🔥6❤1
Making Sense of Kubernetes Initial Access Vectors Part 2 – Data Plane – вторая статья (с первой можно ознакомиться тут) от
В этой статье автор разбирает техники, относящиеся к
WIZ
, посвященная более глубокому разбору техник для получения Initial Access
в Kubernetes
кластере.В этой статье автор разбирает техники, относящиеся к
Data Plane
: - Applications – abuse RBAC и abuse system privileges
- NodePort Service
- Images and supply chain
👍9❤4🔥2
На нашем сайте стали доступны слайды и видеозапись доклада "Kubernetes Audit Log в арсенале SOC" c SOC Forum 2024.
В рамках данного доклада наша команда Luntry делиться своими опытом и знанием о детектах на базе событий
В рамках данного доклада наша команда Luntry делиться своими опытом и знанием о детектах на базе событий
Kubernetes Audit Log
.👍8🔥8
Стали доступны видеозаписи и слайды с KubeCon + CloudNativeCon North America 2024 и это более
300
докладов (смотреть, не пересмотреть). Про безопасность докладов как всегда хватает и мы постепенно самые интересные начнем рассматривать на нашем канале.👍15❤4🔥2
В начале октября в рамках AM Life Plus наша команда Luntry в лице Дмитрия Евдокимова выступила с темой "Как контейнеры и Kubernetes меняют ландшафт угроз" в стиле
TEDx
. Где очень кратенько (всего 8
мин), без слайдов постаралась порассуждать на тему являются ли контейнерные технологии с оркестраторами новой головной болью для безопасников или наоборот являются новой возможностью противодействовать текущим вызовам и проблем ИБ.🔥12👍6
Очередной прошедший
В неплохой обзорной статье
-
-
- Удаление устаревшего и избыточного кода
Если вы хотите более подробно ознакомиться со всеми изменениями, то это можно сделать тут и тут.
По части
KubeCon
в первую очередь ассоциируется с обновлением ряда инструментов для Kubernetes
и Container
. В их числе containerd
, он релизнулся в версии 2.0
(о чем мы вкратце написали в одном из предыдущих постов).В неплохой обзорной статье
Samuel Karp
рассказывает об основных изменениях в новой версии:-
NRI enabled by default
-
Image verifier plugins
- Удаление устаревшего и избыточного кода
Если вы хотите более подробно ознакомиться со всеми изменениями, то это можно сделать тут и тут.
По части
security
ломающих изменений хочется отметить – io_uring_* syscalls are disallowed by default. Более подробно мы рассказывали про это здесь.👍9❤1🔥1🥰1
Сегодня нам бы хотелось поделиться с вами интересным докладом с интригующим названием специалиста
Google
- "Why Perfect Compliance Is the Enemy of Good Kubernetes Security" (видео) c KubeCon + CloudNativeCon North America 2024. Самый полезный на наш взгляд слайд мы вынесли в картинку поста ;)👍12🔥8❤3
Способу побега из контейнера, о котором мы рассказывали в июле этого года, только на днях присвоили идентификатор
Тем не менее, злоумышленник, используя
Уязвимость аффектит следующие версии:
Фиксы доступны в:
CVE
– CVE-2024-10220. Почему это произошло только сейчас, учитывая полный дисклоуз уязвимости, остаётся под вопросом.Тем не менее, злоумышленник, используя
deprecated gitRepo volume
может совершить из контейнера, при соблюдении трёх условий – поддержка gitRepo volume type
, наличие git
бинаря на Node
и отсутствие ограничений на использование gitRepo volume type
.Уязвимость аффектит следующие версии:
- kubelet v1.30.0 to v1.30.2
- kubelet v1.29.0 to v1.29.6
- kubelet <= v1.28.11
Фиксы доступны в:
- kubelet v1.31.0
- kubelet v1.30.3
- kubelet v1.29.7
- kubelet v1.28.12
Telegram
k8s (in)security
Исследователь безопасности из Google Imre Rad нашел способ побега из контейнера в Kubernetes через deprecated volumes (начиная с 1.11) – gitRepo. Для эксплуатации необходимо соблюсти три условия: поддержка gitRepo volume type, наличие git бинаря на Node и…
🔥13👍5❤2
Мысли/идеи о том что
В рамках данной работы получился проект VM-Operator (написан на
Мы абсолютно уверенны, что когда-нибудь и защита специализированных клиентский рабочих мест сведется к защите контейнеров ;)
Virtual Desktop Infrastructure (VDI)
можно сделать на базе классических/нативных контейнеров в Kubernetes
все чаще мелькают на просторах сети и статья "How I came to build a cheap server cluster for VDI" еще одно подтверждение этому. Ранее мы писали о проекте kVDI, потом находили проект webmesh-vdi. В рамках данной работы получился проект VM-Operator (написан на
Java
), где Qemu-based
виртуальные машины (не классическая контейнеризация и так давно можно с помощью KubeVirt, но все же ) запускаются в Kubernetes Pods
.Мы абсолютно уверенны, что когда-нибудь и защита специализированных клиентский рабочих мест сведется к защите контейнеров ;)
👍13❤4🔥2😭2👎1
Сегодняшний пост будет актуален для тех, кто использует у себя
Бага была обнаружена в компоненте
При этом, мы имеем
OpenShift
. А, именно – была раскрыта CVE-2024-6538, позволяющая авторизированному пользователю эксплуатировать SSRF
.Бага была обнаружена в компоненте
OpenShift console
. Для её эксплуатации достаточно отправить следующий POST
запрос:
POST /api/dev-console/proxy/internet
При этом, мы имеем
Full Read SSRF
, а значит получим полный ответ со всеми заголовками. Используя такой вектор атаки, злоумышленник может повлиять на другие сервисы, работающие внутри кластера и потенциально раскрыть информацию или оказать другое вредоносное воздействие на систему.GitHub
CVE-2024-6538 - GitHub Advisory Database
OpenShift Console Server Side Request Forgery vulnerability
❤🔥6👍3🔥2
10 декабря в 11:00 наша команда Luntry проведет вебинар/стрим/эфир «Подпись и валидация образов в Kubernetes». Там мы планируем рассмотреть следующие темы:
– подготовка инфраструктуры для подписи и валидации образов;
– написание
– встраивание
– использование политик
– возможности
Зарегистрироваться на вебинар можно по ссылке.
P.S. Так как это у нас полный live, то тут в комментариях можно написать ваши пожелания/вопросы, которые вы бы хотели увидеть в рамках данного эфира, чтобы мы максимально широко раскрыли данную тему.
– подготовка инфраструктуры для подписи и валидации образов;
– написание
pipeline
сборки для данного процесса;– встраивание
cosign
в pipeline
сборки;– использование политик
Kyverno
и OPA Gatekeeper
для валидации образов;– возможности
Luntry
для контроля данного аспекта в инфраструктуре.Зарегистрироваться на вебинар можно по ссылке.
P.S. Так как это у нас полный live, то тут в комментариях можно написать ваши пожелания/вопросы, которые вы бы хотели увидеть в рамках данного эфира, чтобы мы максимально широко раскрыли данную тему.
1👍14🔥1
kondense - это проект на
Многим такое полезно, но в данной реализации как по нам все омрачается правами
Хоть проект и полезный, но с учетом вопросов ИБ к нему врят ли его можно рекомендовать. Явно нужно ждать другой реализации. Но сам факт появление подобных проектов вокруг фичи InPlacePodVerticalScaling это отлично.
Go
выполненный в виде sidecar
контейнера, который помогает автоматически управлять ресурсами контейнеров в Kubernetes
без их перезапуска. На пример, освобождать не используемое количество выделенной контейнеру memory
и CPU
. Для этого используется не так давно появившееся фича InPlacePodVerticalScaling.Многим такое полезно, но в данной реализации как по нам все омрачается правами
ServiceAccount
, которыми должен владеть Pod
- это: "get", "list", "watch", "patch"
на "pod"
и (самое печальное) "create"
на "pods/exec"
(тут исходник, объясняющий зачем это)... С учетом этого также получается, что все сервисы теперь должны в своих NetworkPolicy
иметь доступ к Kubernetes API
.Хоть проект и полезный, но с учетом вопросов ИБ к нему врят ли его можно рекомендовать. Явно нужно ждать другой реализации. Но сам факт появление подобных проектов вокруг фичи InPlacePodVerticalScaling это отлично.
👍18🔥4🥰2
Опубликовали очередную багу в
Проблема возникает когда есть
В приведенном выше примере будут разрешены запросы ко всем
Cilium
– CVE-2024-52529. И в очередной раз бага связана с тем, что CiliumNetworkPolicy
не работают так как должны (тут мы рассказывали про подобный баг).Проблема возникает когда есть
L3
политика с выставленным port range
и L7
политика с портом из диапазона первой политики. В таком случае L7 CiliumNetworkPolicy
работать не будет. Например:
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
name: "l3-port-range-rule"
spec:
endpointSelector:
matchLabels:
app: service
ingress:
- fromCIDR:
- 192.168.60.0/24
toPorts:
- ports:
- port: "80"
endPort: 444
protocol: TCP
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
name: "l7-port-range-rule"
spec:
endpointSelector:
matchLabels:
app: service
ingress:
toPorts:
- ports:
- port: "80"
protocol: TCP
rules:
http:
- method: "GET"
path: "/public"
В приведенном выше примере будут разрешены запросы ко всем
HTTP path
, а не только GET
-запросы к пути /public
, как это предусмотрено политикой l7-port-range-rule
.GitHub
CVE-2024-52529 - GitHub Advisory Database
Cilium's Layer 7 policy enforcement may not occur in policies with wildcarded port ranges
👍17🔥3❤1😭1
На нашем сайте в разделе исследований стали доступны слайды и видеозапись доклада "Безопасность от виртуальных машин до контейнеров и обратно" с конференции Industrial++ 2024.
Доклад для тех кто только погружается в тему и хочет понять в чем тут вообще разница)
Доклад для тех кто только погружается в тему и хочет понять в чем тут вообще разница)
👍7🔥3
Сегодня хочется познакомить вас с одним достаточно не тривиальным проектом, который вы врятли запустите в проде сейчас, но по крайней мере заставит задуматься о возможностях контейнеризации, а для кого-то будет стартовой точкой написания своего инструмента или курсовой/диплома/...
Проект zeropod позволяет скалировать
Для работы понадобиться установить данный
Проект zeropod позволяет скалировать
Pod
в 0
. Zeropod
— это Kubernetes runtime
(точнее, containerd shim
), который автоматически сохраняет контейнеры на диске после определенного времени последнего TCP
-подключения. В таком состоянии (scales down to zero
) он будет прослушивать тот же порт, который прослушивало приложение внутри контейнера, и восстановит этот контейнер при первом входящем подключении. В зависимости от размера программы с контрольной точкой это происходит за десятки или несколько сотен миллисекунд, практически незаметно для пользователя. Поскольку все содержимое памяти сохраняется на диске во время создания контрольной точки, восстанавливается все состояние приложения.Для работы понадобиться установить данный
runtime
на Nodes
, указать для соответствующих приложений runtimeClassName: zeropod
, а затем уже проект CRIU (уже неоднократно о нем писали на канале 1,2,3,4,5), который находится под капотом сделает свое дело. На схеме можно увидеть процесс активации контейнера после того как он был checkpointed
и к нему снова пошли сетевые обращения.🔥23👍10🤡4🥰1🤔1🤓1
Начинаем эту неделю с
Отдельно хотим отметить раздел "
eBPF
тематики, а точнее со свежего документа "A Security Threat Model for eBPF" от eBPF Foundation
. Этот документ будет полезен для тех, кто рассматривает внедрение технологии eBPF
в своих системах, чтобы понимать связанные с этим риски и способы их снижения.Отдельно хотим отметить раздел "
Detailed Threats and Controls
". Очевидно, что там отражены не все возможные угрозы, многие из них обобщены, описаны необходимые меры для митигации рисков.🔥15👍5❤🔥1❤1
Если вам мало
NRI - это
В первую очередь это было создано для более низкоуровневой, эффективной работы с ресурсами и устройствами, на пример, которых нельзя описать просто
Также отдельно отметим очень высокий уровень критичности данного компонента, который по сути разливается привилегированным
P.S. В процессе изучения данной темы был найден интересный показательный проект Koordinator (
CRI
,CNI
,CSI
,CDI
,CMI
,CPI
, то встречайте еще один интерфейс в Kubernetes
под названием NRI
.NRI - это
Node Resource Interface
. По сути это механизм плагинов, позволяющий расширять возможности containerd
с 1.7
и CRI-O
c 1.26
. Можно добавить собственную логику, которая будет выполняться в такие моменты жизни Pods
как run
, stop
, remove
и контейнеров как creation
, post-creation
, starting
, post-start
, updating
, post-update
, stopping
, removal
.В первую очередь это было создано для более низкоуровневой, эффективной работы с ресурсами и устройствами, на пример, которых нельзя описать просто
OCI
спецификацией. Это может быть очень полезно облачным провайдерам или тем кто контролирует все свое железо и хочет заточится по его специфику. Примеры можно посмотреть тут и тут.Также отдельно отметим очень высокий уровень критичности данного компонента, который по сути разливается привилегированным
daemonset
- при написании подобного помните о безопасности.P.S. В процессе изучения данной темы был найден интересный показательный проект Koordinator (
QoS-based scheduling
), на котором можно проследить эволюцию подходов к управлению ресурсами в K8s
.👍14🔥3❤2🥰1👾1
Среди инструментов (коих немного) упрощающих процесс проведения пентеста контейнерных окружений очередное пополнение – Am I Isolated.
В целом, ничего нового, очень похоже на уже давно имеющиеся botb и amicontained. Из плюсов – написан на
Сейчас, например, в нём есть проверки на:
- возможность эксплуатации опасных
- возможность эксплуатации
- наличие проброшенного
- определение использования
- поиск участков памяти для
В целом, ничего нового, очень похоже на уже давно имеющиеся botb и amicontained. Из плюсов – написан на
Rust
и активно развивается.Сейчас, например, в нём есть проверки на:
- возможность эксплуатации опасных
capabilities
- возможность эксплуатации
namespaces
- наличие проброшенного
containerd/docker socket
- определение использования
microVM
- поиск участков памяти для
RWX
🔥14👍6🥰2
Недавно копаясь и разбираясь с различными
runj - это экспериментальный
container runtimes
, данное действие привело к проекту на Go
под названием runj.runj - это экспериментальный
OCI
-совместимый runtime
для FreeBSD jails
! Лично для меня это можно сказать завершение определённого цикла. Ведь механизм FreeBSD jails
появился в 2000
году, а это за 13
лет до появления Docker
, 15
лет до Kubernetes
и 17
лет до OCI
спецификация v1.0.0
для образов контейнеров. И тут можно сказать, что один из прародителей концепции контейнеров встретился со своим потомком =)GitHub
GitHub - samuelkarp/runj: runj is an experimental, proof-of-concept OCI-compatible runtime for FreeBSD jails.
runj is an experimental, proof-of-concept OCI-compatible runtime for FreeBSD jails. - samuelkarp/runj
👍9🔥6