DevSecOps Talks – Telegram
DevSecOps Talks
7.44K subscribers
85 photos
94 files
1.23K links
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Download Telegram
Kubernetes Explorer

Всем привет!

Мы уже не раз писали про невероятные материалы, которые подготавливает Ivan Velichko, доступные на сайте iximiuz.com.

Сегодня же хочется рассказать про его проект k’exp - Kubernetes Explorer. Он позволяет «изучать» и «наблюдать» за тем, что происходит внутри кластера.

Например:
🍭 Посмотреть на процесс создания ресурса
🍭 Увидеть, что происходит при изменении количества реплик
🍭 Получить информацию об объекте и не только

Информацию о том, как установить, настроить и использовать решение можно найти в GitHub Repo проекта. Кстати, можно и без установки - через Kubernetes Playground 😊
1👍1
Kuik: kube-image-keeper (cache для образов)

Всем привет!

Наверное, каждый сталкивался с неприятным сообщением: «You have reached your pull rate limit». Решение, на первый взгляд, достаточно очевидное – поднять собственный registry, в котором будет находиться все необходимое.

Но что если и этого недостаточно? Если, например, свой registry «откажет»? Или как уследить за всеми образами, которые должны там быть?

Размышляя над этими вопросами, команда Enix пришла к тому, что нужно создать image caching solution. Далее – все как обычно 😊 Посмотрев на то, что предлагает community, команда пришла к выводу (невероятно, но факт!), что надо делать свое.

Так появился kuik – kube-image-keeper, состоящий их трех основных частей:
🍭 Mutating webhook, добавляющий информацию об используемом реестре
🍭 Controller, который создает CachedImages CR
🍭 Другой controller, который скачивает образы из CachedImages CR

Таким образом у ребят получилось создать автоматизированное управление cache’ем для всех используемых образов.

Больше информации, включая детальное описание проблематики, различные архитектуры, которые попробовала команда, и описание процесса получения образов можно найти в статье. А если хочется попробовать kuik в действии, то его можно найти на GitHub.
👍3
Платформа «Штурвал» прошла сертификацию CNCF по Kubernetes!

Разработчик ПО «Лаборатория Числитель» стал участником сообщества Cloud Native Computing Foundation. Платформа «Штурвал» получила официальный международный статус Certified Kubernetes Software Conformance.

🔔Для прохождения сертификации поставщикам решений необходимо предоставить результаты тестирования своего продукта на соответствие требованиям CNCF. Сертификация гарантирует, что продукт поддерживает требуемые API и версии Kubernetes. Для компаний, которые используют Kubernetes, это означает, что их приложения будут совместимы с сертифицированным CNCF-дистрибутивом.

🚩Большинство ведущих мировых производителей корпоративного программного обеспечения и провайдеров облачных вычислений имеют сертифицированные предложения Kubernetes. Среди продуктов, сертифицированных CNCF по Kubernetes, — VMware Tanzu, Red Hat OpenShift, Rancher Kubernetes и другие.
🔥14👏6🥰3👍2🤡2🎉1💩1
Top System Programming Vulnerabilities

Всем привет!

По ссылке можно ознакомиться с еще одним top’ом уязвимостей. Про первую часть с примерами, характерными для API, мы писали тут.

Подборка включает в себя:
🍭 Buffer overflow
🍭 Pointer Initialization
🍭 Incorrect Type Conversion
🍭 Format String Vulnerability

Как и в первой подборке, в этой приводятся примеры того,«как не надо» делать и «как надо». В качестве «подопытных» рассматриваются языки: C++, C и Rust.
👍4
Kyverno: теперь не только для Kubernetes

Всем привет!

Небольшой пятничный пост с очень приятной новостью, если вы любите и используете Kyverno!

Одним из самых частых комментариев в сравнении Kyverno с OPA/Gatekeeper был примерно такой: «OPA работает со всем, а Kyverno позволяет анализировать только ресурсы Kubernetes!».

Теперь это не так! Недавно был анонсирован проект Kyverno JSON, который позволяет анализировать любые данные формата JSON!

Для этого есть:
🍭 CLI для анализа, например, в CI
🍭 REST API для принятия решений
🍭 Golang library для адаптации под собственные нужды

Сам проект находится в repo, документация доступна по ссылке. Кстати, в repo есть ссылка на playground, чтобы быстро попробовать «как это работает».
👍8👏21
SBOM Benchmark

Всем привет!

На сайте можно ознакомиться с перечнем решений, при помощи которых можно генерировать SBOM, а также с их условной «оценкой».

