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

Привет!

Network Policy – один из базовых ИБ инструментов, который позволяет контролировать трафик.

Однако, NetPol обладает некоторыми особенностями. Например, даже если политика была создана, не факт, что она работает. Отсутствуют журналы событий, генерируемых сетевыми политиками, что усложняет и без того не самую простую задачу поиска ошибок.

В статье Автор размышляет над тем, как максимально эффективно использовать этот инструмент:
🍭 Убедиться, что CNI поддерживает Network Policy. Да, функционал есть у большинства, но не у всех
🍭 Понять, что причина именно в Network Policy. Как вариант, просто убрать политику и посмотреть, сохраняется ли проблема или нет. Некоторые CNI генерируют GlobalNetworkPolicy, что также следует иметь ввиду
🍭 Проверка синтаксиса и корректности формирования структуры NetPol. Один «-» может очень многое изменить (см. пример с иллюстрацией в статье)
🍭 Управление labels при контроле трафика между Namespaces. Сетевые политики могут потерять свою эффективность, если они привязаны к labels, которые могут быть созданы/изменены пользователями. Один из возможных вариантов – использование kubernetes.io/metadata.name

В статье все очень хорошо структурировано и доступно описано, рекомендуем к прочтению. Кстати, в грядущей версии Kubernetes 1.24 добавят NetworkPolicyStatus, который должен немного упростить debug.
Автоматическая генерация readme.md для helm charts

Всем привет!

Helm-docs – удобная утилита, которая позволяет автоматически генерировать документацию для helm charts в формате markdown.

Запускать можно по-разному:
🍭 В качестве pre-commit hook
🍭 Локально, с использованием исполняемого файла
🍭 С использованием образа контейнера

Можно изменять шаблон,
который будет использован при работе утилиты. О том, как это сделать рассказано и показано в readme.md файле repo
Переключение между K8S кластерами и namespace

Всем привет!

Возможно, что у вас есть несколько кластеров K8S или несколько namespace на 1-ом кластере.

«Переключаться» между ними не всегда удобно:
🍭 Да, есть возможность указать путь к kubeconfig в параметрах kubectl, но делать это надо каждый раз, что не очень удобно
🍭 Context! Да, можно. Да, работает. Но забывали вы хоть раз как оно там пишется? kubectl get contexts, kubectl use context, --current… В целом механизм крайне рабочий, но не всегда самый удобный
🍭 С точки зрения namespace – аналогично. Наверное, хоть раз, да забывали передавать ключ -n %namespace% и resource улетал «не туда». Поправимо, но все же…

Именно для решения этих задач сделали 2 простые утилиты:
🍭 Kubectx – быстрое переключение между context
🍭 Kubens – быстрое переключение между namespace в пределах кластера

Наглядные примеры работы, описание и способы установки можно найти в repo
OPA-based политики в Starboard

Всем привет!

Starboardopen source проект Aqua Security, который позволяет сканировать образы контейнеров на наличие уязвимостей (Trivy), проводить анализ настроек кластера на соответствие лучшим практикам (Kube-Bench, Kube-Hunter) и анализировать манифесты запускаемых сущностей на кластере.

Ранее для последнего использовались Polaris и Conftest, однако, в одном из последних режимов была добавлена возможность использования OPA.

В видео представлен наглядный пример, демонстрирующий реализацию одного из базовых tutorials:
🍭 Создаем базовый deployment с Nginx
🍭 Starboard анализирует его при помощи «встроенных» OPA-политик
🍭 Создаем собственную OPA-политику, добавляем ее в качестве ConfigMap
🍭 Starboard начинает повторное сканирование. Либо при изменении ConfigMap, либо при изменении анализируемой сущности

В видео все подробно рассказано/показано, а для удобства используется Lens, к которой у Starboard есть "родной" plugin, о котором мы писали тут. С документацией на Starboard можно ознакомиться по ссылке.
👍5
Security Labs Research от Datadog

Всем привет!

Ребята из Datadog выложили в открытый доступ несколько лабораторных работ, посвященных Security.

На данный момент набор включает в себя только:
🍭 Dirty Pipe Container Breakout
🍭 Эксплуатация уязвимости CVE-2022-21449
🍭 Spring Core RCE (Spring4shell)

