Контроль безопасности v3: Безопасность DevOps

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

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

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS версии 3.2.1
16.10, 16.14 СА-15 6.5, 12.2

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

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

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

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

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

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

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

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

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

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

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS версии 3.2.1
16.4, 16.6, 16.11 СА-12, СА-15 6.3, 6.5

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

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

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

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

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

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

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

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

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

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

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS версии 3.2.1
16.7 СМ-2, СМ-6, АС-2, АС-3, АС-6 2.2, 6.3, 7.1

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

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

Руководство по Azure. В рамках применения Azure Security Benchmark к элементам управления безопасностью инфраструктуры DevOps определите приоритеты следующих элементов управления:

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

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

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

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

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS версии 3.2.1
16.12 СА-11 6.3, 6.5

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

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

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

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

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

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

Идентификаторы CIS Controls v8 Идентификатор (-ы) NIST SP 800-53 r4 Идентификаторы PCI-DSS версии 3.2.1
16.12 СА-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 версии 3.2.1
7.5, 7.6, 7.7, 16.1, 16.7 СМ-2, СМ-6, АС-2, АС-3, АС-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 версии 3.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 "Ведение журнала и обнаружение угроз" для реализации средств управления ведением журнала и мониторинга для рабочей нагрузки.

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

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