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

Всем привет!👋

Сегодня мы хотим затронуть такую интересную тему, как базы данных в кластерах Kubernetes. Существует множество "За" и "Против" такого подхода, однако последнее время все чаще можно встретить статьи и записи докладов, в которых рассказаны реальные кейсы успешного использования баз данных в Kubernetes. Во многом это стало доступным благодаря операторам Kubernetes, которые упрощают процесс создания и управления инстансами БД в кластерах. И сегодня мы поговорим про еще один оператор:

Представляем вам Tembo - Postgres-оператор, написанный на Rust!

В основе оператора лежит другой, давно полюбившийся и считающийся одним из лучших CloudNativePG. Казалось бы, зачем писать еще один оператор, основанный на уже имеющемся?🤔 Но разработчики добавили несколько интересных концепций, которые, как нам кажется, многим будут полезны. А именно:

🎹 Концепция Stacks: заранее сконфигурированные и оптимизированные образы postgres для самых распространенных случаев
🎹 Возможность добавления postgres extensions на лету из репозитория Trunk! Вот уж, пожалуй, одна из самых полезных возможностей оператора! Теперь не нужно каждый раз пересобирать образ, если вдруг потребовалось добавить какое-то расширение!

Стоит ли использовать базы данных в Kubernetes для продакшена - вопрос по прежнему открытый, но в любом случае, рекомендуем подробнее почитать и может быть даже попробовать этот оператор!
👍6🔥2🥰2
Всем привет!

Рынок DevSecOps в РФ не стоит на месте и стремительно развивается!!!

В связи с этим у нас появился вопрос – «А чего, на Ваш взгляд, сейчас не хватает больше всего?» (если говорить по автоматизацию).

Поэтому мы сделали простой опрос, который просим пройти и сделать repost, чтобы получить более точные данные (насколько это возможно для статистики 😊)
👍6
Получение образа из Dockerhub: как оно происходит?

Всем привет!

Еще одна обзорная статья, которая позволяет чуть глубже погрузиться в то, что «происходит под капотом». Допустим, была запущена команда kubectl  run pod –image=myimage.

Что произойдет дальше? Откуда образ появится на узле? Кто это делает? Что, помимо самого образа, хранится в реестре? Как работает layer cache и как определяются слои, которые уже есть?

Если вам интересно найти ответы – они есть в статье, включая удобные диаграммы последовательности между Runtime и Registry.

Завершает статью достаточно забавный разбор, связанный с ErrImagePull: Too Many Requests от Dockerhub. Чтобы такого не допустить, устанавливается Private Proxy Cache Registry. Количество запросов к Dockerhub замеряется снова.

Конечно, результат будет уже другой и понятно почему, но все равно интересно посмотреть на диаграммы взаимодействия и количество совершаемых запросов.
👍82
Цепочка повышения привилегий в GKE

Всем привет!

Статья от Unit42 (Palo Alto) описывает сценарий повышения привилегий до уровня Cluster Admin в GKE.

Есть несколько допущений. Первое: злоумышленник уже обладает доступом к кластеру Kubernetes. Как именно? – ответ на этот вопрос не является частью статьи. Второе: на кластере установлен и используется Anthos (вариация Istio от Google).

Что дальше? Все достаточно просто! Сценарий, следующий:
🍭 Эксплуатация уязвимостей в контейнерах FluentBit. Это нужно, т.к. в GKE у него есть mount к /var/lib/kubelet/pods и, как следствие, доступ к ServiceAccount Tokens
🍭 Поиск token’a Anthos и его дальнейшее использование для создания pod в namespace kube-system
🍭 Предоставление создаваемому pod роли clusterrole-aggregation-controller, обладающий повышенными привилегиями
🍭 Повтор «трюка» с FluentBit для получения token’a только что созданного pod

Завершает статью набор советов и рекомендаций, позволяющих запретить / сильно осложнить реализацию того, что написано выше. Все, как обычно – контроль доступа, контроль конфигураций, устранение избыточных полномочий и контроль изменений. Вроде бы просто, но на деле это не совсем так, особенно на большим масштабах 😊
👍5
Как найти 18 000 API Token в интернете?

Всем привет!

Команда Escape провела исследование 1 миллиона доменов в интернете, с целью поиска чувствительной информации. В итоге ребятам удалось найти 18 000 API Token, использование 41% которых могло нанести вред организациям (большинство из них было в JS коде).

