OWASP of Open Web Application Security Project is een non-profitorganisatie die gratis, open gegevens en documentatie over kwetsbaarheden van webtoepassingen produceert. OWASP geeft ook beurzen aan studenten die ideeën hebben over webbeveiliging om hun projecten uit te voeren. Zij organiseren ook webbeveiligingsworkshops en -conferenties voor professionals uit de sector wereldwijd. OWASP biedt verschillende manieren voor mensen en organisaties om betrokken te raken bij hun inspanningen. Of het nu gaat om het organiseren van evenementen, het aanvragen van een subsidie, of lid worden van de organisatie. OWASP heeft ook verschillende producten om organisaties te helpen beschermen tegen web kwetsbaarheden.

Hoe kijkt OWASP naar kwetsbaarheden?

OWASP heeft een unieke manier om kwetsbaarheden te bekijken. OWASP ziet webkwetsbaarheden meer als gebieden die moeten worden aangepakt dan als individuele kwesties. Ze zien kwetsbaarheden ook als een “hoe”-vraagstuk en niet alleen als “wat”. Ze bedoelen hiermee dat het creëren van veilige code en programmeren niet alleen het veilig schrijven van code vereist. Vereist is namelijk dat men meerdere stappen onderneemt om te voorkomen dat bepaalde aanvallen tegen webapplicaties plaatsvinden.

Wat is de OWASP top 10?

De OWASP top 10 bevat de meest kritieke kwetsbaarheden van webapplicaties. Een team van beveiligingsexperts van over de hele wereld heeft deze lijst in 2003 opgesteld. Sindsdien is hij verschillende keren bijgewerkt en het blijft een nuttig hulpmiddel voor organisaties van elke omvang om te gebruiken, bij het maken van veilige webtoepassingen.

OWASP Top 10 Kwetsbaarheden:

1. Injectie

Injectie is de meest voorkomende kwetsbaarheid die in webapplicaties wordt aangetroffen. Helaas is het ook een van de gevaarlijkste, omdat het kan leiden tot database inbreuken en gegevensdiefstal. Injectie gebeurt wanneer bronnen van buitenaf bepalen wat een programma doet met door de gebruiker verstrekte informatie. OWASP gaf dit type kwetsbaarheid niet voor niets nummer 1 op hun lijst.

2. Gebroken Authenticatie

Gebroken authenticatie gebeurt wanneer referenties onversleuteld worden doorgegeven via een onversleuteld kanaal of worden opgeslagen aan de clientzijde. Hierdoor wordt een systeem opengesteld voor onbevoegden en kunnen aanvallers geprivilegieerde toegang krijgen, wat kan leiden tot een volledige compromittering van het systeem.

3. Blootstelling van gevoelige gegevens

Blootstelling van gevoelige gegevens doet zich voor wanneer de webapplicatie de gevoelige informatie die het verzamelt, verwerkt of weergeeft niet goed beschermt. Dit kan gaan om creditcardnummers, sofinummers en inloggegevens.

4. XML Externe entiteiten (XXE)

Externe entiteiten in een XML-document zijn verwijzingen naar bestanden buiten het document zelf. Een veelvoorkomend voorbeeld is een XML-document dat verwijst naar een extern stylesheet. Een minder gebruikelijk en ernstiger voorbeeld is het gebruik van externe entiteiten voor data sourcing. Een zorgvuldig opgestelde aanvraag kan ertoe leiden dat de XML-parser toegang krijgt tot bestanden en informatie van systemen op afstand die buiten het beoogde controlegebied liggen van de cliënt die de aanvraag indient.

5. Gebroken autorisatie

Toegangscontrole is een beveiligingsmaatregel die voorkomt dat onbevoegden toegang krijgen tot gegevens of een actie uitvoeren op een systeem. Als een webapplicatie bijvoorbeeld de mogelijkheid biedt om items te verwijderen of het saldo van een rekening te controleren, moet daarvoor ook authenticatie vereist zijn. Als uw site niet over de juiste toegangscontrole beschikt, is deze kwetsbaar voor brute force en privilege-escalatie aanvallen.

6. Verkeerde configuratie van de beveiliging

Een verkeerde configuratie van de beveiliging is de meest voorkomende kwetsbaarheid in webapplicaties. Het treedt op wanneer ontwikkelaars nalaten de juiste beveiligingscontroles uit te voeren of deze op een onveilige manier uitvoeren. Het resultaat is dat gevoelige gegevens worden blootgelegd en aanvallers kunnen profiteren van bekende, zij het gepatchte, kwetsbaarheden.

7. Cross-Site Scripting (XSS)

Een aanvaller kan kwaadaardige scripts in een toepassing injecteren via inputs die later aan andere gebruikers worden getoond zonder de juiste sanitization. XSS-aanvallen doen zich voor wanneer een aanvaller de browser van een gebruiker misleidt om een kwaadaardig script uit te voeren in de context van het domein van een slachtoffer. Hierdoor kunnen aanvallers toegang krijgen tot cookies, de sessie gebruiken en gevoelige informatie verkrijgen om de website of applicatie van een slachtoffer in gevaar te brengen.

8. Onveilige deserialisatie

Onveilige deserialisatie treedt op wanneer geserialiseerde gegevens onveilig worden behandeld en zonder validatie worden gebruikt. Het resultaat van onveilige deserialisatie is dat een aanvaller commando’s kan uitvoeren of kwaadaardige code kan schrijven, wat kan leiden tot het op afstand uitvoeren van code of SQL-injectie.

9. Gebruik van componenten met bekende kwetsbaarheden

Het gebruik van componenten met bekende kwetsbaarheden maakt het waarschijnlijker dat aanvallers gebruik zullen maken van geïdentificeerde en openbaar gemaakte kwetsbaarheden op de specifieke component. Dit is vooral van toepassing op open source projecten waarbij er geen controle is over hoe snel een kwetsbaarheid wordt onthuld en verholpen.

10. Onvoldoende logging en monitoring

Onvoldoende logging en monitoring zorgen voor hiaten in het inzicht in wat er gebeurt. Aanvallers kunnen deze gaten uitbuiten om veiligheidscontroles te omzeilen, lange tijd onopgemerkt te blijven in het systeem en gevoelige gegevens te ex-filtreren die nodig zijn voor andere aanvallen.

Conclusie

OWASP is een bekende autoriteit als het gaat om het identificeren van kwetsbaarheden. Daarnaast biedt OWASP ondersteuning voor de beveiliging van applicaties door het bijhouden van de OWASP Top 10, een catalogus van kwetsbaarheden in webapplicaties waarvan ontwikkelaars op de hoogte moeten zijn en die ze zoveel mogelijk moeten verhelpen.