Для каждой лабораторной работы приводится описание эксплуатируемой уязвимости, PoC с использованием подготовленного exploit, набор необходимых конфигурационных файлов и перечень шагов для самостоятельного воспроизведения.

Надеемся, что «подборка» будет расширяться и напоминаем об использовании подобных материалов исключительно в образовательных целях.
👍4
Сравнение Service Mesh

Всем привет!

По ссылке можно найти сравнение нескольких Service Mesh решений:
🍭 Istio
🍭 LinkerD
🍭 AWS App Mesh
🍭 Consul
🍭 Traefik Mesh
🍭 Kuma
🍭 Open Service Mesh

Как обычно, сперва приводится краткое описание того, что такое Service Mesh, приводится общая архитектура и задачи, решаемые технологией.
А в конце та самая табличка!
А если вы нашли неточность или не согласны с мнением Авторов, то можно сделать PR вот сюда.
🔥2👍1
Kubernetes Goat v2

Всем привет!

Недавно вышел новый релиз проекта Kubernetes Goat заведомо уязвимого кластера, на котором можно изучать аспекты ИБ K8S не только теоретически, но и практически.

Помимо этого, был подготовлен новый web site, на котором можно получить детальную информацию о проекте и лабораторных работах.

На текущий момент есть 20
(19,5, т.к. Tiller уже редко где используется, если используется вообще) лабораторных работ. Например:
🍭 Falco - Runtime security monitoring & detection
🍭 Secure network boundaries using Network Security Policies
🍭 RBAC least privileges misconfiguration
🍭 DIND (docker-in-docker) exploitation
🍭 Container escape to the host system и многое другое!

У каждой лабораторной есть исчерпывающее описание и детальные инструкции о том, как ее реализовать. Впрочем, если не «хотите подсматривать» - можно пройти все лабораторные самостоятельно.

И, как обычно, много общей полезной информации на тему контейнеров и оркестрацииот cheatsheet до ссылок на разные интересные ресурсы.
👍6🔥1
Анализ GitHub при помощи OPA

Всем привет!

Зачастую, когда говорят OPA многие думают про Gatekeeper, который позволяет анализировать манифесты Kubernetes и принимать решения о возможности их применения.

Однако, OPA сама по себе является policy engine, который можно использовать не только для Kubernetes.

Одним из интересных проектов является
Reposaur, который позволяет анализировать данные GitHub при помощи OPA-политик.
Например:
🍭 Отсутствие описания у repository
🍭 У request нет assignees
🍭 У request нет reviewers
🍭 Secret Scanning функционал не включен по умолчанию и другие

С полным перечнем проверок, доступных из коробки можно ознакомиться здесь. Если хочется написать свои собственные, то есть небольшой how to guide вот тут.

А если интересно, что еще можно делать при помощи OPA, рекомендуем обратить внимание на бесплатный online-курс по OPA от Styra Academy.
👍6
liz-rice-what-is-ebpf.pdf
9.4 MB
Что такое eBPF?

Всем привет!

Если вам интересна тематика контейнеризации и обеспечения ее безопасности, то вы, наверняка, слышали аббревиатуру «eBPF».

eBPF
расшифровывается как Extended Berkeley Packet Filter и, если понятнее не стало, рекомендуем прочитать книгу в приложении.

Liz Rice
(автор множества отличных материалов по Container Security и не только) написала кратко и емко о том, что это за технология, как ее можно использовать для управления сетью, обеспечения безопасности и повышения observability.
👍2
Docker-slim: оптимизация и безопасность

Всем привет!

Docker-slim – проект, цель которого «уменьшить» размеры образов и повысить уровень информационной безопасности контейнеров. При этом требуется только запустить Docker-slim с уже имеющимися образами.

Работает он по следующему принципу:
🍭 Запускает «временный» контейнер из «толстого» образа и осуществляет инъекцию (инструментацию) сенсора. Задача сенсора – собирать всю информацию о «жизнедеятельности» контейнера
🍭 Взаимодействует с контейнером через http-probe. Альтернативный вариант – предоставление exec для «ручного» тестирования. Задача – создание аналога поведенческой модели: должно остаться только то, что используется
🍭 «Сборка» образа, который состоит только из необходимых элементов, и… приятный бонус! AppArmor и Seccomp профили, которые можно применять как к «тонкому», так и к «толстому» образам

