De laatste jaren is er in de ICT wereld een trend gaande dat er meer aandacht besteed wordt aan meer dan alleen functionaliteit van informatiesystemen, maar ook van de hoedanigheid[1]. Een van deze aandachtspunten is de beveiliging van de software. Doordat meer en meer systemen worden ontsloten via het internet groeit de kans dat een onvolkomenheid op het gebied van beveiliging gevonden en gebruikt wordt. Daarnaast is ook de mogelijke schade die misbruik met zich mee brengt gegroeid. Er is niet alleen sprake van imagoschade, het kan zelfs het einde van een onderneming betekenen.

Deze groeiende aandacht houd ook in dat er meer aandacht besteed wordt aan het testen van de beveiliging. Een testsoort waar ik niet alleen een tweetal cursussen over heb gevolgd, maar ook bij een klant mee heb gewerkt. Het ging hierbij om interactie internetpagina’s. Van de testen pagina’s heb ik de formulieren geïnventariseerd. Per formulier heb ik een matrix (the threat matrix) gemaakt met verticaal de zichtbare en onzichtbare velden die het bevat en horizontaal de verschillende bedreigingen die ik zou testen. Denk hierbij aan onder meer punten als: Cross-site scripting, SQL injectie en het prijs geven van teveel informatie.

Als je alles handmatig wilt gaan testen zul je dus van iedere pagina, ieder formulier en ieder formulier op elke bedreiging moeten testen. Bedenk daarbij dat bijvoorbeeld SQL injectie op meer dan tien verschillende manieren kan worden uitgevoerd. Het is dus duidelijk dat het aantal testgevallen die je moet gaan uitvoeren aardig op kan lopen. Voor het uitvoeren van deze testen wordt veelal gebruik gemaakt van proxie tools die je tussen je browser en de webserver hangt. En laten nou net veel tools om het testen webpagina’s te automatiseren ook zo werken.

Zo kun kun een groot deel van de test opzetten in een tool waarbij je uitgaat van een glad testgeval, waarbij je per veld een vast, maar uitgebreid, lijstje aan potentieel gevaarlijk invoer opt de applicatie afvuurt. Door deze lijstjes op een enkele plaats bij te houden is de test ook makkelijk uit te breiden en opnieuw uit te voeren bij ontdekking van nieuwe vormen hacks.

Voetnoten    (↵ returns to text)

  1. Functionaliteit houd in dat de software de juiste dingen doet. De hoedanigheid houd in dat de software dit op de juiste manier doet.