Security vraagt niet alleen om bescherming tegen indringers van buitenaf, ook intern moet alles kloppen. Een van de manieren om de kwaliteit en veiligheid van bedrijfssoftware te testen is door middel van een code review.
Zeker de broncode van bedrijfseigen software moet af en toe tegen het licht worden gehouden.
Vanuit het oogpunt van security kunnen hier mogelijk zwakheden in zitten. Zelfs de beste programmeurs laten immers wel eens een steek vallen. Onopzettelijk kunnen er achterdeuren in zitten die aanvallers kunnen gebruiken om toegang tot computersystemen te krijgen. Fouten in de code kunnen risico’s met zich mee brengen. Helaas moet worden geconstateerd dat de eigen applicaties van een bedrijf niet of onvoldoende zijn onderzocht. Software kan eerst heel goed zijn, maar opeenvolgende wijzigingen kunnen het oorspronkelijk zo hoge niveau van veiligheid omlaag brengen.
Wat is een code review?
Bij het maken van software schrijven ontwikkelaars programmeercode. Die leesbare tekst wordt de broncode genoemd. Deze code wordt omgezet in uitvoerbare systeemcode, die de computer verstaat. Dit heet compileren. Een inspectie van de broncode leert hoe het met de kwaliteit van de software is gesteld. Deze code wordt regel voor regel gecheckt.
Toetsing vindt plaats binnen het eigen securitybeleid van de organisatie en volgens algemeen erkende veiligheidsstandaarden. Code Review is daarom een onderdeel van Security Testing. Zwakke plekken en risico’s komen dan aan het licht. Zo’n code review geldt als de meest doelmatige manier om beveiligingslekken te ontdekken. Ook zie je welke punten extra aandacht behoeven. Zo kunnen er logische fouten of onvolkomenheden in zitten die specifiek zijn voor een bepaalde applicatie. Ook kan sprake zijn van complexe fouten die van buitenaf lastig te ontdekken zijn.
Een andere vorm van Security Testing is bijvoorbeeld Pentesten.
Voordelen van code review
Behalve voor het beteugelen van veiligheidsrisico’s kan een code review nog meer voordelen hebben. Domme fouten kunnen allerlei problemen veroorzaken zoals uitval en stagnatie. De kwaliteit van de code kan gewoon beneden de maat zijn. Programmeren is en blijft immers mensenwerk en mensen kunnen fouten maken. Het kan dan later veel tijd kosten de gevolgen van zo’n vergissing op te lossen.
Een code review kan ook leerzaam zijn. Ontwikkelaars worden op zwakke punten gewezen wat een leereffect heeft. Kennisdeling helpt ontwikkelteams beter te worden. Het controleren van software kan ook bijdragen aan een coding standaard. Zo’n review helpt software schaalbaarder en beter onderhoudbaar maken.
Hoe werkt code review
Voor code reviews zijn diverse checklists in omloop. Als al deze punten worden afgewerkt, krijg je een goede indruk van de kwaliteit. Belangrijk is dat de code makkelijk is te lezen en te begrijpen. Het moet duidelijk zijn hoe en waarom iets is gedaan. De documentatie moet in orde zijn.
Een code review geeft op hoog niveau vertrouwen. Bij een goed resultaat weet de ondernemingsleiding dat de ontwikkelaars hun werk goed doen en kwaliteit leveren. Worden er echter wel fouten gemaakt, dan is het van belang dat die vroegtijdig worden gesignaleerd en verholpen. Bedenk dat het verwijderen van bugs dubbel zo moeilijk is als het schrijven van code. Hoe eerder dit gebeurt des te beter.
Wie moet code review doen?
Een code review moet verder gaan dan een opsomming van fouten en zwakheden. Naast een inventarisatie van de risico’s dient ook advies worden gegeven over de maatregelen die nodig zijn om de security te verbeteren. Een code review kan het beste worden gedaan door mensen die niet tot het ontwikkelteam behoren. Buitenstaanders kijken vaak objectiever. Meer informatie over Pentesten bij KPN.