SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Devoxx France 2023
Sécurisez votre software supply chain
avec SLSA, Sigstore et Kyverno
Mohamed Abdennebi
@abdennebi
SFEIR
Devoxx France 2023
Êtes-vous sûr que le code déployé en prod
correspond bien à celui que vous supposez ? 🤔
SLSA
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'orgine 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.
○ Fondation Eclipse
Devoxx France 2023
Security Levels for Software Artifacts
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éé.
Devoxx France 2023
La provenance SLSA
Qu'est-ce qu'une attestation ?
C'est un ensemble d'informations sur un artéfact.
👉 Permet au consommateur de décider d'utiliser ou non un artéfact en fonction des informations qui
y sont contenues.
Une attestation peut fournir :
● Détails sur le build : Provenance SLSA
● Liste des dépendances : SBOM (Software Bill of Materials)
● Liste des vulnérabilités de l'OS ou des dépendances
● Etc...
Devoxx France 2023
Provenance SLSA
Devoxx France 2023
subject:
- name: ghcr.io/albasystems/hello-slsa
digest:
sha256: 278ca5a875482d3321235a0a3d3b9307fa0701c99228accf0168acb6d62cf183
Artéfact
predicate:
builder:
id: https://github.com/albasystems/slsa-generator/.github/workflows/slsa3.yml@refs/tags/v1.5.0
buildType: https://github.com/slsa-framework/slsa-github-generator/container@v1
Builder
invocation:
configSource:
entryPoint: ".github/workflows/build.yml" Entrypoint
environment:
github_actor: abdennebi
github_actor_id: '787057'
github_event_name: push
...
Variables d'environnement
materials:
- uri: git+https://github.com/albasystems/hello-slsa@refs/heads/main
digest:
sha1: 7a9d468e70d401ceebaf9e2b22496f62c0656c0b Source + dépendances
Provenance SLSA
Pourquoi utiliser la provenance ?
1. Garantir l'intégrité de l'artefact
2. Tracer et garantir l'origine de l'artefact : depuis le binaire on peut remonter aux
origines du code source
3. Recréer l'artéfact (exigence de sécurité très élevée) en rejouant le build.
Devoxx France 2023
Les règles SLSA
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
Devoxx France 2023
Build Track L1 : Provenance
Description : Provenance publiée
1. Le producteur documente les valeurs que doit avoir la provenance.
2. Le producteur crée à chaque build une attestation de provenance.
3. Les consommateurs vérifient que le package est conforme au contenu de
la provenance et aux valeurs documentées par le mainteneur.
La provenance n'est pas nécessairement exhaustive.
Devoxx France 2023
Build Track L2 : Build Service
Description : Service de build existe + provenance signée
1. Le build est hébergé sur un service de build qui génère et signe
automatiquement la provenance.
2. Le consommateur vérifie l'authenticité de la provenance ainsi que les
informations qu'elle contient.
Devoxx France 2023
💡 à partir de SLSA 2 on commence à avoir un niveau de confiance
satisfaisant
Build Track L3 : Hardened Builds
Description : provenance non-forgeable + build renforcé
1. Provenance non forgeable : Les jobs contrôlés par l'utilisateur ne
peuvent pas accéder à la clé de signature afin d'éviter de forger des
provenances
2. Isolation des jobs : les jobs de build ne peuvent pas s'influencer les uns
les autres, même au sein d'un même projet.
3. VMs, containers de build sont éphémères
Devoxx France 2023
💡 Niveau idéal à atteindre
Implémentation 🚀
User Story
En tant que :
Développeur
Je veux :
Être conforme à SLSA 3
Afin de pouvoir :
Déployer une application en production en étant sûr de son intégrité et de
son origine.
Devoxx France 2023
Réalisation
Étape 1 : Signature keyless avec Sigstore
Étape 2 : Créer un container SLSA 3 à l'aide de Github Actions
Étape 3 : Déployer le container et vérifier sa provenance à l'aide
de Kyverno.
Devoxx France 2023
Signature keyless avec
Sigstore
Étape 1
Sigstore
Service internet pour la signature d'artéfacts logiciels.
Inspiré de Let's Encrypt.
Sous l'égide de l'OpenSSF.
C'est une PKI pour livraison de certificat de signature de code
● Cosign : CLI de signature pour les containers et blobs
● Fulcio : CA qui délivre des certificats de signature X.509
● Rekor : Transparency Log pour stocker certificats et signatures
Devoxx France 2023
Sigstore
Principes de la signature keyless :
1. On s'authentifie auprès de son provider OIDC (OpenId Connect)
2. On échange son "Identity Token" contre un certificat d'une durée de vie
de 10 min
👉 Pas de gestion de clé privée, elle est jetée dès que l'artéfact est
signé.
👉 Pas de complexité liée à la révocation car le certificat a une durée de
vie très courte.
Devoxx France 2023
Démo : étape 1
Signature keyless avec Sigstore 🪄
Repo git :
https://github.com/albasystems/hello-slsa
Devoxx France 2023
Construire un container
SLSA 3 avec
Github Actions
Étape 2
Github Actions et SLSA 3
Rappel des règles pour atteindre SLSA 3 :
1. Générer et signer des provenance automatiquement sans l'intervention ni
l'influence des jobs utilisateurs.
2. Lancer des jobs isolés les un des autres
3. S'assurer que les runners sont éphémères
Devoxx France 2023
Github Actions et SLSA 3
La plateform Github Actions répond aux exigences
● Les jobs tournent dans leurs propres containers qui sont détruits
aussitôt le job terminé 👉Isolation et éphémérité.
● Les jobs peuvent demander une identité OIDC à Github (utile pour la
signature)
Devoxx France 2023
Github Actions et SLSA 3
Quid de la génération de la provenance et de la signature non-forgeable ? 🤔
Les reusables workflows à la rescousse :
● Workflows se trouvant dans leur propre repo Git et appelables depuis les
autres repos.
○ Utile pour éviter la répétition.
○ On appellera ça le trusted builder.
● Le trusted builder aura sa propre identité OIDC et signera la provenance
que le consommateur pourra vérifier.
Devoxx France 2023
trigger
instantiate
workflow
git
push
DevSecOps
Provenance
generator repo
trusted builder
generate provenance
Dev
"Hello SLSA" repo
build
uses
Runner 1
Job : Build
Step 1 : checkout
Step 2 : docker build
Step 3 : docker push
oidc subject :
hello-slsa
publier
container
Container
Registry
publier
provenance
signée
Runner 2
Job : Provenance
/generator
Step 1 : detect-env
Step 2 : generator
Step 3 :
upload-assets
oidc subject :
provenance-generator
trusted builder
Démo : étape 2
Devoxx France 2023
Alba
Systems
Démo : étape 2
Générer un container SLSA Build L3 🪄
Devoxx France 2023
Validation au déploiement
avec
Kyverno
Étape 3
Kyverno
● « Policy Engine » pour Kubernetes
● Open Source, projet CNCF
● Il peut :
○ valider
○ modifier
○ générer et nettoyer les ressources Kubernetes
👉 Nous allons l'utiliser pour valider la provenance des pods
Devoxx France 2023
Démo : étape 3
Déployer le container dans un cluster
Kubernetes et vérifier sa provenance
Devoxx France 2023
Devoxx France 2023
Êtes-vous sûr que le code déployé en prod
correspond bien à celui que vous supposez ? 😉
Et maintenant ?
Questions / Réponses

