Si vous tombez un jour sur une clé USB posée négligemment sur la table d'une salle de réunion, la brancheriez-vous dans votre portable ? "Jamais !" me diriez-vous.
Pourtant, c'est ce que nous faisons presque tout le temps avec les dépendances logicielles que nous récupérons d'Internet.
Ces dépendances ou artefacts sont devenus si complexes que nous ne maîtrisons plus leur contenu ou leurs dépendances transitives. Cette complexité s’étend à nos chaînes de production logicielle qui peuvent être corrompues à des endroits multiples : le référentiel de code source, le système de build ou le registre d'artefacts.Pour sécuriser notre chaîne de build ou "software supply chain", nous devons être capables de vérifier l'authenticité et l'intégrité des dépendances. De même, en tant que producteurs d'artefacts, nous devons garantir un niveau équivalent de sécurité et de transparence à nos consommateurs. Mais comment faire sans alourdir la chaîne CI/CD ni nuire à la productivité du développeur ?
La réponse ? C’est la communauté open source qui l’a apportée avec SLSA et Sigstore, principaux sujets de ce talk.
Pour commencer, nous parlerons de SLSA dont le but est de vous accompagner dans l’amélioration de votre chaîne de build en appliquant de bonnes pratiques de sécurité par paliers successifs.
Nous parlerons également de Sigstore et de la manière avec laquelle il permet d’implémenter SLSA en rendant transparente la signature et l’attestation des artefacts.
Nous clôturerons le talk par une démo sur la protection des déploiements dans Kubernetes à l'aide du moteur de règles "Kyverno".
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...Mohamed Abdennebi
Êtes-vous sûr que le code déployé en production est bien celui que vous pensez être ? Provient-il de votre CI/CD, d'un laptop d'un développeur ou pire, n'aurait-il pas été injecté par un attaquant ? Comment assurez-vous l'intégrité et la traçabilité de vos artefacts ?
Nous allons voir dans ce talk comment répondre à ces questions en utilisant SLSA.
Introduit et open sourcé par Google, SLSA est un cadre de sécurité qui renforce l'intégrité de votre chaîne de production logicielle ou Software Supply Chain. Son principe : améliorer par paliers successifs la protection du code source, sa construction et la distribution des artefacts.
Nous parlerons également de Sigstore, le Let's Encrypt de la signature du code, il nous permettra d’implémenter SLSA en rendant transparente la signature et l’attestation des artefacts.
Et pour faire la part belle à la pratique, nous verrons ensemble comment vérifier l'authenticité d'un container lors du déploiement dans Kubernetes grâce au moteur de règle Kyverno.
When performing security assessments or participating in bug bounties, there is generally a methodology you follow when assessing source-code or performing dynamic analysis. This involves using tools, reviewing results and understanding what you should be testing for. Reviewing modern web applications can be quite challenging, and this talk will go into details on how we can automate the boring (but necessary parts) and how to set a roadmap of what should be focused on when dealing with modern JavaScript applications.
This document summarizes a presentation on container security given by Phil Estes. It identifies several threat vectors for containers including risks from individual containers, interactions between containers, external attacks, and application security issues. It then outlines various security tools and features in Docker like cgroups, Linux Security Modules, capabilities, seccomp, and user namespaces that can help mitigate these threats. Finally, it discusses some future directions for improving container security through more secure defaults, image signing, and network security enhancements.
This document discusses SonarQube, a tool for continuous code inspection. It begins with an overview of static code analysis and its benefits for organizations. It then covers quality gates and rules for inspection, integration with CI/CD pipelines, and IDE plugins. Static code analysis examines source code to find patterns that could impact security, reliability or maintainability. Quality gates help highlight critical areas for improvement and gauge technical debt over time. SonarQube allows for continuous inspection across multiple languages and frameworks.
Since its first 1.12 release on July 2016, Docker Swarm Mode has matured enough as a clustering and scheduling tool for IT administrators and developers who can easily establish and manage a cluster of Docker nodes as a single virtual system. Swarm mode integrates the orchestration capabilities of Docker Swarm into Docker Engine itself and help administrators and developers with the ability to add or subtract container iterations as computing demands change. With sophisticated but easy to implement features like built-in Service Discovery, Routing Mesh, Secrets, declarative service model, scaling of the services, desired state reconciliation, scheduling, filters, multi-host networking model, Load-Balancing, rolling updates etc. Docker 17.06 is all set for production-ready product today. Join me webinar organised by Docker Izmir, to get familiar with the current Swarm Mode capabilities & functionalities across the heterogeneous environments.
Virtualization, Containers, Docker and scalable container management servicesabhishek chawla
In this presentation we take you through the concept of virtualization which includes the different types of virtualizations, understanding the Docker as a software containerization platform like Docker's Architecture, Building and running custom images in Docker containers, Scalable container management services which include overview of Amazon ECS & kubernetes and how at LimeTray we harnessed the power of kubernetes for scalable automated deployment of our microservices.
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...Mohamed Abdennebi
Êtes-vous sûr que le code déployé en production est bien celui que vous pensez être ? Provient-il de votre CI/CD, d'un laptop d'un développeur ou pire, n'aurait-il pas été injecté par un attaquant ? Comment assurez-vous l'intégrité et la traçabilité de vos artefacts ?
Nous allons voir dans ce talk comment répondre à ces questions en utilisant SLSA.
Introduit et open sourcé par Google, SLSA est un cadre de sécurité qui renforce l'intégrité de votre chaîne de production logicielle ou Software Supply Chain. Son principe : améliorer par paliers successifs la protection du code source, sa construction et la distribution des artefacts.
Nous parlerons également de Sigstore, le Let's Encrypt de la signature du code, il nous permettra d’implémenter SLSA en rendant transparente la signature et l’attestation des artefacts.
Et pour faire la part belle à la pratique, nous verrons ensemble comment vérifier l'authenticité d'un container lors du déploiement dans Kubernetes grâce au moteur de règle Kyverno.
When performing security assessments or participating in bug bounties, there is generally a methodology you follow when assessing source-code or performing dynamic analysis. This involves using tools, reviewing results and understanding what you should be testing for. Reviewing modern web applications can be quite challenging, and this talk will go into details on how we can automate the boring (but necessary parts) and how to set a roadmap of what should be focused on when dealing with modern JavaScript applications.
This document summarizes a presentation on container security given by Phil Estes. It identifies several threat vectors for containers including risks from individual containers, interactions between containers, external attacks, and application security issues. It then outlines various security tools and features in Docker like cgroups, Linux Security Modules, capabilities, seccomp, and user namespaces that can help mitigate these threats. Finally, it discusses some future directions for improving container security through more secure defaults, image signing, and network security enhancements.
This document discusses SonarQube, a tool for continuous code inspection. It begins with an overview of static code analysis and its benefits for organizations. It then covers quality gates and rules for inspection, integration with CI/CD pipelines, and IDE plugins. Static code analysis examines source code to find patterns that could impact security, reliability or maintainability. Quality gates help highlight critical areas for improvement and gauge technical debt over time. SonarQube allows for continuous inspection across multiple languages and frameworks.
Since its first 1.12 release on July 2016, Docker Swarm Mode has matured enough as a clustering and scheduling tool for IT administrators and developers who can easily establish and manage a cluster of Docker nodes as a single virtual system. Swarm mode integrates the orchestration capabilities of Docker Swarm into Docker Engine itself and help administrators and developers with the ability to add or subtract container iterations as computing demands change. With sophisticated but easy to implement features like built-in Service Discovery, Routing Mesh, Secrets, declarative service model, scaling of the services, desired state reconciliation, scheduling, filters, multi-host networking model, Load-Balancing, rolling updates etc. Docker 17.06 is all set for production-ready product today. Join me webinar organised by Docker Izmir, to get familiar with the current Swarm Mode capabilities & functionalities across the heterogeneous environments.
Virtualization, Containers, Docker and scalable container management servicesabhishek chawla
In this presentation we take you through the concept of virtualization which includes the different types of virtualizations, understanding the Docker as a software containerization platform like Docker's Architecture, Building and running custom images in Docker containers, Scalable container management services which include overview of Amazon ECS & kubernetes and how at LimeTray we harnessed the power of kubernetes for scalable automated deployment of our microservices.
Les conteneurs épousent la philosophie des architectures microservices. Nous vous présenterons un socle technique résilient et scalable pour distribuer des microservices sur une infrastructure s’appuyant sur Docker Swarm pour l’orchestration des conteneurs et Interlock avec HAProxy pour la gestion du Service Discovery, le tout accessible depuis le Cloud.
Nous déploierons au sein de cette infrastructure une application de trombinoscope développée en architecture microservices. Chaque individu présent au sein du trombinoscope sera représenté par un microservice spécifique, que nous pourrons déployer et faire scaler au sein du cluster. Avec autant de microservices, il est nécessaire de mesurer leur état, nous vous présenterons également les outils de supervision que nous avons mis en place au sein de la solution.
Par Jean-Louis Rigau (Software Engineer, Continuous Delivery, DevOps and Docker @Xebia) & Thomas Auffredou (Software Engineer @ Xebia)
Toutes les vidéos des conférences seront disponibles sur Xebia.tv
A tort ou à raison, Kubernetes s'est imposé, en l'espace de 3 ans, comme un des nouveaux standards dans la gestion des architectures microservices modernes.
Cependant, cet outil complexe amène son lot de pièges dans lesquels les débutants ne manqueront pas de tomber... Et ce n'est pas l'apparente facilité apportée par les offres Kubernetes as a Service qui va arranger les choses !
Après un rapide tour de l'actualité sécu autour de Kubernetes, je vous donnerai donc les clés pour éviter de vous faire voler (trop facilement) vos cycles CPU.
Le présent document décrit les différentes étapes d’installation et de configuration des différents outils utilisés notamment Eclipse, est suit l’organisation suivante :
• 1ere partie :
Dans cette première partie vous trouverez les différentes étapes d’installation – à suivre - des différents outils nécessaires au bon fonctionnement d’Openbravo.
• 2eme partie :
Dans cette deuxième partie vous trouverez la configuration détaillée de l’IDE Eclipse pour assurer une bonne intégration du code.
Kubernetes University - Cap sur l'orchestrationWescale
Cette présentation était en partenariat avec Xebia (Jean-Baptiste Claramonte et Gerome Egron).
De nos jours, de plus en plus d’entreprises adoptent Docker. Mais comment faire avec des dizaines, des centaines voire des milliers de conteneurs à gérer ? Google s’est posé ces questions et de ses forges une réponse est sortie : le projet Kubernetes. Venez marcher dans les pas du géant en découvrant Kubernetes dans son intimité. Vous apprendrez à déployer une application, la scaler, la mettre à jour en rolling update et l'isoler des environnements. Entre démonstrations et retours de terrain, vous repartirez avec tous les outils pour conteneuriser la planète.
Cette présentation était en partenariat avec WeScale (Cédric Hauber).
De nos jours, de plus en plus d’entreprises adoptent Docker. Mais comment faire avec des dizaines, des centaines voire des milliers de conteneurs à gérer ? Google s’est posé ces questions et de ses forges une réponse est sortie : le projet Kubernetes. Venez marcher dans les pas du géant en découvrant Kubernetes dans son intimité. Vous apprendrez à déployer une application, la scaler, la mettre à jour en rolling update et l'isoler des environnements. Entre démonstrations et retours de terrain, vous repartirez avec tous les outils pour conteneuriser la planète.
De nos jours, de plus en plus d’entreprises adoptent Docker. Mais comment faire avec des dizaines, des centaines voire des milliers de conteneurs à gérer ? Google s’est posé ces questions et de ses forges une réponse est sortie : le projet Kubernetes. Venez marcher dans les pas du géant en découvrant Kubernetes dans son intimité. Vous apprendrez à déployer une application, la scaler, la mettre à jour en rolling update et l'isoler des environnements.
Retrouvez la vidéo de la conférence sur : https://www.youtube.com/watch?v=UhrIOMuA3_w
L’année passée a vu converger les fonctionnalités des moteurs de conteneurs. L’enjeu de l’année à venir n’est plus sur les couches système mais bien sur l’orchestration des services. Nous vous proposons de comparer les trois orchestrateurs Mesos/Marathon, Swarm/Docker DC et Kubernetes au travers d’un cycle de vie devops : intégration continue, déploiement, “Infrastructure-as-Code” et exploitation.
Par Jonathan Raffre, Yannick Lorenzati, Jean-Louis Rigau, Thomas Auffredou, Experts DevOps et Coud chez Xebia.
Notre voyage vers le déploiement continu avec micro-services, la conteneurisation et l'orchestration des conteneurs utilisant Kubernetes. Sur notre chemin, nous avons dû créer divers outils pour nous aider à mieux utiliser et tester le tout avant d'aller en production. Nous avons également intégré une variété d'autres outils pour nous donner de la visibilité sur notre plate-forme. Cette conférence sera un aperçu de notre voyage jusqu'à maintenant.
Our journey towards continuous deployment with micro-services, containerization and orchestration of containers using Kubernetes. On our way there, we've had to create various tools to help us better use and test everything before going to production. We also had to integrate a variety of other tools to give us visibility on our platform.
This talk will be an overview of our journey up to now.
Bien que Docker soit facile d'utilisation, construire une image reste un exercice compliqué.
Optimisation, layers, et sécurité nécessitent de s'abstraire des Dockerfile basiques qu'on peut trouver sur internet.
Dans ce BBL, nous verrons comment bien packager une application Spring Boot dans une image Docker/OCI.
Nous allons parcourir les bonnes pratiques préconisées par Spring, les pièges à éviter, comment bien écrire un Dockerfile pour optimiser la construction et l'image finale pour une exécution dans Kubernetes et nous verrons aussi des moyens alternatifs de construction d'images Spring Boot et l'outillage d'analyse à ajouter à votre toolbox.
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...AZUG FR
Comment mettre en place un déploiement automatisé sans frictions. Présentation d’Azure Container Services orchestré par DC/OS pour piloter votre pipeline de déploiement Docker.
La mode est aux conteneurs. Mais tout le monde n'est pas capable de transformer radicalement son DataCenter pour accueillir ces nouvelles unités de déploiement. Dès lors, le cloud est une alternative plus que valide. Mais il existe de nombreuses façons de déployer son conteneur dans les nuages ! À travers un retour d'expérience basé sur AWS, nous balayerons ces différents patterns, du plus indépendant de l'infrastructure sous jacente, au plus intriqué avec les services managés AWS.
Comment, dans le cadre de la migration vers Google Cloud Platform, MeilleursAgents a revu ses techniques de déploiements d'applications Python pour garantir des releases fiables, testables et reproductibles.
Docker, Pierre angulaire du continuous delivery ?Adrien Blind
This presentation explores continuous delivery principles leveraging on Docker : it depicts the use of Docker containers as universal application artifacts, delivered flowly all along a deployment pipeline.
This slideshow has been initially presented at Devops D-Day conference, Marseille.
Les conteneurs épousent la philosophie des architectures microservices. Nous vous présenterons un socle technique résilient et scalable pour distribuer des microservices sur une infrastructure s’appuyant sur Docker Swarm pour l’orchestration des conteneurs et Interlock avec HAProxy pour la gestion du Service Discovery, le tout accessible depuis le Cloud.
Nous déploierons au sein de cette infrastructure une application de trombinoscope développée en architecture microservices. Chaque individu présent au sein du trombinoscope sera représenté par un microservice spécifique, que nous pourrons déployer et faire scaler au sein du cluster. Avec autant de microservices, il est nécessaire de mesurer leur état, nous vous présenterons également les outils de supervision que nous avons mis en place au sein de la solution.
Par Jean-Louis Rigau (Software Engineer, Continuous Delivery, DevOps and Docker @Xebia) & Thomas Auffredou (Software Engineer @ Xebia)
Toutes les vidéos des conférences seront disponibles sur Xebia.tv
A tort ou à raison, Kubernetes s'est imposé, en l'espace de 3 ans, comme un des nouveaux standards dans la gestion des architectures microservices modernes.
Cependant, cet outil complexe amène son lot de pièges dans lesquels les débutants ne manqueront pas de tomber... Et ce n'est pas l'apparente facilité apportée par les offres Kubernetes as a Service qui va arranger les choses !
Après un rapide tour de l'actualité sécu autour de Kubernetes, je vous donnerai donc les clés pour éviter de vous faire voler (trop facilement) vos cycles CPU.
Le présent document décrit les différentes étapes d’installation et de configuration des différents outils utilisés notamment Eclipse, est suit l’organisation suivante :
• 1ere partie :
Dans cette première partie vous trouverez les différentes étapes d’installation – à suivre - des différents outils nécessaires au bon fonctionnement d’Openbravo.
• 2eme partie :
Dans cette deuxième partie vous trouverez la configuration détaillée de l’IDE Eclipse pour assurer une bonne intégration du code.
Kubernetes University - Cap sur l'orchestrationWescale
Cette présentation était en partenariat avec Xebia (Jean-Baptiste Claramonte et Gerome Egron).
De nos jours, de plus en plus d’entreprises adoptent Docker. Mais comment faire avec des dizaines, des centaines voire des milliers de conteneurs à gérer ? Google s’est posé ces questions et de ses forges une réponse est sortie : le projet Kubernetes. Venez marcher dans les pas du géant en découvrant Kubernetes dans son intimité. Vous apprendrez à déployer une application, la scaler, la mettre à jour en rolling update et l'isoler des environnements. Entre démonstrations et retours de terrain, vous repartirez avec tous les outils pour conteneuriser la planète.
Cette présentation était en partenariat avec WeScale (Cédric Hauber).
De nos jours, de plus en plus d’entreprises adoptent Docker. Mais comment faire avec des dizaines, des centaines voire des milliers de conteneurs à gérer ? Google s’est posé ces questions et de ses forges une réponse est sortie : le projet Kubernetes. Venez marcher dans les pas du géant en découvrant Kubernetes dans son intimité. Vous apprendrez à déployer une application, la scaler, la mettre à jour en rolling update et l'isoler des environnements. Entre démonstrations et retours de terrain, vous repartirez avec tous les outils pour conteneuriser la planète.
De nos jours, de plus en plus d’entreprises adoptent Docker. Mais comment faire avec des dizaines, des centaines voire des milliers de conteneurs à gérer ? Google s’est posé ces questions et de ses forges une réponse est sortie : le projet Kubernetes. Venez marcher dans les pas du géant en découvrant Kubernetes dans son intimité. Vous apprendrez à déployer une application, la scaler, la mettre à jour en rolling update et l'isoler des environnements.
Retrouvez la vidéo de la conférence sur : https://www.youtube.com/watch?v=UhrIOMuA3_w
L’année passée a vu converger les fonctionnalités des moteurs de conteneurs. L’enjeu de l’année à venir n’est plus sur les couches système mais bien sur l’orchestration des services. Nous vous proposons de comparer les trois orchestrateurs Mesos/Marathon, Swarm/Docker DC et Kubernetes au travers d’un cycle de vie devops : intégration continue, déploiement, “Infrastructure-as-Code” et exploitation.
Par Jonathan Raffre, Yannick Lorenzati, Jean-Louis Rigau, Thomas Auffredou, Experts DevOps et Coud chez Xebia.
Notre voyage vers le déploiement continu avec micro-services, la conteneurisation et l'orchestration des conteneurs utilisant Kubernetes. Sur notre chemin, nous avons dû créer divers outils pour nous aider à mieux utiliser et tester le tout avant d'aller en production. Nous avons également intégré une variété d'autres outils pour nous donner de la visibilité sur notre plate-forme. Cette conférence sera un aperçu de notre voyage jusqu'à maintenant.
Our journey towards continuous deployment with micro-services, containerization and orchestration of containers using Kubernetes. On our way there, we've had to create various tools to help us better use and test everything before going to production. We also had to integrate a variety of other tools to give us visibility on our platform.
This talk will be an overview of our journey up to now.
Bien que Docker soit facile d'utilisation, construire une image reste un exercice compliqué.
Optimisation, layers, et sécurité nécessitent de s'abstraire des Dockerfile basiques qu'on peut trouver sur internet.
Dans ce BBL, nous verrons comment bien packager une application Spring Boot dans une image Docker/OCI.
Nous allons parcourir les bonnes pratiques préconisées par Spring, les pièges à éviter, comment bien écrire un Dockerfile pour optimiser la construction et l'image finale pour une exécution dans Kubernetes et nous verrons aussi des moyens alternatifs de construction d'images Spring Boot et l'outillage d'analyse à ajouter à votre toolbox.
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...AZUG FR
Comment mettre en place un déploiement automatisé sans frictions. Présentation d’Azure Container Services orchestré par DC/OS pour piloter votre pipeline de déploiement Docker.
La mode est aux conteneurs. Mais tout le monde n'est pas capable de transformer radicalement son DataCenter pour accueillir ces nouvelles unités de déploiement. Dès lors, le cloud est une alternative plus que valide. Mais il existe de nombreuses façons de déployer son conteneur dans les nuages ! À travers un retour d'expérience basé sur AWS, nous balayerons ces différents patterns, du plus indépendant de l'infrastructure sous jacente, au plus intriqué avec les services managés AWS.
Comment, dans le cadre de la migration vers Google Cloud Platform, MeilleursAgents a revu ses techniques de déploiements d'applications Python pour garantir des releases fiables, testables et reproductibles.
Docker, Pierre angulaire du continuous delivery ?Adrien Blind
This presentation explores continuous delivery principles leveraging on Docker : it depicts the use of Docker containers as universal application artifacts, delivered flowly all along a deployment pipeline.
This slideshow has been initially presented at Devops D-Day conference, Marseille.
Sécurisez votre software supply chain avec SLSA, Sigstore et Kyverno
1. Sécurisez votre software supply chain
avec SLSA, Sigstore et Kyverno
Speaker :
Mohamed Abdennebi, @abdennebi
SFEIR
#KCDFrance 2023
2. Les attaques sur la supply chain
#KCDFrance 2023
Source : https://www.sonatype.com/state-of-the-software-supply-chain/introduction
Attaques
Confusion de dépendance
Typosquatting
Injection de code
malicieux
3. La supply chain logicielle
Source
Repo
Build
System
Package
Repo
Dépendances
(C)
Build à partir
d'un autre
source repo
(B)
Compromission
du source repo
(D)
Compromission
du process de
build
(F)
Upload de
package modifié
(G)
Compromission
du package
repo
(A)
Soumettre des
changements
non autorisés
(H)
Utilisation d'un
package vérolé
(E)
Utilisation d'une
dépendance
vérolée
4. Best Practices & Frameworks
#KCDFrance 2023
● OWASP : Top 10 CI/CD Security Risks, 2022
● CNCF : Software Supply Chain Best Practices, 2021
● NIST SSDF : Secure Software Development Framework, 2022
● CIS Software Supply Chain Security Guide, 2022
● SLSA : (1.0 RC1 février 2023)
6. SLSA
#KCDFrance 2023
● Security Levels for Software Artifacts
● Objectif : assurer l'intégrité de la supply chain
● Projet de l'Open Source Security Foundation (OpenSSF)
● Inspiré par « Binary Authorization for Borg » au sein de Google
Borg et SLSA : https://cloud.google.com/docs/security/binary-authorization-for-borg
7. SLSA
#KCDFrance 2023
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éé.
8. Qu'est-ce une attestation ?
#KCDFrance 2023
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 contenues dans l'attestation.
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
● Inventer la vôtre :)
10. Provenance SLSA
#KCDFrance 2023
À quoi servira la provenance ?
● Remonter du binaire au code source (lien fort entre les deux)
● Garantir l'intégrité du binaire
● Rejouer le build pour recréer l'artéfact
11. Les règles SLSA
#KCDFrance 2023
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
12. Build Track L1 : Provenance
#KCDFrance 2023
Description : Provenance publiée
1. Le mainteneur documente les valeurs que doit avoir la provenance.
2. Le mainteneur produit à 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.
13. Build Track L2 : Build Service
#KCDFrance 2023
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.
⚠ Postulat de base : le système de build est correctement
sécurisé.
2. Le consommateur vérifie l'authenticité de la provenance ainsi que
les informations qu'elle contient.
14. Build Track L3 : Hardened Builds
#KCDFrance 2023
Description : Build renforcé + provenance non-falsifiable
1. Les jobs contrôlés par l'utilisateur ne peuvent pas accéder à la clé de
signature pour é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 éphémères
15. En résumé
#KCDFrance 2023
Si vous avez un système de build capable :
- De lancer des jobs isolés les un des autres
- D'assurer qu'il sont éphémères
- Générer et signer des provenance automatiquement sans l'intervention ni
l'influence des jobs utilisateurs.
Alors il est éligible au niveau SLSA 3 et vous avez la garantie que ce que vous
déployez a été protégé contre toute modification.
16. SLSA Build Track
Source Build Package
Dépendances
(C)
Build à partir
d'un autre
source repo
(B)
Compromission
du source repo
(D)
Compromission
du process de
build
(F)
Upload de
package modifié
(G)
Compromission
du package
repo
(A)
Soumettre des
changements
non autorisés
(H)
Utilisation d'un
package vérolé
(E)
Utilisation d'une
dépendance
vérolée
17. Implémentation de SLSA
#KCDFrance 2023
Objectif : Construire un container et atteindre le niveau SLSA Build L3
En utilisant
1. Github Actions et Github Workflows comme système de build
2. Sigstore pour la signature des provenances
19. Sigstore
#KCDFrance 2023
Service d'utilité publique 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 certificats et les signatures
20. Sigstore
#KCDFrance 2023
Principes de la signature keyless :
● On s'authentifie auprès de son provider OIDC (OpenId Connect)
● 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.
21. Démo time !
#KCDFrance 2023
Démo 1 : Signature keyless avec Sigstore
Démo 2 : Générer un container estampillé SLSA
Build L3
Démo 3 : Déployer le container dans un cluster
Kubernetes en vérifiant sa provenance par Kyverno
24. Démo 2
#KCDFrance 2023
Nous utilisons Github Actions comme système de build.
Pour générer une provenance non falsifiable, il nous faut :
1. Isoler la génération de provenance contre toute interférence
externe (y compris les développeurs)
2. Le générateur de provenance doit avoir une identité OIDC
pour pouvoir signer la provenance.
25. Démo 2
#KCDFrance 2023
Les "Reusable Workflows" répondent aux exigences précédentes :
● Sont séparés du repo de l'utilisateur
● Sont appelés par les workflow de l'utilisateur mais sans aucune
interférence (Isolation)
● Ont leur propre identité OIDC 👉 Ils peuvent signer les
provenance en utilisant Sigstore
● Se lancent dans une nouvelle VM éphémère
28. Kyverno
#KCDFrance 2023
● « Policy Engine » pour Kubernetes
● Open Source, fait partie des projets CNCF
● Il peut :
○ valider
○ muter
○ générer et nettoyer les ressources Kubernetes
👉 Nous allons l'utiliser pour valider la provenance des
pods