Управление безопасностью версии 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, такие как злонамеренное внедрение кода через незащищенный репозиторий артефактов с неправильно настроенной политикой управления доступом.
Если использовать средство моделирования угроз невозможно, необходимо как минимум реализовать процесс моделирования угроз на основе анкеты с целью выявления угроз.
Результаты моделирования угроз или результаты анализа должны регистрироваться и обновляться при значительных изменениях, влияющих на безопасность, в приложении или в характере угроз.
Реализация и дополнительный контекст:
- Обзор моделирования угроз
- Анализ угроз для приложения (включая метод STRIDE и метод на основе анкеты)
- Шаблон Azure — набор элементов для модели угроз безопасности Майкрософт
Заинтересованные лица по безопасности клиентов (дополнительные сведения):
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 можно использовать сторонние расширения для реализации аналогичных средств управления с целью инвентаризации, анализа и исправления программных компонентов сторонних разработчиков и их уязвимостей.
Реализация и дополнительный контекст:
- Граф зависимостей GitHub
- GitHub Dependabot
- Обнаружение уязвимых образов контейнеров в рабочих процессах CI/CD
- Azure DevOps Marketplace — безопасность цепочки поставки
Заинтересованные лица по безопасности клиентов (дополнительные сведения):
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, включая безопасность сети, управление состоянием и уязвимостями, а также безопасность конечных точек, для защиты среды.
Реализация и дополнительный контекст:
- Общие сведения о средствах управления DevSecOps — безопасные конвейеры
- Защита организации GitHub
- Конвейер Azure DevOps — вопросы безопасности размещенного агента Майкрософт
Заинтересованные лица по безопасности клиентов (дополнительные сведения):
- Безопасность приложений и DevSecOps
- Управление состоянием
- Безопасность инфраструктуры и конечных точек
- Архитектура безопасности
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 для проверки учетных данных в исходном коде.
Реализация и дополнительный контекст:
- GitHub CodeQL
- Анализатор двоичных данных BinSkim
- Проверка учетных данных 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 внедрите аналогичные средства управления безопасностью, которые будут смещаться влево перед развертыванием.
Реализация и дополнительный контекст:
- Обзор Общей коллекции образов
- Применение рекомендаций по оценке уязвимостей от Azure Defender для облака
- Рекомендации по безопасности для контейнера Azure
- Azure Defender для реестров контейнеров
Заинтересованные лица по безопасности клиентов (дополнительные сведения):
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 "Ведение журнала и обнаружение угроз" для реализации средств управления ведением журнала и мониторинга для рабочей нагрузки.
Реализация и дополнительный контекст:
Заинтересованные лица по безопасности клиентов (дополнительные сведения):