Защита Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Azure Pipelines представляет различные проблемы безопасности. Хотя конвейеры позволяют выполнять скрипты или развертывать код в рабочих средах, важно предотвратить их создание для вредоносного кода. Балансировка безопасности с гибкостью и мощностью, необходимой командами разработчиков, является важной.
Примечание.
Azure Pipelines является частью набора Azure DevOps Services, построенного на защищенной инфраструктуре в Azure. Чтобы получить полное представление о концепциях безопасности во всех службах Azure DevOps Services, рекомендуется просмотреть следующие ресурсы:
Традиционно организации обеспечивают безопасность с помощью строгих блокировок. Код, конвейеры и рабочие среды сталкиваются с серьезными ограничениями доступа. Хотя этот подход хорошо работает в небольших организациях с ограниченными пользователями и проектами, крупные организации сталкиваются с другой реальностью. С многочисленными участниками, имеющими доступ к коду, принцип "предполагать нарушение" становится важным. Он включает в себя работу, как если бы злоумышленник обладает доступом участника к репозиториям, требуя повышенной бдительности.
Чтобы достичь целей безопасности, рассмотрите следующие моменты:
Предотвратить выполнение вредоносного кода:
- Убедитесь, что конвейеры настроены для предотвращения несанкционированного выполнения вредоносного кода, который включает следующие задачи:
- Ограничение доступа к конфиденциальным секретам и учетным данным.
- Проверьте входные параметры и аргументы, чтобы предотвратить непреднамеренное поведение.
- Регулярно просматривайте и проверяйте сценарии конвейера для потенциальных рисков безопасности.
- Реализуйте такие методики безопасности, как:
- Используйте параметризованные запросы в скриптах, чтобы предотвратить внедрение SQL.
- Экранируйте специальные символы в аргументах, чтобы избежать внедрения команд оболочки.
- Ограничение разрешений для подключений службы конвейера.
- Рассмотрите возможность использования конвейеров YAML, которые обеспечивают точный контроль над выполнением и менее подвержены рискам безопасности.
- Убедитесь, что конвейеры настроены для предотвращения несанкционированного выполнения вредоносного кода, который включает следующие задачи:
Устранение бокового воздействия:
- Изолируйте конвейеры, чтобы предотвратить боковое перемещение в проектах и репозиториях вашей организации.
- Ограничить доступ только к необходимым репозиториям и ресурсам для каждого конвейера.
- Мониторинг действий конвейера и настройка оповещений для подозрительного поведения.
- Регулярно просматривайте и обновляйте разрешения для минимизации воздействия.
Используйте конвейеры YAML:
- Конвейеры YAML предлагают следующие преимущества с точки зрения безопасности:
- Явно определите шаги и зависимости конвейера.
- Управление версиями для определений конвейера.
- Очистить видимость конфигурации конвейера.
- Снижение риска случайной неправильной настройки.
- Запросы на проверку кода и запросы на вытягивание:
- Обрабатывать конвейеры YAML как любой другой код.
- Принудительное применение запросов на вытягивание для объединения изменений, чтобы предотвратить вредоносные действия.
- Используйте политики ветви для настройки этого процесса проверки.
- Управление доступом к ресурсам:
- Владельцы ресурсов определяют, может ли конвейер YAML получить доступ к определенным ресурсам.
- Эта функция безопасности предотвращает атаки, такие как кража другого репозитория.
- Утверждения и проверки обеспечивают управление доступом для каждого запуска конвейера.
- Параметры среды выполнения:
- Рассмотрите возможность переноса существующих конвейеров в формат YAML для повышения безопасности и удобства обслуживания.
- Конвейеры YAML предлагают следующие преимущества с точки зрения безопасности:
Безопасность — это текущий процесс, а регулярные оценки и обновления являются важными. Конвейеры YAML обеспечивают оптимальную безопасность для azure Pipelines.
В следующих статьях описаны рекомендации по разработке безопасного конвейера на основе YAML: