DevSecOps Talks
6.31K subscribers
47 photos
66 files
897 links
Рассказываем об актуальном в мире DevSecOps. Канал DevSecOps-команды "Инфосистемы Джет"
Download Telegram
Software Supply Chain Security: анализ средств защиты

Всем привет!

Вторая статья цикла, посвященная безопасности software supply chain (про первую мы писали тут). На этот раз Авторы проанализировали более 20 решений, которые позволяют автоматизировать практики защиты цепочки поставки ПО.

Материал структурирован по разделам:
🍭 Source Code Layer. Защита систем контроля версий, анализ кода
🍭 The Build & Pipeline Layer. Композиционный анализ и идентификация вредоносных пакетов
🍭 CI/CD Security. Защита конвейера сборки
🍭 Packaging & Deployment Layer. Подпись артефактов, создание и контроль SBOM

Да, 99% представленных решений являются платными, однако, ознакомление с их функционалом и возможностями может быть полезно для того, чтобы лучше разобраться в тематике software supply chain и понять, что нужно и можно делать в этом направлении 😊
Chalk: GPS для ПО

Всем привет!

Недавно в open source мире появился еще один интересный проект – Chalk.

Chalk решает крайне интересную задачу – «связывает» ПО, развернутое в произвольном окружении с его build-информацией, вплоть до commit. Это может быть полезно при debug или при расследовании инцидентов ИБ.

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

По умолчанию, в качестве метаданных, собирается базовая информация – repo, branch и commit id. Однако, схему можно расширять, например, добавив SBOM или результаты статического анализа.

О том, как работает эта «магия» можно прочесть в документации, так же там есть starting guide. Да, решение «сырое», но сам концепт выглядит весьма интересным. С исходным кодом проекта можно ознакомиться по ссылке.
GitHub Certifications

Всем привет!

Недавно GitHub анонсировал набор собственных сертификацийGitHub Foundations, Actions, Advanced Security и Administration. Они пока не доступны широкой публике, но уже сейчас можно добавить себя в waitlist.

Удобно, что для каждого направления команда GitHub подготовила Leaning Path, доступный online. Его изучение поможет не только лучше познакомиться с системой, но и пройти сертификацию.

Например, Learning Path для Advanced Security включает в себя:
🍭 Настройка dependabot’a для реализации security updates
🍭 Настройка и использование Secret Scanning
🍭 Анализ кода и идентификация ИБ-дефектов с CodeQL
🍭 Администрирование GitHub для нужд ИБ и не только

Время изучения разделов варьируется – от 20 минут до 1,5 часов. А если хочется больше – то можно скачать Study Guide в котором кратко описано что нужно делать.

Отличная работа со стороны GitHub для популяризации технологии и повышения компетенций специалистов. И да, конечно же, еще один GitHub Badge для Вашего профиля! ☺️
Kor: идентификация неиспользуемых ресурсов k8s

Всем привет!

Задача инвентаризации активов, вероятно, базовая для информационной безопасности. Ведь часто начинается с того, что надо понять – «С чем мы имеем дело?». Однако, помимо поиска того, чем придется работать, надо искать и то, что не используется. Например, для того, чтобы это удалить/отключить.

В Kubernetes подобная задача может быть не совсем тривиальной ввиду большого количество resources, создаваемых в кластере. Помочь в этом может проект Kor.

Он позволяет идентифицировать неиспользуемые resources, такие как:
🍭 ConfigMap
🍭 Secrets
🍭 Roles
🍭 Services и не только

Под «неиспользуемым» понимается следующее (на примере ConfigMap): рассматриваемый ConfigMap не используется в Pod, Container, Volumes, Env.

Подробнее с возможностями настройки Kor (которых не много) и ограничениями утилиты можно ознакомиться в repo проекта.
Обход политики Kyverno через Kubernetes Finalizers

Всем привет!

Достаточно интересную уязвимость обнаружил Автор статьи. Все началось с того, что он решил написать политику, которая бы «выбирала» ресурсы с параметром deletionTimestamp (кто знает зачем такая политика, но…). В итоге оказалось, что Kyverno игнорирует подобные запросы.

Можно ли как-то использовать это? Чтобы ответить на этот вопрос надо понимать, что происходит при операции DELETE — это очень подробно и доступно описано в статье. И все равно поначалу ничего не получалось – изменить что-либо в .spec почти нельзя, а некоторые изменения и о вовсе игнорируются при удалении ресурса.

