TGViewer
Channel Public Channel
DevSecOps Talks

DevSecOps Talks

@devsecops_weekly

Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Subscribers
8.05K
Photos
98
Videos
2
Links
1.4K

Showing posts older than #624 · Back to latest

Older Posts 20 shown
Post #622 2.06K
Learning CodeQL

Всем привет!

По мнению Автора статьи, CodeQL – не просто инструмент, которым надо научиться пользоваться. Это язык программирования, инструмент и экосистема, которые вместе позволяют создать нечто очень мощное в плане анализа кода.

Чтобы научиться его использовать Автор собрал собственный learning path и материалы, которые в этом помогут.

Они содержат:
🍭 Language tutorials
🍭 Public Workshops
🍭 Staging Workshops
🍭 CTFs
🍭 Blogs
🍭 GitHub Security Lab Slack

В каждом разделе приводятся ссылки на материалы, где можно получить дополнительную информацию или попрактиковаться в лабораторных работах или playgrounds.
Goingbeyondgrep Learning CodeQL Unlike many SAST products, CodeQL is more than just a tool and learning it requires learning more than just a tool. It’s a programming language, a tool, and a supporting ecosystem that come together to create something extremely powerful, flexible, and unique.…
  • ❤ 1
Post #621 1.84K
Service Account Token: что это и зачем?

Во многих рекомендациях по ИБ можно встретить фразу о том, что надо отключать auto mount для Service Account Token. Но зачем и что это такое? Если просто, то это token, который используется при аутентификации запросов в kube-apiserver.

В статье хорошо структурирован материал, посвященный этой теме:
🍭 Формат Service Account Token
, какую информацию он в себе содержит
🍭 Важные поля token, как их можно использовать при проведении аналитики
🍭 Как они генерируются, кто это делает?
🍭 Как менялся «срок жизни» такого token
от версии к версии k8s

А в завершении статьи можно узнать, что поменялось в версии 1.24 и почему это только «плюс» для информационной безопасности. Статья небольшая и крайне наглядная, рекомендуем!
D2iQ Engineering Service Account Tokens in Kubernetes v1.24 With Kubernetes v1.24, non-expiring service account tokens are no longer auto-generated. Learn what these changes bring and what to do if you rely on non-expiring service account tokens.
  • 👍 4
Post #620 1.96K
Trivy: анализ k8s на соответствие CIS и NSA

Всем привет!

Trivy – проект от Aqua Security, который смело можно назвать швейцарским ножом в мире контейнерной защиты. Не самый редкий гость в нашем канале, мы неоднократно рассказывали о его возможностях.

Начиналось все со сканера образов контейнеров на наличие уязвимостей и постепенно «обрастало» функционалом.

Сейчас Trivy умеет:
🍭 Анализировать образы контейнеров на наличией уязвимостей
🍭 Анализировать бинарные файлы на наличие уязвимостей
🍭 Генерировать SBoM
🍭 Анализировать RBAC k8s
🍭 Анализировать манифесты k8s на соответствие лучшим практикам и это еще не все

В декабре 2022 года Trivy и чуть позже Trivy Operator получили еще одну «способность» - анализировать кластеры k8s на соответствие CIS и NSA. Тот самый функционал, который был в Kube-Bench (еще одном проекте Aqua Security).

Подробнее о запуске и возможностях Trivy и Trivy Operator по анализу конфигураций кластеров k8s можно прочесть в статье.
Aqua Kubernetes Benchmark Scans with Trivy: CIS and NSA Reports In this walkthrough, discover how to perform Kubernetes benchmarks scans with Trivy to generate CIS and NSA reports for your compliance and security audits
  • ❤ 10
  • 👍 1
Post #619 1.29K
KubernetesPermissions.pdf1.6 MB
Анализ полномочий в Kubernetes

В приложении доступен отчет о Palo Alto, посвященный анализу полномочий в кластерах Kubernetes. Материал содержит много интересной информации, включая перечень «Powerful Permissions» (описание которых можно найти в приложении).

Авторы разделили «Powerful Permissions» на группы:
🍭 Manipulate AuthN/Z. Полномочия, которые обладают возможностью privilege escalation by design или могут быть использованы для impersonate
🍭 Acquire Tokens. Полномочия, которые прямо или косвенно могут быть использованы для получения Service Account Tokens
🍭 RCE. При помощи полномочий этой группы можно воздействовать на pods и/или nodes
🍭 Steal Pods. Полномочия, позволяющий управлять pods
🍭 MitM. Полномочия, которые могут помочь в совершении man in the middle attack

В отчете есть немного статистики, рассуждения о возможностях популярных решений с точки зрения полномочий и способы анализа ролевой модели k8s с использованием rbac-police и Checkov.
  • 👍 2
Post #618 2.02K
Capital: приложение с уязвимым API

