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

Всем привет!

Сегодняшний пятничный пост посвящен observability в Kubernetes. Чем больше уровней абстракции, тем сложнее в них потеряться и понять что происходит.

Для того, чтобы решить эту задачу можно использовать различные observability-инструменты, которые позволят получить ту самую «видимость».

Автор статьи предлагает «разбить» observability на 3 уровня:
🍭 Внешняя. Информация, связанная с user experience – время отклика, производительность и т.д.
🍭 Внутренняя. Метрики и логи, генерируемые системой
🍭 Операционная система. Отслеживание System Calls

Для каждого уровня Автор приводит несколько инструментов, которые могут пригодиться.

Из интересного еще то, что каждый уровень рассматривается с точки зрения нескольких ролей: Клиент, Разработчик, Platform-инженер, SRE и т.д.
🔥2
DFIR в контейнерах: основы

Всем привет!

Digital Forensics и Incident Response (DFIR) – тема очень интересная, особенно, если дело касается контейнеров, которые обитают «в своем мире».

В статье команда Sysdig описывает, как и что можно делать, согласно методологии NIST (Computes Security Incident Handling Guide).

Рассматриваются шаги:
🍭 Preparation
🍭 Detection and Analysis
🍭 Containment Eradication and Recovery
🍭 Post-Incident Activity

Для каждого шага описывается его назначение и возможные способы автоматизации.

P.S. А если хочется узнать про это больше, то можно ознакомиться с докладом по DFIR, представленным командой Sysdig на CloudNative SecurityCon в 2023. Ссылка на него есть в начале статьи
👍3
Gitlabcis: анализ GitLab на соответствие CIS

Всем привет!

Недавно GitLab представили собственную разработку – Gitlabcis.

Как нетрудно понять из названия он используется для того, чтобы проверять корректность конфигураций GitLab на соответствие одноименному CIS Benchmark.

Просто устанавливается, легко конфигурируется и быстро работает!

Из возможностей хотелось бы отметить:
🍭 Выдача результатов содержит Reason, в которой указано, почему настройка (не) соответствует требованиям
🍭 Есть возможность получения рекомендаций о том, как и что можно поправить (вплоть до «откройте XXX, выберите YYY и нажмите ZZZ)

Но не обошлось и без ограничений – реализовать автоматизированные проверки всего и вся не всегда просто/возможно. Все, что сейчас не реализовано, Авторы описали вот тут.

Больше подробностей, как обычно, в repo проекта и в официальной документации. А если вам хочется узнать roadmap развития утилиты, то он есть в статье из поста 😊
👍4🤩2
Форензика в Kubernetes

Всем привет!

Продолжение истории с DFIR в контейнерах от Sysdig! Предыдущая статья закончилась на том, что это важно, интересно и полезно. Но, как и что делать – озвучено не было.

Именно этому и посвящена вторая статья! А именно – использованию функционала Checkpoint. Если просто – сохранению состояния контейнера в определенный момент времени для дальнейшего расследования.

В качестве примера команда Sysdig собирает Falco, Falco Sidekick, ArgoCD вместе, чтобы автоматически создавать Checkpoint в случае, если Falco обнаруживает нечто подозрительное.

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

В завершении – полный перечень используемых инструментов и много ссылок «на почитать».

P.S. А если хочется материалов по теме на русском языке, то рекомендуем обратиться вот к этому докладу Сергея Канибора из команды Luntry – все по полкам! Да, 2022, но концепты не слишком сильно изменились 😊
👍71
Kubelab: интерактивные лабораторные по Kubernetes

Всем привет!

Самый простой способ что-то изучить – практика, практика и еще раз практика. Поэтому сегодня предлагаем вам познакомиться с проектом Kubelab.

Он позволяет реализовать «интерактивный Kubernetes-тренажер» локально и проходить различные задания.

Например:
🍭 Основы работы с Kubernetes (Networking, Storage, Jobs, RBAC и т.д.)
🍭 «Продвинутые» задания (выстраивание «цепочек» из того, что поясняется в «Основах»)

Для лабораторных есть подсказки или готовые решения, если не получилось сделать самостоятельно. Кроме этого, Kubelab обладает Web UI и редактором кода, чтобы упростить обучение.

Важно: проект еще достаточно «молодой», поэтому возможны различные нюансы, связанные с его работой
10👍6
Основы сети и сетевая безопасность в Kubernetes

Всем привет!

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

Команда Otterize описывает следующее:
🍭 Ключевые концепты (Kube-proxy, Service и их типы)
🍭 Network Policies и как их можно использовать
🍭 «Путешествие» пакета и то, как можно анализировать трафик на примере простого приложения
🍭 Создание Network Policy для вышеуказанного приложения с использованием Open Source наработок Otterize (о которых мы писали тут и тут)

Очень много схем, комментариев и примеров. Отдельно хочется отметить часть, связанную с «путешествием» пакета – Авторы разобрали все весьма подробно.
👍6
«Вредные советы» по безопасной разработке

Всем привет!

Обычно рассказывают про хорошие / лучшие практики по чему-либо. Безопасная разработка – не исключение.

Однако, все мы помним Григория Остера и его замечательные «Вредные советы». Которые весело читались и сохранялись в памяти на долгие годы.

Поэтому сегодня хотим рассказать про статью от CISA, в которой собраны такие вот "советы" по вопросам безопасности разрабатываемого ПО.

Например:
🍭 Использование memory unsafe languages (спорно, но)
🍭 Возможность добавления пользовательского ввода в SQL-запросы
🍭 Возможность добавления пользовательского ввода в команды ОС
🍭 Использование «чего-либо», обладающего известными уязвимостями и т.д.

Для каждого «совета» приводится описание и как делать «правильно». Да, выглядит «избито и банально», но, возможно, в такой трактовке лучше запомнится 😊

P.S. А если вы не знаете, кто такой Григорий Остер и что за «Вредные советы» - очень настойчиво рекомендуем ознакомиться 😊
👍52
И еще немного про Kubernetes Operators

Всем привет!

Предлагаем вам еще одну статью, посвященную Kubernetes Operators. Если вы хотели побольше о них узнать, то она может быть полезна.

Сперва Автор раскрывает основные идеи – Current State, Target State, Reconcile Loop. Дальше, на примере Deployment, каждый из концептов и внутренняя «машинерия» раскрывается детальнее.

Сам процесс создания Deployment и использования соответствующих операторов хорошо описан и структурирован для того, чтобы лучше разобраться в происходящем.

Далее – создание собственного контроллера с использованием Kubebuilder!

Автор приводит все шаги:
🍭 Подготовка шаблонов
🍭 Управление permissions при работе с (Sub) Resources
🍭 Настройка SetupWithManager и указание ресурса для reconcile
🍭 Описание той самой reconcile-логики (что надо сдедать в случае, если с ресурсом X произошло событие Y)
🍭 Работа с Finalizers и много всего еще

Очень-очень-очень-очень много пояснений, кода, различных схем и примеров из разных Kubernetes Operators.

Отличная статья для погружения в тему, рекомендуем!
👍32🔥2
Helmper: анализ образов Helm Chart

Всем привет!

Допустим, что у вас есть Helm Chart, образы из которого надо поместить в локальный реестр для дальнейшего использования.

С простыми Chart сделать это относительно не сложно, а со сложноустроенными – все может быть далеко не так тривиально.

Именно эту задачу (и не только!) помогает решить утилита Helmper. Она объединяет в себе Helm, Oras, Trivy, Copaсetic и Cosign.

Да, уже из «состава» видно, что умеет она чуть больше, а именно:
🍭 «Извлечение» образов из всех Helm Chart и их Sub Chart
🍭 Гибкое управление «импортом» образов – все или только новые
🍭 Анализ образов на наличие уязвимостей с Trivy
🍭 Устранение уязвимостей с использованием Copaсetic (детальнее про него мы писали тут)
🍭 Возможность подписи образов контейнеров и не только

Больше информации можно найти в repo и в документации на утилиту.

Важно: утилита находится в beta-стадии.
И, если вдруг вы захотите «устранять уязвимости автоматически» с Copaсetic не забывайте, что он создает новый слой сверху, что может увеличить размер образа.
NPM Provenance и его использование

Всем привет!

NPM Provenance – механизм, который позволяет «связать» опубликованный пакет с исходными кодами GitHub-Repository.

Казалось бы, это очень хороший функционал, который позволит усилить защиту против атак на цепочку поставки ПО.

Однако, насколько часто им пользуются? Размышления на эту тему можно найти в статье. Spoiler: хотелось бы больше 😊

Автор рассматривает:
🍭 Общие риски ИБ в модели ИБ NPM (отсутствие требований к наличию provenance, отсутствие требований к публикации пакетов и т.д.)
🍭 Возможные причины, почему Provenance не получил (ает) желаемого распространения
🍭 Как включить и как проверить тот самый Provenance
🍭 Общие рекомендации как для Package Maintainers, так и для Package Users

Все очень просто и кратко описано, что позволит лучше разобраться как и что работает.

Также статья затрагивает другую интересную тему, а именно: получение полной информации о ПО – от условного commit до того, что получает конечный пользователь. Но об этом как-нибудь в другой раз 😊
3👍2🔥1
Выносим отчеты Kyverno из Etcd

