DevSecOps Talks
7.1K subscribers
71 photos
86 files
1.09K links
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Download Telegram
Like a hacker! :)

Всем привет!

Вы когда-нибудь видели в фильмах, как true hackers "ломают системы" и генерируют код с невероятной скоростью?

Если Вы уже так умеете – низкий поклон! А если нет, но очень хочется обрести такой навык, пусть даже на время… Ответ есть!

Все просто:
🍭 Открываем ссылку на полноэкранный режим
🍭 Делаем невероятно серьезное/злое/решительное лицо
🍭 Начинаем «бить по клавишам»
(да, можно произвольно)
🍭 Voila! Новый exploit «готов»!

Такой вот «пятничный» пост ☺️ Желаем всем отлично отдохнуть в предстоящие праздники и до встречи!!!
Capacity Management в Kubernetes

Всем привет!

В статье рассматриваются сущности, которые могут быть использованы для capacity management в Kubernetes.

Не можем не согласиться с автором статьи, что capacity management в Kubernetes - тема очень сложная. На первый взгляд может казаться, что кластер сам управляет распределением ресурсов между pod'ами, но по факту это не так - до тех пор пока вы не сделаете соответствующие конфигурации ваших ресурсов. Не имея грамотно настроенного управления ресурсами можно получить большое количество веселых (и не очень) эффектов, вплоть до остановки узла из-за одного нагруженного контейнера.

Об этом в статье подробно описано:
🍭 Requests и Limits, LimitRange
🍭 QoS: BestEffort, Burstable, Guaranteed, как они назначаются (в том числе по умолчанию), как осуществляется управление приоритетами
🍭 Horizontal/Vertical Pod Autoscaler
🍭 Cluster Autoscaler и не только

Для каждой сущности приводится описание и наглядное графическое представление принципов ее работы. Отлично подойдет для понимания и/или систематизации знаний.
Использование OPA для AuthZ

Всем привет!

Если Вам нравится Kubernetes, то Вы, вероятно, сталкивались с таким проектом, как Gatekeeper. Он представляет из себя Admission Webhook, основанный на Open Policy Agent (OPA), который может принимать решения, основываясь на входных данных.

Однако, возможности OPA гораздо шире. В качестве примера Автор рассматривает ее в качестве «внешнего» сервиса, который реализует авторизацию в простом проекте на Spring Boot. Суть проста – пользователь может запрашивать свою зарплату и зарплату своих подчиненных.

Автор проделал следующее:
🍭 Написал код приложения. В качестве механизма авторизации – "стандартные" возможности технологий
🍭 Использование OPA в качестве инструмента авторизации
🍭 Реализация API Gateway – добавление AuthN

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

P.S. Если Вам интересно зачем потребовалось делать сторонний "сервис" - ответ есть в статье ☺️
ArgoCD Architectures

Привет!

ArgoCD один из популярных инструментов для реализации Continuous Delivery/Deployment и подхода GitOps.

В статье описаны возможные сценарии его использования с точки зрения развертывания и управления кластерами среды контейнерной оркестрации.

Рассматриваются подходы:
🍭 Hub and Spoke. Один ArgoCD Instance управляет множеством k8s кластеров
🍭 Standalone. Один ArgoCD Instance на k8s кластер
🍭 Spilt-Instance. Аналогично Hub and Spoke, однако компоненты ArgoCD «разнесены» (некоторые находятся на управляемых k8s кластерах)
🍭 Control Plane. «Гибридный» вариант (Hub and Spoke + Standalone), с единой «консолью управления»

Для каждого подхода приводится его описание, (не) целесообразность использования, а также сильные и не очень стороны. А если Вам хочется немного прочитать про преимущества и недостатки в ИБ при реализации Hub and Spoke / Standalone моделей, то можно обратиться к этой статье.
OWASP API Security: 2023

Всем привет!

Недавно обновился OWASP API Security. Информацию по новой версии (release candidate) можно найти по ссылке.

Рассматривается следующие ИБ-дефекты:
🍭 Broken object level authorization
🍭 Broken authentication
🍭 Broken object property level authorization
🍭 Unrestricted resource consumption
🍭 Broken function level authorization
🍭 Server side request forgery
🍭 Security misconfiguration
🍭 Lack of protection from authentication threats
🍭 Improper assets management
🍭 Unsafe consumption of APIs

