API's
Voor API's (Application Programming Interface) geldt hetzelfde; deze applicaties zorgen ervoor dat verschillende (software)systemen met elkaar kunnen communiceren. Hackers kunnen deze API's hun doelwit maken om via deze weg binnen te dringen in een website.
API tests komen in veel opzichten overeen met reguliere webapplicatie tests, maar door de andere technologieën die worden gebruikt (SOAP/REST/XML) verschillen de feitelijke tests. De tests worden uitgevoerd zowel vanuit het perspectief van een ongeautoriseerde gebruiker, als vanuit het perspectief van een geauthentiseerde gebruiker.
Met een VA/PT identificeren we bijvoorbeeld de volgende risico's:
- Verouderde software en ontbrekende patches
- Administratie-/beheerpagina's die niet toegankelijk zouden moeten zijn voor normale gebruikers
- Afgeschermde diensten die toegankelijk zijn met een eenvoudig te raden gebruikersnaam/wachtwoord-combinatie
- Onveilige configuratie van standaardsoftware, zoals web-, VPN-, database- en applicatieservers
- Informatielekkage (bijvoorbeeld via “service banners”)
- Onveilige implementatie, opzet en werking van cryptografische protocollen zoals TLS (HTTPS, SMTPS, enz.)
- Opzet en werking van DNSSEC, redundantie in name servers, en in hoeverre de name servers informatie lekken
- Kwetsbaarheden in de logische structuur van de applicatie die aanvallers de mogelijkheid geven de applicatie op een onverwachte manier te laten reageren
- Het server-side of client-side uitvoeren van door de aanvaller geleverde code
De API-eindpunten zullen wij grondig bestuderen en testen op allerlei veel voorkomende ontwerp-, configuratie- en programmeerfouten, met uiteraard maximale aandacht voor beveiligingsgerelateerde fouten uit de OWASP Top 10 (versie 2013 en 2017 samengevoegd).
Vertaald naar concrete beveiligingsproblemen, levert dit onder meer de volgende tests op:
- Het testen van het registratieproces en inlogproces op het overnemen van andermans account.
- Testen of het sessiemechanisme afdoende veilig is ingericht.
- Nagaan of gebruikers onderling ongeautoriseerde toegang tot elkaars gegevens hebben (verticale autorisatiecontroles).
- Nagaan of gebruikers functionaliteit en gegevens van gebruikers met verhoogde rechten kunnen bevragen (horizontale autorisatiecontroles).
- De weerstand tegen het ‘brute-force’ kraken van een wachtwoordmechanisme testen inclusief eventuele blokkade regelingen.
- Testen in hoeverre de site gevoelig is voor injectie-aanvallen zoals ‘Cross Site Scripting’ en ‘SQL-injectie’.
- Het omzeilen en misbruiken van de business-logica binnen de applicatie.
- Het onderzoeken van de sterkte van de TLS-verbinding.
- Het testen of beveiligingsmaatregelen zoals Content Security Policy juist zijn geïmplementeerd.