Всем привет!

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

Если нет, то:
Kyverno — это инструмент для управления конфигурацией и обеспечения соответствия в Kubernetes. Он позволяет определить правила и политики, которым должны соответствовать кластеры Kubernetes, и автоматически применять эти правила при изменении кластера.

В больших кластерах, и с большим количеством политик Kyverno пользователи могут столкнуться с замедлением работы api-server-а, а также с ограничением хранилища etcd.

И тут на выручку нам приходит новый проект от разработчиков Kyverno – Kyverno Reports Server! Он решает проблему масштабируемости отчетов о политике, сохраняя отчеты за пределами etcd - в реляционной базе данных PostgreSQL. Сервер отчетов достигает этого с помощью Kubernetes API aggregation layer, где он создает API-сервис, который принимает все запросы от локального сервера API и обрабатывает их. Сервер отчетов имеет доступ к реляционной базе данных, которую он использует для хранения отчетов.

Изучить детальнее можно по ссылке
Репозиторий: https://github.com/kyverno/reports-server
4🔥4👍3
Компрометация кластера Kubernetes: пример сценария

Всем привет!

В статье рассматривается возможный сценарий компрометации кластера Kubernetes. Про «подготовку» такого кластера можно почитать вот тут (чтобы контекст был более понятен).

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

