🎒Dependances

Outils

cdxgen

cdxgen permet de créer des BOM (Bills Of Materials) CycloneDX à partir du code source d'un projet.

Exemple d'utilisation:

$ cdxgen -t java -o bom.json

Ressource: https://github.com/CycloneDX/cdxgen

Dependency-track

Dependency-track permet de monitorer les dependances d'un projet et leurs CVE associées.

Ressource: https://github.com/DependencyTrack/dependency-track

Méthodologie

1. Génération d'un SBOM au format CycloneDX

Dans un premier temps, on génére un SBOM (Software Bill Of Materials) au format CycloneDX avec cdxgen.

Commande:

$ cdxgen -t java -o bom.json

ou avec docker,

$ docker run --rm \                                     
  -e CDXGEN_DEBUG_MODE=debug \
  -v /tmp:/tmp \                 
  -v "$(pwd):/app:rw" \
  -t ghcr.io/cyclonedx/cdxgen:master \
  -r /app \
  -o /app/bom.json

2. Lancement d'un serveur dependence-track

Téléchargement du docker compose:

$ curl -LO https://dependencytrack.org/docker-compose.yml

puis,

$ docker-compose up -d

Accéder au front-end à l'url http://0.0.0.0:8080.

Note: les identifiants par défaut sont admin:admin

3. Création d'un projet et analyse de vulnérabilités

De là, il existe deux solutions qui sont soit de passer par le front-end directement, soit de passer par l'API REST de dependency-track.

Solution Front-end

Aller dans Project > Create Project,

Créer un projet, puis uploader le fichier bom.json dans le nouveau projet (onglet Components > bouton Upload BOM)

Solution Back-end

Générer une API Key via le front-end: http://0.0.0.0:8080/admin/accessManagement/teams

Upload le fichier bom.json via l'endpoint API REST:

curl --location 'http://localhost:8081/api/v1/bom' \
--header 'X-Api-Key: <API_KEY>' \
--form 'project="<PROJECT_ID>"' \
--form 'bom=@"/path/to/SBOM/file"'

Mis à jour

Ce contenu vous a-t-il été utile ?