Pentesting, wat is het?
Een pentest, ofwel penetratietest, is een vorm van ethisch hacken. Specialisten gaan op zoek naar kwetsbaarheden in systemen, applicaties, … en proberen deze te hacken. Het hoofddoel bij pentesting is om een beeld te krijgen van de huidige situatie en te weten komen waar de figuurlijke deur openstaat.
Er bestaan verschillende vormen van security tests. Van oefeningen op papier nog voor een omgeving opgezet is, tot automatisch testen, nazicht van code, community gebaseerd testen, etc. De voornaamste onderscheidende factor van een pentest is dat het geen automatisch gestuurd proces is. Er wordt effectief manueel getest. Een mens is eenmaal sterker in ambigue cases herkennen, logische fouten opsporen, etc. Verder heeft deze ook de finesse om een kwetsbaarheid uit te buiten op een stabiele wijze. Waarbij een tool zal rapporteren: ‘er zijn ontbrekende updates’, zal een pentester kunnen aantonen dat, door deze ontbrekende update, een aanvaller in staat is om bijvoorbeeld een kopie van de database te bekomen. Het aantonen van deze impact is cruciaal voor het opstellen van de prioriteit van de security roadmap.
Zwart, grijs of wit?
Een belangrijk verschil tussen een pentest en een echte hacker is het verschil in tijd. Een pentest duurt een aantal dagen en is dus gelimiteerd in tijd terwijl een echte aanvaller vaak alle tijd van de wereld heeft. Er bestaan daarom ook verschillende methodes om een pentest aan te pakken. De meest voorkomende zijn:
Black-box testing: Dit is de meest ‘realistische’ test maar vaak ook de minder grondige. Bij black-box testing krijgt de pentester geen extra info. De enige informatie zijn vaak de IP-adressen of URL’s in scope. Er worden geen gebruikersgegevens meegedeeld, welke een aanvaller ook niet altijd ter beschikking heeft.
Grey-box testing: Bij dit type testen komt er wat meer informatie in de richting van de pentester. De belangrijkste hierin is vaak een geldige set van gebruikers. Door de limitatie in tijd van een pentest is grey-box testing naar ons aanvoelen de meest optimale manier van werken. Stel dat je applicatie een sterke login heeft, of zeg maar voordeur, dan ontbreekt het vaak de tijd om aanvallen te proberen op de functionaliteit. Daarom zijn geldige credentials vaak zeer nuttig om snelheid te maken en toch grondig te kunnen testen
White-box testing: Als laatste hebben we de white-box test waarin zoveel mogelijk informatie aan de tester bezorgd zal worden. De insteek hierbij is dat de tester zijn tijd zo optimaal mogelijk zal benutten in het zoeken van kwetsbaarheden op elk niveau. Typische informatie die hier aan de tester bezorgd zal worden zijn architectuur schema’s, broncode, enz.
Voor- en nadelen
Voordelen
- Geeft een beeld van de huidige situatie naar blootstelling van technische kwetsbaarheden
- Voorkomt negatieve impact op niveau van privacy, beschikbaarheid, reputatie, etc.
- De uitkomst is een roadmap van technische quick wins waar je onmiddellijk mee aan de slag kan
- Kwalitatiever in aantal resultaten dan geautomatiseerde testen
Nadelen
- Brengt geen strategische of organisatorische tekortkomingen aan het licht
- Dient te gebeuren als eerste maatstaf van nieuwe omgevingen, bij grote veranderingen of periodiek zoals (half) jaarlijks omdat het prijziger kan zijn dan wekelijkse automatische testen
- Is een momentopname. Een kleine wijziging in een omgeving kan potentieel nieuwe kwetsbaarheden introduceren als deze niet gestructureerd en doordacht geïntroduceerd worden
Conclusie
Nico Cooman
Pentesting expert
Managing Partner The Security Factory