uk
Feedback
DevSecOps Talks

DevSecOps Talks

Відкрити в Telegram

Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"

Показати більше
7 841
Підписники
+724 години
+347 днів
+10030 день
Архів дописів
Использование OPA для AuthZ Всем привет! Если Вам нравится Kubernetes, то Вы, вероятно, сталкивались с таким проектом, как Gatekeeper. Он представляет из себя Admission Webhook, основанный на Open Policy Agent (OPA), который может принимать решения, основываясь на входных данных. Однако, возможности OPA гораздо шире. В качестве примера Автор рассматривает ее в качестве «внешнего» сервиса, который реализуется авторизацию в простом проекте на Spring Boot. Суть проста – пользователь может запрашивать свою зарплату и зарплату своих подчиненных. Автор проделал следующее: 🍭 Написал код приложения. В качестве механизма авторизации – "стандартные" возможности технологий 🍭 Использование OPA в качестве инструмента авторизации 🍭 Реализация API Gateway – добавление AuthN Каждый из примеров реализации приложения отлично описан, есть исходные коды и комментарии. В качестве «бонуса» - диаграмма последовательностей, в которой наглядно описан процесс и его «трансформация» в зависимости от способа реализации. P.S. Если Вам интересно зачем потребовалось делать сторонний "сервис" - ответ есть в статье ☺️

Capacity Management в Kubernetes Всем привет! В статье рассматриваются сущности, которые могут быть использованы для capacity management в Kubernetes. Не можем не согласиться с автором статьи, что capacity management в Kubernetes - тема очень сложная. На первый взгляд может казаться, что кластер сам управляет распределением ресурсов между pod'ами, но по факту это не так - до тех пор пока вы не сделаете соответствующие конфигурации ваших ресурсов. Не имея грамотно настроенного управления ресурсами можно получить большое количество веселых (и не очень) эффектов, вплоть до остановки узла из-за одного нагруженного контейнера. Об этом в статье подробно описано: 🍭 Requests и Limits, LimitRange 🍭 QoS: BestEffort, Burstable, Guaranteed, как они назначаются (в том числе по умолчанию), как осуществляется управление приоритетами 🍭 Horizontal/Vertical Pod Autoscaler 🍭 Cluster Autoscaler и не только Для каждой сущности приводится описание и наглядное графическое представление принципов ее работы. Отлично подойдет для понимания и/или систематизации знаний.

Like a hacker! :) Всем привет! Вы когда-нибудь видели в фильмах, как true hackers "ломают системы" и генерируют код с невероятной скоростью? Если Вы уже так умеете – низкий поклон! А если нет, но очень хочется обрести такой навык, пусть даже на время… Ответ есть! Все просто: 🍭 Открываем ссылку на полноэкранный режим 🍭 Делаем невероятно серьезное/злое/решительное лицо 🍭 Начинаем «бить по клавишам» (да, можно произвольно) 🍭 Voila! Новый exploit «готов»! Такой вот «пятничный» пост ☺️ Желаем всем отлично отдохнуть в предстоящие праздники и до встречи!!!

Kubernetes: networking, основные термины Привет! В интернете много статей, посвященных основам сетевого взаимодействия в Kubernetes. Некоторые были и на нашем канале. Особенностью их, зачастую, является то, что рассматриваются различные виды Service и их назначение. Отличие сегодняшнего материала в том, что затрагивается большее количество терминов: 🍭 Ingress. Контроль внешнего трафика к приложению и обратно 🍭 DNS (и CoreDNS в частности). Обнаружение и взаимодействие pods через resolve Services 🍭 Probes (Liveness, Readiness, Startup). Контроль состояния pod на различных этапах его жизненного цикла 🍭 Netfilter и IPTables. Контроль сетевого трафика с использованием Network Policy 🍭 IPVS. Возможности балансировки, предоставляемые ядром Linux 🍭 Proxy (Kubectl, Kube). Создание туннеля между рабочей станцией и kube-apiserver; управление Kubernetes Services 🍭 Envoy. «Продвинутые» возможности по контролю трафика и балансировке 🍭 Container Network Interface (CNI). Управление сетью Kubernetes В статье все описано простым и понятным языком. Материал может помочь в понимании концептов тем, кто только начинает знакомство с этой потрясающей технологией!

Monokle: работа с YAML Всем привет! Monokle – решение, которое упрощает работу с YAML и позволяет ускорить подготовку манифестов и/или найти ошибки. При помощи Monokle можно: 🍭 Просматривать существующие манифесты. Доступна интеграция с git и с кластерами k8s 🍭 Preview ресурсов, сгенерированных при помощи Helm и Kustomize 🍭 Применять изменения для обновления ресурсов в кластере k8s 🍭 «Сравнивать» конфигурацию ресурсов, в том числе с той, что есть в кластере k8s 🍭 Создавать ресурсы из предустановленных шаблонов и не только Monokle обладает интерактивным web-интерфейсом, в котором удобно осуществлять описанные выше операции. Больше подробностей можно посмотреть в небольшом overview (ссылка на ролик есть в repo) или в документации.

Curio: анализ sensitive data Всем привет! Герой сегодняшнего поста – Curio! Это статический анализатор, который помогает идентифицировать sensitive data в исходном коде. Поддерживается 122 типа данных: пароли, pin, email, номера кредитных карт, информация о сертификациях и т.д. Анализ происходит с использованием регулярных выражений. На текущий момент поддерживается Ruby, SQL, OpenAPI, GraphL и Protobuf. В планах – PHP, Java, C#, Go и Python. В Curio есть набор правил, которые используются для анализа. Например: 🍭 Указание email в логах 🍭 Наличие проверки длины пароля 🍭 Использование шифрования при использовании cookie и многие другие Больше информации можно найти в документации. В repo есть небольшой demo ролик, где показаны результаты работы утилиты.

