Skip to content

Latest commit

 

History

History
236 lines (178 loc) · 4.09 KB

File metadata and controls

236 lines (178 loc) · 4.09 KB

Génération d’un SBOM

  • 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 ?

!

tools center
  • 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

Outils externes

  • 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

--> 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

Docker Scout

docker scout sbom --format spdx [IMAGE]
docker scout sbom --format cyclonedx [IMAGE]

Github Actions

# 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/

Github

github export sbom
  • extension de la CLI gh

Gitlab

# Scan des dépendances avec Gemnasium
stages:
  - test

include:
  - template: Jobs/Dependency-Scanning.gitlab-ci.yml

Gitlab

# 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"

Merge de SBOM

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

Scan dépendances vs conteneurs

scan dependances conteneurs
  • distro2sbom permet de générer le SBOM d’un OS!

Récapitulatif

comparatif

Inconvénients

  • 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

Outils à intégrer dans vos applications

  • 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

Signature de SBOM

  • 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

!

  1. Emergence des SBOM ✅

  2. Outils de génération ✅

  3. Outils d’agrégation et analyse

  4. L’univers des BOM