Описание
(пока что) доступно только на английском языке.
DevOps Roadmap 2023

Всем привет!

Иногда спрашивают с чего начать погружение в DevOps или есть ли какой-то «Путь», который стоит пройти и тогда все, «готово»? Даже если опустить философию и софистику, то единого (универсального) ответа на этот вопрос нет.

Однако, время от времени попадаются вот такие вот Roadmap, в которых люди дают собственный взгляд на то, «как это может быть».

В подборке Автор разбил Путь на следующие этапы: начиная от изучения git и заканчивая Software Engineering Practices.

Для каждого из них есть ссылки на полезные материалы (статьи и книги, зачастую бесплатные), которые помогут в изучении. А есть ли у Вас любимый Roadmap или Вы считаете, что все это – бесполезно и надо как-то иначе?
GitGuardianSecretManagementMM.pdf
621.8 KB
Secret Management Maturity Model

Всем привет!

В приложении документ, в котором отражена точка зрения GitGuardian о процессе управления секретами и его возможном развитии.

Рассматриваются такие области, как:
🍭 Development Environment
🍭 Source code management
🍭 CI/CD pipelines & artifacts
🍭 Runtime environment
🍭 Kubernetes

Для каждой области расписывается 5 уровней зрелости – от «Uninitiated» до «Expert». Документ небольшой (~ 30 страниц). Помимо непосредственно модели, в нем описывается важность тематики и рассуждения на тему «почему серебряной пули не существует».
Милые девушки!!! 🥰🥰🥰

У вас есть потрясающий дар.
Вы умеете делать так, что все вокруг вас становится лучше, уютнее, «теплее» и гармоничнее. Самое классное, что «предмет» не важен. Это может быть «уголок» в доме, а может – контур безопасной разработки, который вы помогаете реализовать😊

Конечно, это далеко не все ваши замечательные стороны и особенности. Однако, если постараться написать обо всем (что в целом невозможно) – получился бы слишком длинный пост.

Поэтому сегодня, для краткости, мы хотим сказать вам, что вы – прекрасны и все, что вы делаете – прекрасно! Любите, будьте любимы, счастливы, веселы, жизнерадостны! Чтобы в глазах всегда был озорной блеск, а лицо озаряла улыбка! Поздравляем Вас с этим чудесным праздником Весны! 🌻🌻🌻

- Ваша редакция DevSecOps Talks
Please open Telegram to view this post
VIEW IN TELEGRAM
CIS GitHub Benchmark v1.0.0.pdf
2.2 MB
CIS GitHub Benchmark

Всем привет!

В феврале 2023 года семейство CIS Benchmark пополнилось еще одним. На этот раз для GitHub. По структуре документ напоминает CIS Software Supply Chain Security Guide от 2022 года, про который мы писали тут.

Документ содержит информацию, сгруппированную следующим образом:
🍭 Source Code
🍭 Build Pipelines
🍭 Dependencies
🍭 Artifacts
🍭 Deployment

Всего ~268 страниц.
Желаем Вам приятного изучения и использования! ☺️

P.S. Для тех, кто не знаком - CIS Benchmarks предназначен для предоставления набора рекомендаций по конфигурированию рассматриваемых технологий с целью повышения ИБ. В конце документа приведен удобный чек-лист по рассмотренным проверкам
Kubernetes Controllers: For, Owns, Watches

Всем привет!

В сети не всегда просто найти хорошую статью про написание собственных Kubernetes Operators/Controllers. Особенно, если интересует не «общая картинка», а какие-то частности.

В статье Автор разбирает разницу между конструкциями for(), owns() и get() при регистрации controller через SetupWithManager.

Для этого рассматривается пример:
🍭 Создается Custom Resource
🍭 Controller узнает об этом и создает pod (nginx:latest), присваивает ему labelfoo:bar
🍭 Controller должен гарантировать наличие указанных label. Т.е. add/update/delete не должны «срабатывать»

Далее расписывается логика реконсиляции controller’a. Наглядно описывается как можно это реализовать не делая еще один Controller, который бы смотрел за каждым pod и его labels – как раз тот самый owns().

