Comment gérer correctement un SBOM

Depuis la récente augmentation des attaques contre les chaînes d'approvisionnement logicielles, la génération de nomenclatures logicielles (SBOM) est devenue une étape essentielle du développement que les équipes doivent réaliser pour créer et expédier des logiciels en toute sécurité. Un SBOM est une liste complète qui détaille tous les composants logiciels utilisés dans un produit logiciel. L'objectif de la sécurité SBOM est d'assurer la transparence et la traçabilité au sein de la chaîne d'approvisionnement des logiciels, permettant aux organisations d'identifier et de rectifier les vulnérabilités de sécurité potentielles et les risques de conformité.

Mais créer et gérer un SBOM est une tâche compliquée, en particulier pour les organisations disposant d’un large portefeuille de logiciels. Identifier tous les composants logiciels utilisés dans un produit et suivre toutes les mises à jour et tous les correctifs tout en garantissant leur exactitude nécessite une approche systématique.

Dans cet article, nous discuterons des meilleures pratiques et stratégies pour gérer efficacement un SBOM, des défis associés à la gestion du SBOM et de la manière de simplifier ce processus afin de garantir la sécurité de votre chaîne d'approvisionnement logicielle.

Qu’est-ce que la gestion SBOM ?

La création d'une nomenclature logicielle n'est que la première étape du processus de maintien de la sécurité de votre logiciel. Mais créer une liste de composants logiciels ne suffit pas ; vous devez suivre, valider, modifier et gérer votre SBOM. Cela garantit que vous êtes non seulement conscient des composants de votre logiciel, mais que vous comprenez réellement tous les risques des composants individuels et leur impact sur votre logiciel.

La gestion SBOM est le processus de suivi de votre nomenclature logicielle telle qu'elle est générée dans votre pipeline DevOps. La gestion de votre SBOM implique la génération, le stockage, l'analyse et le suivi de votre documentation SBOM. L'exécution de ces tâches de gestion SBOM tout au long du cycle de vie de votre application vous aide à identifier les dépendances logicielles et à améliorer la sécurité de votre chaîne d'approvisionnement.

Votre SBOM n'a aucune utilité lorsqu'il est laissé en veille dans le répertoire de construction où il a été généré. La gestion SBOM vous aide à exploiter ces données afin que vous puissiez générer des informations exploitables et mieux comprendre les composants open source de votre progiciel et leur impact sur la chaîne d'approvisionnement logicielle. L'analyse et le reporting des vulnérabilités sont également des aspects de la gestion du SBOM.

Ainsi, même si la génération des nomenclatures logicielles constitue une partie importante du processus DevOps, le processus continu de gestion du SBOM est encore plus important. Il vous permet d'exploiter pleinement et de mettre en œuvre des systèmes de réchauffement des vulnérabilités, des politiques de confiance zéro et des informations sur la chaîne d'approvisionnement logicielle à long terme.

Aperçu de la gestion SBOM

Pour faire face au nombre croissant de menaces pesant sur différents logiciels tout au long de la chaîne d'approvisionnement, Gartner prédit que jusqu'à 60 % des organisations qui s'appuient sur des logiciels comme infrastructure critique commenceront à rendre obligatoire l'utilisation de SBOM dans les années à venir. C'est selon Rapport Innovation Insight 2022 de Gartner sur SBOM qui fournit des informations vitales sur l’importance de la mise en œuvre d’un programme de gestion SBOM.

Le rapport reconnaît l'importance de la cybersécurité SBOM pour améliorer la visibilité, l'intégrité, la transparence et la sécurité des codes utilisés dans les chaînes d'approvisionnement en logiciels. Sans connaître les composants du logiciel, il est difficile de comprendre l'étendue des risques et des vulnérabilités de ce logiciel. La meilleure solution consiste simplement à suivre chaque logiciel d'une application et à les comparer à une base de données de vulnérabilités connues pour garantir leur sécurité.

