Een SBOM bij elke analyse
Elke analyse somt elk pakket op dat je lockfiles installeren, met zijn licentie, via welk pakket het binnenkomt en zijn bekende kwetsbaarheden. Download hem als CycloneDX 1.6-SBOM, op elk abonnement, ook het gratis abonnement.
Wat erin staat
Eén document per analyse, gemaakt uit dezelfde gegevens als het rapport, dus de SBOM en de score beschrijven altijd dezelfde commit.
Elk geïnstalleerd pakket
Elke versie van een npm- of Composer-pakket die je lockfiles installeren, met zijn package URL (purl), of je het zelf declareert of dat het via een ander pakket binnenkomt, en of alleen de ontwikkeling het nodig heeft.
Licenties
De licentie van elk pakket als SPDX-id of SPDX-expressie. Bij lockfiles die geen licenties vastleggen (yarn, pnpm, bun) komen ze uit de npm-registry; een waarde die geen SPDX is, blijft bewaard als de naam van de licentie.
De afhankelijkheidsgraaf
Welk pakket welk ander pakket binnenhaalt, vanaf je project naar beneden, zodat je ziet waarom een pakket er is.
Bekende kwetsbaarheden
De advisories die OSV kent voor deze versies, gekoppeld aan de pakketten die ze raken, met een ernst en de versie die ze oplost.
Gelezen uit je lockfiles
Agnes maakt de lijst uit de lockfile, buiten de sandbox. Het installeert nooit je dependencies en voert je code nooit uit.
- package-lock.json
- npm-shrinkwrap.json
- yarn.lock
- pnpm-lock.yaml
- bun.lock
- composer.lock
Geen lockfile, geen SBOM: commit er een, zodat elke analyse kan opsommen wat je uitlevert. Composer-pakketten staan erin met hun licenties en advisories.
{
"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" }
]
}Waar je hem vindt
De SBOM van de laatste analyse is altijd één klik weg, en oudere analyses houden hun eigen SBOM.
Projectoverzicht
De SBOM-kaart op het overzicht van een project downloadt de nieuwste, met het aantal pakketten, licenties en kwetsbaarheden erin.
Elke analyse
Elke analyse heeft een eigen download, dus je kunt de SBOM overhandigen van precies de commit die je hebt uitgeleverd.
Je AI-agent
Agents die met Agnes verbonden zijn, halen hem op met de tool get_sbom, bijvoorbeeld om een licentie te controleren of een upgrade te plannen.
Een agent verbinden →
Voor klanten, audits en de Cyber Resilience Act
Klanten en auditors vragen steeds vaker om een SBOM, en de Europese Cyber Resilience Act vraagt makers van producten met digitale elementen er een op te stellen, met ten minste de afhankelijkheden op het hoogste niveau. De SBOM van Agnes bevat elk geïnstalleerd pakket en blijft bij elke analyse actueel. Hij is één onderdeel van wat de wet vraagt, geen naleving op zichzelf.
Het formaat
CycloneDX 1.6 JSON, de OWASP-standaard die de meeste SBOM-tools lezen. Pakketten worden aangeduid met hun package URL en licenties met SPDX, en onze tests controleren de export tegen het officiële CycloneDX-schema. Het serienummer van het document is de id van de analyse, dus dezelfde analyse geeft altijd dezelfde SBOM.
Niet erin: je eigen bronbestanden, bestandshashes en pakketten die in geen enkele lockfile staan, zoals meegeleverde scripts. Heel grote projecten stoppen bij 20.000 pakketten; de SBOM zegt dan hoeveel er zijn weggelaten.
Zie wat je repository uitlevert
Koppel een repository en bij de eerste analyse hoort meteen zijn SBOM.