Управление безопасностью версии 3: безопасность DevOps

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

DS-1. Проведение моделирования угроз

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS v3.2.1
16.10, 16.14 SA-15 6.5, 12.2

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

  • Обеспечьте безопасность приложений и служб во время выполнения в рабочей среде.
  • Защитите артефакты, базовый конвейер CI/CD и другой инструментарий среды, используемый для сборки, тестирования и развертывания.

Моделирование угроз должно включать в себя по крайней мере следующие аспекты:

  • Определите требования к безопасности приложения. Обеспечьте надлежащее выполнение этих требований при моделировании угроз.
  • Проанализируйте компоненты приложения, подключения к данным, а также их взаимосвязи. Этот анализ также включает в себя восходящие и нисходящие подключения за пределами области приложения.
  • Сформируйте список потенциальных угроз и векторов атаки, которые могут быть направлены на компоненты приложения, подключения к данным, а также вышестоящие и подчиненные службы.
  • Определите применимые средства безопасности, которые можно использовать для устранения перечисленных угроз, а также бреши в этих средствах (например, уязвимости системы безопасности), которые могут потребовать дополнительных планов действий.
  • Составьте список и спроектируйте средства контроля для устранения обнаруженных уязвимостей.

Руководство для Azure. Используйте такие средства, как средство моделирования угроз Майкрософт с встроенным шаблоном модели угроз Azure, для управления процессом моделирования угроз. Используйте модель STRIDE для составления списка как внутренних, так и внешних угроз, а также для определения применимых средств контроля. Процесс моделирования угроз должен включать в себя сценарии угроз в рамках процесса DevOps, такие как злонамеренное внедрение кода через незащищенный репозиторий артефактов с неправильно настроенной политикой управления доступом.

Если использовать средство моделирования угроз невозможно, необходимо как минимум реализовать процесс моделирования угроз на основе анкеты с целью выявления угроз.

Результаты моделирования угроз или результаты анализа должны регистрироваться и обновляться при значительных изменениях, влияющих на безопасность, в приложении или в характере угроз.

Реализация и дополнительный контекст:

Заинтересованные лица по безопасности клиентов (дополнительные сведения):

DS-2. Обеспечение безопасности цепочки поставок программного обеспечения

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS v3.2.1
16.4, 16.6, 16.11 SA-12, SA-15 6.3, 6.5

Принцип безопасности. Убедитесь в том, что жизненный цикл разработки программного обеспечения (SDLC) или процесс предприятия включают в себя набор средств управления безопасностью для контроля собственных и сторонних компонентов ПО (в том числе защищаемых законодательством об интеллектуальной собственности и с открытым кодом), от которых ваши приложения имеют зависимости. Определите критерии ограничения, чтобы предотвратить интеграцию уязвимых или вредоносных компонентов и их развертывание в среде.

Средства управления безопасностью цепочки поставки ПО должны охватывать по крайней мере следующие аспекты:

  • определение вышестоящих зависимостей, необходимых на этапах разработки, сборки, интеграции и развертывания;
  • инвентаризация и отслеживание внутренних и сторонних программных компонентов на наличие известных уязвимостей при наличии исправления в вышестоящей системе;
  • оценка наличия уязвимостей и вредоносных программ в программных компонентах с помощью статического и динамического тестирования приложений на наличие неизвестных уязвимостей;
  • устранение уязвимостей и вредоносных программ с помощью соответствующего подхода. Это может быть локальное или вышестоящее исправление исходного кода, исключение компонентов и (или) применение компенсирующих элементов управления, если прямое устранение невозможно.

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

Руководство Azure. Для платформы GitHub обеспечьте безопасность цепочки поставки программного обеспечения с помощью указанных ниже возможностей или средств расширенной безопасности GitHub или с помощью встроенных функций GitHub.

  • Используйте граф зависимостей для сканирования, инвентаризации и выявления всех зависимостей проекта и связанных уязвимостей посредством базы данных рекомендаций.
  • Используйте Dependabot, чтобы обеспечить отслеживание уязвимых зависимостей и принятие надлежащих мер, а также автоматическую синхронизацию репозитория с последними выпусками пакетов и приложений, от которых он зависит.
  • Используйте функцию сканирования машинного кода в GitHub для сканирования исходного кода из внешнего источника.
  • Используйте Azure Defender для облака, чтобы интегрировать оценку уязвимостей для образа контейнера в рабочий процесс CI/CD.

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

