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

«Масштаб» может привносить затруднения, про которые не думаешь на малых объемах. Это применимо и к манифестам Kubernetes: чем больше становится приложение, растет его функционал и возможности, тем в большую «кашу» превращается папка с конфигурациями.

В статье автор предлагает интересный подход к структуре хранения манифестов. Все строится вокруг создания пространства папок, где каждая из них представляет отдельный Kind (Deployment, Service, ConfigMap и т.д.).

Приводится наглядный пример использования подобного подхода и рекомендации автора:
🍭 Сокращайте длинные аббревиатуры привычными аналогами при именовании файлов (например, hpas вместо horizontalpodautoscalers)
🍭 Используйте идентичные имена файлов между «Kind-директориями»
🍭 Не используйте тип сущности в ее названии (например nginx-service.yaml)
🍭 Именуйте ресурсы по аналогии с именами файлов, в которых они определяются

Такой подход упрощает восприятие конфигурации приложения и сокращает вероятность ошибки (например, из-за разных способов написания service/svc). Удобен ли Вам подобный подход к хранению манифестов приложений, стали бы вы его использовать?
Привет!

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

Интеграция осуществляется через… GitHub (который уже поддерживает возможность использования Dependabot, CodeQL и предоставляет возможность реализации интеграций со сторонними решениями)

Все очень просто:
🍭 Добавляем StackHawk (Security, Codescanning alerts), это создаст workflow для анализа приложения
🍭 Адаптируем конфигурацию, генерируемую «по умолчанию»
🍭 Производим настройки на стороне StackHawk, осуществляем onboarding приложения, формируется файл конфигурации
🍭 Помещаем полученную конфигурацию в корень проекта. Все!

Теперь можно просматривать результаты анализа в GitHub, есть удобные ссылки на StackHawk. Возможно, подобные решения будут реализованы и другими vendor’ами.

Революционного ничего нет, но реализовано очень просто и удобно для пользователей GitHub, что не может не радовать ☺️

P.S. Короткое видео по настройке и использованию можно найти по ссылке
Всем привет!

По ссылке доступна простая, но крайне наглядная статья про Admission Controllers, что это такое и зачем это нужно.

Сперва автор рассказывает базовые принципы работы:
🍭 MutatingAdmissionWebhook. Может подтверждать/изменять создание сущности. Например, может изменить конфигурацию
🍭 ValidatingAdmissionWebhook. Может подтверждать создание сущности. Например, проверять что образ взят из корректного registry и только после этого запустить pod

Описывает принципы их работы, в какой момент запроса (create, update, delete) они «проявляют» себя, приводит некоторые примеры использования – «Когда это может пригодится?»

В завершении статьи автор приводит пример использования собственного MutatingAdmissionWebhook, который позволяет запустить pod на node только при наличии необходимых ресурсов. В противном случае к pod будет применен toleration.

Материал, хоть и простой, но крайне важный. Например, OPA также является Admission Controller’ом
Привет!

В 1.22 версии Kubernetes представили «наследника» PSP – Pod Security Admission (PSA). Инструмент пока что находится в стадии [Alpha], но уже можно к нему присматриваться.

В статье автор делает краткий разбор PSA и рассматривает вопросы:
🍭 Pod Security Standards //Privileged, Baseline, Restricted
🍭 Применение политик //Namespace, Cluster-wide
🍭
Policy Modes, управление политиками //Enforce, Audit, Warn. "Комбинации" режимов: например, Enforce для одной политики и Warn для другой

В завершении можно найти упоминание о рекомендациях по миграции с PSP на PSA.

PS. Напоминаем, что PSA находится в стадии [Alpha] и лучше пока что не использовать его «в бою», а просто изучать. Всем отличной пятницы и выходных!!!
Привет!

K8s-vault-webhookAdmission Controller, который позволяет подставлять секреты в Pod, Secrets, ConfigMaps.

На текущий момент поддерживаются следующие хранилища: HashiCorp Vault, AWS Secret Manager, Azure Key Vault и GCP Secret Manager.