Однако, не все ограничивается pod и их «обертками». В итоге Автор остановился на Service и реализовал следующий алгоритм:
🍭 Создал вполне легитимный Service типа ClusterIP
🍭 Добавил несуществующий finalizer, чтобы удаление происходило бесконечно
🍭 В момент удаления изменил тип сервиса на NodePort. При этом блокирующая (Enforce) политика Kyverno не обратила на это внимание
🍭 Получил доступ через «созданный» NodePort

Таким образом, через finalizers успешно был реализован обход enforce-политики Kyverno. В версиях 1.10+ указанный недостаток уже устранен. Очень рекомендуем статью к прочтению, чтобы лучше разобраться в том, как работает Kubernetes и Kyverno ☺️
Обновление Sealed Secrets паролей в Kubernetes

Всем привет!

Sealed Secret – утилита, которая позволяет «запечатать» секрет таким образом, что его можно хранить в используемой VCS-системе не боясь компрометации.

Весьма удобно, например, для реализации GitOps-подхода. При применении подобного ресурса на кластере Kubernetes происходит операция unseal, которая «восстанавливает» требуемую информацию и все работает.

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

В статье автор подробно расписывает проблематику и сам процесс, включающий в себя:
🍭 Создание hash-значения нового пароля с использованием bcrypt
🍭 Генерация шаблона секрета для Kubernetes (k create secret –dry-run=client...)
🍭 «Запечатывание» созданного секрета с использованием kubeseal и применением --merge-into
🍭 Перезапуск целевого контейнера для обновления секрета внутри него

Представленный выше процесс описан Автором с максимальной детализацией: полный перечень шагов, все необходимые команды и комментарии о том, что происходит и на что обращать внимание.
Интерактивные курсы по уязвимостям

Всем привет!

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

Доступно объяснение для следующих уязвимостей:
🍭 SQL Injection
🍭 XSS
🍭 Command Execution
🍭 User Enumeration
🍭 Open Redirects и другие

Курсы достаточно наглядные и короткие, могут быть использованы, например, для ознакомления разработчиков. Помимо объяснения логики работы уязвимостей сервис предоставляет базовый набор рекомендаций о том, как этого избежать.

В дополнение можно рассмотреть аналогичные ресурсы от Snyk или Kontra. Да, бесплатно доступно не все, но все равно есть интересный материал.
Важные ИТ-концепты

Всем привет!

Сказать, что ИТ – активно развивающаяся сфера – не сказать ничего. Иногда хочется, чтобы «ИТ-горшочек перестал варить», хотя бы на пару месяцев. Это позволило бы успеть изучить интересующий предмет (да и то вряд ли).

Само собой за всем не уследишь, поэтому предлагаем Вам обзорную пятничную статью в стиле «что Вы (возможно) не знали и о чем (возможно) боялись спросить».

Автор собрал 16 ИТ-концептов, которые крайне важны на его взгляд:
🍭 Load Balancer
🍭 API Gateway
🍭 Caching
🍭 Distributed File Systems
🍭 Mircoservices и другие

Для каждого концепта он привел описание – что это, зачем оно нужно и ключевые принципы работы технологии. Экспертом после прочтения не станешь, но лучше понимать происходящее – вполне!
Yet Another Kubernetes Security Checklist

Всем привет!

Говорят, что много checklist’ов в мире информационной безопасности не бывает. Наверное, Вы уже создали (или в процессе создания) своего. На тему безопасности Kubernetes.

Возможно, что из материала сегодняшнего поста Вы сможете взять себе что-то полезное. Автор рассматривает рекомендации по таким областям, как:
🍭 AuthN / AuthZ
🍭 Secrets
🍭 Cluster Configuration Security
🍭 Audit and Logging
🍭 Secure OS Configuration
🍭 Network Security
🍭 Secure Configuration of Workloads
🍭 Secure Image Build

Отличительной особенностью этой подборки является то, что приведено много «явных» действий, а не рекомендаций в стиле «за все хорошее, против всего плохого».
Моделирование угроз для Software Supply Chain

Всем привет!

OpenSSF продолжает радовать отличными наработками по безопасности цепочки поставки программного обеспечения. На этот раз – моделью угроз!

Для проработки материала была создана рабочая группа, которая решала задачу: «Как, с точки зрения потребителя, выстроить защиту против современных угроз ИБ, характерных для цепочки поставки ПО?».

Результатом стала Initial Threat Model, в которой отражены угрозы для:
🍭 Consumption of 3rd Party Code
🍭 Infrastructure Threats (Developer Machine, SCM, Build System, Build, Private Repository, Staging/Production Environment)

Материал все еще находится в стадии разработки (можно наблюдать в «real-time» режиме), но даже в таком виде содержит много интересных мыслей.
Microsoft Kubernetes Threat Matrix

