SPDX 3.0-Profilmodellarchitektur, die Kern-, Software-, Sicherheits-, Lizenzierungs-, KI-, Daten-, Build- und Lite-Profile zeigt.

(Dieser Beitrag wurde erstmals im September 2023 erstellt und im April 2024 nach der offiziellen Veröffentlichung von SPDX3.0 aktualisiert).

SPDX ist eine der drei SBOM-Spezifikationen, die von der NTIA/CISA empfohlen werden.

Am 16. April hat das SPDX-Team offiziell die SPDX-Version 3.0 veröffentlicht.

In einem gewaltigen Sprung von SPDX2.3 bietet diese Version eine Vielzahl von Funktionen, die neue SBOM-Anwendungsfälle abdecken und bestehende Funktionen vereinfachen.

Lassen Sie uns eintauchen.

SPDX-Profile

Die Flexibilität von SPDX 3.0 liegt in einer neuen Abstraktion namens Profil.

SPDX-Profile beschreiben einen spezifischen Anwendungsfall für das SPDX-Dokument. Beispielsweise ist ein Sicherheitsprofil für Produktsicherheitsspezialisten nützlich, während Vertreter von Rechts- und Compliance-Teams ein Lizenzierungsprofil analysieren.

Daher kann ein SBOM, das nur für einen bestimmten Anwendungsfall gilt, darauf verzichten, die für ein anderes Profil relevanten Details auszufüllen.

Um dies zu erreichen, sind die SPDX-Felder aus Version 2.3 (mit einigen Änderungen) in drei Gruppen unterteilt:

  • SPDX-Kernmodell: Dieses Modell umfasst primäre Felder wie die Akteursinformationen des Dokuments (Person, Organisation oder Tool), Dokumentenelemente und deren Beziehungen sowie andere für das Dokument relevante Informationen.

  • SPDX-Softwareprofil: Enthält softwarespezifische Felder wie Paketdetails, enthaltene Dateien und Abhängigkeiten zwischen Softwarekomponenten.

  • SPDX-anwendungsfallspezifisches Profil: Dieser Feldsatz hängt vom jeweiligen Profil ab und enthält spezifische Informationen für jedes der sechs unterstützten Profile.

‍Jedes Anwendungsfall-Profil verfügt über seinen eigenen Profil-Konformitätspunkt, der im Wesentlichen die erforderlichen Felder für das jeweilige Profil deklariert.

Ein SPDX-Dokument kann mehrere Profile gleichzeitig enthalten, was die Notwendigkeit verringert, mehrere SBOMs mit unterschiedlichen Feldern für verschiedene Stakeholder zu erstellen.

Beispiele:

  • Die Konformität mit dem Lizenzierungsprofil erfordert, dass bei allen Paketen das Feld für die abgeschlossene Lizenz vorhanden ist.

  • SPDX-Kernmodell + SPDX-Softwareprofil + Lizenzierungsprofil ist funktionell gleichwertig mit SPDX 2.3.

  • SPDX-Kernmodell + SPDX-Softwareprofil + KI-Profil ist ein neuer KI-Anwendungsfall, der mit SPDX 3.0 abgedeckt wird.

SPDX 3.0 startet mit sechs Anwendungsfällen, die durch seine Profile abgedeckt werden:

Sicherheit, Lizenzierung, KI, Daten, Build, Lite

Sicherheitsprofil

Das Security Profile (Sicherheitsprofil) ist dafür konzipiert, die Entdeckung und Offenlegung von Schwachstellen, deren Schweregrad, Auswirkungen, Ausnutzbarkeitsrisiken und Behebungspläne zu kommunizieren.

Während SPDX 2.3 einen Mechanismus zur Verknüpfung mit externen Schwachstellendaten über die Eigenschaft für externe Referenzen bot, unterstützt SPDX 3.0 das Security Profile, um sich schnell ändernde Schwachstellendaten aus der als Software Profile gespeicherten Softwarezusammensetzung einzubetten.

Das Security Profile enthält Vulnerability-Elemente (Schwachstellen-Elemente), um spezifische Details wie ID, Zusammenfassung, externe Referenzen usw. detailliert darzustellen, zusammen mit einer neuen Reihe von Feldern zur Übermittlung von CVSS2-, CVSS3-, CVSS4- und SSVC-Schwachstellenbewertungen.

