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

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Des frameworks et approches modernes pour le développement de logiciels sont axés sur la rapidité et la fiabilité de la livraison de logiciels, ainsi que sur le partage de propriété entre les personnes concernées.

En plus de la pratique DevOps de transition vers la gauche sur la sécurité, de nombreuses autres pratiques DevOps contribuent à fournir des logiciels plus sécurisés. Plus de collaboration entre les personnes concernées, une visibilité sur le travail, des builds reproductibles, des tests automatisés, des modifications incrémentielles sont autant de pratiques compatibles avec la sécurité logicielle. Le rapport Accelerate sur l'état du DevOps en 2022 a en effet constaté que les cultures à confiance élevée étaient plus susceptibles d'adopter des pratiques permettant de renforcer la chaîne d'approvisionnement logicielle. L'utilisation de la CI/CD facilite l'implémentation des pratiques de sécurité.

Cependant, les frameworks de développement modernes ne disposent pas de conseils pour aider les organisations à comprendre les menaces liées à leurs logiciels, à évaluer leur capacité à détecter les menaces et à y répondre, ainsi qu'à mettre en place des mesures d'atténuation. Ils ont également tendance à se concentrer spécifiquement sur le code et les processus d'une organisation, et à négliger les facteurs externes qui peuvent affecter l'intégrité des applications. Par exemple, une attaque qui compromet un package logiciel Open Source a un impact sur le code qui repose directement ou indirectement sur ce package. Les attaques de ce type dans la chaîne d'approvisionnement logicielle ont fortement augmenté depuis 2020.

Chaînes d'approvisionnement logicielles

Une chaîne d'approvisionnement logicielle est constituée de l'ensemble du code, des collaborateurs, des systèmes et des processus qui contribuent au développement et à la livraison de votre logiciel, à l'intérieur comme à l'extérieur de votre organisation. Elle 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 pour l'accès au système, les tests, l'examen, la surveillance et les commentaires, la communication et l'approbation.
  • Des systèmes de confiance pour développer, compiler, stocker et exécuter votre logiciel et ses dépendances.

En raison de la portée et de la complexité de la chaîne d'approvisionnement logicielle, vous pouvez apporter des modifications non autorisées au logiciel que vous fournissez aux utilisateurs. Ces vecteurs d'attaque couvrent l'ensemble du cycle de vie du logiciel. Bien que certaines attaques soient ciblées, telles que l'attaque contre le système de compilation SolarWinds, d'autres menaces sont indirectes ou pénètrent dans la chaîne d'approvisionnement en raison de faiblesses du processus ou de leur négligence.

Par exemple, dans un article de blog sur la faille d'exécution à distance dans Apache log4j de décembre 2021, l'équipe Google Open Source Insights a noté que plus de 17 000 packages étaient affectés dans Maven Central. La plupart des packages concernés ne dépendaient pas directement du package log4j-core vulnérable, mais possédaient des dépendances.

Les écarts de processus tels que l'absence d'examen du code ou l'absence de critères de sécurité pour le déploiement en production peuvent empêcher le code malveillant d'entrer dans la chaîne d'approvisionnement de manière involontaire. De même, un code incorrect peut s'introduire dans votre logiciel si vous compilez avec du code source en dehors de votre système de contrôle des versions de confiance, ou empaquetez et déployez des applications à partir de systèmes situés en dehors de votre système de compilation fiable et de vos dépôts d'artefacts.

Selon l'État de la chaîne d'approvisionnement logicielle 2021, l'utilisation de logiciels Open Source et les attaques contre les chaînes d'approvisionnement logicielles ont fortement augmenté entre 2020 et 2021:

  • En 2021, les attaques visant la chaîne d'approvisionnement logicielle ont augmenté de 650 %.
  • La disponibilité et la demande pour les packages Open Source continuent d'augmenter, avec une augmentation de 73% des téléchargements de composants Open Source en 2021.
  • Les failles sont plus courantes dans les projets Open Source les plus populaires.

Pour protéger l'intégrité de vos logiciels, il est important de comprendre votre stratégie de sécurité: dans quelle mesure votre organisation est-elle prête à détecter les menaces, à y répondre et à y remédier ?

Exigences de conformité et frameworks d'évaluation

Les inquiétudes croissantes concernant la sécurité de la chaîne d'approvisionnement ont conduit à la création de nouvelles réglementations gouvernementales spécifiques à la sécurité de la chaîne d'approvisionnement, telles que:

De nouveaux frameworks émergent pour aider les organisations à évaluer leur stratégie de sécurité et à en savoir plus sur les mesures d'atténuation des menaces.

Ces frameworks exploitent des pratiques de sécurité logicielles bien établies et les structurent dans un format qui vous aide à identifier les menaces de sécurité que vous devez gérer et les mesures à prendre pour les atténuer.

Protégez votre chaîne d'approvisionnement logicielle sur Google Cloud

Software Delivery Shield fournit une solution de sécurité de la chaîne d'approvisionnement logicielle entièrement gérée sur Google Cloud. Il intègre les bonnes pratiques, y compris des pratiques dans des frameworks tels que SLSA et NIST SSDF. Vous adopterez progressivement les composants de la solution, en fonction de vos priorités et de vos besoins.

Étapes suivantes