Dela via


Integrera Defender för molnet CLI med CI/CD-pipelines

Defender för molnet Kommandoradsgränssnitt (CLI) är ett program som du kan använda i CI/CD-pipelines (kontinuerlig integrering och kontinuerlig distribution). Den kör statiska analysverktyg och ansluter kod till molntjänster. Du kan använda Defender för molnet CLI i alla byggprocesser för att söka efter säkerhetsrisker med inbyggda säkerhetsskannrar. Genomsökningsresultatet skickas till Defender för molnet-portalen. Cloud Security Explorer kan sedan komma åt containeravbildningen och dess sårbarheter.

Förutsättningar

  • En Azure-prenumeration med Defender för molnet registrerad. Om du inte redan har ett Azure-konto skapar du ett kostnadsfritt.

  • Ett av följande CI/CD-pipelineverktyg: Jenkins, BitBucket Pipelines, Google Cloud Build, Bamboo, CircleCI, Travis CI, TeamCity, Oracle DevOps services, AWS CodeBuild

  • För Azure DevOps är Microsoft Security DevOps-tillägget (MSDO) installerat i Azure DevOps-organisationen.

  • Defender CSPM aktiverat.

  • Behörighet som säkerhetsadministratör för att skapa klient-ID och hemlighet.

Ställ in

I följande avsnitt förklarar vi hur du hämtar klient-ID och hemligheter, uppdaterar CI/CD-pipelineskriptet och lägger till miljövariabler i CI/CD-pipelinen.

Hämta API-token

För att säkerhetsadministratören i Defender för molnet ska kunna skicka säkerhetsdata från Defender för molnet CLI till Defender för molnet serverdel måste först generera en API-nyckel från Defender för molnet för autentisering.

När token genereras väljer säkerhetsadministratören ett prenumerationsomfång som ska associeras med token. Data som "pushas" till Defender för molnet från den här token är begränsade till prenumerationen som token är associerad med. Dessa API-token är oföränderliga och kan bara genereras/tas bort.

Därifrån måste säkerhetsadministratören på ett säkert sätt skicka token till utvecklare för att läggas till i CI/CD-pipelinen.

  1. Logga in på Azure-portalen.

  2. Gå till Microsoft Defender för molnet> Hantera>miljöinställningar>för integreringar.

    Skärmbild av inställningar för integreringsmiljön i Defender för molnet.

  3. Välj Lägg till integrering och välj sedan DevOps-inmatning.

    Skärmbild av det nya devops-inmatningsalternativet.

  4. Ange ett beskrivande namn för token, den valda klientorganisationen lagrar tokeninformationen. Klienthemligheten genereras när du anger en beskrivning av hemligheten och förfallodatumet.

    Skärmbild av att lägga till DevOps-inmatningsintegrering.

  5. Aktivera token i konfigurationen och skapa token.

    Skärmbild av hur du skapar DevOps-inmatning och skapande av token.

  6. Kopiera varje token. De kan inte redigeras eller hämtas när du har valt OK.

    Skärmbild av lyckad DevOps-inmatning som skapats.

  7. I tabellen Integreringar visas den nya inmatningen .

    Skärmbild av DevOps Integrations-tabellen med ny inmatning.

Uppdatera CI/CD-pipelineskriptet

Varje CI/CD-pipelineverktyg har olika syntax. Den här koden är ett exempel på en Bitbucket-pipeline:

image: atlassian/default-image:3
 
pipelines:
  default:
    - parallel:
      - step:
          name: 'MSDO trivy test'
          script:
            - curl -L -o ./msdo_linux.zip https://www.nuget.org/api/v2/package/Microsoft.Security.DevOps.Cli.linux-x64/
            - unzip ./msdo_linux.zip
            - chmod +x tools/guardian
            - chmod +x tools/Microsoft.Guardian.Cli
            - ls -lah .
            - tools/guardian init --force
            - tools/guardian run -t trivy --export-file ./ubuntu-test.sarif --publish-file-folder-path ./ubuntu-test.sarif            

Pipeline-variabler

När du har tagit emot token på ett säkert sätt måste utvecklaren konfigurera en miljövariabel för nyckeln. Miljövariabeln skickas till CLI via shell-skriptet som utvecklaren kan ta emot från curl eller manuellt kopiera shell-skriptet till lagringsplatsen.

Name Värde
GDN_PUSH_TOKEN_CLIENT_ID <Klient-ID>
GDN_PUSH_TOKEN_CLIENT_ID <Klient-ID>
GDN_PUSH_TOKEN_CLIENT_SECRET <Klienthemlighet>
GDN_PIPELINENAME bitbucket, jenkins, gcp, bambu, cirkel, travis, teamcity, oci, aws
GDN_PUSH_TOKEN_TENANT_ID <Klientorganisations-ID>

Granska resultaten i Cloud Security Explorer

  1. När du har kört pipelinen navigerar du igen till Microsoft Defender för molnet.

  2. I menyn Defender för molnet väljer du Cloud Security Explorer.

  3. Välj listrutan Välj resurstyper , välj DevOps och välj sedan Klar.

    Skärmbild av CI/CD-pipeline i Cloud Security Explorer.

  4. + Välj ikonen för att lägga till ett nytt sökvillkor.

    Skärmbild av ny sökning i Cloud Security Explorer.

  5. Välj listrutan Välj villkor. Välj sedan Data och välj sedan Push-meddelanden.

    Skärmbild av att välja villkoret Cloud Security Explorer.

  6. Välj listrutan Välj resurstyper. Välj sedan Containrar, sedan Containeravbildningar och välj sedan Klar.

    Skärmbild av att välja containeravbildningar i Cloud Security Explorer.

  7. Välj det omfång som valdes när integreringen skapades i miljöinställningarna.

    Skärmbild av att välja omfång för Cloud Security Explorer.

  8. Välj Sök.

    Skärmbild av sökning i Cloud Security Explorer.

  9. Se resultatet av pipeline-till-avbildningsmappning.

Korrelera med övervakade containrar

  1. I Cloud Security Explorer anger du följande fråga: CI/CD Pipeline ->Pipeline + Container Images ->Contained in + Container registers (group).

  2. Granska resursnamnen för att se containermappningen.