Secure SDLC, Agile SDLC og SBOM: Sikker softwareudvikling ift. NIS2, ISO 27001, AI Act og CRA 

cybersikkerhed
SDLC: Sikkerhed integreret i agil implementering og softwareudvikling:
I takt med den stigende efterspørgsel efter sikre softwareløsninger og øget fokus på cybersikkerhed bliver integrering af sikkerhedsprincipper i etablerede softwareudviklingsmetodikker – som bl.a. agil systemudvikling – stadig mere relevant for organisationer, der udvikler digitale produkter og softwarebaserede tjenester.
Agile udviklingsmetoder og principperne for sikker softwareudvikling, herunder Secure Software Development Lifecycle (Secure SDLC), opfattes ofte som separate tilgange til softwareudvikling. I praksis kan de imidlertid integreres og understøtte hinanden som en samlet ramme for udvikling af sikre softwareløsninger og robust softwarearkitektur.
Ved at integrere sikkerhedsprincipper i de agile processer kan sikkerhed, risikovurdering, sårbarhedshåndtering og compliance indarbejdes løbende gennem hele udviklingsforløbet. Secure SDLC bliver dermed ikke et efterfølgende kontroltrin i softwareudviklingen, men en integreret del af analyse, design, udvikling, test og implementering af software.
Agil implementering er derfor fuldt kompatibel med sikker softwareudvikling og kan understøtte en systematisk og dokumenterbar tilgang til udvikling af sikre softwareløsninger og cybersikre digitale produkter.

SDLC

Software Development Life Cycle (SDLC) er en trinvis proces der bruges ved udvikling af softwareløsninger og softwareprodukter. Typisk indebærer processen forskellige faser fra den indledende udviklingsfase og analyse af kravspecifikationer til den efterfølgende udvikling og implementering af software. Processen er med til at sikre et højt niveau af integritet, kvalitet og sikkerhed i softwareproduktet. 
Secure Software Development Life Cycle (Secure SDLC) er en sikkerhedsorienteret version af SDLC, der hjælper udviklere og organisationer med at gøre deres softwareprodukter mere sikre og robuste over for cybertrusler.

Agile SDLC

Agile SDLC er en iterativ og trinvis metodologi inden for softwareudvikling. Denne variant af SDLC-modellen prioriterer fleksibilitet, samarbejde og feedback fra kunden eller product owner gennem hele udviklingsprocessen. Den agile SDLC-variant deler udviklingen op i mindre trinvise iterationer, f.eks. projektkrav, arkitektur og design samt udvikling, test og feedback.
Det vigtigste er at sikre de fire grundelementer fra det agile manifest: tidlig kundeinvolvering, iterativ udvikling, selvorganiserende teams og en adaptiv tilgang til ændringer i projektet. Som mange andre udviklingsmodeller er den agile SDLC-model også opdelt i flere forskellige faser, heriblandt.

1. Indhentning af krav

Indhentningen af krav sker i samarbejde med kunden, hvor formålet er at identificere hvilken forretningsmæssig værdi projektet skal skabe, så krav og funktioner kan prioriteres derefter. Typisk anvendes user stories og workshops til at sikre en effektiv dialog om krav og behov mellem kunden og udviklingsteamet. Denne proces bidrager samtidig til at sikre, at softwareløsningen understøtter både forretningsmål og tekniske krav.

2. Design af krav

Efter man har kortlagt kundens krav, skal kravene i denne fase omdannes til praktiske opgaver der kan implementeres i projektet. En måde at gøre omfattende kundekrav mere håndgribelige er ved at dele opgaverne op i mindre delopgaver. Typisk vil udviklerne lave visuelle præsentationer af deres løsninger for at give kunden bedre indblik i udviklingsteamets ideer; her bruges ofte wireframes og prototyper for at få yderligere feedback til projektet og til systemets design.

3. Kodning

Som en del af lovgivningen indføres der en forpligtelse til at yde løbende support gennem hele livscyklussen for de omfattede produkter, herunder håndtering af sikkerhedsopdateringer og sårbarheder.

4. Test af kode

Test af kode er en vigtig del af hver iteration, der går ud på at sikre kvalitet, funktionalitet og stabilitet af softwaren. Man bruger typisk unit-tests til at verificere, at de individuelle komponenter af systemet arbejder sammen efter hensigt. Herefter laver udviklingsteamet slutbruger-tests, hvor brugere får lov at interagere med softwaren, så man er sikker på at imødekomme kundens krav til produktet og sikre den ønskede funktionalitet.

5. Udgivelse af kode

Udgivelse af kode går i høj grad ud på at levere funktionalitet til produktet. Hertil benyttes der typisk automatiserede værktøjer og CI/CD-processer, der tillader hurtige og ensartede udgivelser af software. Det er vigtigt at overvåge udgivelsesprocessen, da det giver mulighed for at fejl kan identificeres og rettes hurtigt.

6. Feedback fra kunder

Feedback er et essentielt step i forbedringen af produktet og i den løbende videreudvikling af softwareløsningen. Kunder og slutbrugere kan sende deres feedback gennem enten et spørgeskema, direkte kommunikation eller analyse af produktets brug. Denne feedback bruges til at finpudse krav, identificere mangler og prioritere ændringer i fremtidige iterationer af systemet.

Secure SDLC (SSDLC)

Secure SDLC følger i høj grad den almindelige udviklingsmodel, hvor projektet deles op i faser som bl.a. krav, design, udvikling, verifikation/test, vedligeholdelse og forbedring af softwareproduktet.
Secure SDLC har til formål at mindske risici for datalæk, øge modstandsdygtigheden af applikationer, styrke cybersikkerheden og øge brugertilliden til softwareprodukter, samtidig med at potentielle omkostninger efter en sikkerhedshændelse reduceres.
Processen følger det initiativ der kaldes ”shift-left”, hvor man er interesseret i at implementere sikkerhed så tidligt i softwareudviklingsprocessen som muligt. Hvis udviklingsteamet selv står for design og implementering af sikkerhedstiltag, kan de hurtigere håndtere sikkerhedsmæssige problemstillinger, idet de også har ejerskab over koden. Dette leder ofte til softwareapplikationer af højere kvalitet og bedre sikkerhed.
Ved at fikse fejl og mangler så tidligt i projektet som muligt kan omkostningerne reduceres markant. Tal fra IBM viser, at det i nogle tilfælde kan koste op til hundrede gange så meget at fikse problemer i produktionen, som hvis de var blevet håndteret i designfasen. Tidlig håndtering af problemerne kræver dog et godt overblik over projektets omfang. (IBM System Science Institute: Relative Cost of Fixing Defects, 2010).

SSBOM ift. NIS2, ISO 27001, AI Act og CRA 2.1 SBOM generel

SModerne software består sjældent af kode udelukkende udviklet internt i organisationen. Mange systemer og softwareprodukter består i dag af en kombination af internt udviklet software, open source komponenter og tredjepartsbiblioteker. Denne kompleksitet i moderne softwareudvikling skaber udfordringer i forhold til cybersikkerhed, håndtering af sårbarheder, software supply chain security og overholdelse af regulatoriske krav og compliance.
En Software Bill of Materials (SBOM) er en struktureret liste over alle komponenter, biblioteker og afhængigheder i et softwareprodukt. En SBOM fungerer som en ingrediensliste for software og gør det muligt for organisationer at identificere, analysere og håndtere sårbarheder i softwareprodukterne samt skabe større transparens i softwareleverandørkæden.
SBOM er blevet et centralt værktøj inden for software-leverandørkædesikkerhed og software supply chain security, særligt efter en række større cybersikkerhedshændelser som bl.a. SolarWinds-angrebet og Log4Shell-sårbarheden. Ved disse hændelser havde organisationer ofte problemer med hurtigt at identificere præcist hvilke systemer der indeholdt de sårbare komponenter.
Flere cybersikkerhedsstandarder og regulatoriske rammeværker er derfor begyndt at adressere behovet for større synlighed i softwareprodukter og softwarekomponenter. I EU-kontekst er SBOM særligt relevant i relation til NIS2-direktivet, ISO 27001, AI Act og Cyber Resilience Act (CRA). Selvom kravene varierer mellem disse rammeværker, spiller SBOM en central rolle i arbejdet med risikostyring, software-leverandørkædesikkerhed og sårbarhedshåndtering.

2.2 SBOM i NIS2

NIS2-direktivet har det formål at forbedre cybersikkerheden i kritiske og vigtige sektorer i EU. Direktivet stiller krav til organisationers risikostyring, sikkerhed i leverandørkæden og hvordan organisationer håndterer sårbarheder og cybersikkerhedsrisici i deres IT-systemer og digitale tjenester.
NIS2 stiller ikke eksplicit krav om implementering af en SBOM. En SBOM kan dog understøtte flere af direktivets sikkerhedsforanstaltninger og hjælpe organisationer med at opnå og opretholde et højt cybersikkerhedsniveau i deres softwareløsninger og digitale systemer.

Relevante NIS2 krav

NIS2 artikel 21 beskriver en række cybersikkerhedsforanstaltninger som organisationer skal implementere, herunder risikostyring, leverandørkædesikkerhed, sårbarhedshåndtering og beredskabsplaner. En SBOM kan hjælpe med at understøtte disse krav ved at give organisationen et detaljeret overblik over softwarekomponenterne i et system og deres afhængigheder i softwareleverandørkæden.
SBOM i praksis under NIS2: 
Leverandørkædesikkerhed SBOM giver organisationer mulighed for at identificere hvilke tredjepartsbiblioteker og softwarekomponenter der indgår i et system. Dette gør det muligt at vurdere risikoen ved tredjepartssoftware, identificere komponenter fra usikre leverandører og dokumentere softwareafhængigheder i leverandørkæden.
Hurtigere sårbarhedshåndtering Når en ny sårbarhed offentliggøres, for eksempel via CVE-databasen, kan organisationer bruge deres SBOM til hurtigt at identificere om der findes sårbare komponenter i deres systemer. En SBOM reducerer den tid der bruges på at identificere påvirkede systemer, understøtter en rettidig risikovurdering og gør patch management, vedligeholdelse og dokumentation mere effektiv.
Beredskabsplanlægning SBOM kan også understøtte organisationens beredskabsplan ved at give et klart overblik over hvilke komponenter der er til stede i et eventuelt kompromitteret system. Dette gør det lettere for organisationer og myndigheder at analysere angrebsvektorer i forbindelse med en sikkerhedshændelse og identificere kompromitterede komponenter.

2.3 SBOM i ISO 27001 Overordnet perspektiv

ISO 27001 er en international standard for et ledelsessystem for informationssikkerhed, også kaldet et Information Security Management System (ISMS). Standarden fokuserer primært på styringsprocesser og organisatoriske kontroller frem for specifikke tekniske løsninger. ISO 27001 kræver derfor ikke direkte implementering af en SBOM i organisationen, men en SBOM kan være et stærkt værktøj til at understøtte flere af standardens kontroller inden for cybersikkerhed og softwarestyring.

Relevante kontroller

SBOM kan især hjælpe med at understøtte følgende kontroller i ISO 27001 Anneks A.

1. Forvaltning af aktiver

Organisationer skal identificere og registrere informationsaktiver. Softwarekomponenter og afhængigheder kan betragtes som digitale aktiver, hvor en SBOM kan fungere som en detaljeret registrering og dokumentation af softwareaktiver i organisationens systemer.

2. Secure SDLC

ISO 27001 stiller krav til sikkerhed i udviklingsprocesser. Her kan SBOM med fordel integreres i Secure Software Development Lifecycle (SSDLC). Dette kan f.eks. ske gennem automatiseret generering af SBOM i CI/CD-pipelines som dokumentation for softwarekomponenter i et system.

En automatiseret SBOM i CI/CD-processer kan mindske tidsforbruget og samtidig understøtte scanning af de komponenter der tilføjes, herunder open source komponenter, så organisationen får et bedre overblik over softwarekomponenternes afhængigheder.

3. Sårbarhedshåndtering

SEn SBOM understøtter sårbarhedshåndtering fordi den kan bruges til at identificere hvilke systemer der er påvirket af kendte sårbarheder. Dette gør det muligt at prioritere patching og sikkerhedsopdateringer baseret på eksponeringen af softwarekomponenter.

4. SBOM som del af ISMS

I et ISO 27001-baseret ISMS kan SBOM integreres i flere centrale processer, blandt andet forvaltning af aktiver, risikostyring, leverandørkædesikkerhed og sårbarhedshåndtering. SBOM fungerer dermed som et værktøj til at gøre flere af standardens kontroller mere operationelle og praktisk anvendelige i organisationens cybersikkerhedsarbejde.

2.4 SBOM i AI Act

AI Act regulerer udvikling og anvendelse af kunstig intelligens i EU. Fokus i reguleringen ligger særligt på transparens i AI-systemer, risikostyring, sikkerhed og dokumentation. For high-risk AI-systemer stiller AI Act krav om omfattende teknisk dokumentation.

SBOM’s rolle i AI-systemer

AI-systemer består ofte af en kompleks software stack som typisk indeholder blandt andet machine learning frameworks og open source biblioteker. En SBOM kan hjælpe organisationer med at dokumentere disse softwarekomponenter og skabe transparens i den softwarearkitektur der ligger til grund for AI-systemet.

Relevans for compliance i AI Act

En SBOM kan særligt hjælpe med at understøtte kravene om dokumentation af softwarekomponenter i AI-systemer og skabe gennemsigtighed i softwareleverandørkæden. Samtidig kan en SBOM understøtte organisationens sikkerhedsvurderinger og risikostyring. Dette kan være særligt relevant for organisationer der udvikler eller arbejder med high-risk AI-systemer.

2.5 SBOM i Cyber Resilience Act (CRA)

Cyber Resilience Act er en EU-forordning der stiller krav til cybersikkerheden i produkter med digitale elementer. CRA gælder derfor for softwareprodukter, hardware med software, IoT-enheder, operativsystemer, applikationer og andre digitale produkter.
I CRA lægges der stort fokus på software-leverandørkædesikkerhed, da producenter og leverandører af produkter med digitale elementer skal kunne stå inde for sikkerheden i de produkter de sælger inden for EU.

SBOM-krav i CRA

CRA stiller krav til at producenter dokumenterer de softwarekomponenter der indgår i deres produkter. I praksis betyder dette ofte at en Software Bill of Materials bliver nødvendig for compliance. En SBOM kan derfor anvendes til dokumentation af softwarekomponenter, open source afhængigheder og tredjepartsbiblioteker samt til håndtering af sårbarheder i softwareleverandørkæden.

Sårbarhedshåndtering

CRA kræver også at producenter etablerer processer for overvågning af sårbarheder i deres softwareprodukter, så sårbarheder kan håndteres så hurtigt som muligt og ikke udgør en unødig risiko for brugerne af produktet. Der stilles samtidig krav til rapportering af sikkerhedsproblemer, så relevante parter og myndigheder kan informeres om sikkerhedsbrister i produkter.
CRA kræver desuden at sikkerhedsopdateringer udgives gennem hele produktets levetid, og derfor skal producenter sørge for løbende sårbarhedsvurderinger og sikkerhedsopdateringer for at opretholde produktets sikkerhedsniveau.

Læs mere om:

Kontakt  //  

nesp.ONE