Всем привет!

В repo можно найти Capital – приложение, разработанное Checkmarx, обладающее уязвимым API (в соответствии с OWASP Top-10 для API).

В приложении можно найти:
🍭 Broken Function Level Authorization
🍭 Broken Object Level Authorization
🍭 Broken User Authentication
🍭 Improper API Management
🍭 Excessive Data Exposure
🍭 Improper Assets Management
🍭 Lack of Resources and Rate Limiting
🍭 Security Misconfigurations
🍭 Injection
🍭 Mass Assignment
🍭 Security Misconfiguration
🍭 Insufficient Logging

Подробнее об истории разработки, примерах атак и о приложении в целом можно прочесть в статье.
GitHub GitHub - Checkmarx/capital: A built-to-be-vulnerable API application based on the OWASP top 10 API vulnerabilities. Use c{api}tal… A built-to-be-vulnerable API application based on the OWASP top 10 API vulnerabilities. Use c{api}tal to learn, train and exploit API Security vulnerabilities within your own API Security CTF. - ...
  • ❤ 5
Post #617 1.33K
(Не) использование Sealed Secrets

Всем привет!

Если Вы читали про управление секретами, то скорее всего сталкивались с подходом/решением Sealed Secrets. Суть проста – не хранить секреты в git в открытом виде. Вместо этого – шифруем данные и voila! Теперь, даже если что-либо компрометируют, то все равно данные зашифрованы.

У такого подхода есть свои плюсы, но есть и недостатки, которые Автор приводит в статье. Например:
🍭 Сложности/неудобства управления структурой repo при большом количестве разных окружений, каждое из которых обладает своими секретами
🍭Секреты все равно «там». Да, зашифрованы, но все равно «что-то смущает»
🍭Secret 0. Ключ от всех остальных ключей все равно остается ключом
🍭Есть опции получше!

Причины
, которые стоят за каждым из тезисов описаны Автором в статье. А что Вы думаете по поводу Sealed Secrets: нормальное решение или и правда – есть опции получше?
Medium Why You Should Avoid Sealed Secrets in Your GitOps Deployment The pitfalls and alternatives of this common GitOps practice as you move your deployments to production.
Post #616 1.38K
HashiCorp Hermes: управление документацией

Всем привет!

И без того не маленький портфель решений HashiCorp дополнил еще один инструмент – Hermes! Его назначение в том, чтобы управлять документацией: искать, изучать, согласовывать, «архивировать» и т.д.

Пока что поддерживается только работа с Google Workspace. Решение позволяет:
🍭 Просматривать недавние и/или недавно обновленные документы
🍭 Искать документы, получать информацию о статусе (WIP, In Review, Approved, Archived)
🍭 Фильтровать документы (Тип, Статус, Продукт/Область, Владелец)
🍭 Формировать запрос(ы) на согласование (Request Review) и не только

Небольшой обзор решения можно посмотреть в youtube-ролике, прикрепленному к статье. И, что самое классное – решение open source! Ознакомиться с GitHub Repo проекта можно по ссылке.
  • 👍 2
  • ❤ 1
Post #615 1.29K
Kubernetes Load Testing

Всем привет!

В статье собран набор open source инструментов, которые могут пригодиться для нагрузочного тестирования кластеров k8s. Есть удобная сортировка – от basic да advanced.

Примеры рассматриваемых в статье решений:
🍭 k6s. Позволяет писать тестовые скрипты на JS, что может сократить порог входа
🍭 kube-burner. Stress-testing. Отличается от многих аналогов тем, что не ставится в кластер, а стоит «сбоку»
🍭 hey. Небольшая утилита, которая может генерировать запросы к web-приложению
🍭 kube-monkey. «Реализация» Chaos Monkey (Netflix) Для Kubernetes
🍭 JMeter. Java-проект, обладающий не только CLI, но и web-интерфейсом. Позволяет, в том числе, «записывать» действия пользователей для последующего создания тестов

Описание инструментов, не попавших в preview, ссылки на их GitHub, больше информации и примеров можно найти непосредственно в статье.
  • 👍 2
Post #614 4.48K
Hacking and Securing Docker Containers.pdf59.1 MB
Hacking and Securing Docker Containers

Всем привет!

В приложении доступна книга (~119 страниц), посвященная вопросам безопасности Docker-контейнеров.

Содержание:
🍭 Общая информация о том, что такое контейнеры, образы, как их создавать, хранить и т.д.
🍭 Обзор cgroups, namespaces, изоляции
🍭 Атакующие техники: privilege escalation, container escape, writing to kernel space, exploit docker API и т.д.
🍭 Защитные техники: управление уязвимостями, hardening, AppArmor и т.д.

В книге много примеров, результатов работы команд и практических действий.
  • 👍 5
  • 🔥 3
Post #613 1.61K
Метрики k8s