Es fügt außerdem Felder hinzu, um EPSS oder Exploitability (Ausnutzbarkeit) einzubetten oder zu verknüpfen (besonders nützlich für die Erfassung der Ausnutzbarkeit von CISA KEV) sowie externe Sicherheitsinformationen wie Sicherheitshinweise, Verweise auf Patches oder benutzerdefinierte Sicherheitsinformationen.

Lizenzierungsprofil

Dieses Profil kommt SPDX2.3 am nächsten und deckt Lizenz- und Urheberrechtsfelder aus SPDX2.3 weitgehend ab. Das zugrundeliegende Modell wurde an das 3.0-Modell angepasst. In diesem Zuge wurden die Felder über verschiedene Arten von Artefakten hinweg – Paket, Datei und Snippets – vereinheitlicht.

SPDX 3.0 bietet außerdem die Möglichkeit, benutzerdefinierte Lizenzausnahmen als Lizenzhinzufügungen hinzuzufügen.
Beispiel: MIT WITH AdditionRef-My-Own-Custom-Exception ist nur in SPDX 3.0 gültig.

KI-Profil

SPDX 3.0 unterstützt die Erstellung einer SBOM für KI-Anwendungen mit dem KI-Profil.

Dieses Profil umfasst Inventarkomponenten, Abhängigkeiten, andere KI-spezifische Referenzen sowie sicherheitsrelevante und ethische Erwägungen im Zusammenhang mit der Anwendung.

Das KI-Profil enthält Felder zur Offenlegung der Attribute und des Verhaltens des zugrunde liegenden Modells, wie z. B. Modellarchitektur, Größe, erforderliche Ressourcen (einschließlich Rechen- und Energieverbrauch), Modellbeschränkungen, Techniken zur Vorverarbeitung von Modelldaten und Erklärbarkeit des Modells.

Das KI-Profil deckt auch Sicherheitsüberlegungen ab, nutzt jedoch die allgemeine EU-Risikobewertungsmethodik und die Risikobewertung des EU-KI-Gesetzes.

Datenprofil

Für die Zusammenarbeit mit KI konzentriert sich das SPDX-Datenprofil (im Schema-Modell als Dataset bezeichnet) wiederum auf Felder zur Beschreibung von Attributen und Verhalten der zugrunde liegenden Trainings- und Testdaten, wie z. B. Datenerfassungsprozesse, Größe, Datenrauschen, die Daten erzeugenden Sensoren, Verwendungszweck, bekannte Verzerrungen, Sensitivitätsindikatoren, die verwendete Anonymisierungsmethode und Vertraulichkeit der Daten.

Das Datenprofil ist für die Verwendung durch Datenwissenschaftler, Ingenieure und Governance-Beauftragte bestimmt, um die Art der verwendeten Daten, die damit verbundenen Compliance- und regulatorischen Risiken zu verstehen und Systeme zu entwickeln, die resistent gegen Datenmanipulationstechniken sind.

Profil erstellen

Dies ist eine weitere neue Reihe von Feldern zur Vermittlung produktspezifischer Build-Informationen. Das Profil zielt darauf ab, die Sicherheit, Reproduzierbarkeit und Auditierbarkeit der Builds zu verbessern. Das Profil ist von SLSA und reproduzierbaren Builds inspiriert. Es kann unter anderem Details wie die Build-ID, Start- und Endzeiten, die Umgebung, Argumente, Build-Tools und -Versionen, Build-Schritte in einer Pipeline sowie Hashes des Artefakts erfassen.

Lite-Profil

Manchmal wird eine Revision einer Softwarekomponente unter bestimmten Bedingungen erstellt, wie zum Beispiel als Hotfix oder basierend auf der bedingten Aktivierung von Funktionen bei einer Änderung der zugrunde liegenden Geschäftsbedingungen. Diese potenziell temporären Revisionen dienen als Übergangslösung zwischen dem regulären Release-Zyklus und können daher mit eigenen Gültigkeitsdaten versehen sein.

Das Nutzungsprofil in SPDX3.0 deckt diese speziellen Anwendungsfälle ab, indem es Felder zur Angabe der beabsichtigten Nutzung, der Lizenzbedingungen, der Build-Bedingungen, der Testbedingungen und der Gültigkeitsdaten bereitstellt. Dieses Profil kann auch dabei helfen, interne Builds zu unterscheiden, wie z. B. Builds während des Prototypings und unbeschränkter Tests.

