DevSecOps Talks – Telegram
DevSecOps Talks
7.43K subscribers
85 photos
94 files
1.23K links
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Download Telegram
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
Возможное количество TCP-соединений

Всем привет!

Сегодняшний пост не совсем по тематике канала, но нам он показался интересным, особенно в качестве легкого пятничного чтива.

Началось все с того, что Автор видел множество размышлений в стиле: «Всего 65 536 TCP портов (2^16), значит только 65 536 клиентов могут установить соединение с 1 TCP-сервером».

Тогда как различные компании поддерживают миллионы соединений?
Они обманывают? У них стоит много-много-много серверов и балансировка? «Что-то тут не так…» - подумал Автор и решил посчитать самостоятельно.

Ответ Автора – 2^48, а это очень большое число. Почему это так – описано в статье, основная суть в том, что для listening-порта входящие соединение не «поглощает/занимает» порт на сервере.

А если хочется проверить вручную, то и это возможно – Автор написал простенькую программу, при помощи которой можно реализовать PoC.
🔥4
Лабораторные работы по eBPF

Всем привет!

Если вы хотели познакомиться с технологией eBPF «поближе», но не знали с чего начать, то лабораторные работы от Isovalent могут вам подойти.

На текущий момент доступны следующие лабораторные работы:
🍭 Getting Started with Cilium OSS
🍭 Getting started with Isovalent Cilium Enterprise: Network Policies
🍭 Getting started with Isovalent Cilium Enterprise: Connectivity Visibility
🍭 Getting Started with eBPF
🍭 Security Observability with eBPF and Cilium Tetragon

Лабораторные работы имеют разный уровень сложности – от beginner до advanced. Для доступа к материалу надо указать немного информации о себе – ФИО, почта (можно указать персональную) и т.д. По времени – от 30 минут до 1 часа, теория и практика.
👍6
ИБ-практики при использовании ArgoCD

Привет!

Еще одна неплохая обзорная статья про безопасность при использовании ArgoCD. Про общие практики использования ArgoCD, не имеющие отношения к ИБ мы писали тут.

Автор выделяет следующие области:
🍭 Use a dedicated project for the control plane. Рекомендации GitOps практик при управлении GitOps Control Plane ArgoCD
🍭 Argo resources are for Argo admins only. Ресурсы группы argoproj.io должны быть только в тех repo, которые принадлежат администратором ArgoCD
🍭 Delete the “default” project. Удаление «базового» проекта, создаваемого по умолчанию
🍭 Block ClusterRoleBindings in (most) projects. Управление доступом (least privilege) на уровне кластера
🍭 Narrow roles on remote clusters. Корректное управление доступом при управлении несколькими кластерами при помощи одного instance ArgoCD
🍭 Have a CVE response plan ready. Создание процесса управления уязвимостями

Для каждой из вышеуказанных тем приводится обоснование «почему это важно?» и советы о том, как это можно реализовать. Кстати, у самого проекта ArgoCD есть раздел, посвященный информационной безопасности.
Вопросы и задачки по DevOps

Привет!

По ссылке доступна подборка, в которой содержатся вопросы и упражнения по тематике DevOps. Если верить описанию repo, то сейчас в ней 2292 вопроса/упражнения!

Все удобно структурировано по тематикам, например:
🍭 Continuous Integration и Continuous
🍭 Delivery
🍭 Ansible
🍭 Git
🍭 Containers
🍭 Operating System
и многое другое

Подборку можно использовать по-разному: узнать новое, проверить собственные силы, взять вопросы для собственного quiz на очередном meetup/hackathon для развлечения аудитории и многое другое!
🔥8👍1
IDE plugin Trivy для VS Code

Всем привет!

Проект Trivy продолжает активно развиваться, добавляются новые функции и улучшается опыт использования (user experience).

Если вы уже пользуетесь инструментом, то есть хорошие новости – существует plugin для VS Code, который позволяет использовать Trivy не выходя из дома не покидая привычную среду разработки.

Он позволяет запускать сканирования из IDE, а удобный Findings Explorer упростит процесс анализа ИБ-дефектов за счет структурирования результатов и «подсвечивания» проблемных участков.

P.S. О недавнем обновлении Trivy с новым функционалом мы писали тут.
👍1
Прохождение Insekube CTF

Привет!

Insekube CTF - набор интерактивных заданий, реализация которых позволит получить заветный "флаг". Для каждого шага есть подсказки/намеки на то, как его можно реализовать.

В статье описаны шаги, которые предпринял Автор для прохождения Insekube CTF. Ресурс доступен, поэтому вы можете попробовать пройти СTF самостоятельно до прочтения статьи.

Путь решения CTF, предлагаемый Автором:
🍭 Enumeration и получение «хоть-какой-нибудь» информации о кластере
🍭 Reverse shell через уязвимость приложения, запущенного на кластере
🍭 Discovery: поиск уязвимых компонентов, которым стала Grafana
🍭 Подбор данных для эксплуатации уязвимости CVE-2021-43798 (Path Traversal) в Grafana для получения Token
🍭 Подготовка и запуск pod, содержащего hostPath и privileged с последующим «побегом» на node

Все достаточно детально описано, с примерами и пояснениями для самостоятельного воспроизведения.
Несколько контейнеров в pod: различные patterns

Всем привет!

Обычно, когда слышишь о том, что в одном pod есть несколько контейнеров, то на ум приходят sidecar контейнеры и init-контейнеры (чуть реже). Однако, их несколько больше. Если обобщить, то основная задача приведенных ниже patterns – дать некоторый функционал приложению без непосредственного изменения исходного кода этого самого приложения.

Есть несколько patterns, которые применяются:
🍭 Ambassador. Пример – создание TLS-соединения за счет использования Nginx внутри pod, который будет терминировать трафик. В этом случае трафик до Nginx будет шифрован, а между Nginx и другими контейнерами внутри pod – нет.
🍭 Adapter. Пример – добавления контейнера, который будет выполнять роль Prometheus Exporter для ElasticSearch.
🍭 Sidecar. Пример – сбор логов в stdout, в случае если приложение не поддерживает такой формат предоставления логов и пишет все в файл.
🍭 Init. Запуск контейнера, который делает «предварительную работу» для запуска основного приложения.

Если тема вам интересна, то рекомендуем прочесть статью, в которой подробно разбираются рассмотренные выше patterns. Все наглядно, с примерами и ссылками на иные источники для более детального ознакомления с темой. Кстати, есть еще очень интересная статья от Google по этой тематике (небольшая, 6 страниц А4).
👍1
Инъекция PKI-сертификатов в pod при помощи HashiCorp Vault Agent Injector

Привет!

В статье приводится небольшой how2guide, посвященный тому, как можно «подставлять» PKI-сертификаты в pod с использованием Vault Injector. Включая PKI, которые НЕ были сгенерированы самим HashiCorp Vault.

Сам Injector представляет из себя Kubernetes Mutating Webhook, который подставляет данные в конфигурацию pod на основе указанных аннотаций (annotations), что позволяет ее изменять (mutate).

В статье рассмотрены следующие шаги:
🍭 Установка HashiCorp Vault
🍭 Создание сертификатов с использованием openssl, помещение их в хранилище Vault (pki secret engine)
🍭 Создание роли (role) и политики (policy) с указанием возможных действий ранее созданной роли
🍭 Настройка метода аутентификации Kubernetes
🍭 Тестирование собранной конфигурации на примере pod

Что хорошо – в статье есть не только сами команды, но и описание того, что именно делает Автор. Есть захочется повторить самостоятельно, то ссылку на repo с необходимыми материалами можно найти тут.
👍2