Настоятельно рекомендуем ознакомиться с github-repo проекта и прочитать описание: функций и вариантов запуска очень и очень много. Кроме того, есть наглядные примеры, демонстрирующие работу Docker-slim

P.S. За превосходную диаграмму отдельное спасибо Ivan Velichko, про блог и канал которого мы уже писали.
👍5
И та самая диаграмма от Ivan ☺️
👍4
Лучшие практики ArgoCD

Всем привет!

В статье приведены лучшие практики по использованию ArgoCD – инструмента, позволяющего автоматизировать процесс Continuous Deployment для Kubernetes.

Рассматривается следующее:
🍭 Disallow providing an empty retryStrategy
🍭 Ensure that Workflow pods are not configured to use the default service account
🍭 Ensure label part-of: argocd exists for ConfigMaps
🍭 Disable with DAG to set FailFast=false
🍭 Ensure Rollout pause step has a configured duration
🍭 Specify Rollout’s revisionHistoryLimit
🍭 Set scaleDownDelaySeconds to 30s to ensure IP table propagation across the nodes in a cluster
🍭 Ensure retry on both Error and TransientError
🍭 Ensure progressDeadlineAbort set to true, especially if progressDeadlineSeconds has been set
🍭 Ensure custom resources match the namespace of the ArgoCD instance

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

В завершении статьи есть отсылка к Datree, при помощи которого можно автоматизировать проверку выполнения указанных рекомендаций.
👍3
Custom Resource Definition и Open Policy Agent

Привет!

Про пользу Open Policy Agent (OPA) и ее реализации для Kubernetes – Gatekeeper написано достаточно много: от общей информации до набора готовых политик, которые можно использовать.

Если вы хотите написать политики самостоятельно и вам нужен простой tutorial, в котором просто и понятно описано что к чему?

Тогда эта статья может быть вам интересна. В ней автор разбирает такие темы как:
🍭 Основы REGO (на нем пишутся политики)
🍭 ConstraintTemplates – что это и зачем оно нужно
🍭 Constraint – как при помощи него можно управлять областью ContstaintTemplates

В завершении статьипримеры того, как это можно использовать – от установки Gatekeeper до написания и тестирования собственных политик. Помимо этого, автор описывает «шаги», которые происходят «под капотом» для лучшего понимания происходящего.
👍1
Tetragon теперь open source

Всем привет!

На днях Isovalent (авторы Cilium) «выложили» проект Tetragon в открытый доступ, сделав его open source.

Tetragon – решение для защиты и повышения observability кластера Kubernetes, которая использует возможности технологии eBPF.

Решение позволяет не только собирать информацию, но и делать security enforcement, например для:
🍭 System calls
🍭 Networking
🍭 File System Read/Write
🍭 Многое другое

Очень рекомендуем почитать статью,
т.к. в ней описаны возможности Tetragon и приводится сравнение с альтернативными вариантами реализации аналогичных задач (безопасность и observability) – SELinux, Application Instrumentation, Kernel Modules и т.д.

А если хочется быстро познакомиться с Tetragon, то в официальном repo есть детальный QuickStart Guide.
👍2
Falco_CNS.pdf
3.2 MB
Practical Cloud Native Security with Falco

Всем привет!

В приложении доступна книжка (~ 129 страниц), посвященная использованию Falco для защиты Cloud Native приложений.

В книге раскрываются такие темы как:
🍭 Архитектура Falco, принципы работы
🍭 Источники данных для Falco и их обогащение
🍭 Использование Falco Filters

В книге достаточно много теории и практических примеров использования возможностей решения
👍1
Prometheus Certified Associate (PCA)

Всем привет!

18 мая была анонсирована новая сертификация, на этот раз посвященная Prometheus – PCA.

Согласно CNCF, PCA демонстрирует понимание кандидата лучших практик мониторинга cloud native приложений и инфраструктуры с использованием Prometheus.

