Sécurité sur la chaîne d'approvisionnement logicielle

Google Cloud fournit un ensemble complet et modulaire de fonctionnalités et d'outils dans les produits Google Cloud que vos équipes de développement, DevOps et de sécurité peuvent utiliser pour améliorer la stratégie de sécurité de votre chaîne d'approvisionnement logicielle.

Chaînes d'approvisionnement logicielles

Une chaîne d'approvisionnement logicielle se compose de l'ensemble du code, des personnes, des systèmes et des processus qui contribuent au développement et à la distribution de votre logiciel, à la fois en interne et en externe. Il inclut les éléments suivants :

  • Le code que vous créez, ses dépendances, ainsi que les logiciels internes et externes que vous utilisez pour développer, compiler, empaqueter, installer et exécuter votre logiciel.
  • Processus et règles concernant l'accès au système, les tests, l'examen, la surveillance et les commentaires, la communication et l'approbation.
  • Systèmes auxquels vous faites confiance pour développer, compiler, stocker et exécuter votre logiciel et ses dépendances.

Compte tenu de la portée et de la complexité des chaînes d'approvisionnement de logiciels, il existe de nombreuses façons d'introduire des modifications non autorisées dans les logiciels que vous fournissez à vos utilisateurs. Ces vecteurs d'attaque couvrent le cycle de vie du logiciel. Si certaines attaques sont ciblées, comme celle du système de compilation SolarWinds, d'autres menaces sont indirectes ou pénètrent la chaîne d'approvisionnement par le biais de faiblesses dans les processus ou par négligence.

Par exemple, une évaluation de la faille Apache Log4j en décembre 2021 par l'équipe Google Open Source Insights a révélé que plus de 17 000 packages concernés se trouvaient dans Maven Central. La plupart de ces packages ne dépendaient pas directement du package log4j-core vulnérable, mais avaient des dépendances qui nécessitaient le package.

Les pratiques et processus de développement ont également un impact sur les chaînes d'approvisionnement logicielles. Les lacunes de processus, telles que l'absence de revue de code ou de critères de sécurité pour le déploiement en production, peuvent permettre à du code malveillant de s'introduire involontairement dans la chaîne d'approvisionnement. De même, l'absence de gestion des dépendances augmente le risque de failles provenant de sources externes ou de packages logiciels que vous utilisez pour le développement, la compilation ou le déploiement.

Protéger les chaînes d'approvisionnement logicielles sur Google Cloud

Google Cloud fournit les éléments suivants :

  • Produits et fonctionnalités qui intègrent les bonnes pratiques de sécurité pour le développement, la création, les tests, le déploiement et l'application des règles.
  • Tableaux de bord de la console Google Cloud fournissant des informations sur la sécurité des sources, des compilations, des artefacts, des déploiements et des environnements d'exécution. Ces informations incluent les failles dans les artefacts de compilation, la provenance de la compilation et les listes de dépendances de la nomenclature logicielle (SBOM).
  • Informations identifiant le niveau de maturité de la sécurité de votre chaîne d'approvisionnement logicielle à l'aide du framework SLSA (Supply chain Levels for Software Artifacts).

Le schéma suivant montre les services Google Cloud qui fonctionnent ensemble pour protéger la chaîne d'approvisionnement logicielle. Vous pouvez intégrer tout ou partie de ces composants à votre chaîne d'approvisionnement logicielle pour améliorer votre stratégie de sécurité.

Google Cloud composants de la chaîne d'approvisionnement logicielle

Protéger l'environnement de développement

Cloud Workstations fournit des environnements de développement entièrement gérés sur Google Cloud. Les administrateurs informatiques et de sécurité peuvent provisionner, faire évoluer, gérer et protéger leurs environnements de développement. Les développeurs peuvent accéder à des environnements de développement avec des configurations cohérentes et des outils personnalisables.

Cloud Workstations déplace la sécurité vers l'amont en renforçant la sécurité de vos environnements de développement d'applications. Les fonctionnalités de sécurité incluent VPC Service Controls, les entrées et sorties privées, la mise à jour forcée des images et les stratégies d'accès Identity and Access Management. Cloud Workstations offre des fonctionnalités de protection contre la perte de données supplémentaires lorsqu'il est associé à Chrome Enterprise Premium.

Protéger la chaîne d'approvisionnement logicielle

