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 développeurs, équipes DevOps et équipes 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 comprend l'ensemble du code, des personnes, des systèmes et des processus qui contribuent au développement et à la diffusion de votre logiciel, à l'intérieur et à l'extérieur de votre organisation. Il inclut les éléments suivants :

  • Le code que vous créez, ses dépendances et 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 de confiance pour développer, compiler, stocker et exécuter votre logiciel et ses dépendances.

Compte tenu de la large couverture et de la complexité des chaînes d'approvisionnement logicielles, il existe de nombreuses façons d'apporter des modifications non autorisées au logiciel que vous fournissez à vos utilisateurs. Ces vecteurs d'attaque couvrent tout le cycle de vie du logiciel. Certaines attaques sont ciblées, comme l'attaque du système de compilation SolarWinds, tandis que d'autres menaces sont indirectes ou pénètrent la chaîne d'approvisionnement via des failles de processus ou de 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é qu'il y avait plus de 17 000 paquets concernés dans Maven Central. La plupart de ces paquets ne dépendaient pas directement du paquet log4j-core vulnérable, mais avaient des dépendances qui nécessitaient ce paquet.

Les pratiques et les processus de développement ont également un impact sur les chaînes d'approvisionnement logicielles. Les lacunes de processus, telles que l'absence d'examen du code ou de critères de sécurité pour le déploiement en production, peuvent permettre à du code incorrect d'entrer 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 propose:

  • Produits et fonctionnalités qui intègrent les bonnes pratiques de sécurité pour le développement, la compilation, les tests, le déploiement et l'application des règles.
  • Tableaux de bord de la console Google Cloud qui fournissent des informations de sécurité sur la source, les builds, les artefacts, les déploiements et les 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 liste de matières premières logicielles (SBOM).
  • Informations permettant d'identifier 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 illustre 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 dans votre chaîne d'approvisionnement logicielle pour améliorer votre stratégie de sécurité.

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

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 améliorant la posture de 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 offrent des fonctionnalités supplémentaires de protection contre la perte de données lorsqu'elles sont associées à Chrome Enterprise Premium.

Protéger l'approvisionnement logiciel

Sécuriser l'approvisionnement logiciel (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 des logiciels Open Source rend ce problème particulièrement difficile.

  • 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 paquets 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 logiciel.

    • Les dépôts distants stockent des artefacts à partir de sources externes prédéfinies telles que Docker Hub, Maven Central, l'index de paquets Python (PyPI), Debian ou CentOS, ainsi que des sources définies par l'utilisateur pour les formats compatibles. La mise en cache des artefacts dans des dépôts distants réduit le temps de téléchargement, améliore la disponibilité des paquets 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 seul point de terminaison et vous permettent de contrôler l'ordre de recherche dans les dépôts en amont. Vous pouvez donner la priorité à vos packages privés, ce qui réduit le risque d'attaques de confusion de dépendance.
    • 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 malintentionnés 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 isolés et éphémères. 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 compilation authentifiée et non falsifiable pour les applications conteneurisées.
    • Insights sur la sécurité pour les applications compilées. Par exemple :

      • 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 savoir comment afficher les insights sur la sécurité des applications compilées, consultez la section 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, une sécurité et un audit d'entreprise, ainsi que des métriques de diffusion 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 contribuent à renforcer la stratégie de sécurité de vos environnements d'exécution. Ils incluent tous deux des 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 sur les paramètres de cluster, la configuration de la charge 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 de sécurité dans le tableau de bord de stratégie de sécurité de GKE, consultez la section Déployer dans GKE et afficher les insights de sécurité.

  • Cloud Run inclut un panneau de sécurité qui affiche des insights sur la sécurité de la chaîne d'approvisionnement logiciel, tels que les informations de 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 de sécurité dans le panneau "Insights de sécurité" de Cloud Run, consultez la page Déployer dans Cloud Run et afficher les insights de sécurité.

Créer une chaîne de confiance via une stratégie

L'autorisation binaire permet d'établir, de gérer 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 qui certifient 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 à ces attestations collectées, l'autorisation binaire permet de définir, de valider et d'appliquer des règles basées sur la confiance. Il s'assure que l'image n'est déployée que lorsque les attestations répondent aux règles de votre organisation. Vous pouvez configurer l'autorisation binaire pour qu'elle vous avertisse en cas de non-respect des règles.

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

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

Tarifs

Chaque service Google Cloud dispose de sa propre tarification. Pour en savoir plus, consultez la documentation sur les tarifs des services qui vous intéressent.

Étape suivante