Kubernetes Network Policies Viewer – небольшой онлайн-инструмент, который может пригодиться во время ручного написания
Да, инструмент сильно похож на
Из минусов – поддержа только
Network Policy для Kubernetes.Да, инструмент сильно похож на
Cilium Editor (о котором мы уже рассказывали), но и свои отличительные особенности у него есть. Тулза выдаёт наглядное представление о том, как будет работать описанная Network Policy. Бывает очень полезной, когда нужно проверить правильность работы множества сетевых политик.Из минусов – поддержа только
Native Network Policy и отсутствие возможности генерировать сетевые политики простым накликиванием (как это сделано в Cilium Editor).👍8🦄2🔥1
В эту пятницу 31 марта выступлю на конференции True Tech Day (
Всегда очень приятно когда такие большие компании приглашают нашу команду Luntry выступить и поделиться нашей уникальной экспертизой в области безопасности контейнеров и
Преза будет небольшой, но я там наконец визуализировал одну важную вещь по безопасности образов контейнеров, которой прям не терпится поделиться!
offlinе + online) от компании МТС в секции Cybersecurity с докладом "Безопасность контейнеров и Kubernetes".Всегда очень приятно когда такие большие компании приглашают нашу команду Luntry выступить и поделиться нашей уникальной экспертизой в области безопасности контейнеров и
Kubernetes.Преза будет небольшой, но я там наконец визуализировал одну важную вещь по безопасности образов контейнеров, которой прям не терпится поделиться!
🎉20👍1
В рамках изучения
-
Также там поднимается вопрос/проблема, что при модели
Cilium Service Mesh и Istio Ambient Mesh (прошлые посты 1,2) я наткнулся на занимательную статью "Exploring Cilium Layer 7 Capabilities Compared to Istio". Там сравниваются не Service Mesh реализации, а L7 возможности стандартного CNI Cilium (v1.12) и sidecar реализации Istio. И из этой статьи можно узнать много всего интересного о деталях реализации CNI Cilium и Istio, а именно:-
L7 фильтрация в ресурсе CiliumNetworkPolicy реализована как расширение/фильтр (Cilium.L7Policy) для Envoy proxy
- Как выглядит/хранится L7 правило внутри CNI Cilium
- CNI Cilium использует для этого Envoy filter, а Istio использует RBAC filters из апстрима Envoy
- чем является identity в Cilium, как он вычисляется (база это IP, labels) и хранится (это никакой не криптографический приметив, а просто целое число). А в Istio для этого служит service account token - там вообще все сроиться вокруг сертификатов, что как вы понимаете надежнееТакже там поднимается вопрос/проблема, что при модели
Envoy per Node ресурсов потребляется меньше, но в случае его отказа страдают сразу все микросервисы на Node. Есть и еще одна интересная проблема с Network cache-based identity, что как я написал выше используется в Cilium, но это заслуживает отдельной заметки ;)Telegram
k8s (in)security
Наконец-то мои руки дошли до новых сетевых фишек/реализациях в Kubernetes, а если быть более конкретным то до двух проектов: Cilium Service Mesh и Istio Ambient Mesh. При этом хотелось с ними познакомиться параллельно, чтобы можно было производить сравнение…
👍9🔥2🐳1
Когда вы начали активно знакомиться и работать с `Kubernetes`? Я с 2019 с 1.14 =)
Anonymous Poll
2%
1.0 - 1.1 (2015)
3%
1.2 - 1.5 (2016)
7%
1.6 - 1.9 (2017)
14%
1.10 - 1.13 (2018)
20%
1.14 - 1.17 (2019)
17%
1.18 - 1.20 (2020)
12%
1.21 - 1.23 (2021)
14%
1.24 - 1.26 (2022-2023)
11%
Посмотреть результаты
На канале мы уже затрагивали [1,2] тему
Несомненным плюсом данного механизма является то, что для валидации данные не отправляются на
Для более детального погружения в тему советую ознакомиться с видео – Kubernetes Validating Admission Policy Changes The Game. В нём автор показывает практические примеры использования данной технологии, а также рассматривает её недостатки и преимущества.
Kubernetes Validating Admission Policies, но сегодня появился еще один повод. В официальном блоге Kubernetes вышла статья – Kubernetes Validating Admission Policies: A Practical Example.Несомненным плюсом данного механизма является то, что для валидации данные не отправляются на
admissions webhook (как например это реализовано в OPA или Kyverno, или в любом другом Policy Engine), а сразу обрабатываются, под капотом Kubernetes. Ну и конечно же CEL, в качестве языка описания выражений для проверки будет сильно проще в понимании и освоении, чем Rego (тот, что используется в OPA Gatekeeper).Для более детального погружения в тему советую ознакомиться с видео – Kubernetes Validating Admission Policy Changes The Game. В нём автор показывает практические примеры использования данной технологии, а также рассматривает её недостатки и преимущества.
👍9🔥2🦄1
В статьей "Could network cache-based identity be mistaken?" авторы демонстрируют проблему
Весь исходный код данной демонстрации доступен и можно повторить самостоятельно. Или посмотреть видео.
Все это может быть из-за не актуального состояния кэша, которое может быть связано с сетевыми проблемами:
-
P.S. Я думаю это открывает достаточно интересный простор для исследования =)
network cache-based идентификаторов, на примере, идентификатора который используется CNI Cilium и применяется для контроля NetworkPolicy. По итогу у них получается сделать так что NetworkPolicy применяется к микросервису не правильно и обходится!Весь исходный код данной демонстрации доступен и можно повторить самостоятельно. Или посмотреть видео.
Все это может быть из-за не актуального состояния кэша, которое может быть связано с сетевыми проблемами:
-
Network outage
- Cilium pod was down, during an upgrade
- Resource constraints that cause the agent to be slow
- Resource constraints that cause API server to be slow in sending pod events to Cilium pod
- Programming bug that cause the agent to crash
- и т.д.P.S. Я думаю это открывает достаточно интересный простор для исследования =)
👍7🤔1
Те, кто использует
С недавнего времени появился третий, самый что ни на есть
Vault Secrets Operator находится в public beta и доступен только в последней версии Vault.
Vault знают, что есть два способа интеграции с Kubernetes:1) Agent Injector (через sidecar-контейнер)
2) Vault CSI ProviderС недавнего времени появился третий, самый что ни на есть
Kubernetes-native подход – с помощью Vault Secrets Operator и его CRD. Vault Secrets Operator работает, отслеживая изменения в CRD. Каждый CRD предоставляет спецификацию, необходимую для того, чтобы Operator мог синхронизировать секреты хранилища с секретом Kubernetes. Затем Operator записывает данные из хранилища непосредственно в целевой Kubernetes Secrets. В целом, плюсы со сравнению со старыми способами следующие:- Workloads can mount Kubernetes secrets without adding any Vault-specific configuration.
- Secrets are synced per CRD instead of per consuming pod.
- Kubernetes secrets act as a durable cluster-local cache of Vault secrets.Vault Secrets Operator находится в public beta и доступен только в последней версии Vault.
👍18🔥7❤3🥰1👌1
"Container and image vocabulary" - классная визуализация и простое объяснение основных терминов в области контейнеризации.
Самое то, если вы делаете первые шаги в данной области.
Самое то, если вы делаете первые шаги в данной области.
👍21❤5🔥2
Недавно я наткнулся на довольно интересный инструмент, который позволяет автоматически исправлять уязвимости в образах контейнерах – copacetic.
Принцип его работы довольно прост:
1) на вход принимает отчет от
2) скачивает необходимые патчи
3) применяет изменения к образу в новом слое с помощью
Несмотря на всю
Принцип его работы довольно прост:
1) на вход принимает отчет от
trivy2) скачивает необходимые патчи
3) применяет изменения к образу в новом слое с помощью
buildkitНесмотря на всю
must-have’ность тулзы, всё же у неё есть ряд недостатков:- по сути подменяет уязвимую версию библиотеки на последнюю исправленную, что в теории может привести к неработоспособности приложения
- новый образ становится тяжелее (из за добавления нового слоя – см. второй скрин)
- принимает результаты сканирования только от trivy
- может фиксить баги только в тех версиях, для которых есть фиксы (очевидно, но всё же)
- для работы buildkit небходим runc или crun, containerd
- ограниченная поддержка пакетных менеджеров (apk, apt)👍13❤1
- Спокойно запускаете
- Уверены что ваши
- Собственными руками организовали
Специально для проверки качества таких реализаций и был создан Multi-Tenancy Benchmarks. А к нему в придачу для автоматизации проверки плагин для
Так все проверки разбиты на 2 класса:
-
DEV и PROD окружения в одном кластере?- Уверены что ваши
namespaces хорошо изолированы друг от друга?- Собственными руками организовали
multitenancy уровня Namespaces as a Service?Специально для проверки качества таких реализаций и был создан Multi-Tenancy Benchmarks. А к нему в придачу для автоматизации проверки плагин для
kubectl под названием kubectl-mtb.Так все проверки разбиты на 2 класса:
-
Configuration Checks (CC)
- Behavioral Checks (BC)
К сожалению, 7 проверок из 23 так и не автоматизировали. НО их можно подсмотреть в документации проекта Capsule и дописать или сделать ручками ;)🔥18👍3🦄2
Мы уже не раз рассказывали [1,2] про сторонние сервисы, которые могут помочь при написании
Если вы создаете сетевые политики в директории с другими
Безусловно,
Network Policy для Kubernetes. Но сегодня я хочу поделиться личным опытом – недавно я воспользовался помощью Github Copilot для создания сетевых политик и был приятно удивлён результатом! Если вы создаете сетевые политики в директории с другими
Kubernetes Resources, то Copilot понимает контекст и сразу начинает предлагать вам правильную политику (причём без указания prompt, просто нажимая TAB) с нужными лейблами и портами, что очень удобно. Причем неважно какая политика – Native, Calico или Cilium.Безусловно,
AI очень крутой помощник, но перепроверять его работу всё-таки стоит =)🔥13👍2🦄2
Мы очень рады анонсировать нашу конференцию!
БЕКОН - техническая конференция по БЕзопасности КОНтейнеров и контейнерных сред
Дата и место: 7 июня 2023 года в Москве
Целевая аудитория: Архитекторы, Инфраструктурные и платформенные команды,
В программе 10 докладов, покрывающих практически все области безопасности контейнеров. Все доклады отбирал лично - так что за качество ручаюсь ;)
Постепенно опубликуем весь список + также могут появиться дополнительные активности.
Если вам понравится БЕКОН, то продолжим его готовить дальше вместе и с аппетитом применять полученные знания в работе!
P.S. Обратите внимание, что зал небольшой - билетов совсем немного!
P.S.S. С автором названия связались и все подарки будут переданы лично =)
БЕКОН - техническая конференция по БЕзопасности КОНтейнеров и контейнерных сред
Дата и место: 7 июня 2023 года в Москве
Целевая аудитория: Архитекторы, Инфраструктурные и платформенные команды,
DevOps/DevSecOps, ИБ департаменты.В программе 10 докладов, покрывающих практически все области безопасности контейнеров. Все доклады отбирал лично - так что за качество ручаюсь ;)
Постепенно опубликуем весь список + также могут появиться дополнительные активности.
Если вам понравится БЕКОН, то продолжим его готовить дальше вместе и с аппетитом применять полученные знания в работе!
P.S. Обратите внимание, что зал небольшой - билетов совсем немного!
P.S.S. С автором названия связались и все подарки будут переданы лично =)
❤🔥19😁5🍾3🔥2👍1👏1🦄1
В след за Kubernetes threat matrix компания
Похожую матрицу делали исследователи в работе "Attacking and Securing CI/CD Pipeline", так что если вам тема интересна - рекомендуем освежить в голове и эту работу 2021 года.
Microsoft выпустила DevOps threat matrix.Похожую матрицу делали исследователи в работе "Attacking and Securing CI/CD Pipeline", так что если вам тема интересна - рекомендуем освежить в голове и эту работу 2021 года.
🔥13🦄2❤1🐳1
Проект wrongsecrets от организации
Задания можно поднимать как локально (
OWASP на примере 28 challenges покажет как НЕ НУЖНО хранить свои секреты.Задания можно поднимать как локально (
docker, minikube), на ванильном Kubernetes, так и в облаке (AWS, GCP, Azure). Отдельно отмечу, что в тасках фигурирует использование Vault, а также хранение секретов в соответствии с облачной спецификой.GitHub
GitHub - OWASP/wrongsecrets: Vulnerable app with examples showing how to not use secrets
Vulnerable app with examples showing how to not use secrets - OWASP/wrongsecrets
🔥19🥰1🐳1
На этой неделе мы опубликовали детали 6 докладов что будут представлены у нас на конференции БЕКОН:
- "OPA с shared Docker executor", Павел Сорокин (
- "Не такой очевидный RBAC Kubernetes", Дмитрий Евдокимов (
- "Distroless своими руками", Антон Мокин (
- "Как правильно готовить Kyverno и работать с его алертами", Алексей Миртов (
- "Kubernetes, ответь мне, кто я для тебя?", Константин Аксенов(
- "K8s в PCI DSS", Александр Маркелов (
Все доклады на абсолютно разные темы и отлично дополняют друг друга, составляя полноценную картину о безопасности контейнеров. Остальные доклады объявим на следующей неделе!
Билеты можно приобрести тут.
- "OPA с shared Docker executor", Павел Сорокин (
OZON)- "Не такой очевидный RBAC Kubernetes", Дмитрий Евдокимов (
Luntry)- "Distroless своими руками", Антон Мокин (
Тинькофф)- "Как правильно готовить Kyverno и работать с его алертами", Алексей Миртов (
Yandex Cloud)- "Kubernetes, ответь мне, кто я для тебя?", Константин Аксенов(
Флант)- "K8s в PCI DSS", Александр Маркелов (
Райффайзен Банк)Все доклады на абсолютно разные темы и отлично дополняют друг друга, составляя полноценную картину о безопасности контейнеров. Остальные доклады объявим на следующей неделе!
Билеты можно приобрести тут.
🔥15
Недавно наткнулся на заметку "Let's talk about Kubelet authorization", посвященную
Из интересных/важных моментов:
- Команда
Но для полноты картины в данной теме я бы порекомендовал ознакомиться с исследованием "Kubernetes Control Plane Vulnerability Assessment", о котором мы писали ранее - там раскрыто намного больше деталей.
Kubelet authorization. Основной сценарий тут крутится вокруг того, что атакующий может тем или иным способом попасть на Node и завладеть кредами kubelet, которые он использует для общения с Kubernetes API Server, для поднятия привилегий и распространения атаки.Из интересных/важных моментов:
- Команда
kubectl auth can-i --list покажет только права выданные RBAC, а другими authorization modes отображены не будут (а нам тут интересен режим Node authorizer), но их можно индивидуально проверить с помощью kubectl auth can-i
- Проверьте на своих кластерах что данная настройка для kube-apiserver выставлена именно так --authorization-mode=Node,RBAC, что работал и RBAC и Node authorizer
- Отказ в режиме авторизации Node, означает что запрос передается на режим RBAC и он уже там может быть разрешен. На пример, путем накидывания прав на группу system:node
- Обязательно Node authorizer должен работать в связке с NodeRestriction Admission Controller
- Все эти права могут меняться от дистрибутива к дистрибутиву, от инсталляции к инсталляции, так что всегда стоит проверять этот момент.Но для полноты картины в данной теме я бы порекомендовал ознакомиться с исследованием "Kubernetes Control Plane Vulnerability Assessment", о котором мы писали ранее - там раскрыто намного больше деталей.
raesene.github.io
Let's talk about Kubelet authorization
❤6🔥2👍1🍌1
В эту пятницу мы с нашей командой вместе с этим замечательным стендом будем представлены на CISO Forum.
Если вы или ваши коллеги будут на данном мероприятии - подходите, мы с удовольствием пообщаемся на тему безопасности контейнеров,
Если вы или ваши коллеги будут на данном мероприятии - подходите, мы с удовольствием пообщаемся на тему безопасности контейнеров,
Kubernetes и расскажем про наш Luntry!🔥20🥰3🦄2💩1🤨1
Несколько дней назад релизнулся
1) Kubelet seccomp by default. Фича перешла в
2) User namespaces. Фича перешла в
3) Accessing node logs via kubectl. Теперь админы кластера могут получать логи с
4) Self user attributes. Новый
5) Kubernetes CVE Feed. Сам фид был обновлен для полной поддержки спецификации
P.S. – список всех нововведений в 1.27 можно посмотреть тут.
Kubernetes v1.27 под кодовым названием Chill Vibes. Обновления по части security следующие:1) Kubelet seccomp by default. Фича перешла в
stable в этой версии. Позволяет по дефолту применять seccomp profile для каждого Workload, запускаемого в кластере.2) User namespaces. Фича перешла в
alpha в этой версии. Благодаря user namespaces процесс может быть запущен от root, при этом фактически не будет иметь доступ к хосту.3) Accessing node logs via kubectl. Теперь админы кластера могут получать логи с
Nodes через Kubernetes API. Это безусловно помогает повысить безопасность кластера, уменьшая необходимость ручного подключения к Nodes через SSH.4) Self user attributes. Новый
API endpoint, который позволяет пользователю идентифицировать самого себя, что поможет определить какие RBAC правила на него наложены.5) Kubernetes CVE Feed. Сам фид был обновлен для полной поддержки спецификации
JSON.P.S. – список всех нововведений в 1.27 можно посмотреть тут.
👍22🥰2🔥1
Продолжаем [1,2,3] рассматривать тему
1) "The Future of Service Mesh is Networking"
Основной вывод: "The future of service mesh is as a networking feature, not a product category"
Также от сюда можно узнать о проекте Merbridge, который использует
2) "The Future of Istio: Sidecar-Less and Sidecar with Ambient Mesh"
Хорошо иллюстрированная заметка об Ambient Mesh.
sidecar-less архитектур Service Mesh. И сегодня у нас две занимательные статьи:1) "The Future of Service Mesh is Networking"
Основной вывод: "The future of service mesh is as a networking feature, not a product category"
Также от сюда можно узнать о проекте Merbridge, который использует
eBPF для ускорения service mesh (Есть поддержка: Istio, Linkerd2, Kuma).2) "The Future of Istio: Sidecar-Less and Sidecar with Ambient Mesh"
Хорошо иллюстрированная заметка об Ambient Mesh.
🔥4👍2🤔2