5.6.3. De details over code review
Wat is het?
Met code review bedoelen we alle manuele/geautomatiseerde controles die je kunt doen om de veiligheid van de code van een toepassing te controleren. Afhankelijk van de fase waarin je ontwikkeling zich bevindt, is een ander soort review nodig. Deze reviews gebeuren in de ontwikkel-, test- of acceptatieomgeving.
Je hebt statische en dynamische code reviews:
Statische reviews gebeuren op niet-gecompileerde broncode – in essentie dus code zonder context.
Dynamische reviews gebeuren op code die in een context geplaatst is, bijvoorbeeld in een test- of acceptatieomgeving waar je kunt zien hoe de code zich in een proces gedraagt.
Behalve deze twee testen, kun je met andere testen tijdens het ontwikkelproces (unit testing of acceptatietesting bijvoorbeeld) ook de veiligheid in een toepassing testen. Dit kun je manueel in een testscenario of automatisch doen. Het objectief is risico’s te identificeren en te analyseren welke risico’s je moet/kunt mitigeren.
In welke omgeving doe je code review?
Statische code reviews doe je in de ontwikkelomgeving. Dit is een controle op kwetsbaarheden in een abstracte context
Dynamische code reviews doe je in de test- en/of acceptatieomgeving. Dit is een controle op kwetsbaarheden in een Hierbij is het belangrijk veiligheid en functionaliteit aan elkaar te koppelen. Het moet niet enkel veilig zijn, het moet ook werken.
Wat?
Code review focust op kwetsbaarheden die voorkomen in de “OWASP top 10” (zie link op p.3)
Je kunt ook specifieke dreigingen checken, bijvoorbeeld gebaseerd op gepubliceerde kwetsbaarheden. Deze kun je bijvoorbeeld vinden op CVE security vulnerability database. Security vulnerabilities, exploits, references and more of OffSec’s Exploit Database Archive
Je maakt een risico-afweging van welke kwetsbaarheden je moet oplossen. Het streefdoel is dat
je zoveel mogelijk kwetsbaarheden oplost in de mate van het financieel/projectmatig haalbare
Als je bepaalde kwetsbaarheden niet behandelt, moet je dit in een volgende fase meenemen en zien of je daar kunt oplossen
Je promoveert je code pas naar een volgende fase als alle mogelijke kwetsbaarheden opgelost zijn
Welke tools?
De Vlaamse overheid legt geen specifieke tools op. Het team Informatieveiligheid kan wel advies
verlenenDit is een dienst die je kunt afnemen binnen het raamcontract
Scope?
Alle online toepassingen
Alle websites
Alle intern ontsloten toepassingen (enkel toegankelijk voor geauthenticeerde gebruikers op het Vlaamse overheid-netwerk)
Wat met externe code of toepassingen?
Ingekochte toepassingen
Hierbij is het belangrijk om na te gaan dat de leverancier deze praktijk toepast. Dit kun je contractueel indekken en deel laten uitmaken van de risicoanalyse van het contracteringsproces. Contacteer hiervoor de Aankoopcentrale
Deze check doe je vóór je de code of de toepassing inkoopt of installeert. Hier geldt ook het principe dat hoe vroeger je je ervan vergewist dat het oké is, hoe makkelijker het verloop van het proces
Open source code
Ook bij open source code en toepassingen is het belangrijk om deze controles uit te voeren
Zeker bij open source is dit een gesprek dat je moet voeren met de community die instaat voor het onderhouden van de code
Deze check doe je vóór je de code of toepassing uitrolt of installeert
Ook voor ingekochte code, of open source code gebeurt dit soort oefening in de ontwikkel-, test- of acceptatieomgeving.