Решение обладает следующим функционалом:
🍭 Аутентификация в хранилище
🍭 Извлечение секрета с последующей подстановкой в создаваемую/обновляемую сущность
🍭 «Инъекция» секрета происходит непосредственно в процесс

Подробнее
про установку, настройку и примеры интеграции с хранилищами можно почитать в документации.
Привет!

В tutorial разобран пример анализа событий, генерируемых Audit Policy k8s, по следующей схеме:

🍭 В качестве Backend выбираем Log Backend
🍭 Разворачиваем FluentBit, который будет выполнять функцию log forwarder: "забирать" из Log Backend и "направлять" в Falco
🍭 Разворачиваем Falco с Falcosidekick-UI, которые будут собирать логи, анализировать их (используемые проверки, более подробная информация) и отображать результаты в web-интерфейсе

В статье приведены все необходимые команды и ссылки для самостоятельного воспроизведения в demo-окружении.

В завершении представлен PoC на примере правила «Create/Modify Configmap With Private Credentials»: создаем ConfigMap, это порождает событие в Audit Log, которое забирает FluentBit и передает в Falco. Срабатывает правило, результат отображается в web-интерфейсе
Предлагаем присоединиться к опросу! )
Forwarded from Security Wine (бывший - DevSecOps Wine) (Denis Yakimov)
Опрос: что вы думаете о DevSecOps?

Коллеги из PT расшифровали доклад с PHDays о применении Security Gym в обучении разработчиков писать безопасный код: "Безопасность для айтишников: как научить разработчиков устранять уязвимости и создавать безопасные приложения". Помимо теории (описания уязвимости в коде), обучение также предполагает написание функциональных и security-тестов, участие в CTF.

Также PT запустили опрос: "Что вы думаете о DevSecOps?", в котором просят пользователей Habr рассказать о том, как обстоят дела с безопасной разработкой в компании. Предлагаю помочь им собрать как можно больше данных для исследования :)

#talks #dev
Привет!

Продолжая тематику визуализации и использования OPA для контроля состояния кластера по ИБ можно обратить внимание на Gatekeeper Policy Manager.

Он представляет из себя read-only web-интерфейс, в котором можно получить информацию об используемых политиках:
🍭 Статус политики
🍭 Код политики, написанный на REGO
🍭 Детальная информация о нарушениях политик (Violations)
🍭 Есть возможность отображения всех нарушений в табличной форме (Report View)

Недавно вышло обновление – v0.5.0, про которое можно почитать в обзорной статье и в changelog соответственно
Всем привет!

Во многих рекомендациях по ИБ (да и не только) рекомендуется указывать Resource Quotas. Одной из сложностей, с которой можно столкнуться – непонятно сколько именно требуется CPU и RAM для создаваемого ресурса.

В качестве «отправной» точки можно использовать Goldilocks: утилита, используя Vertical Pod Autoscaler (VPA), может подсказать:
🍭 Guaranteed QoS (Current/Guaranteed)
🍭 Burstable QoS (Current/Burstable)
🍭 Рекомендации по оптимизации (YAML-шаблоны с Requests и Limits)

Суть работы проста – утилита создает VPA для каждого deployment, после – "запрашивает" у него информацию и отображает ее пользователю.

Больше сведений о том, как задать Resource Quotas, можно найти в статье Ultimate Kubernetes Resource Planning Guide
Привет!

Интересная статья от Aqua Security про «Advanced Persistent Threat Techniques Used in Container Attacks», подготовленная командой Nautilis (R’n’D команда Aqua).

В каждой атаке было идентифицировано следующее:
🍭 Running a vanilla container image. Использование Alpine-образа
🍭 Escaping to the host. Mount файловой системы host для последующего получения доступа
🍭 Downloading a malicious noscript. Загрузка и исполнение noscript cronb.sh
🍭 Loading and executing the malware. Выполнение атаки, например, установка cryptominer и сокрытие присутствия

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

P.S. Всех с пятницей! ☺️☺️☺️
👍1
Привет!

Статья, посвященная контролю outbound traffic. Ребята начали с того, что ответили на вопрос – «А какие внешние соединения устанавливаются нашими приложениями?». После получения ответа команда задумалась о том, как лучше всего контролировать трафик в долгосрочной перспективе:

