Het Open Worldwide Application Security Project (
OWASP) is een non-profitorganisatie die zich richt op het verbeteren van de veiligheid van webtechnologieën. Het project wordt wereldwijd erkend als de eerste stap voor het ontwikkelen van veilige toepassingen op het internet.
Een van de belangrijkste principes van OWASP is dat ze al hun materialen gratis beschikbaar stellen ten behoeve van het verbeteren van de veiligheid op internet. Op de website van OWASP worden gezaghebbende lijsten gepubliceerd met de meest voorkomende beveiligingsrisico’s op het gebied van diverse technologieën zoals
AI en
Machine Learning,
mobiele veiligheid en
low-code/no-code oplossingen.
Een belangrijke en bekende publicatie is de OWASP Top 10 met de meeste voorkomende kwetsbaarheden in webapplicaties. Deze lijst dient als leidraad voor organisaties om kwetsbaarheden te voorkomen en de veiligheid te verbeteren.
In dit artikel zullen we, in het kort, de tien genoemde kwetsbaarheden in deze lijst behandelen en toelichten. Deze lijst bevat op het moment van schrijven de volgende kwetsbaarheden:
1. Gebroken toegangscontrole
Met gebroken toegangscontrole doelt OWASP op alle kwetsbaarheden waarbij de gebruiker toegang kan krijgen tot bronnen en acties waar deze niet toe bevoegd is. Dit soort kwetsbaarheden kunnen leiden tot het ongeautoriseerd inzien, wijzigen of vernietigen van gegevens.
Extra verificatiecodes en het principe van ‘least privilege’ waarbij toegang standaard wordt ontzegd tot een bron tenzij er succesvolle verificatie heet plaatsgevonden zijn mogelijkheden om deze kwetsbaarheid te verminderen.
2. Cryptografische tekortkomingen
Indien de
cryptografie van gegevens niet voldoende is of geheel ontbreekt dan is er sprake van een cryptografische tekortkoming. Deze kwetsbaarheid kan ontstaan door bijvoorbeeld onveilige wachtwoordopslag of het gebruik van verouderde versleutelingsmethoden die makkelijk te kraken zijn.
Om dit soort kwetsbaarheden te verminderen moeten actuele versleutelingsmethoden worden gebruikt en dienen er regelmatig audits plaats te vinden op de gebruikte methoden van versleuteling.
3. Injectie
Een oude nummer één binnen de top 10 en een persoonlijke favoriet van de auteur zijn injectiekwetsbaarheden. Veelal gebaseerd op SQL-injectie maar ook bepaalde cross-site scripting kwetsbaarheden, XML-injectie en andere vergelijkbaar vallen in deze categorie.
Fatsoenlijke invoervalidatie, het gebruik van query's met parameters zoals stored procedures en het gebruik van een Web Application Firewall (WAF) bieden in dit geval uitkomst.
4. Onveilig ontwerp
Met een onveilig ontwerp wordt bedoeld het niet goed inschatten van de risico’s en het daarbij horende niveau van veiligheid wat vereis is voor de applicatie.
De beste wijze om dit te voorkomen is om vanaf de start veiligheid en beveiliging op te nemen in de complete Software Development Life Cycle (
SDLC) van de applicatie. In de cybersecurity een inkoppertje want veiligheid zou standaard moeten worden meegenomen vanaf het begin bij elk type project.
5. Verkeerde configuratie
Dit is een brede categorie met kwetsbaarheden op diverse gebieden zoals kwetsbaarheden op het gebied van XML-entiteiten, onbeschermde mappen, ontbrekende patches en standaard configuraties (denk bijvoorbeeld aan default accounts).
Over het algemeen is het volgen van de standaard best practices op het gebied van cybersecurity een goede manier om dit soort fouten te voorkomen.
6. Kwetsbare en verouderde componenten
Voor het ontwikkelen van webapplicaties wordt vaak gebruik gemaakt van bepaalde frameworks en bibliotheken van derden. Indien deze niet worden bijgehouden kunnen ze aanzienlijke beveiligingsrisico’s met zich meebrengen.
Zorg dat ook componenten binnen een applicatie worden bijgewerkt en volg de ontwikkelaars van deze componenten voor aankondigingen met betrekking tot beveiligingslekken en updates.
7. Problemen met identificatie en authenticatie
Problemen met identiteitsbeheer en authenticatiesystemen omvatten kwetsbaarheden als de mogelijkheid tot brute-force aanvallen, het gebruik van zwakke
wachtwoorden en zwakke procedures om vergeten wachtwoorden te herstellen.
Het gebruik van MFA, rate limiting en een controle op het aanmaken van zwakke wachtwoorden maken aanvallen van dit type een stuk moeilijker.
8. Problemen met software- en gegevensintegriteit
Indien de aanvoer van componenten (supply chain) binnen een applicatie niet wordt gecontroleerd kan via derden kwaadaardige code de software binnensluipen en kan ongeautoriseerde toegang tot de applicatie ontstaan.
Het gebruik van digitale handtekeningen om de integriteit en afkomst te verifiëren en het gebruik van geautomatiseerde tools voor het controleren van afhankelijkheden helpen dit risico te minimaliseren.
9. Problemen met logboeken en monitoring
Deze problemen ontstaan door het ontbreken van voldoende logging, hierdoor is het niet mogelijk om actieve inbreuken en fouten te detecteren en hier adequaat op te kunnen reageren.
Zorg dat er afdoende logging kan plaatsvinden op het gebied van toegangscontrole, toegang tot bronnen en van verzoeken aan de server op een duidelijke en afgeschermde wijze.
10. Server-Side Request Forgery
Deze kwetsbaarheid ook wel bekend onder de noemer SSRF treedt op wanneer een webapplicatie een externe bron laadt zonder de gebruiker te valideren zodat een aanvaller een verzoek kan sturen naar een andere bestemming dan de bedoeling was.
Om deze aanvallen te voorkomen moet er gekeken worden naar best practices op het gebied van invoervalidatie en het whitelisten van geautoriseerde gebruikers.
Wat heeft OWASP te maken met StackSecure?
Onze CISO’s denken bij onze klanten mee over risico’s die mogelijk ontstaan bij het ontwikkelen van en het gebruik van software. Daarbij zijn de best practices die worden genoemd niet alleen van toepassing bij het ontwikkelen van software maar over de gehele linie van cybersecurity.
Uiteraard laten we ook ons eigen awareness platform
StackAware regelmatig uitgebreid testen op bovenstaande kwetsbaarheden. Interesse in advies gesprek? Neem gerust eens vrijblijvend
contact op.