Оценка формируется на основании критериев:
🍭 NTIA-Minimum-Elements
🍭 Structural
🍭 Sharing
🍭 Quality и Semantic

Для каждого из представленных решений есть дополнительная информация: в каких спецификациях можно создать SBOM, поддерживаемые ими форматы и что может выступать в качестве «источника» для генерации (пакет, repo, образ контейнера и т.д.). Также можно предложить решение по генерации SBOM самому через соответствующую процедуру.
REGO: Основы

Всем привет!

SNYK анонсировал цикл статей, посвященных знакомству и использованию REGO – того самого языка, на котором пишутся политики для OPA.

Первая статья посвящена совсем-совсем основам и включает в себя:
🍭 Общее описание логики работы
🍭 Inputs и Rules
🍭 Queries
🍭 «Вычисление» правила и формирование результата

Каждый раздел содержит в себе примеры кода и крайне детальные пояснения. В конце авторы показывают, как этим можно воспользоваться либо с REGO Playground или через cli-утилиту. Если вы хотели погрузиться в эту тему, но не знали с чего начать – эта статья самое «то».

Следующие статьи серии будут посвящены более сложному синтаксису и правилам. Будем держать Вас в курсе!
🔥5👍1
MITRE SAF: Security Automation Framework

Всем привет!

MITRE SAF – проект, который представляет из себя как набор технологический решений, так и общий взгляд на выстраивание DevSecOps-практик.

Все структурировано по следующим разделам:
🍭 Plan. Создание и управление Security Baselines с использованием Vulcan
🍭 Harden. Реализация созданных Security Baselines с использованием Ansible, Terraform, Inspec
🍭 Validate. Проверка реализованных Security Baselines с использованием Inspec и других средств анализа
🍭 Normalize. Приведение результатов данных, полученных из разных средств анализа к единому виду – OASIS Heimdall Data Format (OHDF). Есть готовые «конвертеры» для GoSec, Nikto, SNYK, SonarQube, SARIF и не только (реализуется с использованием утилиты SAF-cli)
🍭 Visualize. Представление полученных данных в графическом виде с использованием Heimdall

Помимо инструментария на сайте можно ознакомиться с рекомендациями по реализации практик DevSecOps (согласно описанному выше подходу). Наборы библиотек для hardening или validate и много чего интересного.

Настоятельно рекомендуем Вам ознакомиться с сайтом и тем, что он предлагает ☺️ Такое не получится уместить в одном посте ☺️
🔥4👍1
Написание собственного Admission Webhook

Всем привет!

По ссылке доступна статья, в которой пошагово объясняется и демонстрируется как создать собственный Admission Webhook. Суть очень простая – проверка наличия Liveness Probes и Readiness Probes.

Автор предлагает следующие шаги для его Python-проекта:
🍭 Создание контейнера с REST API сервером, который будет обрабатывать запросы и содержать всю «логику»
🍭 Выпуск сертификатов, генерация caBundle
🍭 Создание Namespace, Secret, Deployment
🍭 Регистрация готового webhook через создание ValidatingWebhookConfiguration
🍭 Тестировние!

Может родиться вопрос: «Зачем все это нужно, если аналогичное можно реализовать на Kyverno / OPA Gatekeeper и реализовать быстро?». Все так, но реализуя это самостоятельно можно в разы лучше понять, что происходит «под капотом» и как оно устроено. А еще это очень весело! 😊
👍1
🧨22-23 ноября в Москве состоится большая конференция про сети и инфру IT Elements

🔎Мы нашли для вас интересные доклады по тематике DevOps от вендоров и представителей крупных компаний:

22.11
🔹DevNetOps. Автоматизация процесса эксплуатации и внедрения сети. Дискуссия

23.11
🔹Open Source Software в больших компаниях — Александр Краснов, технический директор платформы Штурвал, Лаборатория Числитель
🔹Эволюция инструментов автоматизации — Алексей Крылов, DevOps Competence Lead
🔹Deckhouse Kubernetes Platform: надежная инфраструктура Enterprise-уровня для ускорения бизнеса — Аксенов Константин, директор департамента разработки платформы Deckhouse, Флант
🔹Переход к platform engineering для инфраструктурных команд — Карапет Манасян, глава платформы разработки, MOEX Group
🔹Инфраструктурные платформы: взгляд бизнеса. Круглый стол
🔹Сквозь облака: Как инфраструктура становится кодом, а DevOps-платформа мостом к новым горизонтам — Александр Подмосковный, руководитель центра компетенций технологий взаимодействия с клиентом
🔹Infra as a Code: как мечтать, чтобы всё сбылось — Андрей Пономарев, ИТ-директор, МойОфис