🍭 Нужна возможность написания политик, контролирующих трафик от specific source до specific destination
🍭 Требуется возможность использования DNS
🍭 Alerting, в случае если трафик отправляется на недоверенный источник

Ребята не смогли найти решение, которое соответствовало бы всем требованиям (статья от 2020 года) и решили начать с малого – контролировать трафик по портам с использованием Network Policy и Calico в качестве CNI.

Посмотрели в сторону Istio, но такое решение их не устроило. Дальше? DNS inspection! Однако и тут были сложности – доступные на тот момент enterprise-решения не могли быть «помещены» в K8S. К чему в итоге пришла команда после попыток и анализа различных подходов?

Ответом стали «эксклюзивные» proxy для всех внешних сервисов, с которыми устанавливаются соединения. Возможно, звучит немного страшно и overkill, но такой подход устроил команду, и она его реализовала. Как именно – рассказано в самом конце статьи ☺️
Всем привет!

Peirates – open source утилита, которую можно использовать для penetration test кластеров Kubernetes.
Основной фокус – privilege escalation и lateral movement.

На текущий момент поддерживаются такие возможности как:
🍭 Reverse shell на node, через pod с hostPath-mounting
🍭 Извлечение service account tokens из secret
🍭 Запуск token-dumping команды для всех pods
🍭 Получение IAM учетных данных из AWS или GCP
🍭 Распространение самого себя в другие pods, эмулируя lateral movement

Утилита обладает удобным интерфейсом - меню, из которого можно выбрать требуемое действие. Чуть больше информации можно прочитать по ссылке. Важно (!): Peirates attacks Kubernetes cluster. Talk to your lawyer and the cluster owners before using this tool.
Несколько дней назад обновилась Container Security платформа от Palo AltoPrisma Cloud Compute Edition v. 21-08.

Главное в этом обновлении:
🍏 Песочница для анализа образов и контейнеров перед их деплоем. Она запускается на отдельной линуксовой ВМ и анализирует активность процессов, файловой системы и сети контейнера. Результаты сообщает в консоль;
🍏 Новые фичи у встроенного WAF — теперь есть поддержка Windows хостов и Service Mesh (LinkerD, Istio);
🍏 Автоматическое создание Pull Request (GitHub) для уязвимостей в зависимостях приложений. Поддерживается Go, Python, Java, and JavaScript (Node.js).

Помимо этого, продукт получил сертификацию Red Hat, появилась обратная совместимость дефендеров с прошлыми версиями консоли, новые виды уведомлений и многое другое.

Подробности по ссылке.
Привет!

Иногда спрашивают – «Что такое DevSecOps?», «Что такое контейнеры?», «Чем Kubernetes отличается от Docker?» и т.д.

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

Есть awesome-подборки, которые агрегируют данные по различным тематикам/направлениям. Но они, скорее для тех, кто уже немного освоился.

Что делать тем, кто только начинает погружаться?
Рекомендуем посмотреть на «Aqua Cloud Native Wiki» от Aqua Security. Отличная «мини-википедия», в которой собрано много информации:
🍭 DevSecOps
🍭 Cloud Native Applications
🍭 Kubernetes
🍭 Containerized Architecture и многое другое!

Множество полезной информации, консолидированной в едином ресурсе.
Удобно читать и изучать ☺️
Я календарь перевернул - и снова третье сентября!
На постик я сейчас взгляну - и снова третье сентября!

Всем привет!
И снова пятница, первая пятница осени, календарь перевёрнут и со всех дворов и окрестностей на нас льётся осенняя лирика!

Тем временем, мы рады поделиться очень полезной статьей про mTLS от ребят из Buoyant.io

Казалось бы, о TLS сломано столько копий, ну что здесь может быть нового?
Тем не менее, статья может быть полезной и опытным Devops инженерам, и тем более начинающим специалистам.
В статье кратко и понятно излагаются и объясняются основные бенефиты решения такие как:

🍩 Аутентификация для микросервисов
🍩 Проверка подлинности
🍩 Certificate management
🍩 Использование с servicemesh

