В статьей "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
Публикуем еще 2 доклада из программу нашей конференции БЕКОН (за деталями на сайт):
- "Как приручить Linux capabilities в Kubernetes", Николай Панченко (
- "AppArmor и Kubernetes: настройка проактивной защиты для безопасности приложений", Сергей Канибор (
Билетов остается все меньше - приобрести их можно тут.
- "Как приручить Linux capabilities в Kubernetes", Николай Панченко (
Тинькофф)- "AppArmor и Kubernetes: настройка проактивной защиты для безопасности приложений", Сергей Канибор (
Luntry)Билетов остается все меньше - приобрести их можно тут.
❤11🔥2🥰2🤮2🤨1
Вышла третья статья [1,2] из серии
- Что такое и зачем нужны
- Как минизмизировать их для контейнеров
- Как узнать какие
В заключение, отмечается, что использование всех возможностей
P.S. – ещё одна статья от этого же автора про использование capabilities со стороны атакующего.
Container security fundamentals, на этот раз автор затронул тему Capabilities. Из статьи вы узнаете:- Что такое и зачем нужны
capabilities- Как минизмизировать их для контейнеров
- Как узнать какие
capabilities есть в контейнереВ заключение, отмечается, что использование всех возможностей
capabilities не всегда необходимо, и что на некоторых системах capabilities, которые раньше требовались для выполнения определенных задач, могут быть убраны или не нужны.P.S. – ещё одна статья от этого же автора про использование capabilities со стороны атакующего.
👍9🔥2🤔1
В этот четверг в
В рамках данного доклада про классификацию и систематизацию средств безопасности для
14:30 я выступлю на CyberCamp MeetUp: DevSecOps (online, нужна регистрация) с докладом "Классификация и систематизация средств безопасности для Kubernetes".В рамках данного доклада про классификацию и систематизацию средств безопасности для
Kubernetes мы поговорим о точках внедрения в него средств безопасности с их плюсами и минусами. Основная задача познакомить где, как и какие средства могут быть встроены с возможностью в дальнейшем ориентироваться где и как лучше реализовывать тот или иной слой безопасности.👍10🔥3🤮2🦄2
Просто великолепная картинка про устройство
Картинка взята с проекта youki, который является как раз
P.S. Также не забываем про этот замечательный материал про
Low-level container runtime (помним что есть еще и High-level runtime) в Kubernetes с его пошаговым созданием классического контейнера!Картинка взята с проекта youki, который является как раз
Low-level runtime написанном на Rust.P.S. Также не забываем про этот замечательный материал про
runc.👍14🔥4
На первый взгляд довольно интересная статья с громким названием – Generate Kyverno Admission Controller Policies with KubeArmor рассказывающая о том, как с помощью
Звучит круто, но на самом деле не всё так хорошо. Изучив issue, стало понятно, что они предлагают ограниченный набор политик. Сложно тогда в таком случае назвать это генерацией – по сути предлагаемые политики зависят от поведения приложения.
P.S. – небольшой видео-туториал
KubeArmor можно генерировать политики для Kyverno. Для того чтобы всё заработало нужно:- установить KubeArmor
- установить PolicyEngine (пока что поддерживается только Kyverno)
- установить Discovery Engine
- выполнить команду karmor recommend -p KyvernoPolicyЗвучит круто, но на самом деле не всё так хорошо. Изучив issue, стало понятно, что они предлагают ограниченный набор политик. Сложно тогда в таком случае назвать это генерацией – по сути предлагаемые политики зависят от поведения приложения.
P.S. – небольшой видео-туториал
👍5