Для этого ребята воспользовались алгоритмом:
🍭 Разработка специализированного web spider с использованием Golang
🍭 Анализ полученных данных осуществлялся с использованием собственной разработки Escape
🍭 Выбор целей для анализа на основе сведений от Majestic Million
🍭 Использование Kubernetes для управления нагрузкой на получившуюся системы – одновременно работали 150 instance’ов
🍭 69 часов на сбор информации, 189.466.870 URL, получение заветных API Token

Больше подробностей про исследование можно найти в отчете от Escape (~ 23 страницы), который мы направим в следующем посте.
👍51
Cvemap: обогащение информации об уязвимостях

Всем привет!

Год от года уязвимостей становится все больше и без того непростой процесс их устранения становится еще более сложным.

По этой причине появляются проекты, основная задача которых упростить процесс расстановки приоритетов в устранении уязвимостей. Реализуется это за счет консолидации информации из разных источников с целью предоставления пользователя достаточного (по возможности) количества данных для принятия решений.

Одним из таких проектов стал Cvemap. Он агрегирует информацию из таких источников как:
🍭 Known Exploited Vulnerability Catalog (KEVC). Информация о наличии exploit для уязвимости
🍭 Exploit Prediction Scoring System (EPSS). Оценка вероятности эксплуатации уязвимости
🍭 Proof of Concept (POCs). Примеры того, как можно эксплуатировать уязвимость
🍭 Nuclei Templates и не только. Наличие шаблонов поиска уязвимости с использованием Nuclei

Вся эта информация может упростить процесс управления уязвимостями. С исходным кодом проекта, а так же примерами его запуска можно ознакомиться в GitHub Repo.
6👍4
В чем отличие между Docker контейнерами и подами в Kubernetes?

Всем привет!

Может показаться, что ответ на этот вопрос очевидный: мы привыкли к тому, что поды - это просто абстракция над контейнерами. Однако это не совсем так...

В этой интерактивной статье автор детально изучает что же на самом деле происходит при запуске контейнеров и подов, и отвечает на некоторые интересные вопросы:

🎹 Какие linux namespaces создаются при запуске Docker контейнеров и подов Kubernetes?
🎹 Как контейнеры и поды работают с Linux cgroups?
🎹 Можно ли запустить настоящий Kubernetes под без Kubernetes?

Статья будет интересна как начинающим DevOps инженерам, так и продвинутым специалистам, которые хотят детально знать, что же происходит в операционной системе "под капотом". А так же на сайте много других полезных обучающих статей!
👍12🔥6🥰21
Kubernetes: как усложнить себе жизнь?

Всем привет!

Статьи о том, как «делать не надо» иногда полезнее тех, в которых рассматриваются лучшие практики и советы о том, как и что лучше сделать.

В статье Автор предлагает рассмотреть следующие anti-patterns:
🍭 Отсутствие Request для ресурсов
🍭 Недостаток мониторинга и журналирования
🍭 Очень привилегированные контейнеры (когда зачастую этого не требуется, но так проще «стартовать»)
🍭 Использование namespace Default для создания ресурсов
🍭 Не использование PodDisruptionBudget
🍭 Не использование podAntiAffinity и не только

Для каждого «вредного совета» Автор описывает почему так делать не стоит, а также приводит примеры того, «как правильно».

Если совсем просто – Kubernetes не волшебная технология и не делает все самостоятельно, очень во многом ему надо «помогать», чтобы он работал так, как хочется пользователям.
👍10🔥31🤩1
Обновление Testing Handbook и правил Semgrep

Всем привет!

Trail of Bits продолжают радовать своими наработками, которыми они делятся с сообществом. Testing Hanbook (о котором мы писали тут) был расширен разделом по CodeQL.

В нем можно найти:
🍭 Installation and first steps
🍭 Advanced usage
🍭 Continuous integration
🍭 Additional resources

