-
externes à l’application ?
-
intégrés dans l’application ?
-
multi-technos ?
-
conteneurs ?
-
intégrable facilement dans une CI ?!
-
Quelques considérations
-
pouvons-nous toucher au code ?
-
devons-nous déployer à grande échelle ?
-
et ce n’est que ce qui a été recensé par CycloneDX
-
SPDX : 50aine de tools
-
nous allons en voir certains plus populaires que d’autres
-
Syft préconisé par Github, Bitbucket
-
Gemnasium / Trivy préconisés par Gitlab
-
Docker Scout
-
cdxgen de l’OWASP
-
sbom-tool de Microsoft
-
regardons comment le mettre en place
--> docker scout cves [IMAGE]
✓ Image stored for indexing
✓ Indexed 79 packages
pkg:npm/express@4.17.1
✗ HIGH CVE-2022-24999 [OWASP Top Ten 2017 Category A9 - Using Components with Known Vulnerabilities]
https://scout.docker.com/v/CVE-2022-24999
Affected range : <4.17.3
Fixed version : 4.17.3
CVSS Score : 7.5
CVSS Vector : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
36 vulnerabilities found in 11 packages
CRITICAL 2
HIGH 20
MEDIUM 9
LOW 4
UNSPECIFIED 1
What`s next:
View base image update recommendations
→ docker scout recommendations [IMAGE]-
Possibilité d’enroller votre propre registre,
-
ce qui nous intéresse c’est la génération de SBOM
# Scan des dépendances avec Syft
- uses: anchore/sbom-action@v0
with:
image: "${REGISTRY_URL}/mon_image:X.X.X"
- uses: anchore/sbom-action@v0
with:
path: ./build/# Scan des dépendances avec Gemnasium
stages:
- test
include:
- template: Jobs/Dependency-Scanning.gitlab-ci.yml# Scan des conteneurs avec Trivy
stages:
- test
include:
- template: Jobs/Container-Scanning.gitlab-ci.yml
container_scanning:
variables:
CS_IMAGE: "${REGISTRY_URL}/mon_image:X.X.X"
CI_REGISTRY: "$REGISTRY_URL"
CI_REGISTRY_USER: "$USERNAME"
CI_REGISTRY_PASSWORD: "$PASSWORD"include:
- template: Jobs/Dependency-Scanning.gitlab-ci.yml
- template: Jobs/Container-Scanning.gitlab-ci.yml
merge sboms:
stage: merge-sboms
image:
name: cyclonedx/cyclonedx-cli:0.25.1
entrypoint: [""]
script:
- find . -name "*sbom*.json"
-exec cyclonedx merge
--output-file merged-sbom.json
--input-files "{}" +
artifacts:
paths:
- merged-sbom.json-
dépendance utilisée uniquement lors du build
-
dépendance non utilisée dans le projet
-
exemple : Quarkus type "-deployment"
-
résultat : il manque des dépendances
-
Plugin Maven et Gradle CycloneDX
-
05/2024 : Support Spring Boot 3.3.0
-
08/2024 : Extension io.quarkus:quarkus-cyclonedx
-
Venant du monde Java …
-
Ma préconisation : Outils à intégrer dans vos applications + scan de conteneurs
-
cdxgen de l’OWASP
-
cosign de Sigstore
-
garantir intégrité et authenticité
-
cosign : outil open-source conçu pour signer et vérifier les artefacts logiciels