И самое интересное - короткий и понятный гайд как начать использовать и получить профит от mTLS в своей k8s среде!

Ссылка как всегда ниже. Приятного чтения! 👇

https://buoyant.io/mtls-guide/
Привет!

Datreeутилита, которая позволяет предотвращать misconfigurations путем анализа манифестов на соответствие требованиям ИБ и лучшим практикам.

«Из коробки» доступны проверки (в количестве 30 штук) для таких сущностей как:
🍭 Workload
🍭 Containers
🍭 CronJob
🍭 Networking
🍭 Deprecations
🍭 Others

У утилиты есть web-интерфейс, отображающий информацию об активных проверках и о результатах ее (утилиты) деятельности. Подробнее можно почитать в документации, а если хочется немного «поиграть» с утилитой – то можно воспользоваться Katacoda! ☺️
Привет!

HashiCorp подготовили интересную обзорную статью про один из механизмов аутентификации – AppRole. В статье раскрывается принцип работы:
🍭 Для получения токена аутентификации в Vault приложение должно предоставить Role ID (нечто вроде Username) и Secret ID (нечто вроде Password).
🍭 Role ID и Secret ID должны передаваться в приложение через различные каналы.
🍭 Secret ID должен передаваться только в определенные моменты времени (например, при старте приложения).

Сам концепт напоминает двухфакторную аутентификацию: мы знаем Username (Role ID) и нам нужен одноразовый идентификатор – OTP (Secret ID).

В статье приводится схема распределения доставки Role ID и Secret ID с использованием response wrapping (обратную процедуру, unwrapping, может сделать только уполномоченный client).

В завершении – описываются 11 (!) шагов этой процедуры. Желаем приятного чтения! ☺️

P.S. Также в статье даются простые и понятные аналогии для абстракций Vault, что упрощает общее понимание концепций, в которых он работает. И множество отсылок на полезные материалы в документации решения.
Всем привет!

Интересная подборка с возможными способами Docker Breakout:

🍭 Mounted Docker Socket
🍭 Container Capabilities и Privileged
🍭 Runc exploit (CVE-2019-5736)
🍭 Docker API Firewall Bypass
🍭 Writable hostPath Mount

Рассматриваются примеры эксплуатации, предоставляются ссылки на более детальную информацию о том или ином способе «побега» (в случае, если это допустимо)

P.S. Кстати, на ресурсе еще много чего интересного, с чем можно ознакомиться с точки зрения практической безопасности и тестирования на проникновение
Всем привет!

Статья, посвященная Indicators of Compromise от SysDig. Приводится краткое описание IoC и способов, как его можно идентифицировать (да, преимущественно с SysDig, на практики можно использовать и с другими инструментами):

🍭 Увеличенное использование CPU/RAM
🍭 Аномальный сетевой трафик (исходящий)
🍭 Назначение Cluster-Admin Role
🍭 Аномальная активность пользователей
🍭 Повышенный сетевой трафик (входящий)
🍭 Изменения в файловой системе
🍭 Аномалии в DNS запросах
🍭 Увеличение http response
🍭 Запуск неизвестного процесса
🍭 HTTP 403 и 404

С одной стороны – вроде бы ничего нового, с другой – приятно иметь структурированный перечень и краткие пояснения перед собой ☺️

P.S. Всех с пятницей! Отлично отдохнуть на выходных!
Привет!

Vault-CSI-Provider – утилита, которая позволяет делать инъекции секретов в pods через механизм Secrets Store CSI.
Это может быть удобнее схемы с Sidecar контейнером и подстановкой секретов через механизм Annotations.

Пример использования доступен по ссылке:
🍭 Запуск Minikube и установка HashiCorp Vault
🍭 Создание Secrets, Policy, Role и AuthMethod (Kubernetes)
🍭 Создание SecretProviderClass с конфигурацией HashiCorp Vault
🍭 Создание Pod, оптимизация конфигурации для использования ранее определенного SecretProviderClass

Если
вдруг вас заинтересует указанный способ, просим обратить внимание на «This project is currently supported as a Beta product, but relies on Alpha Kubernetes APIs and the CSI secrets store driver which is also Alpha»