Software Bill of Materials

Eine SBOM zu jeder Analyse

Jede Analyse listet jedes Paket auf, das deine Lockfiles installieren, mit seiner Lizenz, dem Paket, über das es hereinkommt, und seinen bekannten Schwachstellen. Lade sie als CycloneDX-1.6-SBOM herunter, in jedem Tarif, auch im kostenlosen.

Was drinsteht

Ein Dokument pro Analyse, aus denselben Daten wie der Bericht, also beschreiben SBOM und Score immer denselben Commit.

  • Jedes installierte Paket

    Jede Version eines npm- oder Composer-Pakets, die deine Lockfiles installieren, mit ihrer Package-URL (purl), ob du sie selbst deklarierst oder sie über ein anderes Paket kommt, und ob nur die Entwicklung sie braucht.

  • Lizenzen

    Die Lizenz jedes Pakets als SPDX-ID oder SPDX-Ausdruck. Bei Lockfiles, die keine Lizenzen speichern (yarn, pnpm, bun), kommen sie aus der npm-Registry; ein Wert, der kein SPDX ist, bleibt als Name der Lizenz erhalten.

  • Der Abhängigkeitsgraph

    Welches Paket welches andere mitbringt, von deinem Projekt abwärts, damit du siehst, warum ein Paket da ist.

  • Bekannte Schwachstellen

    Die Advisories, die OSV für diese Versionen kennt, verknüpft mit den betroffenen Paketen, mit Schweregrad und der Version, die sie behebt.

Aus deinen Lockfiles gelesen

Agnes erstellt die Liste aus der Lockfile, außerhalb der Sandbox. Es installiert nie deine Abhängigkeiten und führt nie deinen Code aus.

  • package-lock.json
  • npm-shrinkwrap.json
  • yarn.lock
  • pnpm-lock.yaml
  • bun.lock
  • composer.lock

Keine Lockfile, keine SBOM: committe eine, damit jede Analyse auflisten kann, was du auslieferst. Composer-Pakete stehen mit ihren Lizenzen und Advisories darin.

Ein Paket in der SBOM
{
  "type": "library",
  "bom-ref": "pkg:npm/%40vue/reactivity@3.5.13",
  "group": "@vue",
  "name": "reactivity",
  "version": "3.5.13",
  "purl": "pkg:npm/%40vue/reactivity@3.5.13",
  "scope": "required",
  "licenses": [{ "license": { "id": "MIT" } }],
  "properties": [
    { "name": "agnes:direct", "value": "false" },
    { "name": "agnes:lockfile", "value": "package-lock.json" }
  ]
}

Wo du sie bekommst

Die SBOM der letzten Analyse ist immer einen Klick entfernt, und ältere Analysen behalten ihre eigene.

  • Projektübersicht

    Die SBOM-Karte in der Übersicht eines Projekts lädt die neueste herunter, mit der Zahl der Pakete, Lizenzen und Schwachstellen darin.

  • Jede Analyse

    Jede Analyse hat ihren eigenen Download, so kannst du die SBOM genau des Commits übergeben, den du ausgeliefert hast.

  • Dein KI-Agent

    Mit Agnes verbundene Agenten holen sie mit dem Tool get_sbom, zum Beispiel um eine Lizenz zu prüfen oder ein Upgrade zu planen.

    Einen Agenten verbinden →

Für Kunden, Audits und den Cyber Resilience Act

Kunden und Prüfer fragen immer öfter nach einer SBOM, und der Cyber Resilience Act der EU verlangt von Herstellern von Produkten mit digitalen Elementen, eine zu erstellen, die mindestens die Abhängigkeiten der obersten Ebene abdeckt. Die SBOM von Agnes enthält jedes installierte Paket und bleibt mit jeder Analyse aktuell. Sie ist ein Teil dessen, was die Verordnung verlangt, keine Konformität für sich allein.

Das Format

CycloneDX 1.6 JSON, der OWASP-Standard, den die meisten SBOM-Tools lesen. Pakete werden über ihre Package-URL identifiziert und Lizenzen über SPDX, und unsere Tests prüfen den Export gegen das offizielle CycloneDX-Schema. Die Seriennummer des Dokuments ist die ID der Analyse, also ergibt dieselbe Analyse immer dieselbe SBOM.

Nicht darin: deine eigenen Quelldateien, Datei-Hashes und Pakete, die in keiner Lockfile stehen, etwa mitgelieferte Skripte. Sehr große Projekte enden bei 20.000 Paketen; die SBOM sagt dann, wie viele sie weggelassen hat.

Sieh, was dein Repository ausliefert

Verbinde ein Repository, und zur ersten Analyse gehört gleich ihre SBOM.