DOELSTELLINGENHet beleid draagt bij tot de realisatie van volgende informatieveiligheidsdoelstellingen van de organisatie:
|
DREIGINGENHet beleid draagt bij om de volgende dreigingen te verminderen of te voorkomen: |
Projectmanagement
Informatieveiligheid behoort te worden geïntegreerd in projectmanagement om ervoor te zorgen dat informatieveiligheidsrisico's in alle fases van een project worden aangepakt. Dit kan worden toegepast op elk type project ongeacht de complexiteit, omvang, duur, discipline of het toepassingsgebied (bijvoorbeeld een project voor een proces voor kernactiviteiten, een ICT-project, een facility management project, enz.).
Het vroegtijdig nadenken over informatieveiligheidseisen voor het product of de dienst (bijv. tijdens de plannings- en ontwerpfasen) kan leiden tot doeltreffender en kostenefficiëntere oplossingen voor informatieveiligheid.
Implementatiemaatregel
Informatieveiligheid moet worden geïntegreerd in projectmanagement om ervoor te zorgen dat informatieveiligheidsrisico's in het kader van projectmanagement worden aangepakt.
Implementatiemaatregel
Naast het beleid voor Risicobeheer MOETEN de volgende maatregelen worden gevolgd tijdens het projectmanagement:
Informatieveiligheidsrisico’s moeten tijdens een vroeg stadium en periodiek gedurende de volledige levenscyclus van het project als onderdeel van de projectrisico's worden beoordeeld en behandeld.
Informatieveiligheidsrisico’s in verband met de uitvoering van projecten, zoals de beveiliging van interne en externe communicatieaspecten, moeten gedurende de gehele levenscyclus van het project in aanmerking worden genomen en behandeld.
De vorderingen met betrekking tot de behandeling van informatieveiligheidsrisico’s moeten worden beoordeeld en de doeltreffendheid van de behandeling wordt beoordeeld en beproefd.
Implementatiemaatregel
Informatieveiligheidseisen inzake de naleving van intellectuele eigendomsrechten (zie Leveranciersrelaties) MOETEN in de vroege stadia van projecten worden aangepakt.
Implementatiemaatregel
De gepastheid van de informatieveiligheidsoverwegingen en -activiteiten MOET in vooraf bepaalde stadia worden gecontroleerd door geschikte personen of instanties, zoals bijv. de projectstuurgroep.
Implementatiemaatregel
Verantwoordelijkheden en bevoegdheden voor informatieveiligheid relevant voor het project MOETEN worden gedefinieerd en worden toegewezen aan gespecificeerde rollen.
Implementatiemaatregel
Informatieveiligheidseisen voor de door het project te leveren producten of diensten MOETEN worden vastgesteld met gebruikmaking van verschillende methoden zoals het afleiden van nalevingseisen uit informatieveiligheidsbeleid, onderwerp-specifieke beleidsregels en regelgeving.
Verdere informatieveiligheidseisen KUNNEN worden ontleend aan activiteiten zoals dreigingsmodellering, beoordelingen van incidenten, het gebruik van kwetsbaarheidsdrempels of het opstellen van noodplannen om zo te bewerkstelligen dat de architectuur en het ontwerp van informatiesystemen worden beschermd tegen bekende dreigingen die gebaseerd zijn op de operationele omgeving.
Implementatiemaatregel
Informatieveiligheidseisen MOETEN worden vastgesteld voor alle soorten projecten, niet alleen voor ICT-ontwikkelprojecten. Bij het vaststellen van deze eisen moet het volgende in aanmerking worden genomen:
welke informatie het betreft, wat de bijbehorende informatieveiligheidsbehoeften zijn (classificatie) en de mogelijke negatieve bedrijfsimpact die het gevolg kan zijn van ontoereikende beveiliging;
de noodzaak om de desbetreffende informatie en andere gerelateerde bedrijfsmiddelen te beschermen, met name wat betreft vertrouwelijkheid, integriteit en beschikbaarheid;
de vereiste mate van betrouwbaarheid of zekerheid ten opzichte van de beweerde identiteit van entiteiten om de authenticatie-eisen af te leiden;
processen voor het verlenen van toegang en autorisatie, voor klanten en andere zakelijke gebruikers en voor bevoorrechte of technische gebruikers, zoals relevante projectleden, mogelijk operationeel personeel of externe leveranciers;
het informeren van gebruikers over hun plichten en verantwoordelijkheden;
eisen die zijn afgeleid van bedrijfsprocessen, zoals registreren en monitoren van transacties, eisen voor onweerlegbaarheid;
eisen die verplicht zijn gesteld door andere beheersmaatregelen met betrekking tot informatieveiligheid (bijv. interfaces voor het registreren en monitoren of systemen voor het detecteren van lekken van gegevens);
naleving van de wettelijke, statutaire, regelgevende en contractuele omgeving waarin de organisatie actief is;
het vereiste niveau van vertrouwen of zekerheid dat derden zullen voldoen aan het informatieveiligheidsbeleid en de onderwerp-specifieke beleidsregels van de organisatie, met inbegrip van relevante beveiligingsclausules in overeenkomsten of contracten.
Toegangsbeveiliging op de broncode
Broncode wordt beheerd binnen het GIT versiebeheer systeem. Dit maakt het mogelijk voor meerdere ontwikkelaars om gelijktijdig aan projecten samen te werken. Zie Termen en definities voor een formele definitie van “broncode”. Dit beleid gaat over alle situaties waar broncode is opgeslagen.
Implementatiemaatregel
Broncode MOET gecontroleerd centraal worden opgeslagen in een versiebeheersysteem voor code (GIT).
Implementatiemaatregel
Lees- en schrijftoegang tot broncode MOET afgestemd worden conform Toegangsbeveiliging.
Implementatiemaatregel
Om de impact van niet-geautoriseerde wijzigingen en het lekken van vertrouwelijke informatie via broncode te minimaliseren, MOETEN de broncodebibliotheken afgeschermd worden. Voor deze beveiliging MOETEN volgende richtlijnen worden gehanteerd:
De toegang tot broncodebibliotheken MOET beperkt worden tot bevoegde personen en het beleid voor toegangsbeveiliging Toegangsbeveiliging volgen;
Procedures voor wijzigingsbeheer MOETEN worden toegepast op het bijwerken van broncode en het verlenen van toegang tot broncode, en MOETEN de passende autorisatie ontvangen;
Het MOET vermeden worden om vertrouwelijke informatie op te slaan in de broncode (bijv. IP adressen, DNS entries of persoonsgegevens vanaf klasse 3);
Ontwikkelaars MOGEN GEEN rechtstreekse toegang tot de broncodebibliotheek krijgen, maar via ontwikkelinstrumenten die activiteiten en autorisaties met betrekking tot de broncode beheersen;
Lijsten van programma's MOETEN bewaard worden in een beveiligde omgeving waar lees- en schrijftoegang op passende wijze worden beheerd en toegewezen;
Er MOET een logboekregistratie zijn van alle toegang tot en van alle wijzigingen aan de broncode.
Beveiligen tijdens de ontwikkelcyclus
De ontwikkelcyclus voor systemen zoals producten en interne toepassingen, bestaat uit de zogenaamde OTAP fases, waarbij OTAP staat voor:
Ontwikkeling (O): Dit is de fase waarin software wordt ontwikkeld of aangepast. Ontwikkelaars schrijven nieuwe code of passen bestaande code aan om nieuwe functionaliteiten toe te voegen of bugs op te lossen. Deze ontwikkelingen vinden plaats in een gecontroleerde ontwikkelomgeving.
Test (T): Nadat de ontwikkeling is voltooid, wordt de software getest in een aparte testomgeving om te controleren of alles naar behoren werkt en of de nieuwe functionaliteiten correct functioneren. Eventuele fouten worden opgespoord en opgelost voordat de software wordt vrijgegeven voor productie.
Acceptatie (A): In deze fase wordt de software getest in een omgeving die zo dicht mogelijk bij de uiteindelijke productieomgeving ligt. Dit wordt gedaan om ervoor te zorgen dat de software correct functioneert in een omgeving die vergelijkbaar is met de echte wereld. Het doel is om te verifiëren of de software voldoet aan de vereisten en verwachtingen van de eindgebruikers.
Productie (P): Na succesvolle tests en acceptatie wordt de software vrijgegeven voor gebruik in de productieomgeving. Dit is de omgeving waar de software daadwerkelijk wordt ingezet en gebruikt door eindgebruikers.
Implementatiemaatregel
Ontwikkel-, test-, acceptatie-, en productieomgevingen MOETEN gescheiden worden.
Implementatiemaatregel
Bij het opzetten van ontwikkel-, test-, acceptatie-, en productieomgevingen MOETEN moeten de volgende maatregelen worden geïmplementeerd:
Er MOETEN regels en autorisaties worden opgezet en gedocumenteerd voor het transporteren van systeem componenten vanuit de ontwikkel- naar de productieomgeving;
Veranderingen aan systemen in productie MOETEN in een testomgeving worden getest voordat ze in productie worden geïmplementeerd;
Er MAG NIET worden getest in productieomgevingen behalve in gedefinieerde en goedgekeurde omstandigheden;
Compilers, editors en andere ontwikkelinstrumenten of systeemhulpmiddelen MOGEN NIET, indien ze niet nodig zijn, toegankelijk zijn vanuit productiesystemen;
Er MAG GEEN gevoelige informatie naar de ontwikkel- en testsysteemomgevingen worden gekopieerd tenzij er wordt voorzien in gelijkwaardige beheersmaatregelen voor de ontwikkel- en testsystemen en er geen mogelijkheid is om met een testdataset te werken;
Het patchen en bijwerken van alle ontwikkelings-, integratie- en test software met inbegrip van builders, integratie-instrumenten, compilers, configuratiesystemen en bibliotheken MOET worden uitgevoerd volgens de instructies van de leveranciers;
Veranderingen aan de omgeving en de daarin opgeslagen codes MOET worden geregistreerd;
Configuratie van systemen en software MOET gebeuren conform het beleid IT service management;
Toegangsbeveiliging voor de omgevingen MOET worden opgezet conform conform het beleid Toegangsbeveiliging;
Er MOETEN back-ups worden gemaakt van de omgevingen conform het beleid ICT-continuïteit.
Implementatiemaatregel
Het MAG NIET mogelijk zijn dat één persoon zonder voorafgaande beoordeling en goedkeuring veranderingen aan zowel de ontwikkel- als de productie-omgeving kan doorvoeren. Dit kan bijvoorbeeld worden bereikt door toegangsrechten te scheiden of door middel van regels die worden gemonitord.
In uitzonderingssituaties behoren aanvullende maatregelen zoals het bijhouden van gedetailleerde logbestanden en realtime monitoring te worden geïmplementeerd om veranderingen door onbevoegden te detecteren en er actie op te ondernemen.
Toepassingsbeveiligingseisen
Algemene beveiligingseisen
Implementatiemaatregel
Beveiligingseisen voor toepassingen MOETEN worden geïdentificeerd en gespecificeerd aan de hand van een risicobeoordeling. De eisen moeten met ondersteuning van informatieveiligheidsspecialisten worden ontwikkeld.
Implementatiemaatregel
Beveiligingseisen MOETEN worden gespecificeerd en geïntegreerd tijdens de specificatie- en ontwerpfase. De implementatie maatregelen uit het informatieveiligheidsbeleid MOETEN in het software ontwerp worden vermeld in zoverre van toepassing.
Implementatiemaatregel
Toepassingsbeveiligingseisen MOETEN het volgende te omvatten, al naargelang de situatie:
het niveau van vertrouwen in de identiteit van entiteiten (bijv. via authenticatie);
het identificeren van het door de toepassing te verwerken soort informatie en het classificatieniveau ervan;
de noodzaak van segmentatie van toegang en het niveau van toegang tot gegevens en functies in de toepassing;
weerstand tegen kwaadaardige aanvallen of onbedoelde verstoringen (bijv. bescherming tegen bufferoverflow of SQL-injecties];
wettelijke, statutaire en regelgevende eisen in het rechtsgebied waar de transactie wordt gegenereerd, verwerkt, voltooid of opgeslagen;
de noodzaak van privacy met betrekking tot alle betrokken partijen;
de eisen ten aanzien van bescherming van vertrouwelijke informatie;
bescherming van gegevens tijdens de verwerking, tijdens het transport en in rust;
de noodzaak om communicatie tussen alle betrokken partijen op beveiligde wijze te versleutelen;
inputbeheersmaatregelen, waaronder integriteitscontroles en validatie van de invoer;
geautomatiseerde beheersmaatregelen (bijv. goedkeuringslimieten of dubbele goedkeuring);
outputbeheersmaatregelen, waarbij ook wordt nagedacht over wie er toegang kan hebben tot output en de autorisatie ervoor;
beperkingen met betrekking tot de inhoud van vrije tekst-velden aangezien deze kunnen leiden tot ongecontroleerde opslag van vertrouwelijke gegevens (bijv. persoonsgegevens);
eisen die zijn afgeleid van het bedrijfsproces, zoals registreren en monitoren van transacties, eisen voor onweerlegbaarheid;
eisen die verplicht zijn gesteld door andere beheersmaatregelen met betrekking tot beveiliging (bijv. interfaces voor het registreren en monitoren of systemen voor het detecteren van lekken van gegevens);
het afhandelen van foutmeldingen.
Beveiligingseisen voor transactie-systemen
Transactie-systemen zijn systemen die betrokken zijn bij het uitvoeren, verwerken, en beheren van transacties, zoals financiële overdrachten, e-commerce, en gegevensuitwisseling. Deze diensten verwerken vaak gevoelige informatie en vereisen daarom sterke beveiligingsmaatregelen om de integriteit, vertrouwelijkheid, en beschikbaarheid van de gegevens te beschermen.
Implementatiemaatregel
In aanvulling op de algemene beveiligingseisen, MOETEN voor transactie-systemen, de volgende informatieveiligheidseisen worden in acht genomen:
de mate van vertrouwen die beide partijen eisen van elkaars beweerde identiteit;
de vereiste mate van vertrouwen in de integriteit van informatie die wordt uitgewisseld of verwerkt en de mechanismen voor het identificeren van integriteitsgebreken (bijv. cyclische redundantiecontrole, hashing, of digitale handtekeningen);
autorisatieprocedures voor wie de inhoud van belangrijke transactiedocumenten kan goedkeuren, belangrijke transactiedocumenten in circulatie kan brengen of kan ondertekenen;
vertrouwelijkheid, integriteit, bewijs van verzending en ontvangst van belangrijke documenten en de onweerlegbaarheid (bijv. contracten in samenhang met inschrijvings- en contractprocedures);
de vertrouwelijkheid en integriteit van transacties (bijv. orders, gegevens betreffende afleveringsadressen en ontvangstbevestigingen);
eisen ten aanzien van hoelang een transactie vertrouwelijk moet blijven;
verzekerings- en andere contractuele eisen.
Implementatiemaatregel
In aanvulling hierop MOET het volgende in aanmerking te worden genomen voor toepassingen waarbij er sprake is van elektronisch bestellen en betalen:
eisen om de vertrouwelijkheid en integriteit van orderinformatie in stand te houden;
de mate van verificatie die passend is voor controle van betalingsinformatie die door een klant is verstrekt:
verlies of vermenigvuldiging van transactie-informatie vermijden;
transactiegegevens buiten een publiek toegankelijke omgeving opslaan (bijv. op een opslagplatform op het intranet van de organisatie, in plaats van deze te bewaren en te tonen op direct vanuit internet toegankelijke elektronische opslagmedia);
als een vertrouwde instantie word gebruikt (bijv. voor het uitgeven en onderhouden van digitale handtekeningen of digitale certificaten), beveiliging integreren en inbedden in het gehele beheerproces van certificaten of handtekeningen.
Veilige systeemarchitectuur en technische uitgangspunten
Systemen kunnen beveiligingsmaatregelen implementeren in de verschillende architectuurlagen, met name:
Bedrijfslaag: Deze laag richt zich op de organisatorische aspecten, waaronder bedrijfsprocessen, governance en beleid. Het definieert hoe de bedrijfsdoelstellingen worden bereikt en hoe technologie deze doelstellingen ondersteunt. Beveiliging in deze laag zorgt ervoor dat bedrijfsprocessen en besluitvorming rekening houden met Informatieveiligheidseisen.
Gegevenslaag: Omvat de structuur, opslag, en het beheer van data binnen de organisatie. Het gaat hierbij om databases, datawarehouses, en de manier waarop data wordt gecategoriseerd, toegankelijk gemaakt, en beschermd. Beveiligingsmaatregelen op deze laag richten zich op data-integriteit, vertrouwelijkheid, en beschikbaarheid.
Toepassingslaag: Deze laag bevat de software en applicaties die worden gebruikt door de organisatie. Het gaat om het ontwerp en de ontwikkeling van applicaties met een focus op hoe deze applicaties interageren met de gebruiker en andere systemen. Beveiliging in deze laag richt zich op het beschermen van de applicaties tegen kwetsbaarheden en aanvallen, zoals bijvoorbeeld SQL injectie of cross-site scripting.
Technologielaag: Betreft de fysieke en virtuele technologie-infrastructuur, zoals servers, netwerken, en cloud services. Deze laag zorgt voor de ondersteuning van alle IT-diensten en -toepassingen. Beveiligingsaspecten omvatten netwerkbeveiliging, fysieke beveiliging, en het beheer van toegangsrechten.
Implementatiemaatregel
Beveiliging MOET deel uitmaken van het ontwerp bij alle architectuurlagen (bedrijf, gegevens, toepassingen en technologie).
Implementatiemaatregel
Nieuwe technologie MOET worden geanalyseerd op veiligheidsrisico’s en het ontwerp MOET worden beoordeeld aan de hand van bekende aanvalspatronen.
De volgende aspecten MOETEN worden in acht genomen:
Voorbereiding en informatieverzameling: begin met het verzamelen van gedetailleerde informatie over de nieuwe technologie, inclusief architectuur, functionaliteiten, en interacties met andere systemen;
Aanvalsoppervlak identificatie: identificeer het aanvalsoppervlak van de nieuwe technologie;
Analyse van gekende aanvalspatronen: integreer kennis van bekende aanvalspatronen en dreigingen specifiek voor de technologie of vergelijkbare systemen;
Risico-identificatie en beoordeling: combineer de informatie uit de vorige stappen om specifieke risico's te identificeren en voer het risicobeheersproces uit.
Implementatiemaatregel
Het ontwerp van een systeem MOET een analyse omvatten van:
het volledige spectrum van beheersmaatregelen voor beveiliging dat vereist is om het systeem tegen geïdentificeerde dreigingen te beschermen, gebaseerd op de geïdentificeerde kwetsbaarheden binnen risicobeheer (zie Risicobeheer);
de capaciteit van beveiligingsbeheersmaatregelen om beveiligingsgebeurtenissen te voorkomen, te detecteren of erop te reageren;
specifieke beveiligingsbeheersmaatregelen die worden vereist door bepaalde bedrijfsprocessen (bijv. het versleutelen van gevoelige informatie, integriteit-controle en digitale ondertekening van informatie);
waar en hoe beveiligingsbeheersmaatregelen behoren te worden toegepast (bijv. door ze te integreren met een beveiligingsarchitectuur en de technische infrastructuur);
hoe individuele beveiligingsbeheersmaatregelen (handmatige en geautomatiseerde) samenwerken om een geïntegreerde verzameling beheersmaatregelen tot stand te brengen.
Implementatiemaatregel
Het ontwerp van een systeem MOET gepaard gaan met:
het gebruik van uitgangspunten voor beveiligingsarchitectuur zoals ‘security by design’ (beveiliging door ontwerp), ‘defence in depth’, ‘security by default’, ‘default deny’ (standaard weigeren), ‘fail securely’, ‘distrust input from external applications’ (input van externe toepassingen wantrouwen), ‘security in deployment’ (beveiliging tijdens implementatie), ‘assume breach’ (uitgaan van inbreuk), ‘least privilege’ (mininimaal benodigde rechten), ‘usability and manageability’ (bruikbaarheid en beheerbaarheid) en ‘least functionality’ (minimale benodigde functionaliteit);
een beveiligingsgerichte beoordeling van het ontwerp om kwetsbaarheden op het gebied van Informatieveiligheid te helpen detecteren, ervoor te zorgen dat beveiligingsbeheersmaatregelen zijn gespecificeerd en aan de beveiligingseisen te voldoen;
documentatie en formele erkenning van beveiligingsbeheersmaatregelen die niet volledig aan de eisen voldoen (bijv. vanwege dwingende veiligheidseisen);
hardening van systemen waarbij ieder geval gebruik gemaakt word van een hardening management beoefening waarbij leveranciers beveiligings adviezen worden nageleefd.
Implementatiemaatregel
De organisatie MOET ‘zero trust’-beginselen overwegen zoals:
ervan uitgaan dat er al sprake is van een inbreuk op de informatiesystemen van de organisatie en er daarom niet alleen kan worden vertrouwd op beveiliging van de buitengrenzen van netwerken;
een benadering van ‘nooit vertrouwen, altijd verifiëren’ hanteren voor toegang tot informatiesystemen;
bewerkstelligen dat verzoeken aan informatiesystemen van begin tot eind versleuteld zijn;
elk verzoek aan een informatiesysteem controleren alsof dit afkomstig is van een open, extern netwerk, zelfs als deze verzoeken intern uit de organisatie afkomstig zijn (d.w.z. niets binnen of buiten de buitengrenzen van de organisatie automatisch vertrouwen);
gebruikmaken van ‘least privilege’ (minste rechten) en dynamische toegangsbeveiligingstechnieken (zie [beleid voor toegangsbeveiliging]). Dit omvat het authenticeren en autoriseren van verzoeken om informatie of aan systemen op basis van contextuele informatie zoals authenticatie-informatie, gebruikersidentiteiten, gegevens over het ‘endpoint device’ van de gebruiker, en gegevensclassificatie (zie [Beleid voor toegangsbeveiliging] en [Beleid voor informatiebescherming]).
personen die verzoeken indienen altijd authenticeren en autorisatieverzoeken aan informatiesystemen altijd valideren op basis van informatie, waaronder authenticatie-informatie en gebruikersidentiteiten, gegevens over het ‘endpoint device’ van de gebruiker, en gegevensclassificatie, bijvoorbeeld krachtige authenticatie afdwingen (zie Toegangsbeveiliging en Informatiebescherming).
Implementatiemaatregel
De vastgestelde uitgangspunten voor het ontwerpen van beveiligde systemen en systeemarchitecturen MOETEN waar van toepassing worden toegepast op de uitbestede ontwikkeling van informatiesystemen via de contracten en andere bindende overeenkomsten tussen de organisatie en de leverancier aan wie de organisatie uitbesteedt.
De organisatie MOET ervoor zorgen dat de praktijken van leveranciers voor het ontwerpen van beveiligde systemen aansluiten op de behoeften van de organisatie. Zie ook Leveranciersrelaties
Implementatiemaatregel
Voor uitbestede ontwikkeling en het inkopen van componenten MOET een verwervingsprocedure worden gevolgd.
In de contracten met de leverancier MOETEN de vastgestelde beveiligingseisen zijn opgenomen.
Voordat producten en diensten worden gekocht, MOETEN ze worden geëvalueerd tegen deze criteria.
Na ieder ontwikkeltraject MOETEN er testrapporten als attestatie worden aangeleverd.
Veilig coderen
Deze paragraaf behandelt de waarborgen dat veilige software wordt geschreven waardoor het aantal potentiële Informatieveiligheidskwetsbaarheden in de software wordt beperkt.
Planning en voorafgaand aan het coderen
Implementatiemaatregel
De organisatie MOET organisatie-brede processen op stellen om te voorzien in goede governance voor veilig coderen. In aanvulling hierop MOETEN dergelijke processen en governance worden uitgebreid naar softwarecomponenten van derden en opensource software.
Implementatiemaatregel
De organisatie MOET monitoren op dreigingen in de echte wereld en actueel advies en actuele informatie over kwetsbaarheden in software als richtlijn om de principes voor veilig coderen van de organisatie te sturen door middel van continue verbetering en voortdurend leren.
Implementatiemaatregel
De organisatie MOET principes voor veilig coderen zowel voor nieuwe ontwikkelingen als bij hergebruik (nieuwe features / versies) toepassen.
Implementatiemaatregel
De planning en voorbereiding voor het ontwikkelen MOET de volgende elementen omvatten:
organisatie-specifieke verwachtingen en goedgekeurde principes voor veilig coderen die zowel voor interne als voor uitbestede codeontwikkelingen behoren te worden gebruikt;
gebruikelijke en historische codeerpraktijken en -gebreken die tot kwetsbaarheden in de Informatieveiligheid leiden;
ontwikkelinstrumenten, zoals geïntegreerde ontwikkelomgevingen (IDE's), configureren om het maken van veilige code af te dwingen waar mogelijk:
automatische tests voor kritieke features;
richtlijnen volgen die door de aanbieders van ontwikkelinstrumenten en uitvoeringsomgevingen worden gegeven, al naargelang de situatie;
onderhoud en gebruik van actuele ontwikkelinstrumenten (bijv. compilers);
de kwalificatie van ontwikkelaars voor het schrijven van veilige code;
veilig ontwerp en veilige architectuur, met inbegrip van het opstellen van dreigingsmodellen;
normen voor veilig coderen en waar relevant het gebruik ervan verplicht stellen;
het gebruik van beheerste omgevingen voor ontwikkeling.
Tijdens het coderen
Implementatiemaatregel
De organisatie MOET veilige coderingspraktijken die specifiek zijn voor de programmeertalen en -technieken, gebruiken.
Specifiek MOETEN de volgende regels worden gehanteerd:
het gebruik van veilige programmeertechnieken zoals ‘pair programming’ (programmeren in duo's) of iedergeval een vorm van het 'four eyes principle' voor kritieke functionaliteit, ‘refactoring’ (code herstructureren), ‘peer review’ (beoordeling door collega's), beveiligingsiteraties en testgestuurde ontwikkeling of in ieder- geval een dekking van geautomatiseerde testen voor alle kritieke capabiliteiten van de software (code coverage);
het gebruik van gestructureerde programmeertechnieken;
verbod op het gebruik van onveilige ontwerptechnieken (bijvoorbeeld het gebruik van hardgecodeerde wachtwoorden, niet-goedgekeurde codesamples en niet-geauthenticeerde webdiensten).
De organisatie KAN van de volgende standaarden gebruik maken:
OWASP Secure Coding Practices;
NIST Secure Software Development Framework.
Implementatiemaatregel
Er MOET tijdens en na het ontwikkelen worden getest.
Met procedures voor het statisch testen van de beveiliging van toepassingen (SAST) KUNNEN beveiligingslekken in software worden geïdentificeerd.
Implementatiemaatregel
Alvorens de toepassing operationeel te maken, MOET de software conform dit en ander informatieveiligheidsbeleid te zijn ontwikkeld en geconfigureerd, in het bijzonder;
het aanvalsoppervlak en het beginsel van het ‘least privilege’ (minste voorrechten) MOET zijn toegepast;
een verificatie om te verifieren dat in het verleden gemaakte fouten binnen de organisatie bij het ontwikkelen van toepassingen niet aanwezig zijn MOET zijn uitgevoerd.
Beoordeling en onderhoud
Implementatiemaatregel
Nadat de code operationeel is gemaakt MOETEN:
updates op beveiligde wijze te worden verpakt en ingezet;
gemelde kwetsbaarheden in de informatieveiligheid worden opgepakt;
logbestanden van fouten en vermeende aanvallen worden bijgehouden en regelmatig beoordeeld om de code zo nodig aan te passen;
bibliotheken met broncode worden beschermd tegen toegang en manipulatie door onbevoegden (bijv. door gebruik te maken van configuratiebeheerinstrumenten die meestal functies als toegangsbeveiliging en versiebeheer bieden).
Implementatiemaatregel
Als er gebruikgemaakt wordt van externe instrumenten en bibliotheken, MOET de organisatie nadenken over:
het bewerkstelligen dat externe bibliotheken worden beheerd (bijv. door een inventarislijst bij te houden van bibliotheken die worden gebruikt en de desbetreffende versies) en regelmatig worden bijgewerkt met releasecycli;
het selecteren, autoriseren en hergebruiken van goed gecontroleerde componenten, met name authenticatie- en cryptografische componenten;
de licentie, beveiliging en historie van externe componenten;
het bewerkstelligen dat software kan worden onderhouden, wordt getraceerd en afkomstig is van beproefde, gerenommeerde bronnen;
het op voldoende lange termijn beschikbaar zijn van ontwikkelmiddelen en artefacten.
Implementatiemaatregel
Als het nodig is om een softwarepakket te wijzigen, MOETEN de volgende punten in overweging te worden genomen:
het risico dat ingebouwde beheersmaatregelen en integriteitsprocessen gecompromitteerd raken;
of het al dan niet nodig is toestemming van de leverancier te verkrijgen;
de mogelijkheid om de vereiste wijzigingen van de aanbieder als standaard programma-updates te verkrijgen;
de impact als de organisatie verantwoordelijk wordt gehouden voor het toekomstig onderhoud van de software als gevolg van de veranderingen;
compatibiliteit met andere software die in gebruik is.
Testen van de beveiliging tijdens ontwikkeling en acceptatie
Deze paragraaf beschrijft het valideren van de informatieveiligheidseisen wanneer toepassingen of code in de productieomgeving worden uitgerold.
Implementatiemaatregel
Nieuwe informatiesystemen, upgrades en nieuwe versies MOETEN tijdens de ontwikkelingsprocessen grondig worden getest en geverifieerd. Het testen van de beveiliging MOET een integraal onderdeel te zijn van het testen voor systemen of componenten.
Implementatiemaatregel
Het testen van de beveiliging MOET worden uitgevoerd aan de hand van een verzameling eisen die als functioneel of niet-functioneel kunnen worden uitgedrukt. Het testen van de beveiliging MOET het volgende omvatten:
beveiligingsfuncties [bijv. authenticatie van gebruikers (zie Toegangsbeveiliging), toegangsbeperking (zie Toegangsbeveiliging) en het gebruik van cryptografie (zie Cryptografie)
veilig coderen;
beveiligde configuraties (zie IT service management (configuratiebeheer), Infrastructuurbeveiliging ) waaronder die van besturingssystemen, firewalls en andere beveiligingscomponenten.
Implementatiemaatregel
Testplannen MOETEN met behulp van een verzameling criteria worden vastgesteld. De omvang van de tests moet in verhouding staan tot het belang, de aard van het systeem en de mogelijke impact van de verandering die wordt ingevoerd. Het testplan moet het volgende omvatten:
een gedetailleerd schema van de activiteiten en tests;
input en verwachte output onder allerlei omstandigheden;
criteria om de resultaten te evalueren;
een besluit over verdere acties naarmate nodig is
Het is niet nodig om een register te gaan bijhouden van alle tests. Wel is het belangrijk dat er een document bestaat wat als handboek voor het testen van het product gebruik kan worden met:
Doelstellingen:
Duidelijke vermelding van de doelen van het testen;
Wat wordt er verwacht te worden bereikt door middel van de tests;
Scope:
Welke delen van de software worden getest en welke niet;
Inclusief functionaliteiten, platforms, apparaten, enz.;
Teststrategie:
Beschrijving van de aanpak voor het testen;
Inclusief testmethoden (zoals functionele tests, regressietests, prestatietests, etc.) niet uitsluitend geautomatiseerde testplatformen;
Prioritering van tests;
Gebruikte tools en technologieën;
Hoe de verschillende tests uitgevoerd worden.
Implementatiemaatregel
De organisatie kan geautomatiseerde instrumenten inzetten zoals instrumenten om codes te analyseren of om op kwetsbaarheden te scannen, en MOETEN het herstel van informatieveiligheid-gerelateerde tekortkomingen te verifiëren deze diensten vallen onder software die geëvalueerd moet worden voor gebruik.
Men kan de volgende types van testen onderscheiden:
Regressietests: Regressietests zijn een type softwaretest die wordt uitgevoerd om te controleren of recente code- of omgevingswijzigingen geen ongewenste effecten hebben op bestaande functionaliteiten. Het doel van regressietests is om te verzekeren dat nieuwe updates, bugfixes of functionaliteiten de bestaande code niet breken of nieuwe fouten introduceren in het systeem. Dit type test is cruciaal in continu ontwikkelende softwareprojecten om te garanderen dat de applicatie stabiel en betrouwbaar blijft door de tijd heen. Regressietests kunnen handmatig of automatisch worden uitgevoerd, waarbij automatische tests vaak de voorkeur hebben voor hun efficiëntie en herhaalbaarheid.
Codescans: Codescans, of statische code-analyse, zijn processen waarbij tools worden gebruikt om de broncode van een applicatie te analyseren zonder deze daadwerkelijk uit te voeren. Deze scans zoeken naar patronen in de code die kunnen wijzen op fouten, kwetsbaarheden, stijlfouten of afwijkingen van best practices. Codescans zijn een essentieel onderdeel van de ontwikkelingscyclus om de kwaliteit en veiligheid van de code te verbeteren, risico's te verminderen en de naleving van coderingsstandaarden te waarborgen. Statische code-analyse helpt bij het vroegtijdig identificeren van problemen die in latere stadia van ontwikkeling of na uitrol moeilijker en kostbaarder zijn om op te lossen.
Penetratietests: Penetratietests, vaak "pen-tests" genoemd, zijn een methode voor het evalueren van de beveiliging van een IT-infrastructuur of applicatie door actief te proberen deze te exploiteren. Het doel van penetratietests is om kwetsbare punten of beveiligingslekken te identificeren die een aanvaller zou kunnen gebruiken om ongeautoriseerde toegang te krijgen tot systemen of gegevens, of om andere kwaadaardige activiteiten uit te voeren. Tijdens een penetratietest simuleren beveiligingsexperts aanvallen op netwerken, applicaties, en andere systemen op dezelfde manier als een echte aanvaller dat zou doen, maar dan op een gecontroleerde en overeengekomen manier. De resultaten van penetratietests bieden waardevolle inzichten in de effectiviteit van de huidige beveiligingsmaatregelen en waar verbeteringen nodig zijn.
Implementatiemaatregel
Het testen van de systemen en de beveiliging, zoals regressietests, codescans en penetratietests MOET worden uitgevoerd.
Implementatiemaatregel
Voor interne ontwikkelactiviteiten MOETEN dergelijke tests in eerste instantie te worden uitgevoerd door het ontwikkelteam. Vervolgens behoren onafhankelijke tests te worden uitgevoerd om te bewerkstelligen dat het systeem uitsluitend werkt zoals voorzien (zie Informatieveiligheid in projectmanagement). Het volgende behoort te worden overwogen:
het uitvoeren van activiteiten om code te beoordelen als relevant element voor het testen op zwakke plekken in de beveiliging, met inbegrip van onvoorziene inputs en omstandigheden;
het scannen op kwetsbaarheden om onveilige configuraties en kwetsbaarheden in systemen te identificeren;
het uitvoeren van penetratietests om onveilige code en ontwerpen te identificeren
Implementatiemaatregel
Tests MOETEN worden uitgevoerd in een testomgeving die zo nauwkeurig mogelijk overeenkomt met de doel-productieomgeving om te bewerkstelligen dat het systeem geen kwetsbaarheden introduceert in de omgeving van de organisatie en dat de tests betrouwbaar zijn (zie scheiding van ontwikkel-, test- en productieomgevingen).
Wijzigingsbeheer
Het waarborgen van informatieveiligheid bij veranderingen is belangrijk bij het uitrollen en in productie brengen van nieuwe versies van informatiesystemen. De implementatiemaatregelen voor wijzigingsbeheer zijn beschreven binnen het beleidsdomein IT service management.
Personeel
Implementatiemaatregel
Medewerkers MOETEN conform Personeelsbeveiliging (Vincent work in progress) geselecteerd te worden voor ontwikkelrollen. Medewerkers die een rol opnemen in de ontwikkeling van software moeten opgeleid worden in de toepassing van informatieveiligheidsprincipes en het toepassen van veilige coderingstechnieken, waaronder:
· hoe coderingskwetsbaarheden kunnen worden vermeden, en
· begrijpen hoe gevoelige gegevens in het geheugen worden verwerkt
Implementatiemaatregel
De betrokken Product Owner moet het niveau van beveiligingsvaardigheden en kennis die vereist is voor het ontwikkelingsproces definiëren en stelt de training voor aan HR. HR omvat passende training in het opleidingstraject van de ontwikkelaars.
Regelgeving en standaarden (L1)
ISO 27001:2022 (Annex A)
Titel | Auteur | Datum | Versie | Opmerkingen |
---|---|---|---|---|
Beleid voor veilig ontwerpen en ontwikkelen | Guido Calomme | 31/05/2024 | 1.0 | Wijzigingsbeheer verplaatst naar beleid IT Service Management. |