ISM Software Development: Secure SDLC en DevSecOps

App Consent Policies User consent for low-risk apps Enabled | Verified publishers only User consent for high-risk apps Blocked | Admin approval required ! Admin consent workflow Enabled | 3 pending requests Permission classifications Risk levels configured 3 Pending 89 Apps
Executive Summary

Deze richtlijn beschrijft hoe Nederlandse overheidsorganisaties software veilig kunnen laten ontwikkelen door een gestructureerde Secure Software Development Lifecycle (secure SDLC) en DevSecOps-werkwijze in te richten. Door beveiliging al vanaf de eerste idee-fase mee te nemen, risico’s systematisch te identificeren en geautomatiseerd te testen, ontstaat software die aantoonbaar voldoet aan ISM- en BIO-eisen en beter bestand is tegen moderne cyberdreigingen.

Software Development Controls

Veilige softwareontwikkeling begint bij het besef dat beveiliging geen afsluitende stap is na de bouwfase, maar een integraal onderdeel van het volledige ontwikkelproces. Voor Nederlandse overheidsorganisaties betekent dit dat beveiliging vanaf de eerste beleidsbeslissingen tot en met beheer en uitfasering van applicaties zichtbaar moet zijn geborgd. Een secure Software Development Lifecycle (secure SDLC) biedt hiervoor de structuur: in iedere fase worden expliciete beveiligingsactiviteiten uitgevoerd, vastgelegd en beoordeeld, zodat u kunt aantonen dat aan de eisen uit het Informatiebeveiligingsbeleid Rijk, de ISM-richtlijnen en de BIO wordt voldaan.

In de initiatie- en ontwerp­fase ligt de nadruk op het begrijpen van de opdracht, de gegevensverwerking en de risico’s. Architecten en product­eigenaren beschrijven welke informatiecategorieën worden verwerkt, welke koppelingen met andere systemen bestaan en welke dreigingen relevant zijn, zoals ongeautoriseerde toegang, datalekken of verstoring van kritieke processen. Op basis hiervan worden beveiligings­eisen opgesteld, bijvoorbeeld ten aanzien van authenticatie, autorisatie, logging, versleuteling en scheiding van omgevingen. Deze eisen worden vastgelegd in architectuurdocumenten en user stories, zodat ontwikkelteams vanaf de eerste sprint weten welke beveiligingsmaatregelen verplicht zijn.

Tijdens de bouwfase worden deze eisen vertaald naar concrete implementaties in code en infrastructuur. Ontwikkelteams gebruiken bij voorkeur moderne versiebeheersystemen en een geautomatiseerde CI/CD-pijplijn waarin kwaliteits- en beveiligingscontroles zijn opgenomen. Statische code-analyse (SAST) controleert broncode bij elke commit op bekende kwetsbaarheden, onveilige patronen en het onjuist omgaan met invoer en geheimen. Waar mogelijk worden beveiligings­standaarden en herbruikbare bouwblokken gebruikt, zoals gestandaardiseerde bibliotheken voor identificatie en authenticatie of referentie-implementaties voor logging en audittrail.

Code reviews vormen een tweede, onmisbare verdedigingslinie. Elke wijziging wordt door minimaal een tweede ontwikkelaar beoordeeld, waarbij niet alleen naar functionaliteit wordt gekeken, maar nadrukkelijk ook naar beveiligingsimpact. Reviewers controleren of invoer correct wordt gevalideerd, foutafhandeling geen gevoelige details prijsgeeft en afhankelijkheden actueel en vertrouwd zijn. In omgevingen waar externe leveranciers ontwikkelen voor de overheid, worden in contracten en dienstverleningsovereenkomsten expliciete eisen opgenomen over reviewpraktijken, secure coding-richtlijnen en het gebruik van open source-componenten.

In de testfase verschuift de aandacht naar dynamische beveiligingstesten (DAST) en aanvullende controles op integratie- en acceptatieomgevingen. Geautomatiseerde beveiligingsscans simuleren aanvallen op webapplicaties, API’s en achterliggende services, zodat kwetsbaarheden zoals injectieproblemen, onjuiste sessiebehandeling of misconfiguraties vroegtijdig zichtbaar worden. Aanvullend kunnen interactieve applicatiebeveiligingstesten (IAST) en dependency-scans worden ingezet om kwetsbare componenten in gebruikte bibliotheken en containers te identificeren. Bevindingen worden geregistreerd in een centraal volgsysteem, geclassificeerd naar impact en hersteld volgens vastgestelde termijnen die aansluiten bij de risicobereidheid van de organisatie.

Een volwassen DevSecOps-werkwijze zorgt ervoor dat al deze activiteiten naadloos aansluiten op de dagelijkse ontwikkel- en beheerprocessen. Ontwikkel-, beveiligings- en operations-teams werken hierbij als één geïntegreerd team, met gedeelde verantwoordelijkheid voor de kwaliteit en beveiliging van de applicatie gedurende de gehele levenscyclus. Beveiligingsspecialisten leveren hanteerbare normen, voorbeeldconfiguraties en beleid, terwijl ontwikkelteams zorgen voor praktische implementatie in pipelines en code. Door beveiligingscontroles zoveel mogelijk te automatiseren – zoals geautomatiseerde testen, policies als code en infrastructure as code – neemt de kans op menselijke fouten af en wordt beveiliging een vanzelfsprekend onderdeel van elke wijziging.

Naast techniek is governance cruciaal. De organisatie benoemt eigenaarschap voor applicaties en platformen, legt vast wie welke beveiligingsbeslissingen mag nemen en hoe wordt omgegaan met uitzonderingen op standaarden. Voor kritieke applicaties wordt periodiek een onafhankelijke beoordeling uitgevoerd, bijvoorbeeld in de vorm van penetratietesten of audits op naleving van ISM- en BIO-controls. Bevindingen uit incidentanalyses, datalekken of bijna-incidenten worden structureel teruggekoppeld naar ontwikkelteams, zodat het secure SDLC-proces continu verbetert. Door deze combinatie van duidelijke eisen, geautomatiseerde controles, samenwerking tussen disciplines en aantoonbaar toezicht ontstaat een ontwikkelketen die nieuwe functionaliteit snel kan opleveren zonder concessies te doen aan de beveiliging.

Voor Nederlandse overheidsorganisaties levert deze aanpak concrete voordelen op: een aantoonbare aansluiting op rijksbrede beveiligingskaders, beter inzicht in softwareketens en toeleveranciers, en een hogere mate van vertrouwen bij burgers en ketenpartners dat digitale diensten veilig en betrouwbaar zijn. Deze richtlijn vormt daarmee het operationele fundament onder veilige softwareontwikkeling binnen de Nederlandse Baseline voor Veilige Cloud.

Conclusie

Door een secure SDLC en DevSecOps-werkwijze in te richten, maken overheidsorganisaties beveiliging tot een integraal onderdeel van softwareontwikkeling in plaats van een eenmalige controle aan het einde. Met heldere beveiligingseisen, geautomatiseerde testen, structurele code reviews en duidelijke governance wordt het eenvoudiger om aantoonbaar te voldoen aan ISM- en BIO-vereisten en tegelijkertijd wendbaar te blijven in de levering van nieuwe functionaliteit.

Executive Aanbevelingen
  • Borg een secure SDLC en DevSecOps-werkwijze als standaard voor alle nieuwe en bestaande applicaties, met expliciete aandacht voor ISM- en BIO-eisen.
ISM Software Development Secure SDLC