Slide 1

Slide 1 text

Sécurisez la chaîne de développement logiciel avec SLSA Mohamed Abdennebi Cloud Security Lead AppMod Days 2023

Slide 2

Slide 2 text

Comment vous assurer que le code déployé en prod est bien le vôtre ?

Slide 3

Slide 3 text

Devs Test Cluster GKE Prod Cluster GKE Cloud Deploy déploiement depuis le laptop Image de prod code malveillante Risques sur le déploiement Step 1 : Test Step 2 : Scan Step 3 : QA Step 1 : Build Cloud Build Git Source Repository

Slide 4

Slide 4 text

Comment s'assurer de l'authenticité et la de traçabilité de vos artefacts ?

Slide 5

Slide 5 text

1 Authenticité : Binary Authorization

Slide 6

Slide 6 text

Prod Cluster GKE Image malveillante Image vérifiée Binary Authorization

Slide 7

Slide 7 text

Binary Authorization Policy Attestation Trois concepts : Attestor

Slide 8

Slide 8 text

Binary Authorization Exemples d'attestors : ● Scan de vulnérabilité OS ● Tests end-to-end ● Test de sécurité des applications (SAST/DAST) ● Génération de la liste de dépendances (SBOM) ● Un humain pour valider une mise en prod

Slide 9

Slide 9 text

Binary Authorization Pour signer une image : L'attestation qui sera présentée à Binary Authorization :

Slide 10

Slide 10 text

Git Source Repository Cloud Build Devs Test Cluster GKE Prod Cluster GKE Cloud Deploy Image malveillante Image de developpement Image de prod Demo : Binary Authorization Artifact Registry

Slide 11

Slide 11 text

Git Source Repository Cloud Build Devs Test Cluster GKE Prod Cluster GKE Cloud Deploy Image malveillante Image de developpement Image de prod Demo : Binary Authorization Artifact Registry

Slide 12

Slide 12 text

Démo

Slide 13

Slide 13 text

Peut-on mieux faire ?

Slide 14

Slide 14 text

La signature est-elle suffisante ? ● Où se trouve le code source ? ● À quel commit correspond l'image ? ● Quel est le système de build utilisé ? ● Quels sont les dépendances utilisées ? ● Quels sont les tool chains utilisées lors du build ?

Slide 15

Slide 15 text

2 Traçabilité : SLSA

Slide 16

Slide 16 text

SLSA ● Cadre de sécurité pour la supply chain ● Ensemble de règles : ○ Producteurs : Fournir un logiciel intègre ○ Consommateurs : Vérifier l'intégrité et l'origine du logiciel avant de l'utiliser ● Projet de l'Open Source Security Foundation (OpenSSF) ● Projet neutre et communautaire : ○ Google, Intel, vmWare, RedHat, Chainguard, Kusari ○ Github, Gitlab, TektonCD, FluxCD, Docker, etc. Security Levels for Software Artifacts

Slide 17

Slide 17 text

SLSA Les deux piliers de SLSA : Un ensemble de règles de sécurité, adoptables de manière progressive. Une provenance est une attestation qui décrit le build : où, comment et par qui un artéfact a été créé.

Slide 18

Slide 18 text

La provenance SLSA

Slide 19

Slide 19 text

Provenance SLSA subject: - name: https://europe-west1-docker.pkg.dev/my-project/my-repo/hello:v0.4.3 digest: sha256: a0d0dbaadb7d9fe41ecf1d4f4614c69deff152bc5df270a84b7200661762d9d0 Artéfact predicate: builder: id: https://cloudbuild.googleapis.com/GoogleHostedWorker buildType: https://cloud.google.com/build/gcb-buildtypes/google-worker/v1 Builder invocation: configSource: entryPoint: "app/cloudbuild.yaml" Entrypoint systemSubstitutions: COMMIT_SHA: 9abeb2126387d50ad44b52924758ab34220d9be6 LOCATION: europe-west1 TRIGGER_NAME: hello-app-trigger ... Variables materials: - uri: git+https://github.com/abdennebi/google-cloud-slsa" digest: sha1: 9abeb2126387d50ad44b52924758ab34220d9be6 Source + dépendances

Slide 20

Slide 20 text

Les règles SLSA

Slide 21

Slide 21 text

Les règles SLSA Les règles sont structuré autour de « tracks » qui sont des aspects particuliers à sécuriser et qui peuvent être traités en parallèle : ● Version actuelle : build ● Versions futures : source, dépendances et autres 👉 Le build track est réparti sur 3 niveaux à appliquer de manière progressive

Slide 22

Slide 22 text

Les 3 niveaux SLSA Build track Niveau Exigences Objectif Build Level 1 Provenance publiée Documentation Build Level 2 Provenance signée Système de build existe Contrer la falsification après le build Build Level 3 Provenance signée, non-forgeable Système de build renforcé Contrer la falsification pendant le build

Slide 23

Slide 23 text

SLSA et Cloud Build Google Cloud Build supporte SLSA Level 3 Build !

Slide 24

Slide 24 text

Le badge SLSA 3 pour l'artéfact créé par Cloud Build SLSA et Cloud Build

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Démo

Slide 27

Slide 27 text

À compléter chez vous… Créer un attestor qui vérifie la provenance SLSA :

Slide 28

Slide 28 text

3 SLSA et Binary Authorization

Slide 29

Slide 29 text

Continuous Validation (CV)

Slide 30

Slide 30 text

Binary Authorization Policy n'effectue la vérification qu'au moment du déploiement 👉 Deploy time security control 👉 Bloque les déploiement CV surveille en permanence les images des pods en cours d'exécution 👉 Runtime security control 👉 Consigne dans Audit Log les non conformités Continuous Validation Continuous validation GKE Cluster

Slide 31

Slide 31 text

Signatures Vérifiées Images récentes Image dans la liste blanche Scan vulnérabilités Provenance SLSA Continuous Validation

Slide 32

Slide 32 text

Continuous Validation : Example Policy

Slide 33

Slide 33 text

Continuous Validation : Example Policy Rappel : J'ai indiqué dans la policy que le repo git devrait être : github.com/abdennebi/google-cloud-slsa

Slide 34

Slide 34 text

Démo

Slide 35

Slide 35 text

En résumé

Slide 36

Slide 36 text

Questions/Réponses