Udostępnij za pośrednictwem


Mapuj obrazy kontenerów z kodu na chmurę

Gdy luka w zabezpieczeniach jest identyfikowana w obrazie kontenera przechowywanym w rejestrze kontenerów lub uruchomionym w klastrze Kubernetes, może to być trudne dla praktyków zabezpieczeń śledzenia z powrotem do potoku ciągłej integracji/ciągłego wdrażania, który po raz pierwszy skompilował obraz kontenera i zidentyfikował właściciela korygowania deweloperów. Dzięki funkcjom zabezpieczeń metodyki DevOps w Zarządzanie Stanem Zabezpieczeń Chmury w usłudze Microsoft Defender (CSPM) możesz mapować aplikacje natywne dla chmury z kodu na chmurę, aby łatwo rozpocząć przepływy pracy korygowania deweloperów i skrócić czas korygowania luk w zabezpieczeniach obrazów kontenerów.

Wymagania wstępne

  • Konto platformy Azure z dołączonym Defender dla Chmury. Jeśli nie masz jeszcze konta platformy Azure, utwórz je bezpłatnie.

  • Środowisko usługi Azure DevOps lub GitHub dołączone do usługi Microsoft Defender jest automatycznie udostępniane i instalowane we wszystkich połączonych organizacjach usługi Azure DevOps. Spowoduje to automatyczne wstrzyknięcie zadań do wszystkich usług Azure Pipelines w celu zbierania danych na potrzeby mapowania kontenerów.

  • W przypadku usługi Azure DevOps rozszerzenie Microsoft Security DevOps (MSDO) zainstalowane w organizacji usługi Azure DevOps.

  • W przypadku usługi GitHub akcja Microsoft Security DevOps (MSDO) skonfigurowana w repozytoriach GitHub. Ponadto przepływ pracy usługi GitHub musi mieć uprawnienia "id-token: write" dla federacji z Defender dla Chmury. Aby zapoznać się z przykładem, zobacz ten kod YAML.

  • CSPM w usłudze Defender włączone.

  • Obrazy kontenerów muszą być kompilowane przy użyciu platformy Docker , a klient platformy Docker musi mieć dostęp do serwera platformy Docker podczas kompilacji.

Mapuj obraz kontenera z potoków usługi Azure DevOps na rejestr kontenerów

Po utworzeniu obrazu kontenera w potoku ciągłej integracji/ciągłego wdrażania usługi Azure DevOps i wypchnięciu go do rejestru zobacz mapowanie przy użyciu Eksploratora zabezpieczeń w chmurze:

  1. Zaloguj się w witrynie Azure Portal.

  2. Przejdź do pozycji Microsoft Defender dla Chmury> Cloud Security Explorer. Wyświetlenie mapowania obrazu kontenera w Eksploratorze zabezpieczeń w chmurze może potrwać maksymalnie 4 godziny.

  3. Aby wyświetlić podstawowe mapowanie, wybierz pozycję Obrazy+>>kontenerów wypychane według repozytoriów kodu.

    Zrzut ekranu przedstawiający sposób znajdowania podstawowego mapowania kontenerów.

  4. (Opcjonalnie) Wybierz pozycję + według obrazów kontenerów, aby dodać inne filtry do zapytania, takie jak Ma luki w zabezpieczeniach w celu filtrowania tylko obrazów kontenerów za pomocą cvEs.

  5. Po uruchomieniu zapytania zobaczysz mapowanie między rejestrem kontenerów i potokiem usługi Azure DevOps. Wybierz pozycję ... obok krawędzi, aby wyświetlić więcej szczegółów na temat uruchamiania potoku usługi Azure DevOps.

    Zrzut ekranu przedstawiający zaawansowane zapytanie dotyczące wyników mapowania kontenerów.

Poniżej przedstawiono przykład zaawansowanego zapytania, które korzysta z mapowania obrazów kontenera. Począwszy od obciążenia Platformy Kubernetes uwidocznionego w Internecie, można śledzić wszystkie obrazy kontenerów o wysokiej ważności CVEs z powrotem do potoku usługi Azure DevOps, w którym utworzono obraz kontenera, umożliwiając praktykom zabezpieczeń rozpoczęcie przepływu pracy korygowania deweloperów.

Zrzut ekranu przedstawiający podstawowe wyniki mapowania kontenera.

Uwaga

Jeśli Twoja organizacja usługi Azure DevOps miała łącznik usługi Azure DevOps utworzony przed 15 listopada 2023 r., przejdź do obszaru Rozszerzenia > ustawień>organizacji Udostępnione i zainstaluj dekorator mapowania obrazów kontenera. Jeśli rozszerzenie udostępnione twojej organizacji nie jest widoczne, wypełnij następujący formularz.

Mapuj obraz kontenera z przepływów pracy usługi GitHub na rejestr kontenerów

  1. Upewnij się, że dołączono łącznik GitHub do Defender dla Chmury.

  2. Uruchom następujący przepływ pracy 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

Po utworzeniu obrazu kontenera w przepływie pracy usługi GitHub i wypchnięciu go do rejestru zobacz mapowanie przy użyciu Eksploratora zabezpieczeń w chmurze:

  1. Zaloguj się w witrynie Azure Portal.

  2. Przejdź do pozycji Microsoft Defender dla Chmury> Cloud Security Explorer. Wyświetlenie mapowania obrazu kontenera w Eksploratorze zabezpieczeń w chmurze może potrwać maksymalnie 4 godziny.

  3. Aby wyświetlić podstawowe mapowanie, wybierz pozycję Obrazy+>>kontenerów wypychane według repozytoriów kodu.

    Zrzut ekranu przedstawiający podstawowe mapowanie kontenerów.

  4. (Opcjonalnie) Wybierz pozycję + według obrazów kontenerów, aby dodać inne filtry do zapytania, takie jak Ma luki w zabezpieczeniach w celu filtrowania tylko obrazów kontenerów za pomocą cvEs.

  5. Po uruchomieniu zapytania zobaczysz mapowanie między rejestrem kontenerów i przepływem pracy usługi GitHub. Wybierz pozycję ... obok krawędzi, aby wyświetlić więcej szczegółów na temat tego, gdzie został uruchomiony przepływ pracy usługi GitHub.

Poniżej przedstawiono przykład zaawansowanego zapytania, które korzysta z mapowania obrazów kontenera. Począwszy od obciążenia Kubernetes uwidocznionego w Internecie, można śledzić wszystkie obrazy kontenerów o wysokiej ważności CVEs z powrotem do repozytorium GitHub, w którym został skompilowany obraz kontenera, umożliwiając praktykom zabezpieczeń rozpoczęcie przepływu pracy korygowania deweloperów.

Zrzut ekranu przedstawiający podstawowe wyniki mapowania kontenera.

Następne kroki