De OWASP Top 10 is een overzicht van typen kwetsbaarheden die onder beveiligingsexperts worden gezien als het meest kritisch met betrekking tot webapplicaties. Het is geen kant-en-klare afvinklijst en dekt bovendien niet álle soorten kwetsbaarheden, maar biedt wel een goed zicht op deze complexe materie. De Top 10 vormt daarmee een solide basis voor de door ons aangeboden beveiligingstests.

Broken Access Control (A1)

Beperkingen wat een gebruiker wel of niet mag uitvoeren binnen een applicatie worden in veel gevallen niet correct afgedwongen. Kwaadwillende kunnen deze fouten misbruiken om toegang te krijgen tot functionaliteit en/of informatie zonder dat ze hiertoe geautoriseerd zijn.

Cryptographic Failures (A2)

Veel applicaties en API-endpoints beschermen gevoelige gegevens onvoldoende. Denk hierbij aan persoonsgegevens, documenten en autorisatiegegevens. Kwaadwillende kunnen deze dan stelen of wijzigen voor creditcardfraude, identiteitsdiefstal of andere misdrijven. Gevoelige gegevens moeten extra worden beschermd door middel van versleuteling of andere speciale voorzorgsmaatregelen.

Voorbeeld OWASP Top-10 - A2: Cryptographic Failures

Injection (A3)

Injectiekwetsbaarheden zoals SQL-, OS-commando- of LDAP-injectie, ontstaan wanneer niet-geverifieerde data door een hacker wordt verzonden als onderdeel van een commando of query. Deze data kan onbedoelde commando’s uitvoeren of ongeautoriseerde toegang tot gegevens verschaffen.

Voorbeeld OWASP Top-10 - A3: Injection (SQL)
Voorbeeld OWASP Top-10 - A3: Injection (XSS)

Insecure Design (A4)

Applicaties moeten op een veilige manier ontworpen worden om fouten te voorkomen. Een onveilig ontwerp kan niet worden opgelost door een perfecte implementatie, omdat per definitie de benodigde beveiligingscontroles nooit gemaakt zijn om te beschermen tegen specifieke aanvallen. Al bij het ontwerpproces moet er gebruik gemaakt worden van onder meer threat modeling, veilige ontwerppatronen en -principes evanals referentiearchitecturen.

Security Misconfiguration (A5)

Goede beveiliging vereist een correcte configuratie die wordt afgestemd op de applicatie, frameworks, applicatieserver, webserver, databaseserver en platform. Beveiligingsinstellingen moeten worden gedefinieerd, geïmplementeerd en onderhouden omdat deze standaards vaak onveilig zijn. Daarnaast moet alle software up-to-date zijn.

Voorbeeld OWASP Top-10 - A5: Security Misconfiguration
Voorbeeld OWASP Top-10 - A5: Security Misconfiguration (XXE)

Vulnerable & Outdated Components (A6)

Componenten zoals libraries, frameworks en andere software-modules draaien vaak met volledige autorisatie. Als een kwetsbaar onderdeel wordt geëxploiteerd kan dit tot dataverlies leiden of een overname van de server faciliteren. Componenten met reeds bekende kwetsbaarheden ondermijnen de beveiliging van de applicatie en faciliteren een scala aan mogelijke aanvallen.

Voorbeeld OWASP Top-10 - A6: Vulnerable & Outdated Components

Identification and Authentication Failures (A7)

Authenticatiecontrole- en sessiebeheermechanismes worden vaak niet correct geïmplementeerd, waardoor kwaadwillende de identiteit van andere gebruikers aan kunnen nemen.

Voorbeeld OWASP Top-10 - A7: Identification & Authentication Failures

Software & Data Integrity Failures (A8)

Applicaties die afhankelijk zijn van plug-ins, bibliotheken of modules van niet-vertrouwde bronnen, repositories en content delivery networks (CDN’s) lopen risico op integriteitsschending. Een onveilige CI/CD-pipeline kan leiden tot ongeautoriseerde toegang, kwaadaardige code of compromittering van het systeem. Maatregelen als digitale handtekeningen controleren zijn nodig om er zeker van te zijn dat gegevens van een vertrouwde bron afkomstig is en niet onderweg is aangepast.

Security Logging & Monitoring Failures (A9)

Een tekort aan logging en monitoring kan kwaadwillende de tijd geven zich dieper in een systeem te nestelen en proberen zich permanent toegang te verschaffen. Gemiddeld wordt een lek pas na 200+ dagen gedetecteerd. Dit geeft kwaadwillende voldoende tijd om zelfs toegang te krijgen tot andere systemen en opgeslagen gegevens in te zien, wijzigen of zelfs te verwijderen.

Server-Side Request Forgery (A10)

Het ophalen van URL’s is een veelvoorkomend scenario binnen applicaties, maar dit kan tot problemen leiden wanneer de URL’s afkomstig zijn van gebruikersinvoer. Zonder enige validatie stelt het een kwaadwillende in staat om de applicatie een verzoek te laten doen naar een onverwachte bestemming, zelfs wanneer deze wordt beschermd door een firewall, VPN of andere netwerktoegangscontroles (ACL).