Aller au contenu

Pipelines GitLab


Activation de Boost advisor


Le Boost advisor vous permet de traiter votre arriéré de résultats plus facilement et plus rapidement. Grâce à lui, l'équipe AppSec peut lancer une remédiation depuis la vue des résultats de Boost.

Ce qui suit décrit comment le configurer sur GitLab.

  1. Accédez au dépôt boost.
  2. Modifiez le fichier .gitlab-ci.yml pour y inclure ce qui suit :

    include:
      - remote: "https://raw.githubusercontent.com/boostsecurityio/boostsec-scanner-gitlab/main/scanner.yml"
    
    boost-scanner:
      rules:
        - if: ($CI_PIPELINE_SOURCE == "trigger" && $BOOST_JOB_NAME != "boost-advisor")
      stage: build
      extends:
        - .boost_scan
      variables:
        BOOST_TRIGGER_ID: $BOOST_TRIGGER_ID
      script:
        - ${BOOST_EXE} scan trigger ${BOOST_CLI_ARGUMENTS:-}
    
    boost-advisor:
      rules:
        - if: ($CI_PIPELINE_SOURCE == "trigger" && $BOOST_JOB_NAME == "boost-advisor")
      stage: build
      image: ubuntu:latest
      variables:
        BOOST_API_KEY: $BOOST_API_TOKEN
      before_script:
        - apt-get update -qq && apt-get install -y -qq --no-install-recommends curl ca-certificates
      script:
        - curl -sSL https://assets.build.boostsecurity.io/boost-advisor/get-boost-advisor | sh
        - echo "$BOOST_ADVISOR_PAYLOAD_B64" | base64 -d | /tmp/boost-advisor/latest -
    
  3. Créez un jeton d'accès personnel sur le compte bot sous lequel l'advisor s'exécutera.

    1. Connectez-vous à GitLab en tant qu'utilisateur bot (doit disposer au minimum d'un accès Développeur au projet cible).

    2. Accédez à Paramètres utilisateur → Jetons d'accès.

    3. Définissez :

      • Nom du jeton : boost-advisor
      • Date d'expiration : selon la politique du client
      • Portées :
        • api — accès en lecture et écriture à l'API, incluant tous les groupes et projets, le registre de conteneurs et le registre de paquets.
        • write_repository — Accorde un accès en lecture-écriture aux dépôts des projets privés via Git-over-HTTP (sans passer par l'API).
    4. Cliquez sur Créer un jeton d'accès personnel et copiez la valeur.

  4. Ajoutez les secrets au dépôt .boost

    Accédez à Settings → Secrets and variables → Actions → New repository secret et créez :

    Nom du secret Valeur
    BOOST_SCM_TOKEN Jeton d'accès à l'espace de travail ou au dépôt
    BOOST_LLM_MODEL Identifiant du modèle LLM
    BOOST_LLM_KEY Clé API du fournisseur LLM

    Note

    BOOST_API_TOKEN est fourni automatiquement par l'Orchestration Zero Touch et n'a pas besoin d'être ajouté manuellement.


Analyses de sécurité manuelles


Des étapes d'analyse peuvent être ajoutées à votre pipeline GitLab. Une étape d'analyse peut être ajoutée par exemple avec :

include:
  - remote: 'https://raw.githubusercontent.com/boostsecurityio/boostsec-scanner-gitlab/main/scanner.yml'

boost-semgrep:
  stage: build
  extends:
    - .boost_scan
  variables:
    BOOST_SCANNER_REGISTRY_MODULE: "boostsecurityio/semgrep"

Dans cet exemple, l'instruction include charge le modèle Boost Security dans le pipeline rendant certains points d'extension disponibles via l'instruction extends. Par exemple, dans l'exemple ci‑dessus, l'extension .boost_scan est chargée, ce qui installera l'outil en ligne de commande Boost Security, démarrera docker-in-docker, appliquera des règles spécifiques, puis exécutera l'analyse.

La variable d'environnement BOOST_API_TOKEN est requise, doit être définie dans vos secrets et doit contenir le jeton API créé depuis le tableau de bord Page des paramètres.

La variable BOOST_SCANNER_REGISTRY_MODULE spécifie l'analyseur à exécuter depuis le registre de modules. Plusieurs scanners peuvent être configurés dans le pipeline selon les besoins.


Pipeline GitLab pour l'analyse du code source


Cette configuration convient aux analyseurs pour analyse SAST ou inventaire Nomenclature logicielle à partir du code source.

Note

Même si le workflow est configuré pour exécuter l'analyseur Nomenclature logicielle sur les demandes de pull, l'analyseur Nomenclature logicielle ne collecte pas l'inventaire des composants sur les demandes de pull.

  • Mettez à jour votre pipeline : .gitlab-ci.yml :

    include:
      - remote: 'https://raw.githubusercontent.com/boostsecurityio/boostsec-scanner-gitlab/main/scanner.yml'
    
    boost-sast-scan:
      stage: build
      extends:
        - .boost_scan
      variables:
        BOOST_SCANNER_REGISTRY_MODULE: "boostsecurityio/semgrep"
    
    boost-sbom-scan:
      stage: build
      extends:
        - .boost_scan
      rules:
        # execute on pushes to the default branch
        - if: ($CI_PIPELINE_SOURCE == "push") && ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH)
      variables:
        BOOST_SCANNER_REGISTRY_MODULE: "boostsecurityio/trivy-sbom"
    

Pipeline GitLab pour l'analyse des artefacts générés


Cette configuration convient aux analyseurs qui analysent des artefacts générés lors du processus de build. Par exemple, pour des modules générant une Nomenclature logicielle à partir d'images conteneur ou recherchant des vulnérabilités ; l'image conteneur doit être générée au préalable.

  • Ajoutez le bloc lié au module analyseur Boost Security à votre workflow de build.

    Un exemple de configuration de workflow pour l'analyse d'images conteneur est fourni ci‑dessous.

    include:
      - remote: 'https://raw.githubusercontent.com/boostsecurityio/boostsec-scanner-gitlab/main/scanner.yml'
    
    boost-sast-scan:
      stage: build
      extends:
        - .boost_scan
      script:
        - docker build . -t ${BOOST_IMAGE_NAME}
        - !reference [.boost_scan, script]
      variables:
        BOOST_SCANNER_REGISTRY_MODULE: "boostsecurityio/trivy-image"
        BOOST_IMAGE_NAME: acme-analytics