В завершении – описание функции watches(), которая лежит в основе for() и owns(). В статье много примеров и кода для собственного воспроизведения примера.

P.S. Про awesome подборку написания Kubernetes Operators мы писали тут.
DevOps Conf 2023, 13 марта

Всем привет!

Сегодня и завтра будет проходить конференция «DevOps Conf 2023», приходите пообщаться с нами вживую, поболтать про DevSecOps ☺️ Или о рыбалке 🤔

Кроме поболтать можно:
🍭Послушать небольшие доклады, посвященные Trivy и SRIOV/DPDK в k8s // 13:30 и 15:40 соответственно
🍭 Пройти тест Тьюринга – вопросы от людей и нейросети!
🍭 Попробовать микросервисные молекулярные коктейли в баре «Контейнер»

Ещё Саша Краснов из команды нашего Партнера - "Лаборатории Числитель" расскажет про "Декларативное управление конфигурацией узлов Kubernetes в масштабе" в зале №4 // 15:50 – 16:40

Ждем Вас! ☺️☺️☺️
DevOps Conf 2023, 14 марта

Первый день конференции благополучно завершился! Бар «Контейнер» продолжает свою работу согласно расписанию!

Приходите к нам, как и вчера можно:
🍭 Послушать небольшие доклады, посвященные SRIOV/DPDK в k8s и Trivy // 13:30 и 15:40 соответственно
🍭 Пройти тест Тьюринга – вопросы от людей и нейросети!
🍭 Попробовать микросервисные молекулярные коктейли в баре «Контейнер»

Если Вы уже были на нашем стенде, то предлагаем присоединиться к круглому столу «DevOps в Enterprise. Вендорские решения vs Open Source vs Outsource», который проведет Юрий Семенюков в Митапошной // 11:10 – 12:40

Завершает конференцию Павел Яньков и его доклад «Гид автостопщика по HashiCorp Vault»! // 17:00 - 17:50, Зал 2

Приходите, задавайте вопросы, пишите понравилось ли Вам в комментариях! До встречи! ☺️☺️☺️
Nosey Parker: поиск секретов

Всем привет!

Nosey Parker – небольшая утилита, которая позволяет искать секреты. По факту – open source версия утилиты, используемой Praetorian. «Старшая версия» обладает ML-аналитикой для более точной идентификации секретов.

Open source версия:
🍭 Позволяет анализировать файлы, директории, git-историю
🍭 Группирует все findings
для сокращения «шума» и дедупликации
🍭 Работает достаточно быстро

Под капотом – набор из регулярных выражений в количестве 95 patterns. Как вариант – можно посмотреть, что есть «внутри» и использовать логику для расширения используемых Вами решений или попробовать Nosey Parker.
Packj: анализ open-source пакетов

Всем привет!

Материал для «кандидатской» и open source продукт… Казалось, что между ними общего? Ответ – Pakcj, история которого как раз началась как работа над диссертацией.
В итоге получился интересный проект, задача которого анализировать open source пакеты не только на CVE, но и на многое другое.

С его помощью можно найти:
🍭 Сведения об Авторах пакета
🍭 Временной промежуток между release
🍭 Пакет требует много полномочий // например, codegen, envvars, decode, process, file и т.д.)
🍭 Сведения о количестве уязвимостей // да, куда без них
🍭 Является ли repo fork’ом или нет
🍭 Typo squatting, Dependency Confusion, Install-time hooks // coming soon

По умолчанию работает в режиме Audit. Но, при использовании флага -t осуществляется установка пакета и его «динамический» анализ с использованием strace (рекомендуется использовать в контейнере или в VM). Больше информации, как обычно, можно найти в repo проекта.
Kyverno: PolicyException

Всем привет!

В недавнем релизе (1.9.0) Kyverno был добавлен механизм PolicyException, при помощи которого можно явно разрешить некоторое действие, запрещенное политиками Kyverno. Механизм обладает достаточно гибкими возможностями по управлению scope, на который применяется «исключение».

В статье Автор не только описывает подробности, но и реализует пример:
🍭 Создание PolicyException в namespace с именем falcon-dev
🍭 Kyverno создает ClusterCleanupPolicy, которая удалит созданный exception по прошествии заданного времени
🍭 Проверка ☺️

