Inhoud
Waarom is code review belangrijk?
Hoe wordt code review benaderd?
Betekenis
Code review is een handmatig of geautomatiseerd proces dat de broncode van een applicatie onderzoekt. Het doel van dit onderzoek is om bestaande beveiligingslekken of kwetsbaarheden te identificeren. Code review kijkt onder andere naar logische fouten, implementatie en navolging van stijlrichtlijnen.
Geautomatiseerde code review is een proces waarbij een tool automatisch de broncode van een applicatie controleert, met behulp van een vooraf gedefinieerde set regels om te zoeken naar minderwaardige code. Geautomatiseerde review kan problemen in de broncode sneller vinden dan wanneer deze handmatig worden geïdentificeerd.
Bij handmatige code review bekijkt een mens de broncode regel voor regel om kwetsbaarheden te vinden. Handmatige code review helpt om de context van coderingsbeslissingen te verduidelijken. Geautomatiseerde tools zijn sneller, maar kunnen geen rekening houden met de bedoelingen van de ontwikkelaar en de algemene bedrijfslogica. Handmatige review is strategischer en kijkt naar specifieke problemen.
Waarom is code review belangrijk?
Code review is een cruciaal proces dat wordt gebruikt door de meest succesvolle ontwikkelteams. Het kan:
- Het aantal defecten verminderen die in een later stadium van de SDLC (Software Development Life Cycle) worden gevonden
- De hoeveelheid tijd verminderen die ontwikkelaars besteden aan het oplossen van defecten in een laat stadium, waardoor de productiviteit toeneemt
- Het aantal bugs en beveiligingslekken in de productie verminderen
- Consistentie tussen codebases verbeteren en onderhoudbaarheid vergroten
- De samenwerking, het delen van kennis en de productiviteit van ontwikkelaars verbeteren en geleerde lessen kunnen helpen bij toekomstige codeontwikkeling
- Rendement verbeteren door processen sneller en veiliger te maken waardoor minder geld en tijd vereist is
Overweegt u een code review?
Aarzel niet om contact met ons op te nemen; wij vertellen u graag meer over alles omtrent Cybersecurity.
Hoe wordt code review benaderd?
Code review – handmatig, geautomatiseerd of een combinatie van de twee – kan worden uitgevoerd via een geautomatiseerd proces of door een mens. De huidige best practices voor het uitvoeren van robuuste en veilige code reviews bestaan uit het combineren van handmatige en geautomatiseerde reviews. Deze tandemaanpak vangt de meeste potentiële problemen op.
Code review kan op elk moment tijdens de levenscyclus van softwareontwikkeling (SDLC) plaatsvinden, maar het heeft de meeste impact als het eerder wordt uitgevoerd, omdat het dan het makkelijkst en het snelst is om correcties in de code aan te brengen. Met name het gebruik van geautomatiseerde code review op het moment dat ontwikkelaars code aan het schrijven zijn, maakt het mogelijk om direct wijzigingen aan te brengen als dat nodig is. Handmatige code review is erg nuttig wanneer het wordt uitgevoerd tijdens de commit fase, of wanneer een merge request wordt ingediend bij het repository. Het is ook een manier om code te reviewen terwijl er rekening wordt gehouden met de bedrijfslogica en de bedoelingen van de ontwikkelaar.
Geautomatiseerde code review maakt het mogelijk om grote codebases snel en efficiënt te analyseren. Ontwikkelaars voeren deze controle uit met behulp van open source of commerciële tools terwijl ze aan het coderen zijn, om kwetsbaarheden in realtime te helpen vinden. De meest geavanceerde ontwikkelteams maken ook gebruik van SAST-tools, die extra input kunnen leveren, kwetsbaarheden kunnen opsporen en ontwikkelaars in staat stellen deze te verhelpen voordat de code wordt ingecheckt. Bij de meest succesvolle ontwikkelprocessen voeren ontwikkelaars ook hun eigen zelfevaluaties uit terwijl ze coderen.
Handmatige code review houdt in dat de hele codebase grondig wordt nagekeken door een senior of meer ervaren ontwikkelaar. Dit proces kan extreem vervelend en tijdrovend zijn, maar het identificeert fouten, zoals problemen met de bedrijfslogica, die geautomatiseerde tools mogelijk over het hoofd zien. Het in lagen uitvoeren van QA tests kan ook helpen, maar er zijn nog steeds scenario’s die handmatig testen kan missen. Een combinatie van automatisering en handmatige review wordt doorgaans gezien als best practice.
Wat houdt resultaatgerichte code review in?
De belangrijkste onderdelen van een succesvolle code review zijn:
- Een combinatie van handmatige en geautomatiseerde review
- Samenwerking, inclusief het delen van kennis en geleerde lessen
- Een analyse van relevante statistieken, wat helpt bij het verminderen van defecten en beleidsovertredingen voordat de code wordt samengevoegd
Hoe kan Warpnet helpen?
Warpnet zorgt ervoor dat een of meer consultants met relevante programmeerervaring worden toegewezen aan de opdracht. Elke beveiligingsconsultant heeft een schat aan ervaring met applicatiebeveiliging. Grondig begrip van de doelapplicatie is noodzakelijk. De hoofdbeveiligingsconsultant brengt tijd door met een geschikte ontwikkelaar om een diepgaand begrip van de software te krijgen, voordat hij begint met het eigenlijke testproces voor de controle van de broncode. Dit omvat gezamenlijke gesprekken over relevante zaken als ontwerp, documentatie, enz.
Oplossingsadviezen zijn gedetailleerd, relevant en bruikbaar. Waar gemeenschappelijke thema’s worden geïdentificeerd, zal Warpnet deze ook op een hoger niveau aanpakken. Na oplevering van het rapport houden we een debrief (of ‘readout’) houden met de partnerorganisatie om er zeker van te zijn dat de bevindingen volledig worden begrepen. Na de debriefing staan de beveiligingsconsultants van Warpnet klaar om eventuele vervolgvragen over de beveiliging van de doelapplicatie te beantwoorden.