Skip to main content

Wir stellen parlay vor: ein Tool zur Anreicherung von SBOMs

Artikel von
blog feature parlay announcement

7. Juni 2023

0 Min. Lesezeit

Wir brauchen umfassendere SBOMs

Die zunehmende Verbreitung von Standards für Software Bill of Materials (SBOMs) sorgt allmählich für eine bessere Interoperabilität zwischen Sicherheitstools. Die Arbeit der NTIA an der Definition eines Mindestumfangs an Elementen für eine SBOM war dabei ein wichtiger Schritt – insbesondere angesichts der weitverbreiteten Nutzung verschiedener Formate wie CycloneDX und SPDX. Doch während die Arbeit an SPDX 3.0 und CycloneDX 1.5 voranschreitet, bieten die SBOM-Formate zahlreiche Möglichkeiten, die über die Mindestelemente hinausgehen.

Vielleicht möchten Sie Richtlinienentscheidungen auf Grundlage der Lizenzinformationen von Paketen treffen. Vielleicht möchten Sie schnell auf die Websites der verwendeten Pakete zugreifen oder wissen, wer sie erstellt hat. Oder Sie möchten neben diesen Informationen auch die Schwachstellen in den Paketen kennen.

Wir stellen Parlay vor

parlay ist ein neues Open-Source-Tool von Snyk, das SBOMs anreichert. Am einfachsten lässt sich das anhand eines Beispiels zeigen. Nehmen wir eine einfache SBOM einer JavaScript-Anwendung.

$ cat testing/sbom.cyclonedx.json
...
{
	"bom-ref": "68-subtext@6.0.12",
	"type": "library",
	"name": "subtext",
	"version": "6.0.12",
	"purl": "pkg:npm/subtext@6.0.12"
}
...

Mit parlay reichern wir sie mit Daten von ecosyste.ms an:

$ cat testing/sbom.cyclonedx.json | parlay ecosystems enrich -

So werden Informationen zu jedem Paket ergänzt, darunter Lizenzdetails, externe Links, Angaben zu den Maintainerinnen und Maintainer und mehr.

...
{
	"bom-ref": "68-subtext@6.0.12",
	"type": "library",
	"supplier": {
		"name": "hapi.js",
		"url": [
			"https://hapi.dev"
		]
	},
	"author": "hapi.js",
	"name": "subtext",
	"version": "6.0.12",
	"description": "HTTP payload parsing",
	"licenses": [
		{
			"expression": "BSD-3-Clause"
		}
	],
	"purl": "pkg:npm/subtext@6.0.12",
	"externalReferences": [
		{
			"url": "https://github.com/hapijs/subtext",
			"type": "website"
		},
		{
			"url": "https://www.npmjs.com/package/subtext",
			"type": "distribution"
		},
		{
			"url": "https://github.com/hapijs/subtext",
			"type": "vcs"
		}
	],
	"properties": [
		{
			"name": "ecosystems:first_release_published_at",
			"value": "2014-09-29T01:56:03Z"
		},
		{
			"name": "ecosystems:latest_release_published_at",
			"value": "2019-01-31T19:36:58Z"
		}
	]
}
...

parlay unterstützt außerdem die Anreicherung mit Snyk-Schwachstellendaten für Snyk-Kunden.

parlay snyk enrich testing/sbom.cyclonedx.json

Dadurch wird der SBOM ein neues Attribut vulnerabilities hinzugefügt, zum Beispiel:

