Wat is een penetratietest voor webtoepassingen?
Een penetratietest voor webtoepassingen is een activiteit die is ontworpen om te meten hoe een internetprogramma zich zou gedragen tijdens een aanval of misbruik. Deze tests maken gebruik van verschillende softwareprogramma's om een toepassing te scannen en vervolgens verschillende acties uit te voeren die kunnen optreden tijdens een daadwerkelijke aanval. Een penetratietest voor webtoepassingen kan worden uitgevoerd door een ontwikkelteam of een externe serviceprovider. Als een externe provider wordt gebruikt, wordt het ontwikkelteam of IT-personeel soms niet op de hoogte gebracht van de test door het management. Hierdoor kan een penetratietest van een webtoepassing gebreken aan het licht brengen die anders onopgemerkt zijn gebleven, waardoor deze problemen kunnen worden opgelost voordat de software wordt uitgegeven.
Webtoepassingen zijn softwarepakketten die via internet kunnen worden geraadpleegd en uitgevoerd. Deze applicaties kunnen vele functies uitvoeren en in sommige gevallen zijn ze verantwoordelijk voor de verwerking van gegevens die als privé of zelfs waardevol worden beschouwd. Om te voorkomen dat aanvallen worden gecompromitteerd, worden penetratietests meestal uitgevoerd om eventuele zwakke punten of gemakkelijk te exploiteren gebieden in de code te lokaliseren.
Typische penetratietests voor webapplicaties beginnen met een fase van het verzamelen van informatie. Het doel van deze stap is om zoveel mogelijk informatie over de toepassing te bepalen. Door aanvragen naar de toepassing te verzenden en tools zoals scanners en zoekmachines te gebruiken, is het vaak mogelijk om informatie te verkrijgen zoals softwareversienummer en foutmeldingen die vaak worden gebruikt om later exploits te vinden.
Nadat een voldoende hoeveelheid informatie is verzameld, is het volgende doel van een penetratietest voor een webtoepassing om een aantal verschillende aanvallen en exploits uit te voeren. In sommige gevallen zal de informatie die tijdens de eerste fase is verzameld, exploits identificeren waarvoor de applicatie mogelijk kwetsbaar is. Als er geen overduidelijke kwetsbaarheden werden gedetecteerd, kan een volledig scala aan aanvallen en exploits worden geprobeerd.
Veel verschillende technische kwetsbaarheden kunnen worden gevonden door een penetratietest van een webtoepassing. Bij deze tests wordt meestal geprobeerd methoden zoals URL-manipulatie (Universal Resource Locator), sessiekaping en SQL-injectie (Structured Query Language) te gebruiken om in een toepassing in te breken. Er kan ook een poging worden gedaan om een bufferoverloop te starten of andere soortgelijke acties die ertoe kunnen leiden dat een toepassing zich abnormaal gedraagt. Als een van deze aanvallen of exploits ervoor zorgt dat de applicatie gevoelige gegevens onthult aan de penetratietester, worden de fouten meestal gemeld samen met een voorgestelde handelwijze.