DevSecOps Talks
Открыть в Telegram
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Больше7 847
Подписчики
+724 часа
+347 дней
+10030 день
Архив постов
7 847
Платформа "Штурвал": вебинар и live demo
Всем привет!
Уже совсем скоро, 2 февраля, «Лаборатория Числитель» - разработчик, проведет вебинар, посвященный новой Платформе для контейнерной оркестрации «Штурвал»
На вебинаре расскажут:
🔹о целевой архитектуре решения и ее ключевых компонентах, которые учитывают высокие требования к вычислительной инфраструктуре и информационной безопасности
🔹о функционале «из коробки» и преимуществах использования для инженера эксплуатации и ИБ
🔹об уровнях сервисной поддержки и политике лицензирования
Также в программе будет показано live-demo решения.
Мероприятие будет интересно руководителям по цифровизации, ИТ-инфраструктуре и эксплуатации крупных компаний, а также DevOps-специалистам, администраторам, ИБ-специалистам.
Подробности и регистрация здесь 👈
7 847
Пример моделирования угроз с использованием Systemic Approach
Всем привет!
В статье Автор рассматривает пример создания модели угроз с использованием Systemic Approach. В качестве примера выбрано абстрактное микросервисное приложение, которое взаимодействует с облачными сервисами.
Подход оперирует следующими терминами:
🍭 Boundary. Определение той части/компонентов системы, для которых будет реализовано моделирование. В примере Автор «привязывает» их к user story – отправка уведомлений – и рассматривает угрозы, применительно лишь к этому сценарию
🍭 Abstraction levels. Постепенное «погружение» в систему. Сперва – общий взгляд и все большая детализация при дальнейшем анализе. Применяется к выбранному boundary
🍭 Perspectives. Рассмотрение системы с точки зрения защищающегося или атакующего. В примере Автор берет STRIDE и расписывает возможные сценарии
Получается нечто вроде моделирования угроз «по спирали» - от общих абстракций до вполне себе конкретных мер. Рекомендуем прочесть статью, если Вам интересно ознакомиться с концептом Systemic Approach подробнее. Важно – там будет описание идеологии и подхода, но никак не детальный how to. Ведь как видно из примера выше – сделать такое универсальным вряд ли получится.
7 847
Как происходит удаление pod?
Всем привет!
Есть много разных статей в стиле «what happens when…». Например, что происходит при использовании команды
kubectl apply -f smth.yaml.
Сегодняшняя статья рассказывает про то, что происходит при kubectl delete pod. Например, как k8s понимает, что надо ограничить трафик к «умирающему» pod? Как реализовать graceful shutdown и т.д.
Процесс выглядит следующим образом:
🍭 Обновление записи в etcd: добавление deletionTimestamp, deletionGracePeriodSeconds. Pod получает статус terminating
🍭Удаление endpoint pod из соответствующих services
🍭kubelet останавливает pod, api-server удаляет запись о pod’е из etcd
В статье все расписано более детально, уточнены нюансы: например, зачем нужен grace period. В завершении статьи представлены эксперименты с различными параметрами процесса удаления pod’a.7 847
Контроль configuration drift в контейнерах
Всем привет!
В repo можно найти оператор, который позволяет контролировать configuration drift в контейнерах.
Работает все достаточно просто:
🍭 Пользователь осуществляет
exec в контейнер
🍭 Запрос регистрируется kube-apiserver, pod’у контейнера проставляется label
🍭 После установленного времени k8s удаляет pod, у которого есть определенный label
Вот и все 😊 Работает не только с exec, но и с другими «интерактивными» запросами (attach, cp и т.д.). Для kubectl предусмотрен специальный плагин, который упрощает чтение label, содержащего информацию о том кто совершал операцию, когда и сколько еще осталось «жить» pod’у.7 847
Автоматическое устранение уязвимостей в образах контейнеров
Всем привет!
Интересный подход к автоматическому устранению уязвимостей в образах контейнеров предложили авторы Copacetic.
Утилита делает следующее:
🍭 Берет результаты сканирования Trivy, определяет потребность в обновлении пакетов с использованием соответствующих менеджеров -
apt, apk, yum и т.д.
🍭 Скачивает все необходимое и обновляет образ с использованием buildkit
Такой подход позволяет не собирать образ «заново», а именно обновлять его. Это в значительной степени сокращает вероятность того, что что-то сломается и пойдет не так после обновления. Но все равно лучше перепроверять и не полагаться на одну лишь автоматизацию.
В планах по развитию поддержка Grype в качестве альтернативы Trivy; «поддержка работы» с пакетными менеджерами языков программирования (pypi, npm, maven); расширение возможностей по конфигурации реализуемых обновлений.
Для работы утилиты нужно установить несколько зависимостей, которые описаны тут. И, конечно же, если хочется попробовать самому, то есть небольшой пример. А заглянуть «под капот», то можно по этой ссылке.7 847
Атаки на distroless-образы
Всем привет!
Distroless образы отлично помогают ИБ за счет сокращения поверхности атаки. В них содержится только приложение и его runtime-зависимости. Никаких пакетных менеджеров и различных shells!
Если проанализировать их при помощи сканеров, то можно наблюдать приятную картину – количество уязвимостей в них в разы меньше, чем в «обычных». И, как правило, это уязвимости в исполняемых файлах.
Но все ли так хорошо и можно ли утверждать, что «Я использую distroless и этого достаточно?».
В статье разбирается пример с distroless образом для
Golang:
🍭 Создается обычное приложение, которое печатает "Hello world" с интервалом в одну секунду
🍭 Приложение «упаковывается» в контейнер с FROM gcr.io/distroless/base
🍭 Контейнер запускается, все работает, bash недоступен, но… есть интерактивная командная строка openssl позволяющая выполнять команды
Как этим можно воспользоваться описано в статье. Получается, что не существует ничего абсолютного или защищенного "по умолчанию". Несомненно, если есть возможно выбрать distroless, то это стоит сделать. Но не стоит забывать и о других ИБ-контролях.7 847
Caretta: визуализация сети k8s
Всем привет!
Иногда бывает полезно посмотреть на то, как сервисы приложения взаимодействуют между собой. Для этого можно использовать несколько подходов, например, связку Caretta + Grafana.
Первая собирает информацию о сетевом взаимодействии при помощи eBPF, а вторая – позволяет визуализировать информацию и делать интересующие пользователя запросы. Например: роль сервиса (клиент/сервер), по какому порту идет взаимодействие, тип (ресурс k8s, узел, "внешние") и т.д.
Приятно, что в таком сценарии кластер Kubernetes никак не «модифицируется» и влияние на него минимально.
Если вам интересно, что из себя представляет Caretta «изнутри», то рекомендуем ознакомиться с этой статьей, в которой описаны основные принципы работы утилиты и ее логика.
7 847
SecretDiver: поиск секретов в контейнерах
Всем привет!
SecretDiver – минималистичная утилита, у которой лишь одна задача – поиск секретов в образах контейнеров, слой за слоем.
Анализ осуществляется на основании правил, с которыми можно ознакомиться тут. Со слов Разработчиков – «If you want to use your own rules (and then create a PR so everyone can enjoy them) just run the command with the
-generate-settings flag which will create a file ./settings.yaml in your directory».
Возможно анализировать образы локально (в том числе в виде *.tar) или из repo. Ну и не забывать про флаг -human для получения результата, доступного для понимания человеку ☺️7 847
Доброе утро!
Крутая вакансия, чтобы начать с нового года новую жизнь ✨
Мы находимся в поиске Руководителя DevOps направления, который выстроит позиционирование нашей экспертизы внутри компании и на внешнем рынке.
В круг задач будет входить активная пресейловая деятельность, продвижение направления DevOps, а также координация технических специалистов, вендоров и дистрибьюторов.
Подробнее о вакансии: https://hh.ru/vacancy/73999701
Задать вопрос и направить резюме можно нашему HR Валентине, ее TG: @valenciyani
7 847
Друзья, поздравляем с Наступающим Новым годом!
Желаем вам всего самого доброго и светлого: мира, любви и процветания!
Дотроньтесь до мешка с подарками нашего DevSecOps Санты и это принесет вам счастье в новом году: ресурсы будут выдаваться по щелчку пальцев, системы работать непоколебимо, деплой будет мгновенным, а код — безопасным.
Мы рады, что вы с нами)
Отличного отдыха и до встречи в 2023!
С любовью,
Jet DevSecOps Team
❤️
7 847
Kubent: поиск deprecated API
Всем привет!
При обновлении кластера Kubernetes может много чего произойти. В том числе, нарушение работоспособности из-за изменений в API. Отслеживать их не всегда удобно, особенно если кластер большой и/или их много.
Kubent (Kube No Trouble) – утилита, которая может помочь. Ее задача – поиск deprecated API. При помощи нее можно:
🍭 Анализировать локальные манифесты (в том числе можно использовать в CI)
🍭Анализировать используемые helm-chart
🍭Анализировать ресурсы кластера через last applied configuration
Больше про возможности Kubent, параметры запуска и сценарии использования можно узнать в
readme.md проекта.7 847
GitOps Cookbook
Всем привет!
В приложении доступна книжка GitOps Cookbook от RedHat! Обзорный материал на тему использования Git для CD процессов: инструменты, подходы и советы.
Книга разделена на главы:
🍭 Введение. Что такое GitOps и зачем он нужен, какие проблемы решает
🍭 Containers. Различные подходы к сборке образов
🍭 Kustomize. Обзор инструмента и его ключевых возможностей
🍭 Helm. Charts, packages и все, что с ними связано
🍭 ArgoCD. Автоматизация CD процесса, использование ранее упомянутых инструментов
🍭 Advanced Topics. Шифрование, управление несколькими кластерами
В книге ~245 страниц, которые дают неплохое представление о том, какие есть практики, подходы и инструменты автоматизации для реализации GitOps.
7 847
CNCF Landscape Navigator
Всем привет!
Наверное каждый, кто интересуется темой DevSecOps и Cloud Native рано или поздно открывает для себя CNCF Landscape. Количество разнообразных инструментов ошеломляет, и даже группировка по тематикам не всегда помогает найти ответ на вопрос «что выбрать?».
Интересный подход придумали ребята из InfraCloud – CNCF Landscape Navigator! Суть крайне простая:
🍭 Выбираете тему: Monitoring, Logging, Security, Service Mesh и т.д.
🍭 Отвечаете на несколько простых вопросов о том, что для Вас важно
🍭 Получаете результат – перечень инструментов и % насколько он Вам подойдет
Может быть полезно, если Вы только начинаете выбирать технологии или для того, чтобы найти «ту, которую Вы могли пропустить» в этом невероятном перечне.
7 847
DevSecOps Roadmap
Всем привет!
Давно мы не публиковали awesome-подборок или их аналогов. Быть может под Новый Год самое время – вдруг кто-то ищет, что можно почитать/изучить на выходных?
Поэтому предлагаем обратить внимание на DevSecOps Roadmap, в котором собраны полезные материалы для всех этапов:
🍭 Design. SDL, SAMM, BSIMM и аналоги
🍭 Develop. Secure coding
🍭 Build. SAST
🍭 Test. DAST
🍭 Deploy. Hardening, security scanning
🍭 Security for CI/CD. GitHub Actions, Jenkins
Также в repo можно найти ссылки на другие аналогичные awesome-проекты, посвященные общему взгляду на DevSecOps.
7 847
D2Lang: Diagram as Code
Всем привет!
Есть много разных инструментов для «программирования диаграмм и схем». Суть простая – описываем связи в виде кода, а решение строит схему.
На первый взгляд это может показаться сложно. Но, стоит привыкнуть и уже не можешь по-другому. Кроме того, такой подход позволяет хранить всю необходимую информацию в git-репозиториях, что очень удобно.
Сегодня пост посвящен D2Lang, который:
🍭 Обладает простым синтаксисом
🍭 Может быть интегрирован в VS Code, Vim и Obsidian в качестве плагинов
🍭 Добавлять необходимые значки/иконки «на лету»
🍭 И многое другое, с чем можно ознакомиться в документации
Можно не ставить сразу, а использовать playground и посмотреть, что к чему. Если интересно, какие еще есть инструменты, то можно обратиться к этому посту, в котором собраны наиболее часто используемые инструменты.
А если возникнет вопрос – «Еще один подобный инструмент, в чем разница с XXX?», то есть ответ от разработчиков.
7 847
Kubernetes Labels: best practice
Всем привет!
Kubernetes Labels – крайне удобный инструмент, который позволяет управлять группами ресурсов с использованием «фильтров». В статье приводится краткое описание механизма, его отличия от Annotations, сценарии использования Labels и набор советов о том, как ими лучше пользоваться.
Например:
🍭 Использование рекомендуемых Labels согласно документации Kubernetes
🍭 Формирование Label Naming Convention
🍭 Не указывать sensitive информацию в Labels
🍭 По возможности автоматизировать процесс назначения Labels и другие
Labels могут быть полезны не только DevOps командам, но и Security специалистам. Например, для применения Network Policies.
7 847
Kyverno: Use Cases
Всем привет!
Статья от Compass, в которой приводятся сценарии использования Kyverno. Отличительной особенностью является то, что приведены все три «ключевые возможности» - Validating, Mutating и Generating.
Рассматриваются примеры:
🍭 Validate: анализ Ingress-правил на наличие «дубликатов»
🍭 Mutate: установка timeout-параметров для liveness/readiness probes
🍭 Generate: создание Vertical Pod Autoscaler (VPA)
В завершении статьи приведено описание того, как это можно реализовать без Kyverno, с какими сложностями можно столкнуться и почему команда выбрала именно этот инструмент.
Еще про один интересный пример использования Kyverno – анализ подписи образа контейнера и его аттестации – мы писали тут. И, как обычно, больше информации можно найти в документации. А что предпочитаете Вы? Kyverno/Gatekeeper/Иное?
7 847
Security Observability with eBPF
Всем привет!
Еще один материал от Isovalent, посвященный использованию eBPF. На этот раз рассматривается тема observability и чем eBPF может быть полезен.
В книге (~ 65 страниц) всего 4 главы:
🍭 The lack of Visibility
🍭 Why is eBPF the Optimal Tool for Security
🍭 Secuity Observability
🍭 Security Prevention
Материал обзорный и отлично подойдет для знакомства с eBPF и ее возможностями для Security. Про еще один материал от Isovalent, посвященный рассматриваемой технологии, мы писали тут.
7 847
Управление уязвимостями образов контейнеров от Lyft
Всем привет!
Первая статья, посвященная тому, как Lyft выстраивали процесс управления уязвимостями в образах контейнеров и с какими трудностями они столкнулись.
Команда создала собственный концепт, который строится на идеях:
🍭 Самостоятельное устранение уязвимостей там, где это возможно (spoiler: почти не работает). Постановка задач на устранение только в том случае, если у уязвимости есть fix
🍭 Автоматизация всего, чего только можно. Заодно можно будет узнать, почему ребята перешли с Clair на Trivy
🍭 Что делать, если в компании используется базовый образ, на основе которого могут строиться остальные? Как сделать так, чтобы обновление получили все?
🍭 Единое окно по сбору информации об образах и уязвимостях. DefectDojo! Нет, не в этот раз. Предпочтение отдали Cartography
🍭 Анализ только того, что используется. Общее количество образов оценивалось в 400 000, «активных» образов – 4 000
Очень много интересных размышлений, описание проблематики с которой можно столкнуться и возможные варианты решений на уровне идей. А реализация идей будет описана во второй статье, посвященной тому, как именно Lyft автоматизировали созданный ими концепт. Ждем!
7 847
OSV-Scanner: Vulnerability Scanner for Open Source
Всем привет!
13 декабря 2022 года Google представили в общий доступ собственную разработку – OSV Scanner, задачей которого является поиск уязвимостей в open source компонентах.
Активность тесно связана с Open Source Vulnerabilities (OSV) – проектом, представленным Google в предыдущем году и представляющим из себя базу данных по уязвимостям.
OSV-Scanner позволяет:
🍭 Анализировать Lockfiles, SBOMs
🍭 Получать результаты по анализу уязвимостей из OSV (в которой находится более 38 000 advisories, согласно данным Google)
🍭 Анализировать пакеты в Debian-based образах контейнеров
Кроме того, OSV-Scanner интегрирован в OpenSSF Scorecard’s Vulnerability Check. Дальнейшие планы по развитию – доработка для более удобной интеграции с CI, улучшение работы с C/C++ и поддержка VEX.
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