Кроме этого, команда поделилась 30-ю правилами для Semgrep. Они позволяют анализировать Ansible, Java, Kotlin, Shell-скрипты и не только. Например, можно искать попытки загрузки чего-либо через http`\`ftp, отключение проверки SSL и много всего еще.

Подробнее про правила можно почитать в статье, а ознакомиться с ними в GitHub Repo.
2👍2
Kubernetes: security-oriented scheduling стратегии

Всем привет!

Читая статьи про безопасность Kubernetes чаще всего можно встретить упоминание важности RBAC, сетевой изоляции и Network Policy, использования Admission Controller для анализа манифестов с целью дальнейшего принятия решения о возможности создания ресурса и много чего еще.

Однако, крайне редко где-то упоминается очень сильная возможность Kubernetes – контролируемый scheduling, который, в том числе, может быть полезен и ИБ. Самый простой пример – сокращение поверхности атаки (если критичное отделено от не критичного) и затруднение lateral movement.

Команда Doyensec в своей статье разбирает возможные способы управления выбором целевых узлов:
🍭 nodeSelector
🍭 nodeName
🍭 (Anti) Affinity
🍭 Taints and Tolerations
🍭 Создание собственного Scheduler

Для каждого из рассмотренных способов приводятся его сильные и слабые стороны, а также комментарии про то, кто «выиграет», если в конфигурации будет указано сразу несколько вариантов «фильтрации».

В завершении статьи предоставляются рекомендации о том, на что стоит обратить внимание при создании собственной security-oriented scheduling стратегии.
👍5🔥42
Валидация API Token

Всем привет!

Leakey – bash скрипт, который позволит проверить валидность учетных данных (API Token), полученных, например, при проведении penetration test или при проведении reconnaissance.

«Внутри» уже есть проверки для:
🍭 Slack
🍭 GitHub
🍭 GitLab
🍭 Microsoft Azure и много чего еще

Если чего-то не хватает, то функционал можно просто расширить. Потребуется лишь дописать конфигурацию в файл signatures.json
👍8
Kubernetes OWASP Top 10: Comprehensive Guide

Всем привет!

По ссылке доступен массивный разбор (~ 23 минуты чтения) практик обеспечения информационной безопасности Kubernetes, описанных в OWASP Top 10.

Рассматриваются такие области, как:
🍭 Misconfigurations
🍭 RBAC: control and audit
🍭 Network Segmentation
🍭 Logging and monitoring и не только

Каждый раздел детально описывается: приводятся примеры и лучшие практики, способы как можно выполнять рекомендации. Дополнительно Автор описывает утилиты, которые могут быть использованы для автоматизации. Например, Kube-Bench, OPA, Prometheus, KubeView, RBAC Audit и еще много всего.

Материал может стать как отличным началом пути в обеспечении ИБ Kubernetes, так и источником «чего-то нового».
🔥6👍3
Glasskube: пакетный менеджер для Kubernetes

Всем привет!

Недавно был представлен проект Glasskube, позиционирующий себя как пакетный менеджер для Kubernetes.

Основной задачей, которую он призван решить, является помощь в установке ПО и поддержании его в актуальном состоянии. Сделать это можно как с использованием GUI, так и с использованием CLI.

Пока что с использованием Glasskube можно установить 4 пакета:
🍭 Cert Manager
🍭 Ingress Nginx Controller
🍭 Kubernetes dashboard (кто бы знал зачем)
🍭 Cyclops

Из планов – добавление популярных инструментов: Prometheus, Velero, GitLab, KeyCloak, HashiCorp Vault и т.д. Если в голове сразу появился вопрос – «Хм, у меня есть Helm, зачем мне Glasskube?», то у ребят есть ответ на это.

С одной стороны выглядит интересно, с другой – не очень понятно зачем нужно подобное ПО в уже и без того плотной «экосистеме» Kubernetes. А что Вы думаете по этому поводу?
👍91
Анализ безопасности GitHub Actions

Всем привет!

Герой сегодняшнего поста – Raven – open source утилита, которая позволяет анализировать ИБ в GitHub Actions.

Работает по следующему алгоритму:
🍭 Скачивает данные о CI-конвейере
🍭 Обрабатывает полученные данные и помещает их в Neo4j базу данных
🍭 Обрабатывает полученные данные с использованием запросов. Ознакомиться с ними можно тут
🍭 Предоставляет отчет о проделанной работе

С его помощь можно идентифицировать уязвимости типа Injection, например: Issue, Pull Request, Workflow Run и CodeSee. По каждой из указанных уязвимостей в repo проекта можно ознакомиться с описанием, принципом работы и способами противодействия.

В завершении readme.md можно найти Hall of Fame – перечень проектов, в которых были найдены недостатки, включая такие проекты как Docker-Slim и OpenSSF Scorecard
1
Безопасность CI/CD: обзор

Всем привет!

Легкая пятничная статья, посвященная безопасности CI/CD. Авторы, без погружения в детали, разбирают наиболее важные моменты.

В статье можно найти информацию:
🍭 О том, что такое CI/CD pipeline
🍭 Какие риски ИБ могут быть реализованы в случае недостаточного контроля
🍭 Почему безопасность CI/CD это важно
🍭 Какие есть лучшие практики, которые можно использовать

Хоть в статье и нет деталей, зато есть много ссылок на реальные инциденты или материалы, детализирующие вопросы обеспечения ИБ CI/CD
👍11
Управление уязвимостями в образах контейнеров

Всем привет!

В ИБ-мире средств контейнеризации и контейнерной оркестрации очень много интересных тем – от того, как правильно настроить кластер, до обеспечения runtime-защиты запущенных контейнеров.

Зачастую, специалисты начинают свой путь в рассматриваемой сфере с управления уязвимостями (оставим за скобками насколько нужно на этом фокусироваться).

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

Рассматриваются:
🍭 Base Images
🍭 Enterprise Images
🍭 Application и Builder Images
🍭 Custom Of The Shelf (COTS), образы, получаемы от Vendor

Далее Авторы обращают внимание на вопросы, характерные для patch management. В завершении статьи рассматриваются лучшие «точки встраивания» сканеров для идентификации уязвимостей, а также потенциальные сложности, с которыми скорее всего придется столкнуться.
🔥7👍2
Подделка signed commit в GitHub

Всем привет!

В небольшой статье Автор описывает интересный bug, благодаря которому можно было подделывать signed commit в GitHub от имени любого пользователя.

К сожалению, Автор не описывает что именно натолкнуло его на эту мысль, но он решил исследовать GitHub Enterprise Server путем деобфускации исходного кода Ruby.

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

Проанализировав одну функцию Автор заметил, что поле с именем author commit'a проверяется регулярным выражением:
/\Aauthor (.+?) <(.+)>/
Однако, такая «регулярка» никак не отреагирует на… «пустого» пользователя.

Таким образом, добавив несколько полей с author (первое из которых – пустое) проверка «срабатывает», пропускает строку и использует следующее значение по списку.

На текущий момент времени уязвимость устранена (да-да, изменением регулярного выражения 😊), а больше деталей можно найти в статье.
👍111😁1
Kubernetes Control Plane as a Pods

Всем привет!
Сегодня уже никого не удивишь большим количеством кластеров Kubernetes в одной компании. Кластера могут создаваться под конкретные среды (dev, test, prod) или под каждую команду разработчиков. Для этого придумали много способов автоматизации процесса подготовки кластеров, такие, как Cluster API. А сегодня мы хотим представить вам еще одну, хоть и не новую уже, концепцию: Hosted Control Plane.

Встречайте Kamaji!

Kamaji предлагает размещать Control Plane в подах, вместо отдельных машин и использовать концепцию операторов для управления множеством control plane'ов.

Основные преимущества, которые выделяют разработчики:
🎹 Быстрое время развертывания кластеров (Control Plane готов принимать трафик в среднем через 16 секунд)
🎹 Оптимизированное обновление. (Обновление версии Kubernetes в среднем проходит за 10 секунд и используются Blue/Green deployments что бы избежать различия в версиях)
🎹 Автоматический скейлинг подов в зависимости от использования кластера
🎹 Возможность использования не только etcd, но и MySQL или PostgreSQL.

Это далеко не полный список того, что предлагает это решение! Но для каких целей оно может использоваться?
🎹 Построение решений типа PaaS
🎹 Создание большого количества private managed Kubernetes services
🎹 Гибридные развертывания (Control Plane в облаке, а workers в частном дата центре)
...и многое другое!

Решение получилось достаточно интересным, а если вам хочется подробнее познакомиться с концепцией Hosted Control Plane in Kubernetes, рекомендуем почитать статью от авторов этого проекта!

Также можно подробнее почитать про термин Multi-tenancy в официальной документации.
👍6🔥4🥰21
WIZ_k8s_4Dummies.pdf
3.5 MB
Kubernetes Security for dummies

Всем привет!

Еще одна электронная книга (~52 страницы) от Wiz, на этот раз посвященная защите контейнеров (предыдущая описывала концепт CNAPP и про нее мы писали тут).

Содержание книги состоит из разделов:
🍭 Living in a Cloud-Native World
🍭 Securing Kubernetes
🍭 Securing Containers
🍭 Keeping Kubernetes Compliant
🍭 Implementing a Container Security Solution
🍭 Ten Kubernetes Security Best Practices

Книга, хоть и не содержит детальных how to, но дает хорошее общее представление о том, на что обращать внимание при проработке концепции защиты кластеров Kubernetes
🔥83👍3