Участие бесплатное, но надо успеть зарегистрироваться до 20 ноября.

Подробная программа, спикеры и регистрация на сайте конференции.
🔥7🥰2🤓2😎2👾2❤‍🔥1👏1
Обход Admission Controller через ephemeral containers

Всем привет!

В статье Автор предлагает рассмотреть возможный способ обхода Admission Controller (на примере OPA/Gatekeeper) с использованием Ephemeral Containers.

Алгоритм весьма простой:
🍭 Создание политик, которые запрещают устанавливать privileged: true для containers и initContainers, создание pod
🍭 Попытки модификации спецификации созданного pod для добавления ephemeralContainer. Безуспешные patch, edit, т.к. большинство спецификации pod является неизменяемым
🍭 Однако, kubectl debug сработает, а при более детальном рассмотрении окажется, что он использует тот же самый patch
🍭 Формирование запроса определенного вида и реализовать его с использованием curl. К pod будет добавлен ephemeralContainer, обладающий флагом privileged: true (при работающих политиках)

В чем же разница? Ответ прост – иной api endpoint, который как раз и позволит модифицировать спецификацию контейнера через curl запрос. В завершении статьи Автор рассказывает, что необходимо добавить в политике Gatekeeper, чтобы вышеописанное не получилось.
👍3
REGO: логические операторы и сообщения

Всем привет!

Продолжение материалов от SNYK, посвященных использованию REGO (про первую часть мы писали тут).

На этот раз Авторы знакомят с такими концептами, как:
🍭 Multiple queries: объединение различных rules для оценки данных
🍭 Настройка и использование значений по умолчанию
🍭 Добавление сообщений к результатам работы правил

Вторая часть, как и первая богата на примеры, пояснения и исходный код для самостоятельного повторения (которое также можно реализовать локально или с использованием REGO Playground)
Descheduler в Kubernetes

Всем привет!

Descheduler – полезный механизм, который позволяет реализовать rescheduling запущенных на кластере нагрузок (интересно, почему его не назвали Rescheduler). Это может быть полезно, например, при добавлении узлов кластера, чтобы не ждать перезапуска приложений, а оптимизировать нагрузку на вычислительные ресурсы для уже запущенных нагрузок.

В статье Автор описывает основные концепты механизма:
🍭 Назначение, примеры использования, возможности установки
🍭 Архитектура, ключевые компоненты и сущности (Evictor, Strategy)
🍭 Логика работы и то, на основании чего Descheduler принимает решение о том, что нагрузку надо перенести и условия, которые этому предшествуют

В завершении статьи Автор приводит небольшой пример: Descheduler настраивается с использованием Strategy RemovePodsHavingTooManyRestarts со значением равным 5. После – запускаем «нестабильный» pod и наблюдаем за работой Descheduler «вживую».

Отдельно ознакомиться со всеми доступными Strategy и нюансами их использования можно в документации.
👍3🔥1
CVE Half-Day Watcher

Всем привет!

Новый инструмент от Aqua Security, который позволять получать максимально (ну почти) раннюю информацию о наличии CVE в анализируемых проектах (еще до того, как для них официально вышел патч).

Работает относительно просто: сопоставляет данные, получаемые из NVD API о недавно опубликованных CVE с их GitHub Reference.

Название свое проект получил, т.к. он находится где-то посередине между 0-day (когда maintainer не знает об уязвимости) и 1-day (когда maintainer узнал по уязвимости).

Пример того, как это работает и зачем это нужно – можно найти в статье от Aqua, в которой рассматривается timeline истории Log4Shell.

На текущий момент проект все еще находится на стадии «proof of concept», но будет развиваться и «обрастать» новым функционалом и возможностями.
👍51
Устройство и логика работы Kubelet

Всем привет!

Очень часто можно найти статьи, посвященные логике работы Kubernetes и его “control plane” компонентов. Реже встречаются статьи, посвященные тому, как работает Kubelet.

Исправляем это недоразумение! В статье описывается архитектура Kubelet, включающая в себя такие компоненты, как:
🍭 Pod Lifecycle Event Generator (PLEG)
🍭 PodWorkers, PodManager
🍭 PodAdmitHandlers
🍭 PluginManager и не только

Для каждого ключевого компонента описывается его назначение. В завершении статье Автор делает небольшой анализ исходного кода Kubelet (нет, не по информационной безопасности) на предмет того, что происходит «под капотом» и как указанные выше компоненты работают между собой.
👍5🔥4
Повышение привилегий в Kubernetes

Всем привет!

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

