Maandelijkse vulnerability scanning: Eerste maand kosteloos! Meer informatie →
Hero

WIJ ZIJN

HACKIFY

Wat is een code review

Een moderne applicatie bestaat al snel uit tienduizenden tot miljoenen regels code, geschreven door teams van developers met uiteenlopende ervaring. Die codebase is het fundament van uw belangrijkste systemen en verwerkt gevoelige gegevens, financiële transacties en vertrouwelijke bedrijfsinformatie. In die enorme hoeveelheid code kunnen kwetsbaarheden verstopt zitten die u via de interface van de applicatie niet ziet.

Denk aan hardcoded inloggegevens, SQL-injectie in oude endpoints of fouten in de bedrijfslogica. Zulke zwakke plekken blijven bij een blackbox-test vaak onzichtbaar, maar zijn met toegang tot de broncode goed te vinden.

Een secure code review is een grondige analyse van uw broncode door ethische hackers. We combineren een geautomatiseerde statische analyse met handmatige review door OSCP-gecertificeerde pentesters. Zo brengen we kwetsbaarheden, hardcoded secrets en ontwerpfouten in kaart voordat de code in productie gaat.


Waarom en wanneer is een secure code review belangrijk?

Een code review geeft u volledig zicht op de beveiliging van uw applicatie. Een blackbox-pentest test alleen wat via de interface bereikbaar is. Bij een code review nemen we elke regel code, elke functie en elk endpoint onder de loep. Daardoor vinden we kwetsbaarheden die anders jarenlang onopgemerkt zouden blijven.

Een code review is verstandig in de volgende situaties:

  • Voordat een nieuwe applicatie live gaat, om de beveiliging te controleren.
  • Om te voldoen aan een norm zoals PCI DSS, ISO 27001 of HIPAA, die een controle van de broncode vragen.
  • Na een grote release, om de wijzigingen en nieuwe functies te beoordelen.
  • Bij een belangrijke applicatie, zoals betalingsverwerking of een systeem in de zorg of de financiële sector, als extra controle.
  • Na een beveiligingsincident, om in de code te achterhalen hoe de kwetsbaarheid is ontstaan.

Een code review is vooral waardevol naast een pentest. De code review legt diepere kwetsbaarheden en ontwerpfouten bloot, de pentest laat zien welke daarvan een aanvaller echt kan misbruiken.


Wat valt er allemaal onder een code review?

Wat een code review precies omvat, hangt af van de programmeertaal, het framework en de architectuur van uw applicatie. De scope loopt uiteen van een blik op een paar belangrijke onderdelen tot een onderzoek van de volledige codebase.

Statische code-analyse (SAST)

Statische code-analyse is de basis van elke code review. We bekijken de broncode zonder die uit te voeren. Door naar de structuur en de patronen in de code te kijken, vinden we kwetsbaarheden, hardcoded secrets en zwakke plekken in de codekwaliteit.

We voeren de volgende statische analyses uit:

  • Webapplicatie kwetsbaarheden - We analyseren de code op de OWASP Top 10, de meest voorkomende webkwetsbaarheden. Denk aan SQL-injectie, waarbij gebruikersinvoer rechtstreeks in een databasequery belandt en een aanvaller gegevens kan uitlezen of aanpassen, of cross-site scripting (XSS), waarbij kwaadaardige scripts in een pagina terechtkomen en in de browser van andere gebruikers worden uitgevoerd. Ook controleren we op zwakke inloglogica, ontbrekende rechtencontroles en onveilige standaardinstellingen.

  • Hardcoded secrets - Wachtwoorden, API-sleutels of versleutelingssleutels die in de broncode staan in plaats van in een veilige opslag.

  • Cryptography issues - Zwakke algoritmen, onveilige willekeurige getallen of zelfbedachte versleuteling die niet standhoudt.

  • Data exposure - Gevoelige gegevens in logbestanden, persoonsgegevens zonder versleuteling of foutmeldingen die te veel verraden.

  • CI/CD pipeline - Geheimen in bouwscripts of onveilige deploy-stappen die de codebase blootstellen.

  • Dependencies - Verouderde pakketten met bekende kwetsbaarheden of dubieuze licenties.

Dynamische code-analyse (DAST)

Bij dynamische code-analyse bekijken we de code terwijl de applicatie draait. Met debuggers en runtime-analyse zien we hoe de code zich tijdens de uitvoering echt gedraagt.

We voeren de volgende dynamische analyses uit:

  • Analyse met de debugger - We plaatsen breakpoints op belangrijke plekken zoals het inloggen, de rechtencontroles en de gegevensverwerking, en volgen stap voor stap wat er met gebruikersinvoer en sessiegegevens gebeurt.

  • Gecontroleerde aanvalssimulatie - We voeren bijvoorbeeld SQL-injectie of XSS uit terwijl we in de code meekijken. Zo zien we precies waar de filtering faalt of waar een aanvaller de inlogcontrole kan omzeilen.

  • Bedrijfslogica - We controleren of betalingsflows, goedkeuringsprocessen of berekeningen te manipuleren zijn, bijvoorbeeld door prijzen aan te passen of stappen over te slaan.

Een code review met dynamische analyse combineert u goed met een webapplicatie pentest of mobiele app pentest. De code review vindt de ontwerpfouten en logische fouten, de pentest laat zien wat een aanvaller daar echt mee kan.


Waarom kiezen voor Hackify?

  • Bewezen expertise - Ethische hackers met minimaal 5 jaar ervaring, 3 certificaten en relevante expertise per testonderdeel (niet branche minimum van 1 jaar en 1 certificaat)
    • Track record - Responsible disclosures bij Philips, Zoom, Oracle, Politie en vele anderen
    • Hackcompetitie winnaars - Prijzen bij Hack010, PVIB CTF, Hackerhotel en HackTheHague
  • Code review expertise - Diepgaande kennis van SAST, DAST en handmatige code-analyse volgens de OWASP Top 10
  • Direct contact - Geen accountmanagers, u spreekt rechtstreeks met de pentesters die uw test uitvoeren
  • Flexibiliteit - Een code review is vaak binnen 2 tot 3 weken in te plannen

Meer over onze aanpak en expertise leest u op onze over ons-pagina.

Klaar voor een security code review?

Wij lezen uw broncode door op kwetsbaarheden die geautomatiseerde scanners structureel missen, met focus op authenticatie, autorisatie en data-flow. Vraag een voorstel op maat aan.

Neem contact op

Of mail ons direct via [email protected]

Veelgestelde vragen over secure code reviews

Wat is het verschil tussen een code review en een webapplicatie pentest?

Een code review en een webapplicatie pentest vullen elkaar aan, maar kijken op een andere manier naar uw applicatie.

Code review (whitebox):

  • We hebben directe toegang tot de broncode en de architectuur
  • We analyseren de code statisch en lopen alle code paths na
  • We vinden logische fouten en zwakke plekken in het ontwerp
  • We sporen hardcoded inloggegevens en API-sleutels op
  • We beoordelen de codekwaliteit en de gevolgde best practices
  • We vinden ook kwetsbaarheden die niet via de interface te misbruiken zijn

Webapplicatie pentest (blackbox of greybox):

  • We testen zonder of met beperkte toegang tot de code
  • We testen de applicatie dynamisch, via de interface
  • We richten ons op kwetsbaarheden die een aanvaller echt kan misbruiken
  • We werken met realistische aanvalsscenario’s

De twee werken het best samen. De code review legt diepere kwetsbaarheden en ontwerpfouten bloot, de pentest laat zien welke daarvan een aanvaller echt kan misbruiken. Voor een belangrijke applicatie raden we beide aan.

Wat kost een secure code review?

Wat een code review kost, hangt af van de scope, de omvang van de codebase en eventueel maatwerk. Na een intakegesprek stellen wij een voorstel voor u op dat bij uw situatie past.

Welke programmeertalen kunnen jullie reviewen?

Onze pentesters hebben ervaring met de gangbare programmeertalen en frameworks:

Backend:

Frontend:

Mobile:

  • Swift (iOS)
  • Kotlin/Java (Android)
  • React Native, Flutter

Werkt u met een andere taal of een ander framework? Neem dan contact op, we hebben een breed netwerk van specialisten.

Welke tools gebruiken jullie bij een code review?

We combineren geautomatiseerde tools met handmatige analyse van de code.

Static Application Security Testing (SAST):

  • Fortify Static Code Analyzer - Enterprise SAST voor diepgaande analyse
  • SonarQube - Code quality en security issues
  • Semgrep - Custom security pattern matching
  • Language-specific linters en analyzers
  • Debuggers zoals Visual Studio en GDB voor runtime-analyse en het volgen van de code-uitvoering

Geautomatiseerde tools vinden snel veel kwetsbaarheden. Voor lastige logische fouten en ontwerpfouten blijft handmatige review nodig.

Hoe lang duurt een secure code review?

De doorlooptijd hangt af van de omvang en de complexiteit van de codebase:

  • Kleine applicatie: 1 week
  • Middelgrote applicatie: 2-3 weken
  • Grote applicatie: 3-4 weken
  • Enterprise met microservices: 4-6 weken

We kunnen de belangrijkste onderdelen, zoals inloggen, betalingsverwerking en API’s, naar voren halen, zodat u sneller weet hoe het met de grootste risico’s staat.

Wat zijn de meest voorkomende code-level kwetsbaarheden?

Bij een code review komen we regelmatig dezelfde kwetsbaarheden tegen:

  1. Hardcoded secrets - Wachtwoorden, API-sleutels of cloud credentials die in de broncode staan in plaats van in een veilige opslag.
  2. Injection - Bijvoorbeeld SQL-injectie waarbij gebruikersinvoer rechtstreeks in een databasequery belandt, of command injection waarbij systeemcommando’s kunnen worden uitgevoerd.
  3. Broken authentication - Zwakke inloglogica, wachtwoorden in platte tekst of met MD5, of sessies die niet goed worden afgesloten.
  4. Missing authorization - Pagina’s of acties waar geen rechtencontrole op zit, waardoor gebruikers meer kunnen dan bedoeld.
  5. Data exposure - Gevoelige gegevens in logbestanden, persoonsgegevens zonder versleuteling of debug-endpoints die in productie nog openstaan.
  6. Security misconfiguraties - Onveilige standaardinstellingen, ontbrekende security headers of frameworkconfiguraties die te ruim zijn.
  7. Cryptography issues - Zwakke algoritmen, onveilige willekeurige getallen of zelfbedachte versleuteling.
  8. Business logic flaws - Race conditions, prijsmanipulatie of goedkeuringsprocessen die te omzeilen zijn.
  9. CI/CD pipeline - Geheimen in bouwscripts of configuraties die de codebase blootstellen.
  10. Kwetsbare dependencies - Verouderde pakketten met bekende kwetsbaarheden of libraries die niet meer worden onderhouden.

Veel van deze kwetsbaarheden komen bij een blackbox-test niet aan het licht. Daarvoor is een blik op de code zelf nodig.