Contenu connexe

Tendances

Secure Programming Practices in C++ (NDC Security 2018)
Secure Programming Practices in C++ (NDC Security 2018)Secure Programming Practices in C++ (NDC Security 2018)
Secure Programming Practices in C++ (NDC Security 2018)Patricia Aas
 
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperleger Tokyo Meetup
 
電子署名(PKI)ハンズオン資料 V1.00
電子署名(PKI)ハンズオン資料 V1.00電子署名(PKI)ハンズオン資料 V1.00
電子署名(PKI)ハンズオン資料 V1.00Naoto Miyachi
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)Kuniyasu Suzaki
 
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!オラクルエンジニア通信
 
ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実IIJ
 
分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要Etsuji Nakai
 
AWS IoT Device Defender による IoT デバイスのセキュリティ管理
AWS IoT Device Defender による IoT デバイスのセキュリティ管理AWS IoT Device Defender による IoT デバイスのセキュリティ管理
AWS IoT Device Defender による IoT デバイスのセキュリティ管理Amazon Web Services Japan
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころMasayuki Wakizaka
 
OpenStack-ansibleで作るOpenStack HA環境 Mitaka版
OpenStack-ansibleで作るOpenStack HA環境 Mitaka版OpenStack-ansibleで作るOpenStack HA環境 Mitaka版
OpenStack-ansibleで作るOpenStack HA環境 Mitaka版VirtualTech Japan Inc.
 
怖くないAzure Landing Zone
怖くないAzure Landing Zone怖くないAzure Landing Zone
怖くないAzure Landing ZoneAtsushi Kojima
 
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA Cyber Security
 
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 zaki4649
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)Shota Shinogi
 
