We merken dat de vraag naar pentesten toeneemt. Dit is positief, want meer aandacht voor security is altijd goed. Een misverstand dat we echter regelmatig tegenkomen, is dat een pentest gezien wordt als een eindpunt voor het afvinken van de security van een applicatie. Dit terwijl het juist het startpunt moet zijn van het monitoren van de security gedurende de gehele levenscyclus van een applicatie. Een pentest alleen geeft namelijk geen garantie op de security op lange termijn. Het is een momentopname. Wie zich dat niet realiseert loopt ondanks de pentest, serieuze risico’s.
Wat is een pentest?
Een pentest is een onderzoek waarbij een security specialist met een ‘hacker mindset’ alle mogelijke middelen en beschikbare informatie gebruikt om te ontdekken hoe hij kan binnendringen in een omgeving of applicatie. Ook wordt gekeken wat de mogelijke impact is van deze aanvallen. Als een pentest is afgerond heb je een goed beeld van de security van de applicatie. De vervolgstap is om de eventueel gevonden kwetsbaarheden op te lossen. Vervolgens wordt er een nieuwe test gedaan. Dit proces herhaalt zich totdat de omgeving veilig is bevonden.
Op dit punt stopt het regelmatig met de aandacht voor security. De omgeving is getest en volgens het rapport veilig. Door naar het volgende project zou je zeggen. Echter de ontwikkeling van de omgeving of applicatie die getest is stopt daarmee niet. Ontwikkelaars gaan de volgende dag gewoon weer aan de slag om de applicatie nog beter en sneller te maken. Dit betekent ook dat er nieuwe kwetsbaarheden kunnen ontstaan. Misschien wordt er een nieuwe testomgeving opgezet die systeeminformatie bevat, en wordt deze niet goed van het internet afgeschermd. Of er wordt intern een online applicatie in gebruik genomen die kwetsbaarheden bevat. Allemaal zaken die de veiligheid van je omgeving in een keer onderuit kunnen halen.
Hackers zoeken continu kwetsbaarheden
Nu is het natuurlijk ook mogelijk dat de developers en beheerders van de applicaties en omgevingen zich verdiept hebben in security best practices. Ze zorgen ervoor dat nieuwe functionaliteit op een veilige manier wordt ontwikkeld en nieuwe diensten veilig worden gedeployed. Ondertussen zitten hackers echter ook niet stil. Zij zijn continu op zoek naar kwetsbaarheden en nieuwe ingangen waarmee zij de veiligheid van een omgeving kunnen ondermijnen. Weliswaar worden er vaak security-updates verstrekt door onder meer softwareleveranciers, maar tussen het publiek bekendmaken van de kwetsbaarheid en het installeren van de patch zit tijd. Juist deze periode is een kans voor hackers om ongemerkt binnen te komen.
Dit alles betekent helaas dat je na een pentest dus niet kunt aannemen dat je applicatie of omgeving ook op langere termijn veilig is. Een pentest doen na het toevoegen van iedere nieuwe functie is in de praktijk echter ook geen reële optie. Een oplossing waarmee je wel meer grip krijgt op de security van je applicatie, is het continu uitvoeren van security testen. De kosten die dit met zich meebrengt maken dit alleen ook geen haalbare strategie. Wat wel een kosteneffectieve oplossing is, is het regelmatig uitvoeren van automatische security scans. Deze zijn minder goed in het vinden van bepaalde kwetsbaarheden dan een security tester, maar zijn wel veel goedkoper om uit te voeren.
Automatische security-scan uitvoeren
Een automatische scan kan bijvoorbeeld iedere maand, week, dag of zelfs ieder uur uitgevoerd worden. Wanneer onverhoopt een testomgeving bereikt kan worden via het internet, is het waarschijnlijk dat een automatische scanner deze ontdekt. Daarnaast kun je een 'standaard' automatische scanner uitbreiden met specifieke test cases voor kwetsbaarheden die zijn gevonden tijdens eerdere pentests. Hiermee voorkom je dat een eerder gevonden kwetsbaarheid terugkomt in de applicatie.
Een automatische security-scan lijkt nu op het eerste gezicht een ideale oplossing om meer grip te krijgen op de veiligheid van je applicatie of omgeving. Dit is helaas niet het geval als je gebruikmaakt van alleen een automatische security scantool. Een nadeel van automatische scanners is namelijk dat deze relatief dom zijn. Zo kan een scanner bijvoorbeeld geen onderscheid maken tussen een testomgeving en een publieke website van de klant. Hierdoor wordt voor beide omgevingen dezelfde melding gegeven. De interpretatie welke omgeving wel publiek toegankelijk moet zijn, en welke niet, ligt dan bij de beheerder.
Marvin_: automatisch scannen met de expertise van een specialist
Een oplossing voor het slimmer maken van je automatische security scans en de resultaten juist te interpreteren, is Marvin_. Dit is een totaaloplossing waarbij een automatische security scanner wordt ingericht door een van onze security specialisten. De resultaten na het draaien van de periodieke security-scans worden eerst door de security specialist beoordeeld. Dit betekent dat je als beheerder alleen relevante issues in je dashboard te zien krijgt. Alle false positives zijn er al uitgefilterd. Doordat de security specialist bovendien op de hoogte is van de nieuwste kwetsbaarheden, ben je ervan verzekerd dat deze snel gevonden en verholpen worden. Hiermee is de beveiliging van je applicaties up-to-date en kun je ook in de periodes tussen de pentesten in, met een gerust hart wel een vinkje zetten bij security.