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

Всем привет!

И снова материал от OpenSSF. На этот раз ребята решили, что информации в SECURITY.md и CONTRIBUTING.md не всегда достаточно и представили свой формат (увы, это yaml 😊)

Security Insights Specification представляет собой машиночитаемый файл, который, в том числе удобен и для человека.

Формат сгруппирован по следующим разделам:
🍭 Project Lifecycle
🍭 Contribution Policy
🍭 Documentation
🍭 Distribution Points
🍭 Security Artefacts и не только

По каждому разделу можно добавить релевантную информацию по ИБ. Например, указать какие инструменты используются для идентификации ИБ-дефектов или с кем можно (нужно) связаться в случае нахождения уязвимости. С полной версией спецификации можно ознакомиться в repo.
1
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 и не только

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