Architecture du modèle de profil SPDX 3.0 montrant les profils de base, logiciels, sécurité, licence, IA, données, construction et lite.

(Ce post a été d'abord créé en septembre 2023 et mis à jour en avril 2024 après la sortie officielle de SPDX 3.0).

SPDX est l'une des trois spécifications SBOM recommandées par NTIA/CISA.

Le 16 avril, l'équipe SPDX a officiellement publié la version 3.0 de SPDX.

Dans un grand saut par rapport à SPDX 2.3, cette version regorge de fonctionnalités qui couvrent de nouveaux cas d'utilisation SBOM et simplifient les capacités existantes.

Enquêteons.

Profils SPDX

La flexibilité de la SPDX 3.0 est contenue dans une nouvelle abstraction appelée Profile.

Les Profils SPDX décrivent un cas d'utilisation spécifique pour le document SPDX. Par exemple, un Profil de Sécurité est utilisable par des spécialistes de la sécurité des produits, tandis que les représentants des équipes juridiques et de conformité analysent un profil de Licence.

Par conséquent, un SBOM uniquement applicable à un cas d'utilisation spécifique peut choisir de ne pas remplir les détails applicables à un autre Profil.

Pour y parvenir, les champs SPDX de la version 2.3 (avec quelques modifications) sont segmentés en trois groupes :

  • Modèle de Base SPDX : Ce modèle comprend des champs principaux tels que les informations sur l'agent du document (Personne, Organisation ou Outil), les éléments du document et leurs relations, ainsi que d'autres informations applicables au document.

  • Profil logiciel SPDX : inclut des champs spécifiques aux logiciels tels que les détails des paquets, les fichiers inclus, et les dépendances entre les composants logiciels.

  • Profil spécifique à un cas d'utilisation SPDX : Cet ensemble de champs dépend du profil en considération et contient des informations spécifiques à chacun des six profils pris en charge.

Chaque Profil de Cas d'Utilisation s'accompagne de son Point de Conformité de Profil, décellant essentiellement les champs requis pour ce Profil spécifique.

Un document SPDX peut inclure plusieurs profils ensemble, simplifiant le besoin d'avoir plusieurs SBOM remplis avec différents champs pour divers intervenants.

Exemples :

  • La conformité du Profil de Licence exige que tous les paquets aient le champ de licence conclu présent.

  • Modèle de Base SPDX + Profil logiciel SPDX + Profil de Licence est fonctionnellement équivalent à SPDX2.3.

  • Modèle de Base SPDX + Profil logiciel SPDX + IA Profil est un nouveau cas d'utilisation IA couvert par SPDX 3.0.

SPDX3.0 commence avec six cas d'utilisation couverts par ses profils :

Sécurité, Licence, IA, Données, Construction, Léger

Profil de sécurité

Le Profil de Sécurité est conçu pour communiquer la découverte et la divulgation des vulnérabilités, leur gravité, leur impact, les risques d'exploitabilité et les plans de remédiation.

Alors que SPDX 2.3 fournissait un mécanisme de liaison avec des données de vulnérabilité externes en utilisant la propriété de référence externe, SPDX 3.0 prend en charge le Profil de Sécurité pour intégrer des données de vulnérabilité en évolution rapide provenant de la composition logicielle stockée en tant que Profil logiciel.

Le Profil de Sécurité inclut des éléments de vulnérabilité pour détailler des détails spécifiques tels que l'ID, le résumé, les références externes, etc., ainsi qu'un nouvel ensemble de champs pour transmettre les évaluations de vulnérabilité CVSS2, CVSS3, CVSS4 et SSVC.

Il ajoute également des champs pour intégrer ou lier EPSS ou Exploitabilité, (particulièrement utile pour enregistrer l'exploitabilité des KEV de CISA) et des informations de sécurité externes telles que les conseils de sécurité, les références au correctif ou toute information de sécurité personnalisée.

Profil de Licences

Ce profil est la chose la plus proche de SPDX2.3 et couvre largement les domaines de licence et de droit d'auteur de SPDX2.3. Le modèle sous-jacent a été mis à jour pour s'adapter au modèle 3.0, et dans le processus, les champs ont été rendus cohérents à travers différents types d'artéfacts — Package, Fichier et Snippets.

SPDX 3.0 ajoute également la possibilité d'ajouter des exceptions de licence personnalisées en tant qu'ajouts de licence.
Exemple : MIT WITH AdditionRef-My-Own-Custom-Exception n'est valide que dans SPDX 3.0.

Profil IA

SPDX 3.0 prend en charge la création d'un SBOM pour les applications d'IA avec le profil IA.

Ce profil comprend l'inventaire des composants, des dépendances, d'autres références spécifiques à l'IA, ainsi que des considérations de sécurité et d'éthique associées à l'application.

Le profil IA comprend des champs pour divulguer les attributs et le comportement du modèle sous-jacent, tels que l'architecture du modèle, sa taille, les ressources nécessaires, y compris l'utilisation des ressources informatiques et énergétiques, les limitations du modèle, les techniques de prétraitement des données du modèle et l'explicabilité du modèle.

Le profil IA comprend également des considérations de sécurité mais utilise la méthodologie d'évaluation des risques générale de l'UE et l'évaluation des risques de la loi sur l'IA de l'UE.

Profil de données

Pour travailler aux côtés de l'IA, le Profil de Données SPDX (appelé Dataset dans le modèle de schéma), se concentre à son tour sur des champs pour décrire les attributs et le comportement des données d'entraînement et de test sous-jacentes, tels que les processus de collecte de données, la taille, le bruit des données, les capteurs produisant les données, l'utilisation prévue, les biais connus, l'indicateur de sensibilité, la méthode d'anonymisation en cours d'utilisation et la confidentialité des données.

Le Profil de Données est destiné à être utilisé par des Data Scientists, des ingénieurs et des agents de gouvernance pour comprendre le type de données en cours d'utilisation, les risques de conformité et réglementaires associés, et concevoir des systèmes résilients aux techniques de pose de données.

Construire un profil

Ceci est un autre nouvel ensemble de champs pour transmettre les informations spécifiques à la construction du produit. Le profil vise à améliorer la sécurité, la reproductibilité et l'auditabilité des constructions. Le profil s'inspire de SLSA et des constructions reproductibles. Il peut capturer des détails tels que l'identifiant de la construction, les heures de début et de fin, l'environnement, les arguments, les outils de construction et les versions, les étapes de construction dans un pipeline, et les hachages de l'artefact, entre autres.

Profil léger

Parfois, une révision de composant logiciel est générée avec des conditions spécifiques telles qu'un correctif urgent ou basé sur l'activation conditionnelle de fonctionnalités avec un changement des termes et conditions sous-jacents. Ces révisions potentiellement temporaires servent de solution provisoire entre le cycle de publication régulier et, par conséquent, pourraient avoir des dates de validité.

Le profil d'utilisation dans SPDX3.0 aborde cet ensemble spécifique de cas d'utilisation en fournissant des champs pour divulguer l'utilisation prévue, les conditions de licence, les conditions de création, les conditions de test et les dates de validité. Ce profil peut également aider à distinguer les builds internes, comme les builds lors du prototypage et des tests non restreints.

Simplifications SPDX

Un des objectifs de SPDX3.0 a été de simplifier la spécification et de l'étendre à un ensemble plus vaste de cas d'utilisation. Profils SPDX ci-dessus est un exemple de simplification qui décompose un document SDPX par cas d'utilisation et requiert uniquement de remplir les valeurs applicables au profil spécifique (par exemple, les cas d'utilisation de sécurité contre les cas d'utilisation de licence).

De plus, quelques autres changements ont été apportés à SPDX3.0 qui visent à corriger les lacunes de SPDX2.3 :

Espace de noms de champ : SPDX3.0 introduit un espace de noms pour identifier les champs spécifiques à un cas d'utilisation donné. Par exemple, les cas d'utilisation de base sont sous l'espace de noms Core, les cas d'utilisation d'IA sont sous AI, et les cas d'utilisation de licences détaillées sont sous ExpandedLicenses. Cela permet aux implémenteurs et aux auditeurs de se concentrer sur les champs dans le domaine de leur cas d'utilisation.

Imports d'éléments : SPDX 2.3 utilise ExternalDocumentReferences pour connecter un document SPDX à un autre document SPDX. Avec 3.0, la fonctionnalité a été étendue pour référencer directement les documents externes Element en utilisant une combinaison d'Espace de noms et d'Imports. Cela permet le cas d'utilisation de documents SPDX de petit élément générés fréquemment référencés à partir de documents de métadonnées SPDX générés moins fréquemment. Un cas d'utilisation référencé était de générer des snippets SPDX avec chaque demande de tirage en tant qu'élément, alors que le référentiel original est suivi avec un SBOM complet.

PURL : PURL ou URL de package a été élevé à une propriété de premier niveau, simplifiant l'identification des composants.

Agent : Une nouvelle classe Agent encapsule tout ce qui peut agir sur un système, tel qu'une personne, une organisation ou des outils logiciels. Par conséquent, les propriétés Créateur et Fournisseur de SPDX 2.3 sont remplacées en toute sécurité par un Agent.

Pluralisation JSON : SPDX 2.3 avait des tableaux représentés comme des chaînes au pluriel (par exemple externalRefs ). Avec 3.0, SPDX passera à des noms de champs cohérents entre RDF et JSON.

Où puis-je en savoir plus ?

SPDX 3.0 invite toujours les contributions et les retours sur la spécification, et la liste de diffusion de l'équipe SPDX ou le dépôt Github est le meilleur moyen de contacter l'équipe.

Interlynk recherche activement et construit des outils pour les écosystèmes SPDX et CycloneDX, et nous sommes heureux de répondre à toutes les questions que vous pourriez avoir. N'hésitez pas à nous contacter à hello@interlynk.io ou via interlynk.io

Approuvé par plus de 100 organisations

Voir votre SBOM fait correctement

Interlynk automatise les SBOM, gère les risques liés aux sources ouvertes, surveille, les fournisseurs et vous prépare à l'ère post quantique, le tout sur une plateforme de confiance.

AUCUN SPAM, PROMIS !

Voir votre SBOM fait correctement

Interlynk automatise les SBOM, gère les risques liés aux logiciels open source, surveille les fournisseurs et vous prépare à l'ère post-quantique, le tout sur une plateforme de confiance.

AUCUN SPAM, PROMIS !

Voir votre SBOM fait correctement

Interlynk automatise les SBOM, gère les risques liés aux logiciels open source, surveille les fournisseurs et vous prépare à l'ère post-quantique, le tout sur une plateforme de confiance.

{{DKNiivMjg | unsafeRaw}}