Для успешного прохождения экзамена необходимо ответить на вопросы по следующим блокам:
🍭 Observability concepts (18%)
🍭 Prometheus Fundamentals (20%)
🍭 PromQL (28%)
🍭 Instrumentation and Exporters (16%)
🍭 Alerting and Dashboarding (18%)

Подробнее про содержание разделов можно прочесть
по ссылке. Стоимость экзамена составляет 250$. Дополнительно – ссылка на новость о новой сертификации.
👍1
«Свежий» release Trivy: новые функции!

Всем привет!

Недавно вышла новая версия Trivyv0.28.0. Одним из самых интересных нововведений стало сканирование… Kubernetes!

Теперь можно получать информацию об уязвимостях, применимых для сущностей, в составе которых используется образ, о ИБ-недостатках конфигурации сущностей K8S.

Кроме этого:
🍭 Добавлена поддержка SPDX формата при генерации SBOM (ранее был только CycloneDX)
🍭 Обновленный формат предоставления результатов по сканированию на ошибки в конфигурации – добавлена контекстая информация
🍭 Графические изменения в table output и другие нововведения

Подробнее можно прочитать в описании release и в сопутствующем changelog
👍5
AquaCloudNativeReport.pdf
3.5 MB
Cloud Native Threat Report от Aqua Security

Всем привет!

В приложении можно скачать отчет от Aqua Security, посвященный Cloud Native (апрель 2022).

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

Примеры того, что можно найти в отчете:
🍭 Фокус на атаки web-интерфейсов Kubernetes
🍭 Многие общедоступные образы содержат вредоносное ПО (например, mimikatz, metasploit и т.д.)
🍭 Supply chain атаки (что особенно «ярко» было выражено в 2021 году и продолжается в настоящее время) и т.д.

И, как обычно – статистика, ссылка на внешние источники и на «значимые» примеры, которые произошли за последнее время в ИБ-мире cloud native.
👍6
Безопасность Etcd

Всем привет!

Неплохая обзорная статья, посвященная безопасности Etcd. Сперва Автор описывает, что это такое, зачем она нужна, из каких компонентов состоит и как Etcd «связана» с Kubernetes.

После небольшой вводной части описываются значимые недостатки ИБ, которые могут быть реализованы в случае некорректной конфигурации:
🍭 client-cert-auth не используется, вследствие чего не проверяется валидность сертификатов при обращении к Etcd
🍭 Доступность порта 2379 «извне»
🍭 Использование SSRF уязвимости для получения доступа к Etcd
🍭 Утечка сертификата Etcd

Для каждого недостатка приводятся причины почему это плохо и к чему это может привести.

В продолжении статьи Автор описывает возможные векторы атак. Одним из них является компрометация токена, «привязанного» к Cluster Wide роли с дальнейшим его использованием при обращении к кластеру Kubernetes.

Завершают статью размышления Автора
на тему того, как можно сделать лучше/более безопасно.
👍3
Troubleshooting Kubernetes

Привет!

Про эту схему мы уже писали, но… проект продолжает развиваться, что не может не радовать! Последнее обновление – от мая 2022 года.

Схему можно скачать в pdf или png формате для удобства. Кроме схемы есть описание, где можно посмотреть, как найти ошибку или на что обратить внимание для идентификации проблемы.
Инструкция: Cosign + Gatekeeper

Всем привет!

Подпись образов – важный аспект информационной безопасности, про который мы уже писали и не раз.

Если есть общее понимание, но хочется простой и понятной конкретики «А как сделать-то?», то рекомендуем обратить внимание на эту статью.

В ней детально (с примерами кода и конфигураций) объясняется следующее:
🍭 Создание job в CI-pipeline для подписи образа (в примере используется Tekton, но сам подход запросто можно адаптировать по ваши CI)
🍭 Создание ContsraintTemplate и самого Constraint для Gateeper с целью проверки валидности (наличия) подписи у образа
🍭 Настройка External Data Provider для Gatekeep, чтобы он умел «общаться» с Cosign. Для этого используется официальное решение от Sigstore – Cosign-Gatekeeper-Provider
🍭 Небольшой тест созданной конфигурации

В статье минимум «воды» и максимум конкретики, для наглядности приведены диаграммы взаимодействия компонент, используемых при реализации сценария
👍1