Всем привет!

В статье собран набор из 18 метрик, которые можно собирать с кластера и его узлов для troubleshooting и оптимизации производительности.

Метрики сгруппированы по разным уровням абстракции: Node, Namespace, Deployment, Pod, Control Plane.

Примеры:
🍭 Node. Memory/Disk Pressure, NotReady
🍭 Namespace. Number of expected pods
🍭 Deployment. Pod creation/deletion rate
🍭 Pod. OOMKilled pods, Too many restarts, Pod running on right node
🍭 Control Plane. Latency in pod creation, Kubelet state

Для каждой метрики Автор дает описание почему это нужно и какие выводы относительно метрики можно сделать.
Medium 18 Kubernetes Metrics to Monitor for Optimal Cluster Performance Optimize Kubernetes performance by monitoring 18 essential metrics. Learn how to keep your cluster healthy and running smoothly
  • 👍 3
Post #612 1.84K
Платформа "Штурвал": вебинар и live demo

Всем привет!

Уже совсем скоро, 2 февраля, «Лаборатория Числитель» - разработчик, проведет вебинар, посвященный новой Платформе для контейнерной оркестрации «Штурвал»

На вебинаре расскажут:
🔹о целевой архитектуре решения и ее ключевых компонентах, которые учитывают высокие требования к вычислительной инфраструктуре и информационной безопасности
🔹о функционале «из коробки» и преимуществах использования для инженера эксплуатации и ИБ
🔹об уровнях сервисной поддержки и политике лицензирования

Также в программе будет показано live-demo решения.

Мероприятие будет интересно руководителям по цифровизации, ИТ-инфраструктуре и эксплуатации крупных компаний, а также DevOps-специалистам, администраторам, ИБ-специалистам.

Подробности и регистрация здесь 👈
Mts-link.ru Новое решение для управления контейнерами «Штурвал» Приглашаем руководителей по цифровизации, ИТ-инфраструктуре и эксплуатации крупных компаний, а также DevOps-специалистов, администраторов, ИБ-специалистов познакомиться с новым отечественным решением по управлению контейнерами. Платформа «Штурвал» автоматизирует…
  • 🔥 5
  • 👍 1
Post #611 1.42K
Пример моделирования угроз с использованием Systemic Approach

Всем привет!

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

Подход оперирует следующими терминами:
🍭 Boundary. Определение той части/компонентов системы, для которых будет реализовано моделирование. В примере Автор «привязывает» их к user story – отправка уведомлений – и рассматривает угрозы, применительно лишь к этому сценарию
🍭 Abstraction levels. Постепенное «погружение» в систему. Сперва – общий взгляд и все большая детализация при дальнейшем анализе. Применяется к выбранному boundary
🍭 Perspectives. Рассмотрение системы с точки зрения защищающегося или атакующего. В примере Автор берет STRIDE и расписывает возможные сценарии

Получается нечто вроде моделирования угроз «по спирали» - от общих абстракций до вполне себе конкретных мер. Рекомендуем прочесть статью, если Вам интересно ознакомиться с концептом Systemic Approach подробнее. Важно – там будет описание идеологии и подхода, но никак не детальный how to. Ведь как видно из примера выше – сделать такое универсальным вряд ли получится.
Medium How to Perform Systemic Threat Modelling — An Example Introduction
Post #610 1.34K
Как происходит удаление 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.
Medium What Happens When Deleting a Pod Whenever we remove a pod from Kubernetes, what does it do to prevent outside traffic from entering the dying pod? How does the pod…
  • 👍 5
Post #609 1.38K
Контроль configuration drift в контейнерах

Всем привет!

В repo можно найти оператор, который позволяет контролировать configuration drift в контейнерах.

Работает все достаточно просто:
🍭 Пользователь осуществляет exec в контейнер
🍭 Запрос регистрируется kube-apiserver, pod’у контейнера проставляется label
🍭 После установленного времени k8s удаляет pod, у которого есть определенный label

Вот и все 😊 Работает не только с exec, но и с другими «интерактивными» запросами (attach, cp и т.д.). Для kubectl предусмотрен специальный плагин, который упрощает чтение label, содержащего информацию о том кто совершал операцию, когда и сколько еще осталось «жить» pod’у.
GitHub GitHub - box/kube-exec-controller: An admission controller service and kubectl plugin to handle container drift in K8s clusters An admission controller service and kubectl plugin to handle container drift in K8s clusters - box/kube-exec-controller
  • 👍 1
Post #608 1.78K
Автоматическое устранение уязвимостей в образах контейнеров

Всем привет!

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

Утилита делает следующее:
🍭 Берет результаты сканирования Trivy, определяет потребность в обновлении пакетов с использованием соответствующих менеджеров - apt, apk, yum и т.д.
🍭 Скачивает все необходимое и обновляет образ с использованием buildkit

Такой подход позволяет не собирать образ «заново», а именно обновлять его. Это в значительной степени сокращает вероятность того, что что-то сломается и пойдет не так после обновления. Но все равно лучше перепроверять и не полагаться на одну лишь автоматизацию.

В планах по развитию поддержка Grype в качестве альтернативы Trivy; «поддержка работы» с пакетными менеджерами языков программирования (pypi, npm, maven); расширение возможностей по конфигурации реализуемых обновлений.

Для работы утилиты нужно установить несколько зависимостей, которые описаны тут. И, конечно же, если хочется попробовать самому, то есть небольшой пример. А заглянуть «под капот», то можно по этой ссылке.
GitHub GitHub - project-copacetic/copacetic: 🧵 CLI tool for directly patching container images! 🧵 CLI tool for directly patching container images! - project-copacetic/copacetic
  • 👍 3
Post #607 1.75K
Атаки на distroless-образы

Всем привет!

Distroless образы отлично помогают ИБ за счет сокращения поверхности атаки. В них содержится только приложение и его runtime-зависимости. Никаких пакетных менеджеров и различных shells!

Если проанализировать их при помощи сканеров, то можно наблюдать приятную картину – количество уязвимостей в них в разы меньше, чем в «обычных». И, как правило, это уязвимости в исполняемых файлах.

Но все ли так хорошо и можно ли утверждать, что «Я использую distroless и этого достаточно?».

В статье разбирается пример с distroless образом для Golang:
🍭 Создается обычное приложение, которое печатает "Hello world" с интервалом в одну секунду
🍭 Приложение «упаковывается» в контейнер с FROM gcr.io/distroless/base
🍭 Контейнер запускается, все работает, bash недоступен, но… есть интерактивная командная строка openssl позволяющая выполнять команды

Как этим можно воспользоваться описано в статье. Получается, что не существует ничего абсолютного или защищенного "по умолчанию". Несомненно, если есть возможно выбрать distroless, то это стоит сделать. Но не стоит забывать и о других ИБ-контролях.
www.form3.tech Exploiting Distroless Images An abuse of functionality in the OpenSSL binary, installed in the official Google Container Tools Distroless Base container image, allows for command execution and arbitrary file read and write on distroless containers. By abusing the enc functionality in…
  • 👍 6
  • 🤡 1
Post #606 1.42K
Caretta: визуализация сети k8s

Всем привет!

Иногда бывает полезно посмотреть на то, как сервисы приложения взаимодействуют между собой. Для этого можно использовать несколько подходов, например, связку Caretta + Grafana.

Первая собирает информацию о сетевом взаимодействии при помощи eBPF, а вторая – позволяет визуализировать информацию и делать интересующие пользователя запросы. Например: роль сервиса (клиент/сервер), по какому порту идет взаимодействие, тип (ресурс k8s, узел, "внешние") и т.д.

Приятно, что в таком сценарии кластер Kubernetes никак не «модифицируется» и влияние на него минимально.

Если вам интересно, что из себя представляет Caretta «изнутри», то рекомендуем ознакомиться с этой статьей, в которой описаны основные принципы работы утилиты и ее логика.
GitHub GitHub - groundcover-com/caretta: Instant K8s service dependency map, right to your Grafana. Instant K8s service dependency map, right to your Grafana. - groundcover-com/caretta
  • 👍 4
Post #605 1.51K
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 для получения результата, доступного для понимания человеку ☺️
  • 👍 1
Post #604 1.61K
Доброе утро!
Крутая вакансия, чтобы начать с нового года новую жизнь ✨

Мы находимся в поиске Руководителя DevOps направления, который выстроит позиционирование нашей экспертизы внутри компании и на внешнем рынке.

В круг задач будет входить активная пресейловая деятельность, продвижение направления DevOps, а также координация технических специалистов, вендоров и дистрибьюторов.
Подробнее о вакансии: https://hh.ru/vacancy/73999701

Задать вопрос и направить резюме можно нашему HR Валентине, ее TG: @valenciyani
  • 🔥 8
  • 👍 1
  • 👎 1
Post #603 1.8K
Друзья, поздравляем с Наступающим Новым годом!

Желаем вам всего самого доброго и светлого: мира, любви и процветания!

Дотроньтесь до мешка с подарками нашего DevSecOps Санты и это принесет вам счастье в новом году: ресурсы будут выдаваться по щелчку пальцев, системы работать непоколебимо, деплой будет мгновенным, а код — безопасным.

Мы рады, что вы с нами)
Отличного отдыха и до встречи в 2023!


С любовью,
Jet DevSecOps Team
❤️
  • 🎉 11
  • ❤ 5
  • 🎅 2
  • ❤‍🔥 1
  • 🤩 1
  • 🍾 1
  • 🎄 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →