Поделиться через


Защита 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 обеспечивают оптимальную безопасность для azure Pipelines.

В следующих статьях описаны рекомендации по разработке безопасного конвейера на основе YAML: