Secure code reviews

Zitten er security bugs verstopt in je code? Dat kan grote gevolgen hebben. Wij helpen je om alle bugs te vinden en te onderzoeken. En om te voorkomen dat ze in de productie meegaan. Keep the bad bugs out!

Voorbeelden van security bugs

Maar voordat we verder gaan, is het handig om even stil te staan bij die bugs. Hoe ontdekken we de bugs? En welke bugs zijn er eigenlijk? We geven je ook voorbeelden van bekende bugs.

We kunnen voorbeelden vinden van security bugs door onder andere te kijken naar de OWASP Top 10 en de Common Weaknesses Enumeration database. Lees ook de top 25 kwetsbaarheden van 2023.

Twee voorbeelden

Een belangrijke categorie van de OWASP Top 10 is A03:2021-Injection. Een voorbeeld hiervan is SQL injectie CWE-89. Hierbij gebruikt een applicatie SQL om verbinding te maken met de database.

Doordat de gebruiker speciale tekens kan invoeren in inputvelden, zoals ‘, en deze niet goed worden verwerkt door de applicatie, kan de gebruiker de SQL query in de achtergrond aanpassen om andere informatie uit de database te halen dan de bedoeling was. Zo kunnen meestal wachtwoorden en gebruikersnamen uit de database gestolen worden en gelekt.

Voorbeelden van een SQL injectie
In mei 2023 werden in MOVEit Transfer meerdere SQL injecties gevonden die geen authenticatie vereisten. Hierdoor kon de ransomwaregroep Clop binnen bij duizenden organisaties. In juni 2023 zijn daardoor grootschalige aanvallen uitgevoerd. Meer over SQL injectie op PortSwigger Web Academy.

Een ander voorbeeld is cross-site scripting (XSS) CWE-79. Bij XSS kan een gebruiker JavaScript injecteren in een andere gebruikerssessie op een website. Aanvallers kunnen zo de gebruikerscookies stelen, de sessie overnemen, of op een andere manier de website aanvallen via de browser van de gebruiker.

XSS is één van de meest gerapporteerde bugs in de wereld. En ondanks dat deze wel eens onderschat wordt, is het een zeer gevaarlijke bug. Veel aanvallen beginnen namelijk met een cross-site scripting aanval die geopend wordt door een slachtoffer. Gecombineerd met andere aanvallen, leidt het uiteindelijk tot totaal compromis van een website.

Omdat cross site scripting wordt uitgevoerd op de browser van het slachtoffer, kan de aanval ook meestal door firewalls heen uitgevoerd worden om interne websites aan te vallen.

Voorbeeld van een XSS: de MySpace Worm
Een voorbeeld van XSS is de klassieke MySpace Worm uit 2005 door Samy Kamkar. Deze worm gebruikt een XSS kwetsbaarheid waardoor mensen in hun MySpace account JavaScript konden uitvoeren. De JavaScript zorgt ervoor dat de gebruiker een vriendverzoek stuurde naar Samy en zich daarna kopieerde naar de eigen profielpagina van de gebruiker. Zo verspreidde het binnen 20 uur naar 1 miljoen gebruikers op de website.

Voorbeeld van een XSS: de mutation XSS in Google
Een recenter voorbeeld was een cross site scripting bug in Google.com in 2019 via zogenaamde “mutation XSS”. Deze kwetsbaarheid werd mogelijk door misbruik van de ‘noscript’ HTML tag waardoor de HTML sanitizer functie kon worden omzeild. De kwetsbaarheid werd gefixt zodra Google ‘m had gevonden. Misbruik zou het mogelijk hebben gemaakt voor elke website die door een gebruiker bezocht wordt om de gebruikers Google-account over te nemen.

Code security om bugs te verwijderen

Twee voorbeelden

Een belangrijke categorie van de OWASP Top 10 is A03:2021-Injection. Een voorbeeld hiervan is SQL injectie CWE-89. Hierbij gebruikt een applicatie SQL om verbinding te maken met de database.