Реализация и дополнительный контекст:

Заинтересованные лица по безопасности клиентов (дополнительные сведения):

DS-3. Защита инфраструктуры DevOps

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS v3.2.1
16,7 CM-2, CM-6, AC-2, AC-3, AC-6 2.2, 6.3, 7.1

Принцип безопасности. Убедитесь в том, что инфраструктура и конвейер DevOps соответствуют рекомендациям по обеспечению безопасности в разных средах, включая этапы сборки, тестирования и эксплуатации. Обычно сюда входят средства управления безопасностью для следующих областей:

  • репозитории артефактов, в которых хранятся исходный код, собранные пакеты и образы, артефакты проекта и бизнес-данные.
  • серверы, службы и инструментарий, в которых размещены конвейеры CI/CD;
  • конфигурация конвейера CI/CD.

Руководство Azure. В рамках применения контрольного уровня безопасности Azure к средствам управления безопасностью инфраструктуры DevOps следует назначить приоритеты указанным ниже средствам управления.

  • Защитите артефакты и базовую среду, чтобы гарантировать, что конвейеры CI/CD не открыты для внедрения вредоносного кода. Например, просмотрите конвейер CI/CD, чтобы выявить ошибки в основных областях Azure DevOps, таких как организация, проекты, пользователи, конвейеры (сборка & выпуск), подключения и агент сборки, чтобы выявить любые неправильные настройки, такие как открытый доступ, ненадежная проверка подлинности, небезопасная настройка подключения и т. д. Для GitHub используйте аналогичные средства управления для защиты уровней разрешений организации.
  • Настройте политики разрешений и прав для удостоверений и ролей в Azure AD, собственных службах и средствах CI/CD в конвейере, чтобы обеспечить авторизацию изменений в конвейерах.
  • Старайтесь не предоставлять постоянный (фиксированный) привилегированный доступ учетным записям пользователей, например разработчиков или тест-инженеров, с помощью таких функций, как управляемые удостоверения Azure или JIT-доступ.
  • Удалите ключи, учетные данные и секреты из кода и скриптов, используемых в заданиях рабочего процесса CI/CD, и храните их в хранилище ключей или Azure Key Vault.
  • Если вы запускаете собственные агенты сборки и развертывания, используйте средства управления контрольного уровня безопасности Azure, включая безопасность сети, управление состоянием и уязвимостями, а также безопасность конечных точек, для защиты среды.

Реализация и дополнительный контекст:

Заинтересованные лица по безопасности клиентов (дополнительные сведения):

DS-4. Интеграция статического тестирования безопасности приложений в конвейере DevOps

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS v3.2.1
16.12 SA-11 6.3, 6.5

Принцип безопасности. Убедитесь в том, что статическое тестирование безопасности приложений (SAST) входит в состав средств управления ограничением в рабочем процессе CI/CD. Ограничение можно установить на основе результатов тестирования, чтобы предотвратить фиксацию уязвимых пакетов в репозитории, их включение в пакеты или развертывание в рабочей среде.

Руководство Azure. Интегрируйте SAST в конвейер, чтобы исходный код можно было сканировать автоматически в рамках рабочего процесса CI/CD. Конвейер Azure DevOps или GitHub позволяет интегрировать указанные ниже средства и сторонние средства SAST в рабочий процесс.

  • GitHub CodeQL для анализа исходного кода.
  • Анализатор двоичных данных Microsoft BinSkim для Windows, UNIX и Linux.
  • Средство проверки учетных данных Azure DevOps и встроенная проверка секретов GitHub для проверки учетных данных в исходном коде.

Реализация и дополнительный контекст:

Заинтересованные лица по безопасности клиентов (дополнительные сведения):

DS-5. Интеграция динамического тестирования безопасности приложений в конвейер DevOps

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS v3.2.1
16.12 SA-11 6.3, 6.5

Принцип безопасности. Убедитесь в том, что динамическое тестирование безопасности приложений (DAST) входит в состав средств управления ограничением в рабочем процессе CI/CD. Ограничение можно установить на основе результатов тестирования, чтобы предотвратить внедрение уязвимостей в пакеты или их развертывание в рабочей среде.

