Api Penetration Test

Penetratietests voor API’s (Application Programming Interfaces) zijn gericht op het evalueren van de beveiligingsstatus van omgevingen waarin gebruik wordt gemaakt van API’s en gegevens moeten worden overgedragen. Het doel van de inzet is de applicatielogica te ondermijnen en gevoelige informatie bloot te leggen door toegang te krijgen tot beperkte functionaliteiten en toegangsniveaus. De testactiviteiten worden voornamelijk uitgevoerd met behulp van handmatige opsommings- en exploitatietechnieken die worden beschreven in de OWASP API Testing Guide.

Process of API testing
Penetratietesters richten zich op het identificeren van klassen van kwetsbaarheden binnen de top 10 van meest kritieke API applicatie beveiligingsrisico’s van het Open Web Application Security Project (OWASP):

Gebroken object niveau autorisatie – API’s hebben de neiging om endpoints bloot te stellen die object identifiers behandelen, waardoor een breed aanvalsoppervlak niveau toegangscontrole probleem ontstaat. Autorisatiecontroles op objectniveau moeten worden overwogen in elke functie die toegang heeft tot een gegevensbron met behulp van een invoer van de gebruiker.

Gebroken gebruikersauthenticatie – Authenticatiemechanismen worden vaak verkeerd geïmplementeerd, waardoor aanvallers authenticatietokens kunnen compromitteren of implementatiefouten kunnen uitbuiten om de identiteit van andere gebruikers tijdelijk of permanent over te nemen. Als het vermogen van een systeem om de cliënt/gebruiker te identificeren wordt aangetast, komt de algehele API-beveiliging in gevaar.

Overdreven blootstelling van gegevens – Vooruitkijkend naar generieke implementaties, hebben ontwikkelaars de neiging om alle objecteigenschappen bloot te geven zonder rekening te houden met hun individuele gevoeligheid, vertrouwend op clients om de gegevens te filteren voordat ze aan de gebruiker worden getoond.

Gebrek aan resources & rate limiting – Heel vaak leggen API’s geen beperkingen op aan de grootte of het aantal resources dat door de client/gebruiker kan worden opgevraagd. Dit kan niet alleen gevolgen hebben voor de prestaties van de API-server, wat kan leiden tot Denial of Service (DoS), maar het laat ook de deur open voor authenticatiefouten, zoals brute kracht.

Gebroken autorisatie op functieniveau – Complexe beleidsregels voor toegangscontrole met verschillende hiërarchieën, groepen, rollen en een onduidelijke scheiding tussen administratieve en gewone functies, hebben de neiging te leiden tot fouten in de autorisatie. Door misbruik te maken van deze problemen kunnen aanvallers toegang krijgen tot de bronnen en/of administratieve functies van andere gebruikers.

Massale toewijzing – Het binden van door de client aangeleverde gegevens (b.v. JSON) aan datamodellen, zonder goede filtering van eigenschappen op basis van een toestemmingslijst, leidt meestal tot massale toewijzing. Het raden naar object eigenschappen, het verkennen van andere API endpoints, het lezen van de documentatie, of het verstrekken van extra object eigenschappen in request payloads, stelt aanvallers in staat om object eigenschappen te wijzigen waar ze niet verondersteld worden.

Onjuiste configuratie van de beveiliging – Onjuiste configuratie van de beveiliging is meestal het gevolg van onveilige standaardconfiguraties, onvolledige of ad-hocconfiguraties, open cloudopslag, verkeerd geconfigureerde HTTP-headers, onnodige HTTP-methodes, permissive cross-origin resource sharing (CORS), en uitgebreide foutmeldingen met gevoelige informatie.

Injectie – Injectiefouten, zoals SQL-, NoSQL-, commando-injectie, enz., treden op wanneer onvertrouwde gegevens naar een interpreter worden gestuurd als onderdeel van een commando of query. De kwaadaardige gegevens van de aanvaller kunnen de interpreter verleiden tot het uitvoeren van onbedoelde commando’s of het openen van gegevens zonder de juiste autorisatie.

Onjuist beheer van bedrijfsmiddelen – API’s hebben de neiging meer endpoints bloot te stellen dan traditionele webtoepassingen, waardoor goede en bijgewerkte documentatie van groot belang is. Een goede inventarisatie van hosts en geïmplementeerde API-versies speelt ook een belangrijke rol bij het beperken van problemen zoals verouderde API-versies en blootgestelde debug-eindpunten.

Onvoldoende logging en monitoring – Onvoldoende logging en monitoring, in combinatie met ontbrekende of ineffectieve integratie met incident response, stelt aanvallers in staat systemen verder aan te vallen, persistentie te behouden, te pivoteren naar meer systemen om te knoeien met gegevens, deze te extraheren of te vernietigen. Uit de meeste onderzoeken naar inbreuken blijkt dat het meer dan 200 dagen duurt voordat een inbreuk wordt ontdekt, meestal door externe partijen in plaats van door interne processen of monitoring.

NL