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

Les frameworks et approches modernes de développement logiciel se concentrent sur la vitesse et la fiabilité de la livraison de logiciels, ainsi que sur la propriété partagée entre les différentes personnes concernées.

En plus de la pratique DevOps de déménagement à gauche sur la sécurité, de nombreuses autres pratiques du DevOps s'inscrivent dans la fourniture de logiciels plus sécurisés. Une meilleure collaboration entre les personnes concernées, la visibilité du travail, les builds reproductibles, les tests automatisés, les modifications incrémentielles sont autant de pratiques qui contribuent à la sécurité logicielle.

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

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 livraison de votre logiciel, à l'intérieur comme à l'extérieur de votre organisation. Il inclut les éléments suivants :

  • 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 en toute 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é de la chaîne d'approvisionnement logicielle, vous pouvez apporter de nombreuses modifications non autorisées au logiciel que vous fournissez à vos utilisateurs. Ces vecteurs d'attaque traversent le cycle de vie du logiciel. Alors que certaines attaques sont ciblées, telles que l'attaque sur le système de compilation SolarWinds, d'autres menaces sont indirectes ou arrivent sur la chaîne d'approvisionnement par le biais de points faibles au niveau du processus ou de la 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 a remarqué que plus de 17 000 packages étaient concernés dans Maven Central. La plupart des packages concernés ne dépendaient pas directement du package log4j-core vulnérable, mais comportaient des dépendances qui en avaient besoin.

Les erreurs de processus telles que l'absence de révision du code ou les critères de sécurité du déploiement en production peuvent empêcher le code d'entrer de manière involontaire dans la chaîne d'approvisionnement. De même, de mauvais code peut s'intégrer à votre logiciel si vous compilez avec du code source en dehors de votre système de contrôle des versions approuvé, ou si vous empaquetez et déployez des applications à partir de systèmes extérieurs à votre système de compilation et à vos dépôts d'artefacts fiables.

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

  • En 2021, les attaques de la chaîne d'approvisionnement logicielle ont augmenté de 650 %.
  • La disponibilité et la demande des packages Open Source continuent d'augmenter, avec une augmentation de 73% des téléchargements de composants Open Source en 2021.
  • Les failles sont les 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 niveau de sécurité: comment 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 préoccupations accrues liées à 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 cette chaîne, telles que:

De nouveaux frameworks émergents 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 les pratiques de sécurité logicielle établies et les structurent dans un format qui vous permet d'identifier les menaces de sécurité à traiter et les mesures à prendre pour limiter ces menaces.

Protégez votre chaîne d'approvisionnement

Pour protéger votre chaîne d'approvisionnement, vous devez:

  1. Découvrez les attaques contre la chaîne d'approvisionnement. Des personnes, des processus et des outils tout au long du cycle de vie d'un logiciel peuvent le compromettre de manière intentionnelle ou accidentelle. Les organisations qui ne sont pas au courant des menaces sont plus vulnérables aux attaques.

  2. Évaluez votre niveau de sécurité actuel pour identifier les moyens de le renforcer. En fonction de votre évaluation, prévoyez des modifications.

  3. Appliquez vos modifications. Pour en savoir plus, consultez Protéger votre chaîne d'approvisionnement logicielle.