Автор рассматривает следующие возможности:
🍭 Pod Creation. В целом, в этом нет ничего «опасного», если контролируется манифест создаваемого pod’a и гарантируется, что используется «валидный образ». Однако, если это не так, то можно реализовать несколько сценариев по повышению привилегий
🍭 Read Secrets. Бесконтрольный доступ к секретам никогда не бывает хорошей практикой. В любой системе, в том числе и в Kubernetes
🍭 Bind Roles. Назначение большего количества полномочий, чем требуется
🍭 Escalate Existing Roles. Добавление больших прав к существующей роли
🍭 Impersonate. Возможность отправки запросов к kube-apiserver от более привилегированной роли

Для каждой из вышеописанной возможности приводятся некоторые сценарии с примерами как этим можно воспользоваться.

Минимально-необходимым уровнем защиты от описанных в статье сценариев является корректная настройка ролевой модели Kubernetes и использование Admission Controller с необходимыми политиками контроля
👍5
Друзья, мы, редакция DevSecOps Talks, рады пригласить вас на доклад нашего эксперта на Highload++!

Во вторник, в 11:00, в зале "Рио" Семён Барышников будет рассказывать о нашем переосмыслении VDI и о том, как мы для мероприятия CyberCamp 2023 предоставили доступ в инфраструктуру участникам киберучений. Будет описано много интересных решений, нестандартных подходов как в области инфраструктуры, так и в области безопасности k8s.

Тема рассказа: Высоконагруженная VDI из Open Source для платформы киберучений «CyberCamp» в облачном Kubernetes
🔥13👍75❤‍🔥2🐳2🤔1💩1🤓1🦄1👾1
Атака на CI/CD через shared runners

Всем привет!

Во многих рекомендациях по защите CI/CD упоминается о том, что использовать shared runner не самый безопасный способ.

Но что тут, казалось бы, плохого? Ответ можно найти в статье, где как раз рассматривается интересующий сценарий:
🍭 Допустим, что есть 2 сотрудника, обладающих доступом к разным проектам: один – стажер, у которого особо нет полномочий, а второй – может делать deploy в production-окружение
🍭 Допустим, что стажер был компрометирован. В случае использования shared runners он может получить доступ, выходящий далеко за пределы его полномочий

Возможность реализации подобного сценария Автор реализует с использованием docker-in-docker runner’a, dind (что тоже не является самый лучшей практикой наряду с shell runner). Начинается все с простого примера poisoned pipeline execution, а далее задача усложняется – «побег из dind» с последующим получением конфиденциальной информации и компрометацией host, на котором запускаются runner’ы.

Помимо примеров реализации атаки в статье также присутствует информация о том, как сделать так, чтобы этого не произошло. Или, по крайней мере, стало в разы сложнее
🔥31
Лучшие коктейли на Highload++ 2023 только в Jet Secret Club!

Внутри вас ждут:
🏆квиз с призами
🍹авторские коктейли
🥷разговоры о важном DevSecOps, инфраструктуре, мониторинге и всем, что связано с ИТ

Ищите нас рядом с залом №10 - Кейптаун!
👍11❤‍🔥8🤮43🤡3🔥2🥰1🐳1🤓1👾1
Software Supply Chain: Awesome

Всем привет!

Герой сегодняшнего поста – Awesome подборка, посвященная тематике защиты цепочек поставки программного обеспечения.

Внутри можно найти:
🍭 Материалы от «организаций» (NIST, OWASP, OpenSSF и т.д.)
🍭 Стандарты, frameworks и прочие best practices
Угрозы и атаки на цепочки поставки ПО
🍭 SBOM, VEX, KEV
🍭 Отчеты, статьи, podcast
🍭 Ссылки на полезные GitHub Repo и не только

Материалов очень много, на любой вкус и цвет. Уверены, что Вы найдете для себя что-то интересное и полезное.
GitHub Actions Goat

Всем привет!

По ссылке можно ознакомиться с заведомо-уязвимым проектом для эксплуатации уязвимостей в GitHub Actions.

На текущий момент можно реализовать такие сценарии, как:
🍭 Компрометация исходного кода и учетных данных
🍭 Изменение исходного кода или артефактов во время сборки
🍭 Отсутствие корректного журналирования CI/CD конвейера
🍭 Использование «долгоживущих» учетных данных
🍭 Применение недоверенных GitHub Actions от 3rd party

Для каждого сценария приводится сопроводительная информация, поясняющая проблематику, ссылки на лучшие практики по защите и примеры того, как можно настроить GitHub Actions более правильно и безопасно.
👍4🔥3