Всем привет!

Продолжаем тематику моделирования угроз. Сегодняшний пост будет посвящен проекту Kubernetes Threat Matrix от Microsoft.

Инструмент достаточно известный, но лишнее напоминание не повредит.

Он уже пережил несколько доработок, последняя из которых была в конце 2022 года. Добавили новые техники:
🍭 Static pods
🍭 Collecting data from pod
🍭 Container service account
🍭 Exposed sensitive interfaces

Помимо этого, реализован mapping между Kubernetes Threat Matrix и наработками MITRE ATT&CK. Еще одним удобством стал web-интерфейс, с которым можно ознакомиться по ссылке.
Gittuf: защита Git

Всем привет!

Еще один интересный и новый проект от OpenSSFgittuf! Он использует некоторые концепты The Update Framework (TUF) для того, чтобы повысить безопасность git-репозиториев.

Например:
🍭 Выступает в роли единой «точки доверия» для распространения публичных ключей. Например, верификация commit, подписей tags
🍭 Контролирует внесение изменений в ветку (branch) или в процесс создания tag
🍭 Управляет доступом к файлам. Например, какие пользователи могут вносить изменения в определенные файлы репозитория

Проект находится в стадии активной разработки, многое пока не реализовано. Согласно описанию – пока что это alpha и НЕ рекомендуется использовать ее в production-окружениях. С краткой документацией можно ознакомиться тут. Отдельно можно обратить внимание на roadmap продукта – если это будет реализовано, то получится весьма полезный инструмент.
Semgrep: Secrets

Всем привет!

Расширение продуктовой линейки Semgrep – к статическому анализатору (SAST) и анализатору open source компонентов (SCA) добавился еще один продукт – Semgrep Secrets.

«О, еще один!» - можете подумать Вы. Однако, если верить описанию, это «чуть больше, чем просто регулярки».

Он обладает функционалом семантического анализа и возможностью проверки «использования» секрета. Это позволяет сократить количество "шума" в результатах.

Например:
🍭 Не только найти password, но и «понять», что он находится в параметрах new pg()
🍭 Найти переменные, которые передаются при установлении соединения с базой данных и убедиться, что переменные представляют из себя hardcoded string
🍭 Найти api-key и проверить, что он является активным и может быть использован

Все эти примеры и не только отлично описаны в статье. Единственный нюанс – решение доступно в public beta через запрос команде Semgrep. Станет ли он платным (как SCA) или будет доступен массам бесплатно (хотя бы частично) – пока непонятно.
Vet: анализ open source

Всем привет!

Vet – молодой проект, цель которого – повышение безопасности при использовании open source компонентов.

Можно сказать, что это некоторый агрегатор, который:
🍭 Собирает общую информацию об open source компоненте
🍭 Собирает информацию из OpenSSF Scorecard
🍭 Получает информацию об уязвимостях с osv.dev и deps.dev

Далее, при помощи CEL-политик, осуществляется анализ для идентификации ИБ-дефектов. Можно «подключать» разные наборы правил : OSS Best Practices, CIS Benchmark, OpenSSF Scorecard, SLSA (в работе), MITRE (в работе).

Ознакомиться с документацией проекта можно по ссылке. Главное не забывать, что он все еще развивается, поэтому на некоторых вкладках информации не будет.
OWASP API Security Top 10, 2023: примеры

Всем привет!

По ссылке можно ознакомиться с наглядными примерами по Top-10 OWASP API Security, 2023.

Материал включает разбор:
🍭 API1:2023 - Broken Object Level Authorization
🍭 API2:2023 - Broken Authentication
🍭 API3:2023 - Broken Object Property Level Authorization
🍭 API4:2023 - Unrestricted Resource Consumption
🍭 API5:2023 - Broken Function Level Authorization
🍭 API6:2023 - Unrestricted Access to Sensitive Business Flows
🍭 API7:2023 - Server Side Request Forgery
🍭 API8:2023 - Security Misconfiguration
🍭 API9:2023 - Improper Inventory Management
🍭 API10:2023 - Unsafe Consumption of APIs

Для каждой уязвимости приводится как compliant, так и uncompliant пример реализации на .NET и Java, что позволяет лучше разобраться в том, что происходит.
Network Chaos Engineering в k8s

Всем привет!

Chaos Engineering довольно интересная дисциплина, в рамках которой осуществляется имитация событий, которые могут привести к существенным последствиям. Цель упражнения очень простая – получится ли быстро идентифицировать причину проблемы и также быстро ее устранить?