La sécurisation de l'approvisionnement en logiciels (artefacts de compilation et dépendances d'application) est une étape essentielle pour améliorer la sécurité de votre chaîne d'approvisionnement logicielle. L'utilisation généralisée de logiciels Open Source rend ce problème particulièrement difficile à résoudre.

  • Assured Open Source Software fournit des packages Open Source que Google a vérifiés et testés. Ces packages sont créés à l'aide des pipelines sécurisés de Google. Ils sont régulièrement analysés et testés afin de détecter les failles.

  • Artifact Registry est un gestionnaire de packages universel pour tous vos artefacts et dépendances de compilation. En centralisant tous vos artefacts et dépendances, vous bénéficiez d'une meilleure visibilité et d'un meilleur contrôle sur le code de votre chaîne d'approvisionnement logicielle.

    • Les dépôts distants stockent les artefacts provenant de sources externes prédéfinies telles que Docker Hub, Maven Central, l'index de package Python (PyPI), Debian ou CentOS, ainsi que les sources définies par l'utilisateur pour les formats compatibles. La mise en cache des artefacts dans les dépôts distants réduit le temps de téléchargement, améliore la disponibilité des packages et inclut l'analyse des failles si elle est activée.
    • Les dépôts virtuels regroupent les dépôts du même format derrière un point de terminaison unique et vous permettent de contrôler l'ordre de recherche dans les dépôts en amont. Vous pouvez définir des priorités pour vos packages privés, ce qui réduit le risque d'attaques par confusion de dépendances.
    • Vous pouvez également protéger les artefacts en configurant des fonctionnalités de sécurité telles que le contrôle des accès, les périmètres de service VPC Service Controls, les règles d'administration et d'autres fonctionnalités de sécurité. Pour en savoir plus, consultez la documentation Artifact Registry.
  • Artifact Analysis détecte de manière proactive les failles des artefacts dans Artifact Registry.

Protéger le pipeline CI/CD

Les acteurs malveillants peuvent attaquer les chaînes d'approvisionnement logicielles en compromettant les pipelines CI/CD. Les produits suivants vous aident à sécuriser votre pipeline CI/CD :

  • Cloud Build exécute vos compilations sur l'infrastructure Google Cloud. Les fonctionnalités de sécurité incluent des autorisations IAM précises, VPC Service Controls et des environnements de compilation éphémères et isolés. Voici quelques fonctionnalités spécifiques à la sécurité de la chaîne d'approvisionnement logicielle :

    • Prise en charge des builds SLSA de niveau 3 pour les images de conteneurs.
    • Possibilité de générer une provenance de build authentifiée et non falsifiable pour les applications conteneurisées.
    • Insights sur la sécurité pour les applications compilées. Par exemple :

      • Le niveau de compilation SLSA, qui identifie le niveau de maturité de votre processus de compilation logicielle conformément à la spécification SLSA.
      • Failles dans les artefacts de compilation.
      • La provenance du build, qui est une collection de métadonnées vérifiables sur un build. Il inclut des détails tels que les condensés des images compilées, les emplacements de la source d'entrée, la chaîne d'outils de compilation, les étapes de compilation et la durée de compilation.

    Pour obtenir des instructions sur l'affichage des insights sur la sécurité pour les applications créées, consultez Créer une application et afficher les insights sur la sécurité.

  • Cloud Deploy automatise la diffusion de vos applications dans une série d'environnements cibles selon une séquence définie. Il est compatible avec la livraison continue directement sur Google Kubernetes Engine, GKE Enterprise et Cloud Run, avec des approbations et des rollbacks en un clic, la sécurité et l'audit d'entreprise, ainsi que des métriques de livraison intégrées. De plus, il affiche des insights sur la sécurité pour les applications déployées.

Protéger les applications en production

Google Kubernetes Engine (GKE) et Cloud Run vous aident à sécuriser la stratégie de sécurité de vos environnements d'exécution. Elles sont toutes les deux dotées de fonctionnalités de sécurité pour protéger vos applications au moment de l'exécution.

  • GKE peut évaluer la stratégie de sécurité de vos conteneurs et vous fournir des conseils actifs concernant les paramètres de cluster, la configuration des charges de travail et les failles. GKE inclut un tableau de bord de stratégie de sécurité qui fournit des recommandations avisées et exploitables pour améliorer votre stratégie de sécurité. Pour savoir comment afficher les insights sur la sécurité dans le tableau de bord de stratégie de sécurité GKE, consultez Déployer sur GKE et afficher les insights sur la sécurité.

  • Cloud Run inclut un panneau de sécurité qui affiche des insights sur la sécurité de la chaîne d'approvisionnement logicielle, tels que des informations sur la conformité au niveau de compilation SLSA, la provenance de la compilation et les failles détectées dans les services en cours d'exécution. Pour savoir comment afficher les insights sur la sécurité dans le panneau "Insights sur la sécurité" de Cloud Run, consultez Déployer sur Cloud Run et afficher les insights sur la sécurité.

Établir une chaîne de confiance grâce aux règles

L'autorisation binaire permet d'établir, de maintenir et de valider une chaîne de confiance tout au long de votre chaîne d'approvisionnement logicielle en collectant des attestations, qui sont des documents numériques certifiant des images.

Une attestation signifie que l'image associée a été créée en exécutant un processus spécifique et obligatoire. Grâce aux attestations recueillies, l'autorisation binaire permet de définir, de valider et d'appliquer des règles basées sur la confiance. Elle s'assure que l'image n'est déployée que lorsque les attestations répondent aux règles de votre entreprise. Vous pouvez configurer l'autorisation binaire pour qu'elle vous avertisse si elle détecte des cas de non-respect des règles.

Par exemple, les attestations peuvent indiquer qu'une image est :

Vous pouvez utiliser l'autorisation binaire avec GKE et Cloud Run.

Tarifs

Chaque Google Cloud service a son propre prix. Pour en savoir plus, consultez la documentation sur les tarifs des services qui vous intéressent.

Étapes suivantes