Security by design. Realiteit of utopia

Met de toenemende dreigingen op het gebied van information security klinkt ook steeds luider de roep om ‘security by design’. Maar hoe haalbaar is dit? En wat is het eigenlijk?

Wat is het?

Security by design betekent niets meer en niets minder dan bij het ontwerp van een nieuwe applicatie, omgeving of toepassing rekening houden met de beveiliging hiervan. Als het gaat om applicaties en omgevingen waar persoonsgegevens worden verwerkt is het onder de AVG zelfs verplicht om security by design toe te passen. Naast toepassingen, waar persoonsgegevens worden verwerkt, is het goed om ook in andere applicaties security by design toe te passen. Je wilt niet dat je nieuwe systeem uit de lucht gehaald wordt door hackers, of de data die er in staat gestolen wordt door criminelen die uit zijn op intellectueel eigendom.

Bij het ontwerpen en bouwen van applicaties en omgevingen wordt er nu voornamelijk gekeken naar het doel en worden security-issues vaak achteraf opgepakt met patches en andere maatregelen. Security by design moet daar een einde aan maken.

Risk based

Behalve voor applicaties en omgevingen waar persoonsgegevens worden verwerkt – daar is security by design gewoonweg verplicht – geldt voor andere applicaties dat je het risk based wilt toepassen. Van tevoren nadenken over de risico’s op het gebied van beschikbaarheid, integriteit en vertrouwelijkheid. En van daaruit het bepalen van de gewenste architectuur en maatregelen. De ene applicatie heeft geen bijzondere waarde en de ander is cruciaal voor je bedrijfsvoering. 

Overwegingen

Bij het toepassen van security by design zijn er een aantal overwegingen. Hieronder bespreek ik een selectie van best practices.

Ontwikkelen en programmeren is mensenwerk. Door vooraf na te denken over de mogelijke risico’s en maatregelen, wordt het team bewust van deze risico’s en zullen zij daarop acteren. Naar mijn mening zal bij het bouwen één van de doelstellingen van die applicatie of omgeving ook moeten zijn dat deze voldoet aan alle security eisen. 

Bij het geheel opnieuw programmeren is de kans groter op fouten. Maak gebruik van bestaande technologie, dit voorkomt fouten. Het is natuurlijk wel van belang om goed op de hoogte te zijn van bekende kwetsbaarheden in de technologie en zodat je een strategie klaar hebt om eventuele toekomstige kwetsbaarheden te verhelpen. Maar die moest je toch al hebben!

Onderhoudbaarheid van de applicatie is key. Je wilt kwetsbaarheden snel kunnen traceren, analyseren en oplossen.  

Documenteer, documenteer, documenteer. Leg vooraf de dreigingen en designkeuzes vast. Tijdens de bouw: blijf documenteren. Zo stel je jezelf in staat om achteraf te evalueren en te beoordelen of de principes die je vooraf hebt opgesteld, ook tot uiting zijn gekomen in het product. Zo niet, dan heb je nog wat bij te sturen.

Let op ketens en services. Het komt vaker voor dat het ontwikkelen niet in-house gebeurt, maar geoutsourcet wordt. Datzelfde geldt voor third-party services. Het kan zijn dat je software of data van derde partijen gebruikt. Het is eenvoudiger of goedkoper, of deze services maken jouw applicatie of omgeving beter. Niet iedere organisatie heeft dezelfde visie en regels als het gaat om security. Zorg met goede afspraken vooraf en goede kwaliteitscontroles dat het opgeleverde werk aan de eisen van het project voldoen.

Als antwoord op de vraag: is security by design haalbaar? Ja, dat is het zeker. Het betekent wel dat bij het definiëren van het project, security in de doelstellingen van dit project moet landen. Daarna zijn er genoeg handvatten om security by design daadwerkelijk een succes te laten worden.