Doordat de gebruiker speciale tekens kan invoeren in inputvelden, zoals ‘, en deze niet goed worden verwerkt door de applicatie, kan de gebruiker de SQL query in de achtergrond aanpassen om andere informatie uit de database te halen dan de bedoeling was. Zo kunnen meestal wachtwoorden en gebruikersnamen uit de database gestolen worden en gelekt.

Voorbeelden van een SQL injectie
In mei 2023 werden in MOVEit Transfer meerdere SQL injecties gevonden die geen authenticatie vereisten. Hierdoor kon de ransomwaregroep Clop binnen bij duizenden organisaties. In juni 2023 zijn daardoor grootschalige aanvallen uitgevoerd. Meer over SQL injectie op PortSwigger Web Academy.

Een ander voorbeeld is cross-site scripting (XSS) CWE-79. Bij XSS kan een gebruiker JavaScript injecteren in een andere gebruikerssessie op een website. Aanvallers kunnen zo de gebruikerscookies stelen, de sessie overnemen, of op een andere manier de website aanvallen via de browser van de gebruiker.

XSS is één van de meest gerapporteerde bugs in de wereld. En ondanks dat deze wel eens onderschat wordt, is het een zeer gevaarlijke bug. Veel aanvallen beginnen namelijk met een cross-site scripting aanval die geopend wordt door een slachtoffer. Gecombineerd met andere aanvallen, leidt het uiteindelijk tot totaal compromis van een website.

Omdat cross site scripting wordt uitgevoerd op de browser van het slachtoffer, kan de aanval ook meestal door firewalls heen uitgevoerd worden om interne websites aan te vallen.

Voorbeeld van een XSS: de MySpace Worm
Een voorbeeld van XSS is de klassieke MySpace Worm uit 2005 door Samy Kamkar. Deze worm gebruikt een XSS kwetsbaarheid waardoor mensen in hun MySpace account JavaScript konden uitvoeren. De JavaScript zorgt ervoor dat de gebruiker een vriendverzoek stuurde naar Samy en zich daarna kopieerde naar de eigen profielpagina van de gebruiker. Zo verspreidde het binnen 20 uur naar 1 miljoen gebruikers op de website.

Voorbeeld van een XSS: de mutation XSS in Google
Een recenter voorbeeld was een cross site scripting bug in Google.com in 2019 via zogenaamde “mutation XSS”. Deze kwetsbaarheid werd mogelijk door misbruik van de ‘noscript’ HTML tag waardoor de HTML sanitizer functie kon worden omzeild. De kwetsbaarheid werd gefixt zodra Google ‘m had gevonden. Misbruik zou het mogelijk hebben gemaakt voor elke website die door een gebruiker bezocht wordt om de gebruikers Google-account over te nemen.

Ethische hackers voor bedrijven

Mobiele applicaties | Websites | APIs | Thick clients | Custom tech stacks

Hoe Cyber Seals helpt

Hoe is het mogelijk om al dit soort security bugs te vinden, onderzoeken en tegen te gaan voordat ze worden geïntroduceerd in productie? Eén van de processen die hierbij helpt, is een secure code review. Daarbij gaat een getraind iemand door de code om de bugs op te sporen. Dit kun je zelf doen of wij doen het voor je. Wat past bij jullie?

Onze diensten stap 1 icoon geel

Training

Wij trainen jullie DevOps team om secure code reviews uit te voeren.

Onze diensten stap 2 icoon geel

SAST Tools

Er zijn ook tools die kunnen helpen, zoals open source SAST tools als Semgrep. Wij kunnen helpen met het implementeren van deze tools.

Onze diensten stap 3 icoon geel

Code Review

Wil je het liever uitbesteden? Dat kan ook. Een van onze security professionals voert dan de security code reviews uit.

Onderzoek laten doen naar Security bugs? Wij staan voor je klaar! Neem contact op en we kijken wat jullie het beste gaat helpen.