Sécurité de la Chaîne d'Approvisionnement Logicielle : Ne Faire Confiance à Rien que Vous n'Avez Pas Construit
#security#devops#ci-cd#supply-chain#compliance
SolarWinds. Log4Shell. Codecov. Les cinq dernières années ont démontré que la chaîne d'approvisionnement logicielle est la surface d'attaque la plus sous-protégée de l'ingénierie moderne. La sécuriser requiert un changement : passer de la confiance par défaut à la vérification de provenance à chaque étape.
Commencez par les SBOMs. Générer un SBOM pour chaque build est un effort faible à haute valeur. Utilisez syft ou Trivy dans votre pipeline CI.
Signez tout. Cosign avec signature keyless (via Sigstore Fulcio et Rekor) élimine la charge de gestion des clés. Combinez avec des politiques d'admission Kyverno pour imposer "aucune image non signée en production."
Épinglez les dépendances agressivement. Les lock files sont nécessaires mais pas suffisants. Épinglez les GitHub Actions sur des SHA de commit. Épinglez les images de base sur des digests.
Adoptez SLSA incrémentalement. La plupart des organisations peuvent atteindre SLSA 2 en quelques semaines avec GitHub Actions et les attestations d'artefacts.
tadata
Actors: CI job, OIDC issuer, Fulcio CA, Rekor log, Cluster admission
CI job → OIDC issuer request workload identity token
OIDC issuer ⇠ CI job signed token: repo, workflow, ref
CI job ↺ ephemeral key pair in memory
CI job → Fulcio CA public key + token + proof of possession
Fulcio CA ⇠ CI job certificate valid ~10 min, identity in SAN
CI job → Rekor log signature of the image digest + certificate
Rekor log ⇠ CI job inclusion proof, signed timestamp
CI job,Rekor log: Private key discarded; signature stored next to the image in the registry
Cluster admission → Rekor log verify chain to Fulcio root, expected issuer + workflow identity, signing time inside the certificate window
Signature keyless Sigstore en CI (cosign) : aucune clé de signature longue durée à voler ; la confiance repose sur l'identité de la CI et sur le journal de transparence public