Тестирование безопасности: PHP инъекция
Тестирование безопасности: PHP инъекцияТестирование безопасности: PHP инъекция
Тестирование безопасности: PHP инъекцияSQALab
 
Azure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep DiveAzure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep DiveYoshimasa Katakura
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)NTT DATA Technology & Innovation
 
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話mariydi1
 

Tendances (20)

Secure Programming Practices in C++ (NDC Security 2018)
Secure Programming Practices in C++ (NDC Security 2018)Secure Programming Practices in C++ (NDC Security 2018)
Secure Programming Practices in C++ (NDC Security 2018)
 
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
 
電子署名(PKI)ハンズオン資料 V1.00
電子署名(PKI)ハンズオン資料 V1.00電子署名(PKI)ハンズオン資料 V1.00
電子署名(PKI)ハンズオン資料 V1.00
 
mTCP使ってみた
mTCP使ってみたmTCP使ってみた
mTCP使ってみた
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
 
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
 
ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実ホワイトボックス・スイッチの期待と現実
ホワイトボックス・スイッチの期待と現実
 
分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要
 
AWS IoT Device Defender による IoT デバイスのセキュリティ管理
AWS IoT Device Defender による IoT デバイスのセキュリティ管理AWS IoT Device Defender による IoT デバイスのセキュリティ管理
AWS IoT Device Defender による IoT デバイスのセキュリティ管理
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
 
OpenStack-ansibleで作るOpenStack HA環境 Mitaka版
OpenStack-ansibleで作るOpenStack HA環境 Mitaka版OpenStack-ansibleで作るOpenStack HA環境 Mitaka版
OpenStack-ansibleで作るOpenStack HA環境 Mitaka版
 
怖くないAzure Landing Zone
怖くないAzure Landing Zone怖くないAzure Landing Zone
怖くないAzure Landing Zone
 
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması Çözümleri
 
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
 
Тестирование безопасности: PHP инъекция
Тестирование безопасности: PHP инъекцияТестирование безопасности: PHP инъекция
Тестирование безопасности: PHP инъекция
 
Azure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep DiveAzure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep Dive
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
 
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
 
Hping, TCP/IP Paket Üretici
Hping, TCP/IP Paket ÜreticiHping, TCP/IP Paket Üretici
Hping, TCP/IP Paket Üretici
 

Similaire à Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et Kyverno.pdf

Sécurisez votre software supply chain avec SLSA, Sigstore et Kyverno
Sécurisez votre software supply chain avec SLSA, Sigstore et KyvernoSécurisez votre software supply chain avec SLSA, Sigstore et Kyverno
Sécurisez votre software supply chain avec SLSA, Sigstore et KyvernoMohamed Abdennebi
 
Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...Publicis Sapient Engineering
 
La signature de code - Code signing
La signature de code - Code signingLa signature de code - Code signing
La signature de code - Code signingAlice and Bob
 
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !Publicis Sapient Engineering
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Romain Chalumeau
 
Ciel ! Mon Kubernetes mine des bitcoins...
Ciel ! Mon Kubernetes mine des bitcoins...Ciel ! Mon Kubernetes mine des bitcoins...
Ciel ! Mon Kubernetes mine des bitcoins...Open Source Experience
 
Py osv newsletter-042018
Py osv newsletter-042018Py osv newsletter-042018
Py osv newsletter-042018FabMob
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerNizar GARRACHE
 
Exemple de-code-oop-avec-labview
Exemple de-code-oop-avec-labviewExemple de-code-oop-avec-labview
Exemple de-code-oop-avec-labviewLuc Desruelle
 
Exemple de-code-oop-avec-labview
Exemple de-code-oop-avec-labviewExemple de-code-oop-avec-labview
Exemple de-code-oop-avec-labviewLuc Desruelle
 
Exemple code oop_labview
Exemple code oop_labviewExemple code oop_labview
Exemple code oop_labviewLuc Desruelle
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Fabien Arcellier
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Deploiement_Lora_exo.pdf
Deploiement_Lora_exo.pdfDeploiement_Lora_exo.pdf
Deploiement_Lora_exo.pdfmerazgaammar2
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueAZUG FR
 
LinSign : la signature électronique en Open Source
LinSign : la signature électronique en Open Source LinSign : la signature électronique en Open Source
LinSign : la signature électronique en Open Source LINAGORA
 
La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!OCTO Technology
 

Similaire à Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et Kyverno.pdf (20)

