Сопоставление образов контейнеров из кода в облако
Если уязвимость определяется в образе контейнера, хранящейся в реестре контейнеров или работающем в кластере Kubernetes, может быть трудно выполнить трассировку обратно в конвейер CI/CD, который сначала создал образ контейнера и определите владельца исправления разработчика. С помощью возможностей безопасности DevOps в Управление состоянием безопасности облака Microsoft Defender (CSPM) вы можете сопоставить облачные приложения из кода в облако, чтобы легко запустить рабочие процессы исправления разработчиков и сократить время на исправление уязвимостей в образах контейнеров.
Необходимые компоненты
Учетная запись Azure с Defender для облака подключена. Если у вас еще нет учетной записи Azure, создайте ее бесплатно.
Для Azure DevOps:
Расширение Microsoft Security DevOps (MSDO) должно быть установлено в организации Azure DevOps.
Убедитесь, что расширение Microsoft Defender для DevOps является общим и установлено во всех подключенных организациях Azure DevOps. Для недавно подключенных соединителей это будет сделано автоматически. Это расширение автоматически внедряет задачи во все Azure Pipelines для сбора данных для сопоставления контейнеров.
Необходимо использовать конвейеры YAML, так как классические конвейеры больше не поддерживаются.
Для GitHub:
Действие Microsoft Security DevOps (MSDO) должно быть настроено в рабочих процессах GitHub.
Рабочий процесс GitHub должен иметь разрешения "id-token: write" для федерации с Defender для облака. Пример см . в этом YAML.
Включен CSPM в Защитнике.
Образы контейнеров должны быть созданы с помощью Docker , и клиент Docker должен иметь доступ к серверу Docker во время сборки.
Сопоставление образа контейнера из конвейеров Azure DevOps с реестром контейнеров
После создания образа контейнера в конвейере CI/CD Azure DevOps и отправки его в реестр см. в сопоставлении с помощью Cloud Security Explorer:
Войдите на портал Azure.
Перейдите в Microsoft Defender для облака> Cloud Security Explorer. Для отображения сопоставления образов контейнера в Cloud Security Explorer может потребоваться не более 4 часов.
Чтобы просмотреть базовое сопоставление, выберите образы+>>контейнеров, отправленные репозиториями кода.
(Необязательно) Выберите "+ по образам контейнеров", чтобы добавить другие фильтры в запрос, например наличие уязвимостей для фильтрации только образов контейнеров с помощью CVEs.
После выполнения запроса вы увидите сопоставление между реестром контейнеров и конвейером Azure DevOps. Выберите ... рядом с краем, чтобы просмотреть дополнительные сведения о том, где запущен конвейер Azure DevOps.
Ниже приведен пример расширенного запроса, который использует сопоставление образов контейнеров. Начиная с рабочей нагрузки Kubernetes, которая предоставляется в Интернете, можно отслеживать все образы контейнеров с высоким уровнем серьезности CVEs обратно в конвейер Azure DevOps, где был создан образ контейнера, что позволяет специалисту по безопасности начать рабочий процесс исправления разработчика.
Примечание.
Если у вашей организации Azure DevOps есть соединитель Azure DevOps, созданный до 15 ноября 2023 г., перейдите к разделу "Общие расширения параметров>организации" и установите декоратор сопоставления образов > контейнера. Если расширение не отображается в организации, заполните следующую форму.
Сопоставление образа контейнера из рабочих процессов GitHub с реестром контейнеров
Убедитесь, что соединитель GitHub подключен к Defender для облака.
Выполните следующий рабочий процесс MSDO:
name: Build and Map Container Image
on: [push, workflow_dispatch]
jobs:
build:
runs-on: ubuntu-latest
# Set Permissions
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.8'
# Set Authentication to Container Registry of Choice.
# The example below is for Azure Container Registry. Amazon Elastic Container Registry and Google Artifact Registry are also supported.
- name: Azure Container Registry Login
uses: Azure/docker-login@v1
with:
login-server: <containerRegistryLoginServer>
username: ${{ secrets.ACR_USERNAME }}
password: ${{ secrets.ACR_PASSWORD }}
# Build and Push Image
- name: Build and Push the Docker image
uses: docker/build-push-action@v2
with:
push: true
tags: ${{ secrets.IMAGE_TAG }}
file: Dockerfile
# Run Mapping Tool in MSDO
- name: Run Microsoft Security DevOps Analysis
uses: microsoft/security-devops-action@latest
id: msdo
После создания образа контейнера в рабочем процессе GitHub и отправке его в реестр см. в сопоставлении с помощью Cloud Security Explorer:
Войдите на портал Azure.
Перейдите в Microsoft Defender для облака> Cloud Security Explorer. Для отображения сопоставления образов контейнера в Cloud Security Explorer может потребоваться не более 4 часов.
Чтобы просмотреть базовое сопоставление, выберите образы+>>контейнеров, отправленные репозиториями кода.
(Необязательно) Выберите "+ по образам контейнеров", чтобы добавить другие фильтры в запрос, например наличие уязвимостей для фильтрации только образов контейнеров с помощью CVEs.
После выполнения запроса вы увидите сопоставление между реестром контейнеров и рабочим процессом GitHub. Выберите ... рядом с краем, чтобы просмотреть дополнительные сведения о том, где был запущен рабочий процесс GitHub.
Ниже приведен пример расширенного запроса, который использует сопоставление образов контейнеров. Начиная с рабочей нагрузки Kubernetes, которая предоставляется в Интернете, вы можете отслеживать все образы контейнеров с высоким уровнем серьезности CVEs обратно в репозиторий GitHub, где был создан образ контейнера, что позволяет специалисту по безопасности начать рабочий процесс исправления разработчика.
Следующие шаги
- Дополнительные сведения о безопасности DevOps см. в Defender для облака.