Skip to content

About

LLM Skill bestand om Software Bill Of Materials (SBOM) te maken in CycloneDX en SPDX

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

SBOM-skill

Agent-skill van Geonovum voor het maken van een SBOM (software bill of materials) volgens de 2026 CISA Minimum Elements, als voorbereiding op de SBOM-verplichting uit de Cyber Resilience Act (CRA).

Een agent-skill is een map met een instructiedocument (SKILL.md) dat een AI-assistent erbij pakt zodra het onderwerp langskomt. De metadata staat in publiccode.yml en in de frontmatter van de skill, en de status staat in nl.gov.status.

Let op. De skill is een hulpmiddel en levert geen conformiteitsverklaring. De opsteller van een SBOM blijft verantwoordelijk voor de inhoud. Zie DISCLAIMER.md.

Skills

Skill Status Doel
geonovum-sbom concept Maakt voor een repository een CycloneDX 1.7-SBOM met VEX en een SPDX 2.3-SBOM, met per component producent, versie, purl of CPE, licentie en hash, en een VEX-analyse van bekende kwetsbaarheden via OSV. Werkt ook voor repositories zonder lockfile: met meegeleverde (vendored) JavaScript- en CSS-bestanden, CDN-links en componenten die de server levert.

De status concept betekent dat de skill nog niet is vastgesteld. Een hogere status vraagt een expertreview, een gepubliceerde reviewprocedure met acceptatiecriteria, en een test met minstens twee assistenten waarvan één open source of Europees.

Installeren

Kopieer de map skills/geonovum-sbom/ naar de skillmap van je assistent. Welke map dat is, staat in de documentatie van de assistent.

De repository is ook ingericht als plugin geonovum-sbom, met manifesten per assistent in de verborgen mappen. Zodra de skill via de skills-marketplace van developer.overheid.nl wordt aangeboden, staan de installatie-instructies per assistent in de README van die marketplace.

Gebruik

Vraag je assistent om een SBOM voor een repository, bijvoorbeeld: "Maak een SBOM voor deze repo volgens de CISA minimum elements, in CycloneDX en SPDX." De skill:

  1. begint bij de vorige SBOM, als die er is: scripts/scan_repo.js --since laat zien wat er sindsdien is veranderd, zodat alleen dat wordt bijgewerkt;
  2. brengt de repository in kaart met scripts/scan_repo.js: lockfiles, meegeleverde bestanden (ook bibliotheken die in een ander bestand zijn ingebed) en of ze geladen worden, CDN-links, wat de server moet leveren, en waar de metadata staan, telkens met bestand en regel;
  3. laat voor ecosystemen met een lockfile een tool zoals cdxgen of syft de afhankelijkheidsboom maken, zo nodig na een build of installatie, zodat de versies kloppen die echt worden geleverd;
  4. zoekt zelf alleen na wat de tooling niet kan vaststellen;
  5. schrijft een inventaris en maakt daarmee met scripts/build_sbom.js de twee SBOMs, met hashes van de gecommitte bestanden en kwetsbaarheden uit OSV, en valideert ze offline met scripts/validate_sbom.js;
  6. rapporteert welke CISA-elementen nog ontbreken (zoals de handtekening) en welke kwetsbaarheden nog geanalyseerd moeten worden;
  7. zet desgevraagd de inventaris en twee workflows in de repository. sbom.yml maakt de SBOMs bij elke GitHub-release opnieuw, valideert en ondertekent ze, en hangt ze aan de release. sbom-kwetsbaarheden.yml legt elke week de SBOM van de versie die in gebruik is naast OSV, met scripts/check_vulns.js. De actions in beide zijn vastgezet op een commit-hash.

Nodig: Node.js 18 of nieuwer en git. Voor de validatie installeert de skill ajv in een tijdelijke map; voor repositories met een lockfile gebruikt hij een SBOM-tool zoals cdxgen, na toestemming.

Relatie tot de bronnen

Bron Rol
2026 CISA Minimum Elements for a Software Bill of Materials Welke gegevens een SBOM minimaal moet bevatten (nl.gov.source)
Cyber Resilience Act, bijlage I deel II De wettelijke SBOM-verplichting voor producten met digitale elementen
CycloneDX 1.7 (ECMA-424) Formaat van sbom.cdx.json, inclusief VEX
SPDX 2.3 Formaat van sbom.spdx.json
OSV Bron van bekende kwetsbaarheden

De JSON-schema's in skills/geonovum-sbom/assets/schemas/ zijn ongewijzigde kopieën van de officiële schema's van CycloneDX (Apache-2.0) en SPDX, voor validatie zonder netwerk.

Testen

In skills/geonovum-sbom/evals/ staan drie testcases: een repository zonder lockfile met meegeleverde bestanden, een Node.js-app met lockfile, en een Flask-app met alleen requirements.txt. Elke testcase heeft een prompt, invoerbestanden en controles die beschrijven wat een goed resultaat is.

Bijdragen

Fouten in de skill meld je als issue. Werkafspraken voor wijzigingen staan in CONTRIBUTING.md.

Licentie

Copyright © 2026 Geonovum. Licensed under the EUPL.

De skill valt onder de EUPL-1.2. Alle taalversies van de EUPL zijn gelijkwaardig; de Nederlandse tekst staat in het Publicatieblad van de EU. De meegeleverde CycloneDX-schema's vallen onder Apache-2.0, het SPDX-schema onder de licentie van het SPDX-project.

About

LLM Skill bestand om Software Bill Of Materials (SBOM) te maken in CycloneDX en SPDX

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages