Нетиповые практики DevSecOps для CI/CD
18 ноября 2025 г.·755 views

🛠 Нетиповые практики DevSecOps для CI/CD

Салют,

Давай с тобой продолжим смотреть в сторону практик DevSecOps и в этот раз обсудим CI/CD, где я хочу поделиться с тобой выработанными принципами, которые считаю актуальными и основными при проработке концептов.

Continuous Integration/ Continuous Delivery — это автоматизация процессов разработки, которая включает непрерывную интеграцию и непрерывную доставку. Автоматизация нацелена на SDLC цикл.

А теперь давай рассмотрим сами практики и начнем с базы:

- Изоляция контроллера: сборки не на встроенном узле, а инициализируются из глобальных переменных

- Не допускается наличие не используемых переменных среды

- Не запускать сборку от ТУЗ с привилегированными правами

- Средства сборки и деплоя не должны требовать расширение прав доступа

- Обеспечивать строгий рендеринг пользовательского контента: файлы из рабочих директорий, архивные артефакты и т.д.

- В процессе CI\CD должна быть исключена возможность переполнений и несанкционированной перезаписи.

- Не допускается вызов внешних зависимостей на этапе деплоя

Stages

- Каждый Stage изолируется и разделяет операции функционально

- Учётные записи, используемые или вызываемые при сборке или деплое, должны проходить предварительную аутентификацию:

- аутентификация должна быть персональной и обеспечивать возможность отслеживать действия;

- аутентификация должна быть обеспечена для пользователей всех уровней доступа (администраторы, супервизоры)

- Все jobs необходимо разделять по назначению: CI (сборка, тестирование, анализ кода и т.д. - обособленно и не взаимодействует со средами эксплуатации, а CD использует отдельные УЗ

- Библиотеки, сборки и шаблоны конвейеров следует хранить отдельно от управляющего конфига

- Рекомендуется использовать отдельные репозитории для сборок и шаблонов для изоляции конфигураций

- Подключаемые скрипты: Groovy, Shell, Python и др. не должны содержать проверок или условий, позволяющих обходить этапы сборки, тестирования или других критических стадий конвейера

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

- На этапе CD требуется проверка хэш-суммы профайла

Особенности

- Ниже maintainer нет возможности самостоятельно выбирать окружение и быть ограничены

- Деплой не должен выполняться без MR

- Все pre-действия должны включать полные метаданные артефакта — параметры сборки, атрибуты поставки и идентификаторы версий

- Все callback-действия внутри конвейера,

- Build и тд. должны выполняться только для приложений, упакованных в Docker-контейнеры для единообразия сред

- В CI рекомендуется запускать несколько типов тестов: интеграционные, unit-тесты, регрессионные тесты

- При неуспешной сборке артефакт не должен попадать в репозиторий артефактов

- Среды деплоя: staging, production и тд. должны быть логически и физически разделены

- Все post-действия в конвейере не должны вызываться независимо и обязаны выполняться только после завершения соответствующих pre- или main-этапов

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

#appsec #devsecops #reco #specialty #pmcases

#appsec#devsecops#reco#specialty#pmcases
Открыть в Telegram