Continuous Security Testing in de praktijk

Auteur
Sander Nieuwenhuis
Datum

Aan het nut van security zal niemand twijfelen. De uitdaging zit ‘m erin om security praktisch te maken en integraal onderdeel te laten zijn van het ontwikkel- en beheerproces van digitale platformen. Zonder te belemmeren, maar juist door te faciliteren. De gehanteerde werkwijze is steeds vaker continuous delivery. En daar botst de traditionele security aanpak met lijvige security audits mee.

Het één of twee keer per jaar een release uitbrengen waarop een uitgebreide security audit wordt losgelaten is niet wenselijk. Want met continuous delivery worden wijzigingen zo geautomatiseerd mogelijk gecontroleerd op fouten en in productie geplaatst. Security moet daar onderdeel van zijn:

  • In de ontwerpfase moet je de use cases al beoordelen op security risico’s. Het is goed daar een checklist voor te hebben. Denk aan vragen als: wat is het risico als de functionaliteit stilvalt? Raakt de functie de cookie- of privacywetgeving? Is er user input die gevalideerd moet worden?
  • In de ontwikkelfase moet rekening gehouden worden met OWASP top-10 risico’s, kunnen code reviews geïntegreerd worden (bijvoorbeeld via pull-requests) en is het goed static security scantools in te zetten om de code (incrementeel) te controleren op security kwetsbaarheden.
  • In de testfase wordt gecontroleerd met dynamic security scantools, die de draaiende applicatie controleert. Hier kan een koppeling gemaakt worden met de functionele testen die in deze fase worden doorlopen.
  • In de acceptatiefase wordt de applicatie in zijn uiteindelijke omgeving (inclusief de infrastructuur met load balancers, Web Application Firewalls en dergelijke) gescand als eindcontrole. Deze controle is het go/nogo moment vanuit security, voordat de applicatie naar productie gaat.

Als de release frequentie (tijdelijk) laag is, is het belangrijk om de security tests periodiek uit te voeren, bijvoorbeeld op de representatieve acceptatie omgeving. Want naast het onbedoeld introduceren van kwetsbaarheden in het ontwikkelproces, kunnen ook achterstallig onderhoud (security patches) of nieuw aanvalstechnieken zorgen voor een kwetsbare omgeving.

Door security testen integraal op te nemen in het continuous delivery proces, kan gemeten worden hoe het met security gesteld is en kan proportioneel worden gestuurd op het verhelpen van kwetsbaarheden. Denk bijvoorbeeld aan het direct verhelpen van critical en high risk issues, en het bijhouden van een backlog van medium en low risk issues.

Het slim inzetten van scantools zal het continuous delivery proces niet verstoren, maar zorgen voor veilige online omgevingen. Hoe beter security testen worden geïntegreerd in het proces, hoe eerder fouten worden gevonden en hoe goedkoper het is om deze fouten op te lossen.

Meer (details) weten? Lees het Mirabeau whitepaper over Continuous Security Testing op: https://www.mirabeau.nl/Whitepapers/WhitepaperContinuousSecurityTesting

Tags

Testing Continuous Deployment