Een SBOM bewijst wat je hebt geïnstalleerd. Het kan niet bewijzen of dat ook had gemoeten.

Een SBOM is een bonnetje. Het vertelt je wat je hebt geïnstalleerd. Het vertelt je niet of het de juiste keuze was om het te installeren.

De meeste teams gebruiken een SBOM en CVE-scans in hun CI/CD-pipelines. Deze tools zijn uitstekend voor het vinden van bekende kwetsbaarheden in bestaande pakketten. Maar ze hebben een enorme blinde vlek bij het gebruik van AI-coding agents.

Een AI-agent stelt een pakketnaam voor. Dit doet hij met dezelfde mate van zelfvertrouwen, of de naam nu echt is, een hallucinatie, of een typosquat.

Als een aanvaller gisteren een kwaadaardige pakketnaam heeft geregistreerd, heeft deze nog geen CVE. Je post-install scan ziet het en markeert het als veilig. De scan is eerlijk, maar hij beantwoordt de verkeerde vraag. Hij beantwoordt "is dit bekend als slecht?" in plaats van "zou deze naam in onze stack moeten voorkomen?"

Tegen de tijd dat een SBOM een kwaadaardig pakket registreert, is de schade al aangericht. Kwaadaardige code wordt vaak uitgevoerd tijdens de installatiefase via postinstall-scripts. Het kan je omgevingsvariabelen en CI-geheimen stelen voordat je scanner de boomstructuur van de bestanden zelfs maar ziet.

Je hebt een oordeel nodig vóór het bijeffect.

Ik heb een eenvoudige tool gebouwd om dit op te lossen. Het is een pre-install provenance gate. Het werkt anders dan een scanner:

• Het controleert namen VOORDAT npm install wordt uitgevoerd. • Het gebruikt een 'default-deny'-aanpak op basis van een gevalideerde baseline. • Het markeert typosquats door de edit distance te meten ten opzichte van populaire pakketten. • Het vangt hallucinaties op die niet overeenkomen met bekende goede namen. • Het verifieert je .npmrc om er zeker van te zijn dat je niet verbinding maakt met een malafide registry.

Deze tool is offline, keyless en maakt alleen gebruik van de Python standaardbibliotheek. Het maakt geen verbinding met het netwerk. Het lost geen pakketten op. Het kijkt simpelweg naar de voorgestelde namen en vraagt: "Staan wij achter deze naam?"

Als de naam niet in je gevalideerde snapshot staat en niet in een populaire baseline voorkomt, geeft de gate DENY terug.

Stop met het uitsluitend vertrouwen op verslagen van wat er is gebeurd. Begin te beslissen wat er mag gebeuren.

Source: https://dev.to/alex_spinov/an-sbom-proves-what-you-installed-it-cant-prove-you-should-have-117c

Optional learning community: https://t.me/GyaanSetuAi