В статье описываются все необходимые настройки, предоставлены yaml. Важно(!): пока что функционал PolicyException находится в alpha.
Kubernetes * Probes

Всем привет!

Практически во всех рекомендациях (в том числе по ИБ) можно увидеть нечто вроде “Ensure that * Probes are set”. Они бывают разные – Startup, Liveness, Readiness. И каждая отвечает за свой «участок» - проверка того, что приложение «стартовало», приложение функционирует и может принимать трафик, приложение доступно. Но как настроить их корректно и всегда ли они нужны?

В статье более детально разбирается что каждый из видов probes, как их можно настроить и когда их целесообразно использовать.

Отдельно хочется упомянуть схему, доступную в статье. На ней наглядно отображено, когда какая probe «работает» и какие могут быть последствия в случае, если она не срабатывает.

В завершении стать рассматриваются handlers: ExecAction, TCPSocketAction, HTTPGetAction, gRPC и как их можно использовать.
Анализ безопасности JWT, часть 1

Всем привет!

JSON Web Token (JWT) – популярный механизм, который позволяет сохранять некоторую информацию о пользователе (например, id, name, creation time и т.д.) и использовать ее в дальнейшем.

Однако, некорректная работа с JWT может привести к проблемам информационной безопасности. Для знакомства с темой предлагаем Вам обратить внимание на статью JWT [JSON WEB TOKENS] [EXPLANATION & EXPLOITATION] (0x01).

В первой приводится общее описание JWT, его структуры и далее рассматривается самое интересное:
🍭 Flawed signature Verification
in Backend
🍭 Brute forcing the Secret Keys If HMAC algorithm is used

Каждый вектор атаки рассматривается на примерах, есть пояснения и screenshots. Но и это еще не все ☺️ Продолжение в следующем посте! В нем Автор рассмотрит JWT header injections.
Анализ безопасности JWT, часть 2

Всем привет!

Продолжение предыдущей статьи. Автор рассматривает блок, посвященный JWT header injections.

В статье можно найти информацию о:
🍭 Self-signed JWT with JKU header injection
🍭 Self-signed JWT with JWK parameter

Примеры
рассматриваются с использованием Portswigger Labs. Для каждого из них приводится описание Автора и минимум необходимой теории. Кстати, на самом Portswigger тоже очень много интересной информации про безопасность JWT в сочетании с лабораторным работами.
FalcoSecurityAudit.pdf
1 MB
Аудит безопасности Falco

Всем привет!

В приложении доступны результаты независимого аудита проекта Falco (~ 63 страницы), проведенного компанией Quarkslab.

Материал содержит разделы:
🍭 Границы работ (fuzzers, моделирование угроз, SAST-практики и т.д.)
🍭 Модель угроз
Статический анализ (Cppcheck, CodeQL, Infer)
🍭 «Ручной» анализ
🍭 Динамический анализ и многое другое

В целом все достаточно неплохо: 1 Medium уязвимость (potential buffer overflow), несколько Low и Info.

А как Вы думаете – является ли open source менее защищенным by default? Или наоборот – open source ничем не хуже «внутренней разработки» с точки зрения ИБ? Пишите Ваше мнение в комментариях ☺️
Разбор Kubernetes Security Context

Всем привет!

По ссылке доступен long read, в котором Автор на примерах разбирает различные Security Context и пользу от их использования. Для демонстрации заготовлено минималистичное flask-приложение и его различные модификации.

Рассматривается:
🍭 runAsUser / runAsGroup // пример с SSRF
🍭 privileged и allowPrivelegeEscalation // пример с SUID и возможным повышением привилегий
🍭 readOnlyRootFilesystem // пример с созданием файла внутри контейнера
🍭 drop capabilities // пример с drop: ALL и bind на 80-ый порт (Сработало! Почему? Ответ есть в статье) и последующей настройкой исключений
🍭 apparmor // пример с попыткой чтения /etc/passwd

Автор максимально детально описывает все действия, которые он реализует, а также описывает «зачем» он это делает. Примеры из статьи можно реализовать самостоятельно – все исходные коды, ссылки на используемые материалы и дополнительные ресурсы присутствуют.

P.S. Для некоторых Security Context Автор приводит дополнительные комментарии, которые не всегда просто найти / есть в официальной документации.