Selon le rapport Gartner, chaque organisation devrait investir dans la génération d'un SBOM pour chaque progiciel qu'elle crée. Ensuite, ils doivent vérifier le SBOM de tous les logiciels qu'ils utilisent. Une gestion continue du SBOM est également nécessaire afin de pouvoir réévaluer les données afin de comprendre les nouveaux risques de sécurité, même après le déploiement de l'application.

Stratégies pour une gestion efficace des nomenclatures logicielles

Les organisations peuvent garantir la sécurité et la conformité des logiciels qu’elles créent ou utilisent en donnant la priorité à la gestion SBOM. Voici quelques-unes des stratégies permettant de gérer efficacement la nomenclature logicielle d’une organisation. 

Automatisez la génération SBOM

Une nomenclature logicielle doit être créée pour chaque itération de votre logiciel. Mais les développeurs auront du mal à y parvenir s’ils doivent générer manuellement des SBOM pour chaque build. C'est pourquoi Génération SBOM doit être intégré à votre pipeline de livraison de logiciels. L'automatisation permet d'atteindre la « vitesse de la machine » pour la génération de SBOM, comme le recommande la National Telecommunications and Information Administration (NTIA). 

Automatisation du SBOM augmente également l'intégrité et la fiabilité de votre documentation SBOM. Les SBOM automatisés générés au sein du pipeline de développement peuvent être signés cryptographiquement, prouvant aux utilisateurs que la liste des composants logiciels du SBOM est authentique.

Formatage structuré

Toutes les données présentées dans votre gestion de nomenclature logicielle doivent être structurées sur la base d'un format standard. Bien qu'il en existe plusieurs autres, SPDX, SWID et CycloneDX sont trois des formats les plus populaires. Puisqu’il n’existe pas de recommandation officielle du SBOM ni de norme généralisée à l’échelle de l’industrie, chaque organisation est autorisée à choisir le format qui lui convient le mieux. Le facteur le plus important ici est la cohérence, quel que soit le format SBOM que vous choisissez.

Fournir des SBOM pour le SaaS

Lorsqu'il s'agit de mettre en œuvre des mesures de cybersécurité pour les logiciels, les organisations se concentrent souvent sur les applications ou les logiciels qu'elles déploient elles-mêmes dans le cloud ou sur site, tandis que les applications SaaS qu'elles utilisent sont ignorées.

Cependant, il est également recommandé de fournir des SBOM pour ces applications Software as a Service. Les clients d'un modèle SaaS n'ont pas besoin de gérer les mises à jour logicielles ou les nouvelles versions de leur côté. Cependant, dans le cas où l'application SaaS d'un client est compromise en raison d'une vulnérabilité, la fourniture de SBOM pour l'application peut servir d'avertissement précoce qui peut également contribuer à ses propres mesures de cybersécurité. 

Mises à jour régulières pour chaque version

Pour être plus efficaces, les SBOM doivent être spécifiques à la version ; les développeurs doivent réviser le SBOM chaque fois qu'ils déploient une mise à jour pour leur application. Il est facile pour les développeurs de tomber dans le piège de créer un SBOM une seule fois et de le mettre à jour de temps en temps en raison de la difficulté de le mettre à jour manuellement entre les versions. Les entreprises doivent s'assurer que leur gestion de nomenclature logicielle est rapidement mise à jour chaque fois qu'une nouvelle version de leur logiciel est disponible. C'est une autre raison pour laquelle l'automatisation de la génération du SBOM est importante, car elle facilite la génération d'une version mise à jour de votre SBOM à chaque fois que vous publiez une mise à jour.

Établir des canaux de communication clairs

La gestion du SBOM implique plusieurs parties prenantes liées au produit logiciel d'une manière ou d'une autre. Cela inclut les fournisseurs de logiciels, les équipes de développement, les clients et autres. L’un des moyens d’assurer une gestion efficace du SBOM est d’établir des canaux de communication clairs entre ces parties prenantes. Cela garantit que tout le monde a accès à toute nouvelle information sur les composants logiciels d'un produit et peut mettre en œuvre toutes les mises à jour nécessaires.

Inclure les métadonnées

La quantité de métadonnées (informations supplémentaires telles que les données de licence et l'état des correctifs) à inclure dans votre documentation SBOM dépend du format que vous utilisez. Bien que certains formats puissent prendre en charge plus de métadonnées que d'autres par défaut, les développeurs doivent donner la priorité à l'ajout d'autant de métadonnées que possible à leur SBOM. Ces informations supplémentaires facilitent la gestion du SBOM pour les utilisateurs puisqu'ils n'auront pas à rechercher ces informations manuellement à chaque fois qu'ils en auront besoin. Les métadonnées facilitent également l’identification et la mise à jour des composants vulnérables de vos produits dès qu’une faille de sécurité est annoncée.

Défis de gestion SBOM

Malgré l'adoption généralisée du SBOM, de nombreux aspects de la gestion du SBOM restent difficiles pour les utilisateurs. Le plus grand défi est peut-être le manque de standardisation du formatage SBOM dans l’ensemble du secteur. Même si le fait d'adhérer aux mêmes normes en matière de création et de partage de SBOM garantit la meilleure valeur pour chacun, il faudra un certain temps avant qu'un consensus puisse être atteint.

Un autre défi est la nécessité de maintenir les SBOM à jour et pertinents. Le logiciel créé par la plupart des organisations est dynamique. Cela signifie que des mises à jour sont publiées périodiquement et que de nouveaux composants sont ajoutés. Pour rester pertinente et sûre à utiliser, la nomenclature du logiciel doit être mise à jour à chaque nouvelle version du logiciel. Chaque organisation doit planifier les outils de génération et de gestion SBOM afin de pouvoir publier de nouveaux SBOM avec chaque nouvelle version de leur logiciel de manière plus transparente.

Il existe également un risque d'inexactitudes ou d'omissions au sein du SBOM, ce qui peut conduire à une exposition à des vulnérabilités et à des problèmes de conformité. Certains outils de génération SBOM ne parviennent pas à documenter le code brut ou les binaires inclus par les développeurs dans leur code source. Les SBOM générés de cette manière créent un faux sentiment d'exhaustivité qui les rend dangereux. Pour des raisons de sécurité et de transparence, votre SBOM doit être très détaillé, répertoriant autant de composants que possible et fournissant de manière optimale des informations hiérarchiques pour montrer la relation entre ces composants.

Enfin, il existe le risque de gérer la sécurité du SBOM lui-même, car il contient des informations sensibles sur les composants logiciels utilisés pendant le processus de développement, y compris des vulnérabilités de sécurité potentielles. Par conséquent, les organisations doivent prendre des mesures pour protéger le SBOM contre tout accès ou divulgation non autorisé.

Résumé 

Pour conclure, il est crucial de souligner l’importance d’une bonne gestion d’une nomenclature logicielle pour toute organisation qui crée ou utilise des produits logiciels. Au-delà de la création d'un SBOM, la mise en œuvre de pratiques efficaces de gestion du SBOM aide une entreprise à maintenir ses produits logiciels sécurisés et conformes aux réglementations en vigueur.

Certains des éléments clés d'un cadre de gestion SBOM efficace incluent la tenue d'un inventaire complet de vos composants logiciels, la planification de mises à jour régulières, la réalisation d'évaluations des risques si nécessaire et l'automatisation de la génération et de la gestion du SBOM.

En adhérant à ces bonnes pratiques, une organisation peut acquérir une compréhension beaucoup plus approfondie de ses chaînes d'approvisionnement logicielles afin de minimiser le risque de failles de sécurité et d'éviter d'autres problèmes potentiels. En fin de compte, une gestion SBOM efficace vous aidera à créer des produits logiciels sécurisés et plus fiables qui répondent aux besoins de vos clients et de toutes les parties prenantes.