SBOM-strategie

Hoe bouw je een SBOM-strategie voor moderne software supply chains?

Gesponsord27 aug , 17:57
Disclaimer: Dit artikel is een ingezonden stuk vanuit een externe partij. Cryptocurrencies zijn een zeer volatiele en ongereguleerde investering. Lezers moeten hun eigen onderzoek doen, voordat ze acties ondernemen met betrekking tot het gepromote bedrijf of een van zijn genoemde ondernemingen of services. CryptoBenelux is niet verantwoordelijk, direct of indirect, voor enige schade of verlies dat veroorzaakt is door of in verband met het vertrouwen in goederen, diensten of inhoud die genoemd zijn in het artikel.
Software verandert voortdurend. Niet alleen omdat ontwikkelaars nieuwe functionaliteit toevoegen, maar ook omdat de applicatie zelf nooit helemaal hetzelfde blijft. Libraries krijgen updates, containers worden vervangen, build pipelines worden aangepast en afhankelijkheden verschijnen of verdwijnen zonder dat iemand daar bewust bij stilstaat.
Op papier draait nog steeds dezelfde applicatie. Onder de motorkap kan er in een paar maanden verrassend veel veranderd zijn. Juist daarom wordt het steeds lastiger om een eenvoudige vraag te beantwoorden. Welke software draait er eigenlijk op dit moment?
Voor veel organisaties blijkt dat moeilijker dan verwacht. Een ontwikkelaar weet welke packages gisteren zijn toegevoegd. Een securityteam kent de kwetsbaarheden die vorige week zijn gemeld. Het operations-team ziet welke containers in productie draaien. Niemand beschikt vanzelfsprekend over het complete overzicht.
Een Software Bill of Materials, beter bekend als een SBOM, probeert dat overzicht terug te brengen.
Niet als een lijst die één keer wordt gemaakt en daarna ergens verdwijnt, maar als een actueel overzicht van de componenten waar een applicatie daadwerkelijk uit bestaat.

Een SBOM heeft alleen waarde als hij actueel blijft

Veel teams beginnen enthousiast aan een SBOM-project. Er wordt een inventaris gemaakt, een rapport gegenereerd en de resultaten worden opgeslagen. Enkele maanden later blijkt dat niemand het document nog gebruikt.
Dat is geen technisch probleem. Software ontwikkelt zich simpelweg sneller dan documentatie.
Elke sprint brengt veranderingen met zich mee. Nieuwe packages worden toegevoegd, oude dependencies verdwijnen, containers worden vervangen en buildprocessen veranderen. Een SBOM die een half jaar geleden volledig correct was, kan vandaag al belangrijke onderdelen missen.
Daarom werkt een SBOM het best wanneer hij onderdeel wordt van het ontwikkelproces zelf.
Niet iets wat één keer per kwartaal gebeurt, maar iets dat automatisch meebeweegt met iedere nieuwe build.

Zichtbaarheid is belangrijker dan perfectie

Teams stellen de invoering van een SBOM soms uit omdat ze denken dat eerst alles volledig in kaart moet worden gebracht.
Dat klinkt logisch. In de praktijk gebeurt daardoor vaak niets.
Een onvolledig overzicht dat vandaag beschikbaar is, levert meestal meer waarde op dan een perfect overzicht dat pas over zes maanden verschijnt. Zodra de eerste versie bestaat, wordt het eenvoudiger om ontbrekende componenten te ontdekken, processen te verbeteren en nieuwe projecten volgens dezelfde werkwijze op te zetten.
Het doel is niet om direct ieder detail vast te leggen. Het doel is om te voorkomen dat software verandert zonder dat iemand nog weet wat er precies is veranderd.

Een SBOM hoort thuis in de buildpipeline

Ontwikkelaars zitten zelden te wachten op nóg een document dat handmatig moet worden bijgehouden. Dat is ook niet vreemd.
Software verandert sneller dan documentatie ooit kan bijblijven. Nieuwe dependencies verschijnen, bestaande componenten krijgen updates en builds volgen elkaar in hoog tempo op. Tegen de tijd dat een handmatig overzicht is bijgewerkt, kan het alweer achterhaald zijn.
SBOM-generatietools lossen precies dat probleem op. Door ze onderdeel te maken van de CI/CD-pipeline ontstaat bij iedere nieuwe build automatisch een bijgewerkt overzicht van alle gebruikte componenten. Ontwikkelaars hoeven hun werkwijze niet aan te passen en securityteams werken steeds met informatie die overeenkomt met de software die daadwerkelijk is uitgerold.
Daardoor verandert een SBOM vanzelf mee met de applicatie. In plaats van een document dat af en toe wordt bijgewerkt, wordt hij een vast onderdeel van het ontwikkelproces.

Niet iedere dependency verdient dezelfde aandacht

Een applicatie kan honderden of zelfs duizenden afhankelijkheden bevatten. Toch brengen ze niet allemaal hetzelfde risico met zich mee.
Sommige libraries vormen een klein hulpprogramma dat nauwelijks verandert. Andere spelen een centrale rol binnen de applicatie of ontvangen regelmatig beveiligingsupdates. Er zijn ook componenten die al jaren niet meer actief worden onderhouden.
Een lange lijst met dependencies zegt daarom nog weinig. Interessanter is de vraag welke onderdelen het belangrijkst zijn voor de continuïteit en beveiliging van de applicatie. Zodra dat duidelijk wordt, ontstaat vanzelf meer focus.
Teams hoeven niet iedere dependency met dezelfde intensiteit te beoordelen, maar kunnen hun aandacht richten op de componenten die de grootste impact hebben wanneer er iets misgaat.

Een bruikbare SBOM vertelt meer dan alleen welke software aanwezig is

Een lijst met componenten is een goed begin, maar tijdens een security-incident is dat zelden genoeg.
Wanneer een kwetsbaarheid openbaar wordt, wil een team niet alleen weten of een bepaalde library wordt gebruikt. Minstens zo belangrijk is waar die library draait, hoe zij in de applicatie terecht is gekomen en welke systemen er afhankelijk van zijn.
Daarom bevat een bruikbare SBOM meestal meer context dan alleen pakketnamen. Vragen als deze maken het verschil wanneer snel gehandeld moet worden:
  • Welke versie van een component draait daadwerkelijk in productie?
  • Is de dependency direct toegevoegd of via een andere library binnengekomen?
  • In welke applicaties, containers of services wordt de component gebruikt?
  • Uit welke bron of leverancier is de software afkomstig?
  • Is er inmiddels een ondersteunde of veiligere versie beschikbaar?
Juist die extra informatie maakt een SBOM bruikbaar wanneer snelheid belangrijker is dan het verzamelen van nog meer gegevens.

Niet iedere wijziging verdient dezelfde aandacht

In een actief softwareproject verandert er voortdurend iets. Nieuwe libraries worden toegevoegd, bestaande dependencies krijgen updates en oude componenten verdwijnen. Dat betekent niet dat iedere wijziging dezelfde impact heeft op de veiligheid van de software.
Sommige veranderingen verdienen simpelweg iets meer aandacht dan andere.
Dat geldt bijvoorbeeld voor:
  • Nieuwe third-party libraries die voor het eerst aan een project worden toegevoegd.
  • Dependencies die al lange tijd geen updates of actief onderhoud meer ontvangen.
  • Componenten met een groot aantal transitieve afhankelijkheden.
  • Libraries die toegang krijgen tot gevoelige gegevens of kritieke bedrijfsprocessen.
  • Wijzigingen die meerdere applicaties of buildpipelines tegelijk raken.
Niet omdat deze situaties automatisch een probleem vormen, maar omdat ze later vaak bepalend blijken wanneer een incident onderzocht moet worden.

Een SBOM wordt pas echt waardevol wanneer de druk oploopt

Zolang alles normaal draait, lijkt een SBOM soms weinig meer dan een overzicht van gebruikte software. Dat verandert zodra een nieuwe kwetsbaarheid bekend wordt.
Dan wil niemand eerst repositories doorzoeken of buildlogs openen om uit te zoeken waar een bepaalde component wordt gebruikt. De eerste vraag is meestal veel eenvoudiger: Zijn wij geraakt?
Een actuele SBOM helpt dat antwoord snel te vinden. Niet omdat hij problemen voorkomt, maar omdat hij kostbare tijd bespaart op het moment dat iedere minuut telt.

Een strategie werkt alleen als meerdere teams eraan bijdragen

Een SBOM is geen verantwoordelijkheid van één afdeling. Ontwikkelaars voegen dependencies toe. Platformteams onderhouden de buildomgeving. Security beoordeelt nieuwe risico's. Operations zorgt ervoor dat de software uiteindelijk draait waar zij moet draaien.
Wanneer ieder team alleen naar zijn eigen deel kijkt, ontstaat vanzelf een onvolledig beeld. Een goede SBOM-strategie sluit daarom aan op bestaande processen. Ontwikkelaars leveren de juiste informatie tijdens iedere build, platformteams automatiseren de generatie en security gebruikt dezelfde gegevens om nieuwe kwetsbaarheden sneller te beoordelen.
Daardoor blijft een SBOM actueel zonder dat iemand er handmatig spreadsheets voor hoeft bij te werken.

Software blijft veranderen, dus een SBOM ook

Een applicatie is nooit echt af. Nieuwe functionaliteit verschijnt, afhankelijkheden veranderen en de software die vandaag in productie draait ziet er over enkele maanden waarschijnlijk alweer anders uit.
Dat geldt net zo goed voor een SBOM. Hij hoeft niet perfect te zijn, maar wel mee te bewegen met iedere nieuwe release. Zodra dat gebeurt, verandert hij vanzelf van documentatie in een praktisch hulpmiddel dat ontwikkelteams, securityspecialisten en operations dagelijks kunnen gebruiken.
Een goede SBOM-strategie draait uiteindelijk niet om rapporten of compliance. Ze zorgt ervoor dat niemand hoeft te gissen welke software onderdeel uitmaakt van een applicatie. Dat antwoord is altijd beschikbaar, ook wanneer de volgende kwetsbaarheid onverwacht opduikt.

Stop met te veel betalen voor je crypto. Bij de Amsterdamse exchange Finst handel je tegen de laagste tarieven van Nederland, zonder verborgen kosten.

👀 Bekijk Finst nu

Let op: Beleggen in crypto brengt risico’s met zich mee. Handel alleen met geld dat u kunt missen.

Ga verder met lezen
loading
Dit vind je misschien ook leuk
Laat mensen jouw mening weten

Loading