Building Kubernetes Operator: Awesome Всем привет! Бывает так, что при работе с Kubernetes возникает мысль о написании собственного operator. Например, если чего-то не хватает или тот функционал, что есть не совсем решает задачу и хочется большего. Тема, безусловно, интересная и не самая простая. Возможно, что не будет понятно «за что браться». Предлагаем Вам awesome-подборку, которая может стать опорой в освоении Kubernetes Operators за счет структурирования данных. Она включает в себя: 🍭 Courses and Tutorials 🍭 Books (платные) 🍭 Videos 🍭 Operator Frameworks Надеемся, что этот материал хотя бы немного упростит для Вас погружение в этот интересный мир ☺️

User namespaces и безопасность k8s Всем привет! В Kubernetes v1.25 была добавлена поддержка (alpha) user namespaces. Их можно использовать, например, для уменьшения последствий при «побеге из контейнера» или более безопасно предоставлять полномочия конкретному pod. В статье приводится общая информация, которая поможет начать погружение в тематику. В ней рассматривается: 🍭 Mapping между UID на узлах кластера и в контейнерах 🍭 «Разграничение» полномочий между контейнером и узлами кластера 🍭 Перечень ограничений, которые присутствуют в v1.25 (все еще alpha feature) В завершении статьи (приложениях) приводится информация о user namespaces в Docker и “decision tree” – графическое пояснение того, когда user namespaces могут применяться, а когда могут возникнуть сложности.

Kured: «перезагрузка» Kubernetes Всем привет! Kured – DaemonSet, который позволяет управлять перезагрузкой узлов кластера. Например, когда такое действие диктуется потребностями операционной системы. Работает по следующему принципу: 🍭 Наблюдает за флагом, определяющим потребность в перезагрузке 🍭 Контролирует перезагрузку – one node at a time 🍭 Cordon, drain, reboot, uncordon Доступна поддержка различных версий k8s и большое количество параметров конфигурации. Больше информации (установка, настройка, использование и т.д.) можно найти в документации на проект.

GitOps

Learning CodeQL Всем привет! По мнению Автора статьи, CodeQL – не просто инструмент, которым надо научиться пользоваться. Это язык программирования, инструмент и экосистема, которые вместе позволяют создать нечто очень мощно в плане анализа кода. Чтобы научиться его использовать Автор собрал собственный learning path и материалы, которые в этом помогут. Они содержат: 🍭 Language tutorials 🍭 Public Workshops 🍭 Staging Workshops 🍭 CTFs 🍭 Blogs 🍭 GitHub Security Lab Slack В каждом разделе приводятся ссылки на материалы, где можно получить дополнительную информацию или попрактиковаться в лабораторных работах или playgrounds.

Service Account Token: что это и зачем? Во многих рекомендациях по ИБ можно встретить фразу о том, что надо отключать auto mount для Service Account Token. Но зачем и что это такое? Если просто, то это token, который используется при аутентификации запросов в kube-apiserver. В статье хорошо структурирован материал, посвященный этой теме: 🍭 Формат Service Account Token, какую информацию он в себе содержит 🍭 Важные поля token, как их можно использовать при проведении аналитики 🍭 Как они генерируются, кто это делает? 🍭 Как менялся «срок жизни» такого token от версии к версии k8s А в завершении статьи можно узнать, что поменялось в версии 1.24 и почему это только «плюс» для информационной безопасности. Статья небольшая и крайне наглядная, рекомендуем!

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 можно прочесть в статье.

Анализ полномочий в 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.

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 Подробнее об истории разработки, примерах атак и о приложении в целом можно прочесть в статье.

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

HashiCorp Hermes: управление документацией Всем привет! И без того не маленький портфель решений HashiCorp дополнил еще один инструмент – Hermes! Его назначение в том, чтобы управлять документацией: искать, изучать, согласовывать, «архивировать» и т.д. Пока что поддерживается только работа с Google Workspace. Решение позволяет: 🍭 Просматривать недавние и/или недавно обновленные документы 🍭 Искать документы, получать информацию о статусе (WIP, In Review, Approved, Archived) 🍭 Фильтровать документы (Тип, Статус, Продукт/Область, Владелец) 🍭 Формировать запрос(ы) на согласование (Request Review) и не только Небольшой обзор решения можно посмотреть в youtube-ролике, прикрепленному к статье. И, что самое классное – решение open source! Ознакомиться с GitHub Repo проекта можно по ссылке.

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, больше информации и примеров можно найти непосредственно в статье.

Hacking and Securing Docker Containers Всем привет! В приложении доступна книга (~119 страниц), посвященная вопросам безопасности Docker-контейнеров. Содержание: 🍭 Общая информация о том, что такое контейнеры, образы, как их создавать, хранить и т.д. 🍭 Обзор cgroups, namespaces, изоляции 🍭 Атакующие техники: privilege escalation, container escape, writing to kernel space, exploit docker API и т.д. 🍭 Защитные техники: управление уязвимостями, hardening, AppArmor и т.д. В книге много примеров, результатов работы команд и практических действий.

Метрики 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 Для каждой метрики Автор дает описание почему это нужно и какие выводы относительно метрики можно сделать.