SPDX-Vereinfachungen

Eines der Ziele von SPDX3.0 war es, die Spezifikation zu vereinfachen und sie auf ein breiteres Spektrum von Anwendungsfällen auszuweiten. SPDX-Profile oben sind ein Beispiel für eine Vereinfachung, die ein SPDX-Dokument nach Anwendungsfällen aufteilt und nur das Ausfüllen von Werten erfordert, die für das spezifische Profil anwendbar sind (z. B. Sicherheits-Anwendungsfälle vs. Lizenzierungs-Anwendungsfälle).

Darüber hinaus wurden einige weitere Änderungen an SPDX3.0 vorgenommen, um die Schwachstellen von SPDX2.3 zu beheben:

Feld-Namespace: SPDX3.0 führt einen Namespace ein, um Felder zu identifizieren, die für einen bestimmten Anwendungsfall spezifisch sind. Beispielsweise fallen Core-Anwendungsfälle unter den Namespace „Core“, KI-Anwendungsfälle unter „AI“ und detaillierte Lizenz-Anwendungsfälle unter „ExpandedLicenses“. Dies ermöglicht es Implementierern und Auditoren, sich auf Felder im Bereich ihres jeweiligen Anwendungsfalls zu konzentrieren.

Element-Importe: SPDX 2.3 verwendet ExternalDocumentReferences, um ein SPDX-Dokument mit einem anderen SPDX-Dokument zu verbinden. Mit 3.0 wurde diese Funktionalität erweitert, um mithilfe einer Kombination aus Namespace und Imports direkt auf externe Element-Dokumente zu verweisen. Dies ermöglicht den Anwendungsfall, häufig generierte kleine Element-SPDX-Dokumente zu verwenden, auf die von seltener generierten SPDX-Metadatendokumenten verwiesen wird. Ein genannter Anwendungsfall war die Generierung von Snippet-SPDX bei jedem Pull-Request als Element, während das ursprüngliche Repository mit einer vollständigen SBOM verfolgt wird.

PURL: PURL oder Package URL wurde zu einer Eigenschaft auf oberster Ebene erhoben, was die Identifizierung von Komponenten vereinfacht.

Agent: Eine neue Klasse „Agent“ kapselt alles, was in einem System agieren kann, wie eine Person, eine Organisation oder Software-Tools. Daher werden die Eigenschaften „Creator“ und „Supplier“ aus SPDX 2.3 sicher durch einen Agenten ersetzt.

JSON-Pluralisierung: Bei SPDX 2.3 wurden Arrays als Plural-Strings dargestellt (z. B. externalRefs). Mit 3.0 wird SPDX zu konsistenten Feldnamen zwischen RDF und JSON übergehen.

Wo kann ich mehr erfahren?

SPDX 3.0 lädt weiterhin zu Beiträgen und Feedback zur Spezifikation ein. Die Mailingliste oder das Github-Repository des SPDX-Teams sind die besten Wege, um das Team zu erreichen.

Interlynk erforscht und entwickelt aktiv Tools sowohl für das SPDX- als auch das CycloneDX-Ökosystem, und wir beantworten gerne alle Ihre Fragen. Setzen Sie sich gerne mit uns unter hello@interlynk.io oder über interlynk.io in Verbindung.

Vertraut von Sicherheits- und Compliance-Teams in 100+ regulierten Unternehmen

Sehen Sie sich Ihr richtig erstelltes SBOM an

Interlynk automatisiert SBOMs, verwaltet Open-Source-Risiken, überwacht Lieferanten und bereitet Sie auf die Post-Quanten-Ära vor – alles auf einer vertrauenswürdigen Plattform.

Vertraut von Sicherheits- und Compliance-Teams in 100+ regulierten Unternehmen

Interlynk automatisiert SBOMs, verwaltet Open-Source-Risiken, überwacht Lieferanten und bereitet Sie auf das Post-Quanten-Zeitalter vor – alles auf einer vertrauenswürdigen Plattform.

Sehen Sie Ihr SBOM richtig gemacht

Vertraut von Sicherheits- und Compliance-Teams in 100+ regulierten Unternehmen

Interlynk automatisiert SBOMs, verwaltet Open-Source-Risiken, überwacht Lieferanten und bereitet Sie auf das Post-Quanten-Zeitalter vor – alles auf einer vertrauenswürdigen Plattform.

Sehen Sie Ihr SBOM richtig gemacht