Автор проделывают следующий путь:
🍭 Получают reverse shell в Pod. Для этого используется supply chain атака с подменой requests на request` (typosquating)
🍭 Сбор первичной информации об окружении – какой runtime используется, что есть «внутри Pod», анализ полномочий ServiceAccount, из-под которой запущен Pod
🍭 Получение доступа к базе данных, используя роль Kubernetes, права которой только RO
🍭 Компрометация GitHub Runners / GitHub Actions и не только

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

Вывод из этого можно сделать достаточно простой – не стоит пренебрегать практиками и средствами автоматизации, которые могут помочь в безопасной настройке окружения, необходимого как для разработки, так и для эксплуатации ПО.
4
Статический анализ JavaScript

Всем привет!

По ссылке можно найти вводную статью, посвященную статическому анализу JavaScript-приложений, подготовленную Snyk.

Автор разбирает разделы:
🍭 Что такое статический анализ и зачем он нужен
🍭 Отличие статического анализа от динамического
🍭 Статический анализ для нужд Quality и Security
🍭 Введение в Abstract Syntax Tree (AST) и его использование в анализе ПО

Каждый из блоков рассматривается на минималистичном примере, к которому даются комментарии.

В качестве инструмента анализа упоминается Snyk и ESLint.

Статья направлена на изучение базовых принципов и используемых технологий анализа кода на примере JavaScript и может пригодиться тем, кто только начинает свой путь в этой области.
4
Kyverno Certified Associate

Всем привет!

Недавно CNCF анонсировала еще одну сертификацию. На этот раз она посвящена Kyverno! Как обычно – для прохождения надо ответить на вопросы, сгруппированные по доменам.

А сами домены следующие:
🍭 Fundamentals of Kyverno
🍭 Installation, Configuration and Upgrades
🍭 Kyverno CLI
🍭 Applying Policies
🍭 Writing Policies (и тут все-все-все – от Validation до Cleanup)
🍭 Policy Management

Выглядит как полноценный обзор всего, что может Kyverno. Однако, сдать экзамен можно только начиная с января 2025, сейчас открыта лишь предварительная запись.

И да, увы, экзамен платный – 250$
👍4🔥1
Sealed Secret Web UI

Всем привет!

Если вы любите IaC подходы и храните конфигурацию в системе контроля версий, то рано или поздно встанет вопрос: «А что делать с Kubernetes Secretes?»

Ответом может стать утилита от Bitnami – Sealed Secrets (про нее мы писали тут). Если просто – то она создает «шифрованного двойника» секрета и позволяет разместить его в git-репозитории.

Сегодня же мы хотим рассказать вам про простую утилиту, которая позволяет сделать Web UI для Sealed Secrets.

Функционал минималистичен и прост:
🍭 Encode/Decode. (Де) кодирование строк в base64
🍭 Secrets. Получение всех Sealed Secrets в рамках Namespace
🍭 Seal. Шифрование Kubernetes Secret с созданием Sealed Secret
🍭 Validate. Проверка Sealed Secret

Ничего сверхъестественного, просто небольшое графическое представление информации, которое может немного упростить жизнь 😊
👍4
DevSecOps Blueprint

Всем привет!

Сегодняшний материал подойдет всем, кто хочет начать свой путь в DevSecOps. DevSecOps BluePrint состоит из двух частей: Blueprint и Projects.

Первая часть посвящена теории. В ней собрана общая информация о том, что такое Application Security, безопасность SDLC, основы DevSecOps.

Вторая представляет из себя описание создания небольшой «лабораторной» для развития практических навыков.

Лабораторная включает в себя:
🍭 Docker
🍭 Gitea
🍭 Jenkins
🍭 Nexus
🍭 Security Tools (SonarQube, Trivy)
🍭 Monitoring Tools (Grafana, Prometheus)

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

Для начала пути в мир DevSecOps – вполне себе! 😊
👍8
Совместим ли GitOps с Database Rollback?

Всем привет!

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

Реализовали новую функциональность? Не проблема. Операторы Kubernetes синхронизируют изменения и автоматически применят их в кластере. Что-то пошло не так? Не проблема. Всегда можно «откатиться на предыдущий commit и разбираться что пошло не так».

В теории все очень классно, но что можно наблюдать на практике? Для stateless приложений такой подход может работать очень хорошо, а что делать с stateful?

Например, с базами данных? Вот так «просто» обновить ее не получится, ведь помимо ПО, необходимого для функционирования базы есть еще и данные. И эти самые данные уже не получится «просто взять из системы контроля версий».

Именно этой проблеме посвящена статья. Авторы разбирают:
🍭 Up и Down- миграции, возможную проблематику их реализации
🍭 Возможности ArgoCD по реализации миграций, нюансы работы с rollback
🍭 Использование Atlas Operator для управление схемой (schema) БД, включая rollbacks

В статье очень много интересных теоретических аспектов, связанных с работой баз данных. Кроме того, можно не читать статью, а посмотреть видео с прошедшего KubeCon (оно доступно в начале статьи).
👍2
SAST: руководство для начинающих!

Всем привет!

Сегодня хотим поделиться с вами обзорной статьей про Static Application Security Testing. Сперва Автор кратко описывает что это такое, зачем оно нужно и почему это важно.

Далее – переходит к самому интересному, а именно – способам анализа, которые могут быть «под капотом» у анализатора

Рассматривается следующее:
🍭 «Grep»-техника (она же pattern-matching)
🍭 Control Flow Analysis
🍭 Data Flow Analysis
🍭 Taint Analysis

Для каждой техники приводится лаконичное описание логики работы, примеры на небольших code snippets, а также ее преимущества и недостатки.

Помимо этого, есть краткое описание Enterprise и Open Source сканеров с указанием типов анализа, которые они поддерживают.

Завершают статью рекомендации о том, с чего можно начать реализацию практики статического анализа, как можно «бороться» с False Positive. И, конечно же, не обошлось без возможных областей использования машинного обучения для рассматриваемых задач.

В итоге получилось очень хорошее руководство для новичков, которые только начинают свой путь в SAST 😊
👍11
Service Mesh: DIY

Здрасссссьте Всем привет!

Хотели разобраться в том, что такое Service Mesh? Тогда эти статьи (раз, два) могут вам понравиться. В них Автор предлагает создать свою собственную реализацию!

Конечно не для production ready окружений, но для обучающих целей точно сойдет!

Предлагается пройти вот такой путь:
🍭 Создание http-client и http-server
🍭 Реализация proxy для перехвата requests и responses
🍭 Добавление созданных сущностей в Deployment
🍭 Автоматизация предыдущего шага с использованием собственного Admission Controller

Указанные шаги Автор реализует с использованием Golang. Код, пояснения и примеры, ссылки на конфигурационные файлы и используемый инструментарий – все это есть в статье для воспроизведения

P.S. А если не хочется читать статью, то все необходимое собрано в этом GitHub Repo 😊
👍6🔥3
Штурвал - community версия

Всем привет!

Не можем остаться в стороне и не поделиться интересной новостью. Лаборатория Числитель выпустила community версию своей платформы контейнерной оркестрации - Штурвал.

В community версии есть:
🍭бесплатная лицензия с неограниченным сроком действия
🍭полный функционал, сопоставимый с коммерческой редакцией продукта
🍭управление до 10 воркерами любой конфигурации

И важные ссылки:
🍭форма для получения лицензионного ключа
🍭чат community в Телеграм
🔥146🥰5💩5👀1
Kubernetes Endpoints: что это и зачем?

Всем привет!

Endpoints играют важную роль в «жизни» Kubernetes – они помогают «связывать» Service с Pod для корректной работы приложений.

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

Автор рассматривает:
🍭 Что такое Endpoint и как они работают (создание Service, создание Endpoint, обновление Endpoint)
🍭 Структура Endpoint с пояснениями
🍭 EndpointSlice, их роль, назначение и принцип работы

В завершении статьи приводится демонстрация на примере простого Deployment и его Service, в котором рассматриваются описанные в статье сущности.
3