Aller au contenu

Azure DevOps


Des étapes d'analyse peuvent être ajoutées à vos pipelines Azure DevOps en installant l'extension BoostSecurity.

Pour ce faire :

  1. Accédez à l'Marketplace.
  2. Cliquez sur Obtenir gratuitement.
  3. Sélectionnez votre organisation et cliquez sur Installer.

De plus, il est nécessaire de rendre le Boost API Token disponible dans vos Variables. Si vous n'avez pas encore créé de jeton API, vous pouvez en créer un sur la page Paramètres du tableau de bord.

Une fois tout prêt, une étape d'analyse peut être ajoutée, par exemple :

  - stage: Run Security Scanners
    variables:
      - group: boostsecurity
      - name: boostApiToken
        value: $[variables.BOOST_API_TOKEN]
    jobs:
      - job:
        steps:
          - task: BoostSecurityScan@1
            inputs:
              apiToken: $(boostApiToken)
              registryModule: boostsecurityio/semgrep

BoostSecurityScan est la tâche de pipeline BoostSecurity permettant d'exécuter les analyseurs et de téléverser les résultats vers le service BoostSecurity.

L'entrée apiToken configure la clé API pour authentifier le scanner.

Le mot-clé registryModule spécifie le analyseur à utiliser. L'exemple ci-dessus configure l'analyseur Semgrep avec l'ID boostsecurityio/semgrep.


Azure DevOps pour l'analyse du code source


Cette configuration convient aux modules d'analyse pour le SAST ou pour l'inventaire SBOM à partir du code source.

Remarque : Même si le pipeline est configuré pour exécuter l'analyseur SBOM sur les pull requests, l'analyseur SBOM ne collecte pas l'inventaire des composants sur les pull requests.

  - stage: Run Security Scanners
    variables:
      - group: boostsecurity
      - name: boostApiToken
        value: $[variables.BOOST_API_TOKEN]
      - name: isMainBranch
        value: $[eq(variables['Build.SourceBranch'], 'refs/heads/main')]
    jobs:
      - job:
        steps:
          - task: BoostSecurityScan@1
            inputs:
              apiToken: $(boostApiToken)
              registryModule: boostsecurityio/semgrep
          - task: BoostSecurityScan@1
            condition: eq(variables.isMainBranch, 'true')
            inputs:
              apiToken: $(boostApiToken)
              registryModule: boostsecurityio/trivy-sbom

Azure DevOps pour l'analyse des artefacts générés


Cette configuration convient aux analyseurs qui analysent des artefacts générés par le processus de build. Par exemple, les analyseurs qui génèrent des SBOM à partir d'images conteneurs ou qui recherchent des vulnérabilités doivent d'abord générer l'image conteneur.

Ajoutez la section relative au analyseur BoostSecurity à votre pipeline de build, par exemple :

  - stage: Build Step
    variables:
      - group: boostsecurity
      - name: boostApiToken
        value: $[variables.BOOST_API_TOKEN]
    jobs:
      - job:
        steps:
          - task: Bash@3
            displayName: Build Image
            inputs:
              targetType: "inline"
              script: |
                docker build . -t acme-analytics
          - task: BoostSecurityScan@1
            env:
              BOOST_IMAGE_NAME: acme-analytics  # définir le nom de l'image à analyser
            inputs:
              apiToken: $(boostApiToken)
              registryModule: boostsecurityio/trivy-image

Dans l'exemple ci‑dessus, le nom de l'image conteneur défini dans la variable d'environnement BOOST_IMAGE_NAME est statique. Si le nom de votre image doit être créé dynamiquement, vous pouvez insérer une étape avant l'étape d'analyse pour définir la variable d'environnement. Par exemple, remplacez :

  steps:
    - task: Bash@3
      displayName: Build Image
      inputs:
        targetType: "inline"
        script: |
          docker build . -t acme-analytics
    - task: BoostSecurityScan@1
      env:
        BOOST_IMAGE_NAME: acme-analytics  # définir le nom de l'image à analyser
      inputs:
        apiToken: $(boostApiToken)
        registryModule: boostsecurityio/trivy-image
par
  steps:
    - task: Bash@3
      displayName: Build Image
      inputs:
        targetType: "inline"
        script: |
          docker build . -t acme-analytics
          echo "##vso[task.setvariable variable=BOOST_IMAGE_NAME]my_image_name_and_tag"
    - task: BoostSecurityScan@1
      inputs:
        apiToken: $(boostApiToken)
        registryModule: boostsecurityio/trivy-image

Note

L'étape task.setvariable définit la variable d'environnement, et la clé env est supprimée de l'étape BoostSecurityScan.