[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-ci-cd-kak-obespechit-bezopasnost-ci-cd-payplayna":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":21,"progress":22,"seo":23},215,"kak-obespechit-bezopasnost-ci-cd-payplayna",6,"ci-cd","CI\u002FCD","🔄","Как обеспечить безопасность CI\u002FCD пайплайна?","**Безопасность CI\u002FCD пайплайна** — это комплекс мер по защите секретов, контролю доступа, верификации зависимостей и артефактов, аудиту действий и защите самого пайплайна от несанкционированных изменений.\n\n> Представьте, что CI\u002FCD пайплайн — это конвейер на фармацевтическом заводе. Каждый этап (смешивание, упаковка, маркировка) должен быть защищён от подмены ингредиентов, контролироваться камерами, а доступ к конвейеру имеют только авторизованные сотрудники. Если кто-то подменит ингредиент на одном из этапов — последствия критические. Так же и с CI\u002FCD: компрометация пайплайна может привести к деплою вредоносного кода в production.\n\n### 1. Управление секретами\n\nСекреты (пароли, токены, ключи, сертификаты) — самая уязвимая часть пайплайна.\n\n**Правила:**\n- **Никогда** не хранить секреты в коде или Jenkinsfile.\n- Использовать Jenkins Credentials Store или внешние хранилища (HashiCorp Vault).\n- Ротация секретов по расписанию.\n- Секреты маскируются в логах как `****`.\n\n```groovy\n\u002F\u002F Правильно: секреты из Credentials\nwithCredentials([string(credentialsId: 'db-password', variable: 'DB_PASS')]) {\n    sh 'flyway -password=$DB_PASS migrate'\n}\n\n\u002F\u002F НЕПРАВИЛЬНО: секреты в коде\n\u002F\u002F sh 'flyway -password=MySecret123 migrate'  \u002F\u002F НИКОГДА!\n```\n\n### 2. Контроль доступа\n\n- **RBAC** (Role-Based Access Control) — разделение прав по ролям (разработчик, DevOps, release manager).\n- **Принцип наименьших привилегий** — агенты и процессы имеют только необходимые права.\n- Ограничение, кто может редактировать Jenkinsfile и конфигурацию пайплайнов.\n- **LDAP\u002FAD интеграция** для единой аутентификации.\n\n### 3. Безопасность агентов\n\n- Агенты **не должны** иметь доступ к данным Jenkins master.\n- Использование **эфемерных (временных) агентов** — Docker-контейнеры уничтожаются после сборки. Никаких остатков от предыдущих сборок.\n- Изоляция сборок разных проектов — один проект не может повлиять на другой.\n\n### 4. Проверка зависимостей (Supply Chain Security)\n\nАтаки на цепочку поставок (supply chain attacks) — растущая угроза.\n\n```groovy\nstage('Security Scan') {\n    steps {\n        sh 'mvn dependency-check:check -DfailBuildOnCVSS=7'\n        \u002F\u002F Сборка упадет при обнаружении уязвимости с CVSS >= 7\n    }\n}\n```\n\n- **OWASP Dependency Check** — поиск известных уязвимостей (CVE) в зависимостях.\n- **Nexus IQ** — анализ лицензий и уязвимостей (Pro-версия).\n- Запрет использования зависимостей с критическими уязвимостями.\n- Фиксация версий зависимостей (не использовать `LATEST` или диапазоны версий).\n\n### 5. Подпись и верификация артефактов\n\n- Подпись Docker-образов (Docker Content Trust \u002F Cosign).\n- Подпись JAR-файлов (GPG, jarsigner).\n- Проверка целостности артефактов перед деплоем — артефакт не был подменён между сборкой и деплоем.\n\n### 6. Аудит и мониторинг\n\n- **Jenkins Audit Trail Plugin** — журнал всех действий (кто запустил сборку, кто подтвердил деплой).\n- Мониторинг аномальных активностей (неожиданные сборки, деплой в нерабочее время).\n- **Хранение логов** сборок длительное время (compliance-требование).\n- Алертинг при подозрительных событиях.\n\n### 7. Защита пайплайна как кода\n\n- **Jenkinsfile хранится в Git** и проходит code review — изменение пайплайна = изменение кода, требующее PR и аппрува.\n- Запрет выполнения произвольных Groovy-скриптов (**Script Security Plugin**).\n- Использование **Shared Libraries**, проверенных командой DevOps — разработчики не могут произвольно менять стадии пайплайна.\n\n### Сводная таблица мер безопасности\n\n| Угроза | Мера защиты | Инструмент |\n|---|---|---|\n| Утечка секретов | Credentials Store, Vault | Jenkins Credentials, HashiCorp Vault |\n| Несанкционированный доступ | RBAC, LDAP | Role Strategy Plugin, LDAP Plugin |\n| Уязвимые зависимости | Сканирование CVE | OWASP Dependency Check, Nexus IQ |\n| Подмена артефакта | Подпись и верификация | Docker Content Trust, Cosign |\n| Несанкционированное изменение пайплайна | Code review для Jenkinsfile | Git, Pull Request |\n| Остатки данных на агенте | Эфемерные агенты | Docker, Kubernetes |\n| Отсутствие прослеживаемости | Аудит-логи | Audit Trail Plugin |\n\n### Вывод\n\nБезопасность CI\u002FCD — это не отдельный этап, а сквозная практика на каждом уровне: секреты, доступ, зависимости, артефакты, агенты, аудит. В банковской среде нарушение безопасности пайплайна может привести к компрометации production-систем, поэтому каждый аспект должен быть проработан.\n\n> **На собеседовании:** этот вопрос часто задают на Senior-позиции. Не ограничивайтесь фразой «не хранить пароли в коде». Перечислите категории угроз: утечка секретов, supply chain атаки, несанкционированный доступ, компрометация агентов — и для каждой назовите конкретную меру защиты. Это показывает зрелое понимание DevSecOps.","","senior",[15,16,17,18,19,8,20],"security","RBAC","credentials","audit","OWASP","vault",[],null,{"title":24,"description":25,"ogTitle":26,"ogDescription":27,"keywords":28,"schemaAnswer":38,"featuredSnippetReady":39},"Как обеспечить безопасность CI\u002FCD пайплайна — Gymterview","Безопасность CI\u002FCD: управление секретами (Vault, Jenkins Credentials), RBAC, эфемерные агенты, OWASP Dependency Check, подпись артефактов, аудит, Script Security.","Безопасность CI\u002FCD пайплайна: 7 ключевых практик — Gymterview","Секреты, RBAC, эфемерные агенты, проверка зависимостей, подпись артефактов, аудит, защита Jenkinsfile. Практики для банков.",[29,30,31,32,33,34,35,36,37],"безопасность CI\u002FCD","Jenkins Credentials","HashiCorp Vault","RBAC Jenkins","OWASP Dependency Check","Docker Content Trust","Audit Trail Jenkins","Script Security Plugin","секреты пайплайн","7 практик: 1) Управление секретами — Jenkins Credentials Store или HashiCorp Vault, ротация, никогда не в коде. 2) Контроль доступа — RBAC, принцип наименьших привилегий, LDAP\u002FAD. 3) Безопасность агентов — эфемерные контейнеры, изоляция сборок. 4) Проверка зависимостей — OWASP Dependency Check (failBuildOnCVSS=7), Nexus IQ, проверка лицензий. 5) Подпись артефактов — Docker Content Trust, Cosign. 6) Аудит — Audit Trail Plugin, мониторинг аномалий, хранение логов. 7) Защита пайплайна — Jenkinsfile через code review, Script Security Plugin, проверенные Shared Libraries.",true]