В статье команда Coroot демонстрирует использование Chaos Mesh для имитации следующих сценариев:
🍭 Network partitioning. Потеря всех пакетов от Сервиса А к Сервису Б
🍭 Network delay. Увеличение задержки при передаче данных
🍭 Packet loss. Потеря 30% пакетов, передаваемых от Сервиса А к Сервису Б

Особенно полезно, что в статье описана логика идентификации указанных событий. Подобные тесты могут быть полезны для тестирования ваших observability решений. Про сам Coroot мы писали тут (open source инструмент, позволяющий получить видимость того, что происходит в кластерах Kubernetes).
Security Insights Specification

Всем привет!

И снова материал от OpenSSF. На этот раз ребята решили, что информации в SECURITY.md и CONTRIBUTING.md не всегда достаточно и представили свой формат (увы, это yaml 😊)

Security Insights Specification представляет собой машиночитаемый файл, который, в том числе удобен и для человека.

Формат сгруппирован по следующим разделам:
🍭 Project Lifecycle
🍭 Contribution Policy
🍭 Documentation
🍭 Distribution Points
🍭 Security Artefacts и не только

По каждому разделу можно добавить релевантную информацию по ИБ. Например, указать какие инструменты используются для идентификации ИБ-дефектов или с кем можно (нужно) связаться в случае нахождения уязвимости. С полной версией спецификации можно ознакомиться в repo.
Kubernetes Explorer

Всем привет!

Мы уже не раз писали про невероятные материалы, которые подготавливает Ivan Velichko, доступные на сайте iximiuz.com.

Сегодня же хочется рассказать про его проект k’exp - Kubernetes Explorer. Он позволяет «изучать» и «наблюдать» за тем, что происходит внутри кластера.

Например:
🍭 Посмотреть на процесс создания ресурса
🍭 Увидеть, что происходит при изменении количества реплик
🍭 Получить информацию об объекте и не только

Информацию о том, как установить, настроить и использовать решение можно найти в GitHub Repo проекта. Кстати, можно и без установки - через Kubernetes Playground 😊
Kuik: kube-image-keeper (cache для образов)

Всем привет!

Наверное, каждый сталкивался с неприятным сообщением: «You have reached your pull rate limit». Решение, на первый взгляд, достаточно очевидное – поднять собственный registry, в котором будет находиться все необходимое.

Но что если и этого недостаточно? Если, например, свой registry «откажет»? Или как уследить за всеми образами, которые должны там быть?

Размышляя над этими вопросами, команда Enix пришла к тому, что нужно создать image caching solution. Далее – все как обычно 😊 Посмотрев на то, что предлагает community, команда пришла к выводу (невероятно, но факт!), что надо делать свое.

Так появился kuik – kube-image-keeper, состоящий их трех основных частей:
🍭 Mutating webhook, добавляющий информацию об используемом реестре
🍭 Controller, который создает CachedImages CR
🍭 Другой controller, который скачивает образы из CachedImages CR

Таким образом у ребят получилось создать автоматизированное управление cache’ем для всех используемых образов.

Больше информации, включая детальное описание проблематики, различные архитектуры, которые попробовала команда, и описание процесса получения образов можно найти в статье. А если хочется попробовать kuik в действии, то его можно найти на GitHub.
Платформа «Штурвал» прошла сертификацию CNCF по Kubernetes!

Разработчик ПО «Лаборатория Числитель» стал участником сообщества Cloud Native Computing Foundation. Платформа «Штурвал» получила официальный международный статус Certified Kubernetes Software Conformance.

🔔Для прохождения сертификации поставщикам решений необходимо предоставить результаты тестирования своего продукта на соответствие требованиям CNCF. Сертификация гарантирует, что продукт поддерживает требуемые API и версии Kubernetes. Для компаний, которые используют Kubernetes, это означает, что их приложения будут совместимы с сертифицированным CNCF-дистрибутивом.

🚩Большинство ведущих мировых производителей корпоративного программного обеспечения и провайдеров облачных вычислений имеют сертифицированные предложения Kubernetes. Среди продуктов, сертифицированных CNCF по Kubernetes, — VMware Tanzu, Red Hat OpenShift, Rancher Kubernetes и другие.
Top System Programming Vulnerabilities

Всем привет!

По ссылке можно ознакомиться с еще одним top’ом уязвимостей. Про первую часть с примерами, характерными для API, мы писали тут.

Подборка включает в себя:
🍭 Buffer overflow
🍭 Pointer Initialization
🍭 Incorrect Type Conversion
🍭 Format String Vulnerability

Как и в первой подборке, в этой приводятся примеры того,«как не надо» делать и «как надо». В качестве «подопытных» рассматриваются языки: C++, C и Rust.