Сопоставление образов контейнеров из кода в облако
Если уязвимость определяется в образе контейнера, хранящейся в реестре контейнеров или работающем в кластере Kubernetes, может быть трудно выполнить трассировку обратно в конвейер CI/CD, который сначала создал образ контейнера и определите владельца исправления разработчика. С помощью возможностей безопасности DevOps в Управление состоянием безопасности облака Microsoft Defender (CSPM) вы можете сопоставить облачные приложения из кода в облако, чтобы легко запустить рабочие процессы исправления разработчиков и сократить время на исправление уязвимостей в образах контейнеров.
Необходимые компоненты
Учетная запись Azure с Defender для облака подключена. Если у вас еще нет учетной записи Azure, создайте ее бесплатно.
Среда Azure DevOps или GitHub , подключенная к Microsoft Defender, автоматически предоставляется и устанавливается во всех подключенных организациях Azure DevOps. Это автоматически внедряет задачи во все Azure Pipelines для сбора данных для сопоставления контейнеров.
Для Azure DevOps расширение Microsoft Security DevOps (MSDO), установленное в организации Azure DevOps.
Для 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 для облака.