Sécurisez votre software supply chain avec SLSA, Sigstore et Kyverno
Sécurisez votre software supply chain avec SLSA, Sigstore et KyvernoSécurisez votre software supply chain avec SLSA, Sigstore et Kyverno
Sécurisez votre software supply chain avec SLSA, Sigstore et Kyverno
 
Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...
 
La signature de code - Code signing
La signature de code - Code signingLa signature de code - Code signing
La signature de code - Code signing
 
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
 
Ciel ! Mon Kubernetes mine des bitcoins...
Ciel ! Mon Kubernetes mine des bitcoins...Ciel ! Mon Kubernetes mine des bitcoins...
Ciel ! Mon Kubernetes mine des bitcoins...
 
Py osv newsletter-042018
Py osv newsletter-042018Py osv newsletter-042018
Py osv newsletter-042018
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop Docker
 
Exemple de-code-oop-avec-labview
Exemple de-code-oop-avec-labviewExemple de-code-oop-avec-labview
Exemple de-code-oop-avec-labview
 
Exemple de-code-oop-avec-labview
Exemple de-code-oop-avec-labviewExemple de-code-oop-avec-labview
Exemple de-code-oop-avec-labview
 
Exemple code oop_labview
Exemple code oop_labviewExemple code oop_labview
Exemple code oop_labview
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Deploiement_Lora_exo.pdf
Deploiement_Lora_exo.pdfDeploiement_Lora_exo.pdf
Deploiement_Lora_exo.pdf
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
 
docker.pptx
docker.pptxdocker.pptx
docker.pptx
 
LinSign : la signature électronique en Open Source
LinSign : la signature électronique en Open Source LinSign : la signature électronique en Open Source
LinSign : la signature électronique en Open Source
 