Руководство Azure. Интегрируйте DAST в конвейер, чтобы приложение среды выполнения можно было тестировать автоматически в рамках рабочего процесса CI/CD, настроенного в Azure DevOps или GitHub. Автоматизированное тестирование на проникновение (с ручной проверкой) также должно быть частью DAST.

Конвейер Azure DevOps или GitHub поддерживает интеграцию сторонних средств DAST в рабочий процесс CI/CD.

Реализация и дополнительный контекст:

Заинтересованные лица по безопасности клиентов (дополнительные сведения):

DS-6. Обеспечение безопасности рабочей нагрузки в течение всего жизненного цикла DevOps

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS v3.2.1
7.5, 7.6, 7.7, 16.1, 16.7 CM-2, CM-6, AC-2, AC-3, AC-6 6.1, 6.2, 6.3

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

  • Автоматизируйте развертывание с помощью Azure или средств сторонних производителей в рабочем процессе CI/CD, управление инфраструктурой (инфраструктура как кода) и тестирование, чтобы сократить уязвимую зону и число ошибок по причине человеческого фактора.
  • Обеспечьте защиту виртуальных машин, образов контейнеров и других артефактов от вредоносных действий.
  • Проверяйте артефакты рабочей нагрузки (иными словами, образы контейнеров, зависимости, проверки SAST и DAST) перед развертыванием в рабочем процессе CI/CD.
  • Разверните функции оценки уязвимостей и обнаружения угроз в рабочей среде и постоянно используйте эти функции во время выполнения.

Руководство Azure: руководство для виртуальных машин Azure.

  • Используя Общую коллекцию образов Azure, вы можете делиться своими образами с другими пользователями, субъектами-службами или группами AD в вашей организации и управлять доступом к этим образам. Используйте управление доступом на основе ролей Azure (Azure RBAC), чтобы доступ к пользовательским образам был только у полномочных пользователей.
  • Определите защищенные конфигурационные базы для виртуальных машин, чтобы исключить ненужные учетные данные, разрешения и пакеты. Используйте настраиваемые образы, шаблон Azure Resource Manager и (или) гостевую конфигурацию Политики Azure для развертывания и принудительного применения этих конфигурационных баз.

Руководство по службам контейнеров Azure:

  • Используйте Реестр контейнеров Azure (ACR), чтобы создать частный реестр контейнеров, в котором можно ограничить доступ с помощью Azure RBAC так, чтобы только разрешенные службы и учетные записи могли получать доступ к контейнерам в частном реестре.
  • Используйте Defender для Реестра контейнеров Azure с целью оценки уязвимостей образов в частном Реестре контейнеров Azure. Кроме того, вы можете использовать Azure Defender для облака, чтобы интегрировать проверку образов контейнеров в рабочий процесс CI/CD.

Для бессерверных служб Azure внедрите аналогичные средства управления безопасностью, которые будут смещаться влево перед развертыванием.

Реализация и дополнительный контекст:

Заинтересованные лица по безопасности клиентов (дополнительные сведения):

DS-7. Включение ведения журнала и мониторинга в DevOps

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS v3.2.1
8.2, 8.5, 8.9, 8.11 AU-3, AU-6, AU-12, SI-4 10.1, 10.2, 10.3, 10.6

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

Руководство Azure. Включите и настройте возможности ведения журнала аудита в нерабочих средах и средах инструментария CI/CD (например, Azure DevOps и GitHub), используемых в процессе DevOps.

События заданий сборки, тестирования и развертывания из процесса CI/CD Azure DevOps и GitHub также должны отслеживаться для выявления любых исключительных результатов.

Принимайте указанные выше журналы и события в Azure Sentinel или других средствах SIEM, используя поток ведения журнала или интерфейс API, чтобы обеспечить надлежащее отслеживание и рассмотрение инцидентов безопасности.

Следуйте рекомендациям контрольного уровня безопасности Azure "Ведение журнала и обнаружение угроз" для реализации средств управления ведением журнала и мониторинга для рабочей нагрузки.

Реализация и дополнительный контекст:

Заинтересованные лица по безопасности клиентов (дополнительные сведения):