DORA · Compliance
DORA og Secure SDLC: Hvad dit udviklingsteam skal kunne bevise
Under forordningen om digital operationel modstandsdygtighed (DORA) kan en banks tilsyn spørge, hvordan en enkelt ændring kom i produktion. DORA's tekniske standarder beskriver præcis, hvad svaret skal vise: sikkerhedskrav godkendt, før arbejdet startede, kode testet før release, afhængigheder tjekket, ingen rigtige kundedata i test og godkendelse fra en anden end udvikleren. Bygger du software til en bank, et forsikringsselskab eller en betalingsvirksomhed, når de samme spørgsmål dig gennem din kundes kontrakt.
De fleste udviklingsteams gør allerede meget af dette. Under DORA er spørgsmålet, om de kan bevise det. Har du en solid sikker softwareudviklingslivscyklus (Secure SDLC), er du nået det meste af vejen.
DORA, formelt forordning (EU) 2022/2554, skal holde finansielle tjenester kørende, når teknologien svigter eller bliver angrebet. Selve forordningen fastlægger principperne, mens de detaljerede regler står i de tekniske reguleringsstandarder (RTS) for risikostyring af informations- og kommunikationsteknologi (IKT), delegeret forordning (EU) 2024/1774. Dens Article 16 (ikke at forveksle med DORA's egen Article 16) er i praksis en Secure SDLC-politik skrevet af tilsynsmyndighederne. Dette indlæg kobler hvert krav til din livscyklus, så du kan se, hvad du skal beholde, hvad du skal tilføje, og hvad du skal kunne dokumentere.
Hvem skal egentlig forholde sig til DORA?
DORA omfatter 20 typer finansielle enheder i EU samt de IKT-virksomheder, der leverer til dem (DORA Art. 2).
| Sektor | Omfattede enheder |
|---|---|
| Bank og betalinger | Kreditinstitutter, betalingsinstitutter, kontooplysningstjenesteudbydere, e-pengeinstitutter |
| Investering og markeder | Investeringsselskaber, markedspladser, centrale modparter, værdipapircentraler, transaktionsregistre, udbydere af dataindberetningstjenester |
| Fonde | Forvaltere af alternative investeringsfonde, UCITS-administrationsselskaber |
| Forsikring og pension | Forsikrings- og genforsikringsselskaber, forsikrings- og genforsikringsformidlere, arbejdsmarkedsrelaterede pensionskasser |
| Krypto | Udbydere af kryptoaktivtjenester og udstedere af aktivbaserede tokens (under forordningen om markeder for kryptoaktiver) |
| Andre | Kreditvurderingsbureauer, administratorer af kritiske benchmarks, udbydere af crowdfundingtjenester, securitiseringsregistre |
| Teknologi | Tredjepartsudbydere af IKT-tjenester til alle ovenstående |
Nogle små enheder inden for disse typer er helt undtaget, fx forvaltere af alternative investeringsfonde under EU's størrelsesgrænser, forsikringsselskaber, der er for små til Solvens II (EU's kapitalregler for forsikringsselskaber), pensionskasser med højst 15 medlemmer og forsikrings- og genforsikringsformidlere, der er mikrovirksomheder eller små og mellemstore virksomheder (DORA Art. 2(3)).
For alle, der er omfattet, skalerer DORA. Reglerne gælder i forhold til virksomhedens størrelse og samlede risikoprofil og til arten, omfanget og kompleksiteten af dens tjenester (DORA Art. 4). En lille betalingsinstitution kan nøjes med en lettere opsætning end en stor bank, men begge skal kunne fremlægge dokumentationen.
Den vigtigste regel er, at en finansiel enhed bevarer det fulde ansvar for at overholde DORA, også når den outsourcer til en software- eller cloududbyder (DORA Art. 28(1)).
| Hvem | Hvordan DORA gælder | Hvad de har ansvaret for | Centrale artikler |
|---|---|---|---|
| Banker, forsikringsselskaber, fonde, betalingsvirksomheder og andre finansielle enheder | Direkte, under tilsyn af deres kompetente myndighed (national, eller ECB for de største banker) | Hele IKT-risikorammen, herunder SDLC-reglerne i dette indlæg, test, hændelsesrapportering og styring af deres leverandører | DORA Art. 5–30, RTS 2024/1774 |
| Visse små eller undtagne enheder, oplistet i DORA Art. 16(1) | Direkte, under en lettere ordning | En forenklet IKT-risikoramme, fastlagt i RTS 2024/1774 afsnit III i stedet for Article 16-reglerne i dette indlæg | DORA Art. 16, RTS afsnit III |
| Software- og IKT-leverandører | Indirekte, gennem kundekontrakter | Vilkår om sikkerhed, hændelsesstøtte og opsigelse i alle kontrakter, samt revisionsret og exit-vilkår, når tjenesten understøtter en kritisk eller vigtig funktion | DORA Art. 28–30 |
| Kritiske IKT-udbydere | Direkte, overvåget af EU's tilsynsmyndigheder | Tilsyn fra en ledende tilsynsførende, som vurderer deres IKT-risikostyring og kan udstede henstillinger, oven i deres kontraktlige forpligtelser | DORA Art. 31–44 |
For softwareleverandører betyder det, at DORA kommer i form af sikkerhedsspørgeskemaer, revisionsret og spørgsmål om, hvordan du bygger og tester din software. Har du softwarestyklister (SBOM'er), scanningsresultater, opsummeringer af penetrationstests og en proces for indrapportering af sårbarheder klar, bliver hver kundegennemgang lettere. Kun få udbydere bliver udpeget som kritiske. De første 19, primært store cloud- og platformsvirksomheder, blev udpeget i november 2025.
Hvad DORA kræver af udviklingen
Reglerne for udviklingen står to steder. Article 16 i RTS'en dækker, hvordan software bygges, og resten af DORA dækker ledelsen og driften omkring den. Livscyklussen nedenfor viser reglen bag hver fase, og hvordan det, du lærer i driften, føres tilbage til planlægningen.
Article 16, krav for krav
Article 16 i RTS'en har ni stykker. Tilsammen fortæller de, hvad din politik for sikker udvikling skal indeholde, og hvad dine teams og din pipeline rent faktisk skal håndhæve.
| Stk. | Krav | Din politik skal sige | Din SDLC skal håndhæve |
|---|---|---|---|
| 16(1)(a) | Navngiv din sikkerhedspraksis | Hvilke metoder og rammeværk for sikker udvikling du følger (fx NIST SSDF, OWASP SAMM) | Teams arbejder efter den standard, og enhver afvigelse dokumenteres |
| 16(1)(b) | Fastlæg krav fra start | Hvert system skal have tekniske specifikationer og sikkerhedskrav, godkendt af forretningsejeren og ejeren af IKT-aktivet | Ingen udvikling eller indkøb starter uden godkendte sikkerhedskrav |
| 16(1)(c) | Forhindr manipulation | Hvordan du forhindrer utilsigtede eller bevidste ændringer under udvikling, vedligehold og udrulning | Beskyttede branches, obligatorisk review, begrænsede udrulningsrettigheder, signerede artefakter |
| 16(2) | Test og godkend før idriftsættelse | En procedure for at teste og godkende hvert system før brug og efter vedligehold, med en dybde, der passer til systemets kritikalitet | En release-gate: test bestået og godkendelse registreret, plus gentest efter vedligehold og ændringer |
| 16(3) | Gennemgå kode, statisk og dynamisk | Kildekodegennemgang skal omfatte statisk og dynamisk test samt sikkerhedstest af systemer, der vender mod internettet | Statisk (SAST) og dynamisk (DAST) applikationssikkerhedstest i pipelinen, hvor hvert fund analyseres, får en plan for udbedring og følges til det er lukket |
| 16(4) | Test softwarepakker tidligt | Pakker og afhængigheder sikkerhedstestes senest ved integration | Scanning af afhængigheder i buildet, der blokerer kendte kritiske sårbarheder |
| 16(5)–(6) | Hold rigtige data ude af test | Ikke-produktionsmiljøer indeholder kun anonymiserede, pseudonymiserede eller randomiserede data og er beskyttede | Datamaskering eller syntetiske data som standard. Enhver brug af rigtige data er enkeltstående, tidsbegrænset, godkendt og rapporteres til IKT-risikofunktionen |
| 16(7) | Beskyt kildekodens integritet | Integritetskontroller gælder både for kode bygget internt og kode leveret af leverandører | Adgangskontrol til repositories, signerede commits, integritetstjek af leveret kode |
| 16(8) | Test tredjeparts- og open source-kode | Leverandørsoftware og, hvor det er muligt, leverandørers og open source-projekters kildekode analyseres og testes som din egen | Ingen udrulning uden scanningen, og en registreret begrundelse, når kildekoden ikke er tilgængelig |
| 16(9) | Medtag skygge-IT | Alt ovenstående gælder, risikobaseret, for værktøjer bygget eller drevet uden for IT-funktionen | En oversigt over regneark, scripts og low-code-apps med en lettere gennemgangsproces |
Hvor meget test et system kræver, afhænger af, om det understøtter en kritisk eller vigtig funktion, altså en funktion, hvis svigt alvorligt ville skade virksomhedens økonomi, kontinuiteten i dens tjenester eller dens compliance. Virksomhederne klassificerer selv deres systemer, og alle systemer, der understøtter en sådan funktion, skal testes mindst én gang om året (DORA Art. 24(6); mikrovirksomheder er undtaget). Et offentligt betalings-API kræver derfor langt mere end et internt rapportværktøj. Nogle virksomheder, som tilsynet udpeger ud fra deres betydning, systemiske karakter og IKT-risikoprofil, skal desuden gennemføre trusselsbaseret penetrationstest (TLPT) på produktionssystemer mindst hvert tredje år (DORA Art. 26).
Automatiserede scanninger er grundlaget, ikke hele testprogrammet. SAST, DAST og scanning af afhængigheder finder kendte mønstre, fx injektionsfejl og sårbare biblioteker, men ikke fejl i forretningslogik, autorisation eller timing: en overførsel fra en andens konto, et negativt beløb eller to ens forespørgsler, der skaber to overførsler. DORA's testprogram skal omfatte en række test, og eksemplerne går fra sårbarhedsscanninger og kildekodegennemgange til scenariebaserede test og penetrationstest (DORA Art. 24(2), 25(1)). Testene skal udføres af uafhængige testere, interne eller eksterne (DORA Art. 24(4)). Ekspertledet penetrationstest af de vigtigste systemer finder det, scannerne overser.
Stk. 16(4), 16(7) og 16(8) dækker også kode, du ikke selv har skrevet. I praksis betyder det en SBOM for hvert build, scannede og fastlåste afhængigheder og kontrakter, der giver dig sikkerhedsforpligtelser og, for kritiske eller vigtige funktioner, revisionsret over for dine leverandører (DORA Art. 28–30). SBOM'en dækker også en særskilt pligt til at holde styr på de tredjeparts- og open source-biblioteker, der bruges af systemer, som understøtter kritiske eller vigtige funktioner (RTS Art. 10(2)(d)).
Omkring koden
| Område | Hvad DORA kræver | Sådan gør du | Hvor det står |
|---|---|---|---|
| Ledelse | Ledelsen ejer IKT-risikoen, og medarbejderne er uddannede | En bestyrelsesgodkendt politik og træning i sikker kodning | DORA Art. 5, 13(6) |
| Design | Kend dine risici og afhængigheder | Trusselsmodellering og kortlægning af afhængigheder | DORA Art. 8, 9 |
| Adgang | Mindst mulige rettigheder for personer og pipelines | Adskilt udvikler- og produktionsadgang, kortlivede credentials til pipelines og logget administratoradgang | RTS Art. 8, 20, 21 |
| Kryptering | Beskyt data og nøgler | Kryptering under overførsel og i hvile, ingen hemmeligheder i koden, administrerede nøgler med rotation | RTS Art. 6, 7 |
| Release | Kontrollerede, godkendte ændringer | Ændringsanmodninger, en separat godkender og en plan for rollback | DORA Art. 9, RTS Art. 17 |
| Drift | Overvåg, patch og lær | Ugentlige sårbarhedsscanninger af systemer, der understøtter kritiske eller vigtige funktioner, patchfrister efter alvorlighed, gentest efter rettelser og evaluering efter hændelser | DORA Art. 10, 11, 13, RTS Art. 10 |
Intet af dette behøver at gøre leverancerne langsommere. De fleste af disse kontroller kører som automatiske gates i pipelinen. Godkendelsen er altid uafhængig af udvikleren, men dens omfang følger risikoen: en ændring med lav risiko får et hurtigt tjek, en med høj risiko en fuld gennemgang (RTS Art. 16(2), 17). Hver gate logger sit resultat, så revisionssporet bygger sig selv.
Praktisk eksempel: sikring af et betalings-API
For at se, hvordan det fungerer i praksis, kan du følge én ændring gennem livscyklussen. En betalingsvirksomhed tilføjer et nyt endpoint til sit offentlige API, så kunder kan planlægge overførsler. Ledelsesdelen fra planlægningsfasen er allerede på plads, så ændringen starter ved kravene. Gå gennem eksemplet nedenfor for at se, hvad der sker i hver fase, og hvilken dokumentation den efterlader.
En betalingsvirksomhed tilføjer et “planlæg overførsel”-endpoint til sit offentlige API.
Teamet arbejder efter virksomhedens standard for sikker udvikling, baseret på NIST SSDF. Før der skrives kode, godkender produktejeren (forretningsejeren) og ejeren af betalingssystemet (ejeren af IKT-aktivet) sikkerhedskravene, herunder stærk kundeautentifikation, rate limits pr. klient og en post i revisionsloggen for hver planlagt overførsel. Hvert krav bliver et acceptkriterium med en tilhørende testcase.
En trusselsmodel af det nye flow kortlægger, hvordan en angriber kan misbruge det, for eksempel ved at ændre beløbet, genafspille en forespørgsel eller planlægge en overførsel fra en andens konto. Designet imødegår derefter hver trussel med signerede forespørgsler, idempotensnøgler og autorisationstjek på objektniveau ved hvert kald.
Udvikleren åbner en pull request mod en beskyttet branch med signerede commits. CODEOWNERS sender den til en reviewer fra betalingsteamet, og scanning efter hemmeligheder kører ved hvert push. Pull requesten tilføjer også et nyt open source-bibliotek til at håndtere gentagne tidsplaner. Pipelinen markerer det som en ny afhængighed, og revieweren godkender det efter at have tjekket, at det vedligeholdes aktivt og ikke har kendte sårbarheder. SAST finder en SQL-injektion i planlægningsforespørgslen, som rettes med en parametriseret forespørgsel før merge.
En midlertidig runner med kortlivede OIDC-credentials bygger containeren og laver en CycloneDX-SBOM. Pipelinen scanner afhængighederne, containerens base image og infrastructure-as-code-skabelonerne og blokerer et ældre datobibliotek, som projektet allerede bruger, og som har en kendt kritisk sårbarhed, så teamet fastlåser en rettet version. Et software development kit til svindelscoring fra en leverandør tjekkes mod leverandørens signerede udgivelse og scannes og testes derefter som intern kode, før det integreres. Imaget signeres med SLSA-provenance.
Staging har de samme adgangskontroller som produktion og indeholder kun syntetiske kundedata. Her kører autentificeret DAST mod API'et ud fra dets OpenAPI-specifikation. Fordi endpointet vender mod internettet, skal det også sikkerhedstestes, og virksomhedens politik gør det til en penetrationstest af en uafhængig tester med fokus på forretningslogikken, fx negative beløb og race conditions på idempotensnøglen. Et fund af middel alvor kommer ind i handlingsplanen for sårbarheder med en ejer og en frist på 30 dage, og systemejeren accepterer formelt risikoen før release.
Udrulningsjobbet knytter releasen til en ændringsanmodning med en risikovurdering. Fordi den berører betalinger, klassificeres ændringen som høj risiko og får en fuld gennemgang. Som alle ændringer godkendes den af en anden end forfatteren. En admission-politik kører kun signerede images, og en canary-udrulning med automatisk rollback begrænser konsekvensen af en eventuel fejl.
Alarmer går i gang ved usædvanlige planlægningsmønstre, fx mange overførsler til den samme nye modtager. Den gemte SBOM tjekkes dagligt mod nye sårbarhedsadvarsler, så en nyoffentliggjort fejl i en kørende komponent straks opretter en sag. Fundet af middel alvor rettes og gentestes inden for fristen, og en ny SAST-regel plus en linje i kodestandarden forhindrer, at den samme fejl vender tilbage. Fordi API'et understøtter en kritisk funktion, kræver loven, at det testes hvert år, og virksomhedens politik gør det til en ny penetrationstest hver gang.
Fem spørgsmål til dit udviklingsteam i denne uge
DORA beder sjældent om helt ny praksis. Den beder dig koble den praksis, du har, til reglerne og gemme dokumentationen. Disse fem spørgsmål viser hurtigt, hvor dit team står. Hvert af dem kan et tilsyn eller en kundes revisor stille, og eksemplet ovenfor viser, hvordan et godt svar ser ud. Under hvert svar står et typisk hul, du kan kigge efter.
| # | Spørgsmål | Et godt svar | Hvor det står |
|---|---|---|---|
| 1 | Kan vi vise, hvem der godkendte sikkerhedskravene, før arbejdet startede? | Krav godkendt af forretningsejeren og ejeren af IKT-aktivet, hver koblet til en testcaseTypisk hul: Krav, der kun er godkendt af udviklingsteamet, ikke af forretningsejeren og ejeren af IKT-aktivet | RTS Art. 16(1)(b) Eksempel: trin 1 |
| 2 | Kan vi følge hvert sikkerhedsfund til en rettelse eller en formel risikoaccept? | Hvert fund registreret med en ejer og en frist og derefter gentestet efter rettelsen eller accepteret af systemejerenTypisk hul: Fund, der lukkes uden gentest, eller accepterede risici uden ejer eller slutdato | DORA Art. 24(5), RTS Art. 10(2)(g)–(h), 16(3) Eksempel: trin 5, 7 |
| 3 | Kan vi vise, at hver release blev testet og godkendt uafhængigt? | En release-registrering med test- og scanningsresultater, en penetrationstest, hvor risikoen kræver det, og en godkender, der ikke er udviklerenTypisk hul: Udviklere, der godkender deres egne ændringer, eller test, der springes over ved “små” releases | RTS Art. 16(2), 17 Eksempel: trin 5, 6 |
| 4 | Kan vi liste tredjepartsbibliotekerne i et kørende system og se, når et af dem bliver sårbart? | En SBOM for hvert build, scanning af afhængigheder, der blokerer kendte kritiske fejl, og daglige tjek mod nye sårbarhedsadvarslerTypisk hul: Et leverandør-SDK, der aldrig er blevet scannet, eller advarsler om afhængigheder, som ingen følger op på | RTS Art. 10(2)(d), 16(4) Eksempel: trin 3, 4, 7 |
| 5 | Kan vi forklare, hvilke systemer der kræver årlig, uafhængig test, og hvorfor? | En klassificering af de systemer, der understøtter kritiske eller vigtige funktioner, et testprogram, der dækker hvert af dem hvert år, og testere, der er uafhængige af teametTypisk hul: Ingen skriftlig begrundelse for, hvorfor ét system får en penetrationstest og et andet ikke gør | DORA Art. 8(1), 24(4), 24(6) Eksempel: trin 5, 7 |
Er det ærlige svar på et af dem “ved ikke”, så start der. Vælg ét kritisk system, kør en enkelt ændring gennem trinene i eksemplet, og luk de huller, du finder.
Vil du have et uafhængigt blik på dit teams svar, eller har du brug for uafhængige penetrationstests til dit DORA-testprogram? SSA IT gennemgår din Secure SDLC op mod DORA, udfører de penetrationstests, du har brug for, og hjælper dig med at bygge sikkerhedsgates og revisionsspor ind i din pipeline.
Referencer
- Forordning (EU) 2022/2554, forordningen om digital operationel modstandsdygtighed (DORA), EUR-Lexhttps://eur-lex.europa.eu/eli/reg/2022/2554/oj/dan
- Delegeret forordning (EU) 2024/1774, RTS om IKT-risikostyring, EUR-Lexhttps://eur-lex.europa.eu/eli/reg_del/2024/1774/oj/dan
- ESMA, ESA'erne udpeger kritiske tredjepartsudbydere af IKT-tjenester (18. november 2025)https://www.esma.europa.eu/press-news/esma-news/european-supervisory-authorities-designate-critical-ict-third-party-providers
- NIST SP 800-218, Secure Software Development Framework (SSDF)https://csrc.nist.gov/pubs/sp/800/218/final
- OWASP Software Assurance Maturity Model (SAMM)https://owaspsamm.org/
- Supply-chain Levels for Software Artifacts (SLSA)https://slsa.dev/
- CycloneDX SBOM-standardenhttps://cyclonedx.org/
Fandt du artiklen nyttig? Del den med dit netværk.
Del på LinkedIn