La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!
 

Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et Kyverno.pdf

  • 1. Devoxx France 2023 Sécurisez votre software supply chain avec SLSA, Sigstore et Kyverno Mohamed Abdennebi @abdennebi SFEIR
  • 2. Devoxx France 2023 Êtes-vous sûr que le code déployé en prod correspond bien à celui que vous supposez ? 🤔
  • 4. 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'orgine 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. ○ Fondation Eclipse Devoxx France 2023 Security Levels for Software Artifacts
  • 5. 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éé. Devoxx France 2023
  • 7. Qu'est-ce qu'une attestation ? C'est un ensemble d'informations sur un artéfact. 👉 Permet au consommateur de décider d'utiliser ou non un artéfact en fonction des informations qui y sont contenues. Une attestation peut fournir : ● Détails sur le build : Provenance SLSA ● Liste des dépendances : SBOM (Software Bill of Materials) ● Liste des vulnérabilités de l'OS ou des dépendances ● Etc... Devoxx France 2023
  • 8. Provenance SLSA Devoxx France 2023 subject: - name: ghcr.io/albasystems/hello-slsa digest: sha256: 278ca5a875482d3321235a0a3d3b9307fa0701c99228accf0168acb6d62cf183 Artéfact predicate: builder: id: https://github.com/albasystems/slsa-generator/.github/workflows/slsa3.yml@refs/tags/v1.5.0 buildType: https://github.com/slsa-framework/slsa-github-generator/container@v1 Builder invocation: configSource: entryPoint: ".github/workflows/build.yml" Entrypoint environment: github_actor: abdennebi github_actor_id: '787057' github_event_name: push ... Variables d'environnement materials: - uri: git+https://github.com/albasystems/hello-slsa@refs/heads/main digest: sha1: 7a9d468e70d401ceebaf9e2b22496f62c0656c0b Source + dépendances
  • 9. Provenance SLSA Pourquoi utiliser la provenance ? 1. Garantir l'intégrité de l'artefact 2. Tracer et garantir l'origine de l'artefact : depuis le binaire on peut remonter aux origines du code source 3. Recréer l'artéfact (exigence de sécurité très élevée) en rejouant le build. Devoxx France 2023
  • 11. 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 Devoxx France 2023
  • 12. Build Track L1 : Provenance Description : Provenance publiée 1. Le producteur documente les valeurs que doit avoir la provenance. 2. Le producteur crée à chaque build une attestation de provenance. 3. Les consommateurs vérifient que le package est conforme au contenu de la provenance et aux valeurs documentées par le mainteneur. La provenance n'est pas nécessairement exhaustive. Devoxx France 2023
  • 13. Build Track L2 : Build Service Description : Service de build existe + provenance signée 1. Le build est hébergé sur un service de build qui génère et signe automatiquement la provenance. 2. Le consommateur vérifie l'authenticité de la provenance ainsi que les informations qu'elle contient. Devoxx France 2023 💡 à partir de SLSA 2 on commence à avoir un niveau de confiance satisfaisant
  • 14. Build Track L3 : Hardened Builds Description : provenance non-forgeable + build renforcé 1. Provenance non forgeable : Les jobs contrôlés par l'utilisateur ne peuvent pas accéder à la clé de signature afin d'éviter de forger des provenances 2. Isolation des jobs : les jobs de build ne peuvent pas s'influencer les uns les autres, même au sein d'un même projet. 3. VMs, containers de build sont éphémères Devoxx France 2023 💡 Niveau idéal à atteindre
  • 16. User Story En tant que : Développeur Je veux : Être conforme à SLSA 3 Afin de pouvoir : Déployer une application en production en étant sûr de son intégrité et de son origine. Devoxx France 2023
  • 17. Réalisation Étape 1 : Signature keyless avec Sigstore Étape 2 : Créer un container SLSA 3 à l'aide de Github Actions Étape 3 : Déployer le container et vérifier sa provenance à l'aide de Kyverno. Devoxx France 2023
  • 19. Sigstore Service internet pour la signature d'artéfacts logiciels. Inspiré de Let's Encrypt. Sous l'égide de l'OpenSSF. C'est une PKI pour livraison de certificat de signature de code ● Cosign : CLI de signature pour les containers et blobs ● Fulcio : CA qui délivre des certificats de signature X.509 ● Rekor : Transparency Log pour stocker certificats et signatures Devoxx France 2023
  • 20. Sigstore Principes de la signature keyless : 1. On s'authentifie auprès de son provider OIDC (OpenId Connect) 2. On échange son "Identity Token" contre un certificat d'une durée de vie de 10 min 👉 Pas de gestion de clé privée, elle est jetée dès que l'artéfact est signé. 👉 Pas de complexité liée à la révocation car le certificat a une durée de vie très courte. Devoxx France 2023
  • 21. Démo : étape 1 Signature keyless avec Sigstore 🪄 Repo git : https://github.com/albasystems/hello-slsa Devoxx France 2023
  • 22. Construire un container SLSA 3 avec Github Actions Étape 2
  • 23. Github Actions et SLSA 3 Rappel des règles pour atteindre SLSA 3 : 1. Générer et signer des provenance automatiquement sans l'intervention ni l'influence des jobs utilisateurs. 2. Lancer des jobs isolés les un des autres 3. S'assurer que les runners sont éphémères Devoxx France 2023
  • 24. Github Actions et SLSA 3 La plateform Github Actions répond aux exigences ● Les jobs tournent dans leurs propres containers qui sont détruits aussitôt le job terminé 👉Isolation et éphémérité. ● Les jobs peuvent demander une identité OIDC à Github (utile pour la signature) Devoxx France 2023
  • 25. Github Actions et SLSA 3 Quid de la génération de la provenance et de la signature non-forgeable ? 🤔 Les reusables workflows à la rescousse : ● Workflows se trouvant dans leur propre repo Git et appelables depuis les autres repos. ○ Utile pour éviter la répétition. ○ On appellera ça le trusted builder. ● Le trusted builder aura sa propre identité OIDC et signera la provenance que le consommateur pourra vérifier. Devoxx France 2023
  • 26. trigger instantiate workflow git push DevSecOps Provenance generator repo trusted builder generate provenance Dev "Hello SLSA" repo build uses Runner 1 Job : Build Step 1 : checkout Step 2 : docker build Step 3 : docker push oidc subject : hello-slsa publier container Container Registry publier provenance signée Runner 2 Job : Provenance /generator Step 1 : detect-env Step 2 : generator Step 3 : upload-assets oidc subject : provenance-generator trusted builder Démo : étape 2 Devoxx France 2023 Alba Systems
  • 27. Démo : étape 2 Générer un container SLSA Build L3 🪄 Devoxx France 2023
  • 29. Kyverno ● « Policy Engine » pour Kubernetes ● Open Source, projet CNCF ● Il peut : ○ valider ○ modifier ○ générer et nettoyer les ressources Kubernetes 👉 Nous allons l'utiliser pour valider la provenance des pods Devoxx France 2023
  • 30.
  • 31. Démo : étape 3 Déployer le container dans un cluster Kubernetes et vérifier sa provenance Devoxx France 2023
  • 32. Devoxx France 2023 Êtes-vous sûr que le code déployé en prod correspond bien à celui que vous supposez ? 😉 Et maintenant ?