CircleCI¶
L'intégration BoostSecurity CI pour CircleCI fournit un orb avec à la fois un job s'exécutant sur un machine executor et une commande à utiliser dans vos configurations de pipeline. Les deux méthodes d'appel exécuteront le BoostSecurity Scanner pour analyser les dépôts à la recherche de vulnérabilités et téléverser les résultats vers le service BoostSecurity.
L'Orb CircleCI est publié sur le registre et peut être trouvé ici.
La configuration à ajouter à votre .circleci/config.yml dépend de si le scanner s'exécute sur le code source du projet ou sur un artefact produit, comme une image de conteneur construite.
La première étape pour configurer BoostSecurity pour CircleCI est de créer un context CircleCI appelé boost-security contenant un secret nommé BOOST_API_TOKEN avec la CLE API de votre organisation.
Job CircleCI pour l'analyse du code source¶
Cette configuration est appropriée pour les modules de scanner pour l'analyse SAST ou l'inventaire SBOM à partir du code source, par exemple.
Note
Même si le workflow est configuré pour exécuter le scanner SBOM sur les pull requests, le scanner SBOM ne collecte pas l'inventaire des composants sur les pull requests.
Lorsque vous configurez votre CircleCI pour exécuter le scan BoostSecurity à partir du code source du projet, ajoutez le fragment suivant à votre .circleci/config.yml :
version: '2.1'
orbs:
boost-security-scanner: boostsecurityio/scanner@4
workflows:
build:
jobs:
steps:
- boost-security-scanner/scan:
context: boost-security
registry_module: boostsecurityio/semgrep
- when:
condition:
or:
- equal: [ main, << pipeline.git.branch >> ]
steps:
- boost-security-scanner/scan:
context: boost-security
registry_module: boostsecurityio/trivy-sbom
version: 2
Note
Dans l'exemple ci-dessus, les modules de scanner semgrep et trivy-sbom sont configurés pour l'utilisation. Toutefois, vous pouvez configurer le module de scanner requis. Référez-vous à Registry Modules pour les modules de scanner disponibles.
Job CircleCI pour l'analyse des artefacts générés¶
Cette configuration est appropriée pour les modules de scanner nécessitant d'analyser des artefacts générés par le processus de build. Par exemple, les modules de scanner générant un SBOM à partir d'images de conteneur ou recherchant des vulnérabilités doivent d'abord créer l'image de conteneur.
Pour permettre l'analyse des artefacts générés, ajoutez le fragment lié au module du scanner BoostSecurity dans votre workflow de build dans .circleci/config.yml, à l'endroit approprié après l'étape où l'artefact a été généré. Notez que l'exemple ci-dessous concerne l'analyse d'une image de conteneur pour rechercher des vulnérabilités.
version: '2.1'
orbs:
boost-security-scanner: boostsecurityio/scanner@4
workflows:
... some environment specific declarations and steps
jobs:
... some test and other jobs
build-push:
executor: default
steps:
... some steps specific to your environment
- checkout
- run:
command: make docker.build
- run:
command: make docker.push
- when:
condition:
or:
- equal: [ main, << pipeline.git.branch >> ]
steps:
- run:
name: make docker.echo.tag
command: |
BOOST_IMAGE_NAME=$(make docker.echo.tag)
echo "export BOOST_IMAGE_NAME=${BOOST_IMAGE_NAME}" | tee -a $BASH_ENV
- boost-security-scanner/scan:
registry_module: boostsecurityio/trivy-image
version: 2
La condition - equal: [ main, << pipeline.git.branch >> ] fait en sorte que le module d'analyse d'image s'exécute uniquement sur les commits vers main, et ce seulement après que l'image a été construite. La commande BOOST_IMAGE_NAME=$(make docker.echo.tag) et echo "export BOOST_IMAGE_NAME=${BOOST_IMAGE_NAME}" | tee -a $BASH_ENV définit la variable d'environnement requise par le module Trivy de BoostSecurity pour savoir quelle image analyser.