"vulnerabilities": [
  {
    "bom-ref": "68-subtext@6.0.12",
    "id": "SNYK-JS-SUBTEXT-467257",
    "ratings": [
      {
        "source": {
          "name": "Snyk",
          "url": "https://security.snyk.io"
        },
        "score": 7.5,
        "severity": "high",
        "method": "CVSSv31",
        "vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
      }
    ],
    "cwes": [
      400
    ],
    "description": "Denial of Service (DoS)",
    "detail": "...",
    "advisories": [
      {
        "title": "GitHub Commit",
        "url": "https://github.com/brave-intl/subtext/commit/9557c115b1384191a0d6e4a9ea028fedf8b44ae6"
      },
      {
        "title": "GitHub Issue",
        "url": "https://github.com/hapijs/subtext/issues/72"
      },
      {
        "title": "NPM Security Advisory",
        "url": "https://www.npmjs.com/advisories/1168"
      }
    ],
    "created": "2019-09-19T10:25:11Z",
    "updated": "2020-12-14T14:41:09Z"
  }

parlay arbeitet gerne mit stdin und stdout – Sie können SBOMs aus anderen Tools in parlay weiterleiten und auch die einzelnen enrich-Befehle miteinander verketten.

Vielleicht möchten Sie eine SBOM sowohl mit ecosyste.ms- als auch mit Snyk-Daten anreichern:

cat testing/sbom.cyclonedx.json | parlay e enrich - | parlay s enrich - | jq

Vielleicht möchten Sie die Ausgabe von Syft übernehmen und Schwachstellendaten hinzufügen:

syft -o cyclonedx-json nginx | parlay s enrich - | jq

Vielleicht möchten Sie mit Snyk eine SBOM erstellen, sie um zusätzliche Informationen ergänzen und anschließend mit bomber testen:

snyk sbom | parlay e enrich - | bomber scan --provider snyk -

Die Anreicherung durch ecosyste.ms ergänzt Lizenzinformationen, die Bomber beim Scannen einer SBOM auf Schwachstellen anzeigt:

Ecosystems detected: gem
■ Scanning 18 packages for vulnerabilities...
■ Vulnerability Provider: Snyk (https://security.snyk.io)

■ Files Scanned
        - (sha256:701770b2317ea8cbd03aa398ecb6a0381c85beaf24d46c45665b53331816e360)

■ Licenses Found: MIT, Apache-2.0, BSD-3-Clause, Ruby

Wie geht es weiter?

Wir würden gerne erfahren, was Sie von der Idee halten, SBOMs anzureichern. Viele bestehende und neue Tools erstellen SBOMs in den Formaten CycloneDX und SPDX, doch diese sind oft recht knapp gehalten. Mit umfassenderen SBOMs können wir darauf aufbauend interessantere Tools entwickeln. Und damit sich die Investition in die Erstellung von SBOMs lohnt, brauchen wir mehr Tools, die sie nutzen und Probleme von Anwendern lösen.

Sie können parlay im Release-Bereich des GitHub-Repositorys herunterladen. In unserem Leitfaden zu parlay und den Möglichkeiten mit einer angereicherten SBOM erfahren Sie mehr über fortgeschrittene Anwendungsfälle – einschließlich Pipelines und Richtlinienprüfungen – und können einem Beispielprojekt folgen.

Wir haben mit Ecosyste.ms, der Anreicherung durch Snyk und CycloneDX begonnen. Wenn Sie Ideen für weitere Datenquellen haben oder bei der Unterstützung von SPDX mithelfen möchten, erstellen Sie bitte ein Issue im offiziellen GitHub-Repository.

Weiterlesen

feature insights context
Blog

Autonome Angriffe sind bereits Realität. Die Verteidigung muss Schritt halten.

Autonome Angreifer verkürzen das Zeitfenster für die Verteidigung. Erfahren Sie, wie kontinuierliches Erkennen, Beheben, Validieren und Verhindern Sicherheitsteams helfen kann, Schritt zu halten.

Blog

Evo ADS Govern Agent Behavior ist allgemein verfügbar: MCP-Nutzung unter Kontrolle bringen

Evo ADS Govern Agent Behavior ist jetzt allgemein verfügbar und startet mit MCP Governance. Entdecken, genehmigen, überwachen, protokollieren und blockieren Sie die MCP-Server-Nutzung in führenden KI-Coding-Agenten.

illustration hero ai
Blog

Was ist Agentic AppSec?

Erfahren Sie, wie Agentic AppSec fundierte, klar begrenzte und unabhängig überprüfte KI-Agenten einsetzt, um den Application-Security-Kreislauf zu steuern.