Wat doet een pentester?

Puzzelen in cyberspace: wat doet een pentester?

Als pentester word ik wel eens gevraagd wat een pentest nou eigenlijk inhoudt, wat mijn werkwijze is en wat voor kennis er allemaal nodig is tijdens zo’n pentest. Er wordt ook wel gevraagd of een pentest te automatiseren is, en of een bedrijf de pentester moet zien als een vriend, of een vijand. Al deze vragen en meer zal ik proberen te beantwoorden vanuit mijn perspectief.

Over mij

Ik ben Thomas van der Berg, sinds eind oktober werk ik bij Sincerus. Daarvoor heb ik twee jaar gedetacheerd gezeten bij verschillende bedrijven om ze te helpen webapplicaties te testen en bewustzijn te creeëren over security. Ik heb sinds 11 oktober mijn OSCP gehaald en een paar jaar terug CEH (heh). Ik hou ervan om software uit elkaar te halen en te onderzoeken en om erachter te komen dat dingen anders zijn dan mensen denken. Daarbij vind ik het ook leuk om bedrijven te helpen door advies te geven over hoe zij hun beveiliging kunnen verbeteren. Naast computers ben ik ook fan van muziek, geschiedenis, reizen en andere dingen.

Werkwijze, denkwijze & kennis

Dus wat doe ik als ik een pentest uitvoer? In het kort: Onderzoek. Een pentest bestaat vooral uit voldoende onderzoek doen om verouderde software, misconfiguraties en andere risico’s te vinden. Onderzoek bestaat uit allerlei stappen die meestal heel simpel zijn: checken welke ports open staan met nmap en shodan, zien welke subdomeinen bij een bepaald domein horen met fierce en online tools, webapplicaties bekijken in een browser, etc.

De moeilijkheid bij een pentest wordt bepaald door een aantal aspecten: het kunnen herkennen van mogelijke kwetsbaarheden, het verifiëren van deze kwetsbaarheden en goed gebruik maken van de gelimiteerde onderzoekstijd.

Moeilijkheid van een pentest

De moeilijkheid bij een pentest wordt bepaald door een aantal aspecten: het kunnen herkennen van mogelijke kwetsbaarheden gebaseerd op je onderzoeksresultaten, het verifiëren van deze kwetsbaarheden met een proof of concept (dit kan neerkomen op een aanval) en goed gebruik maken van de gelimiteerde onderzoekstijd. Daarnaast is het belangrijk om te begrijpen wat de implicatie is van allerlei kwetsbaarheden of configuraties en hoe je ze soms kan combineren om als aanvaller iets voor elkaar te krijgen. Ten slotte moet je dit allemaal na grondig onderzoek duidelijk rapporteren aan de klant. Hierbij moet je denken als een ontwikkelaar of beheerder om een oplossing te vinden voor de gevonden problemen.

Een grondige werkwijze

Om dit effectief te doen moet je een grondige werkwijze, een onderzoekende denkwijze en een brede kennis van IT-systemen hebben. Een grondige werkwijze heb je nodig om zoveel mogelijk te onderzoeken, een onderzoekende denkwijze heb je nodig zodat je steeds nieuwe dingen probeert te leren en brede kennis op het gebied van IT-systemen om te kunnen beoordelen wat je tegenkomt. Hierdoor kan je snel herkennen wat de implicaties zijn.

Een voorbeeld is een Open Tomcat server met standaardwachtwoord: deze kan je overnemen door een war te uploaden. Een ander voorbeeld is een open ElasticSearch database op port 9200: hierdoor kan je waarschijnlijk alle data lezen of aanpassen zonder authenticatie, etc.  Maar de denkwijze is misschien nog wel belangrijker, omdat je altijd software tegenkomt die je nog niet eerder hebt gezien. Je zal dus altijd nieuwe dingen moeten leren en onderzoeken. Je nieuwe kennis moet je vervolgens goed noteren, zodat je het weer kan vinden als je dezelfde software een jaar later weer tegenkomt bij een andere pentest.

Kun je pentesten automatiseren?

Er wordt vaak geprobeerd om pentesten te automatiseren. In een zekere zin is dit mogelijk en natuurlijk is dit al gedaan. Vulnerability scanning tools, zoals Nessus, OWASP ZAP, OpenVAS, nmap –script=vuln en nikto kun je zien als geautomatiseerde pentesten. Het voordeel van tools als deze is dat iemand zonder pentestkennis deze kan inzetten en kwetsbaarheden kan zoeken op systemen. Handig voor een bedrijf om het laaghangend fruit te vinden en op te lossen voordat ze er een duurdere pentest bij halen.

Nadeel van automatiseren

Het nadeel van deze tools is dat ze alleen maar testen waarvoor ze geprogrammeerd zijn. Software die niet bekend is bij deze tools kan altijd maar in gelimiteerde mate getest worden. Daarnaast is het vanuit deze tools vaak nog niet duidelijk wat de echte impact is van een bevinding en is de kans op false positives redelijk hoog. False positives zijn resultaten die duiden op een kwetsbaarheid terwijl deze kwetsbaarheid eigenlijk niet aanwezig is.

Daarom is het verstandig om de bevindingen te laten beoordelen door iemand die kennis en tijd heeft om deze te beoordelen en te filteren op wat zinvol is. Vervolgens kan er bedacht worden wat eraan gedaan kan worden. Tools missen de creativiteit om bevindingen en features te combineren, waardoor risico’s onderbelicht blijven.

Het is verstandig om de bevindingen te laten beoordelen door iemand die kennis en tijd heeft om deze te beoordelen en te filteren op wat zinvol is.

Pentesters: vriend of vijand?

Er zijn wel eens verschillende blikken op wat een pentest inhoudt. Sommigen zien het als een simulatie van een hack, waarin een bedrijf getest wordt of het voldoet aan standaarden. In zo’n geval wordt de tester gezien als iemand die het bedrijf probeert kapot te maken en zal het bedrijf hem verder geen informatie verstrekken. Ik zie het liever als een proces waarbij de pentester samen met het bedrijf probeert te kijken naar de beveiliging van hun systemen. Het uiteindelijke verslag is dan ook niet iets wat gezien moet worden als een goede of foute uitslag, maar als een verzameling van technische adviezen om de beveiliging beter te maken. Tegenwoordig doen veel bedrijven pentesten voor compliance redenen, maar uiteindelijk moet het echte doel wel erkend worden: Het inzichtelijk maken van hoe de IT-beveiliging van het bedrijf verbeterd kan worden door middel van praktisch advies. Als het bedrijf er zo in staat is het ook geen probleem om de pentester juist meer informatie te geven om het werk goed te doen. Zo kan de tijd van de test goed benut worden en wordt er zoveel mogelijk gevonden.

Tegenwoordig doen veel bedrijven pentesten voor compliance redenen, maar uiteindelijk moet het echte doel wel erkend worden: Het inzichtelijk maken van hoe de IT-beveiliging van het bedrijf verbeterd kan worden door middel van praktisch advies.

Hoe bescherm je jezelf tegen een pentest?

Dus er komt een pentest aan. Zijn er dingen die je kunt doen om de beveiliging van tevoren al wat op te schroeven om het laaghangende fruit al opgelost te hebben? Er zijn verschillende tools waarmee IT-administratie zelf onderzoek kan doen naar hun systemen. Dit kan onder meer door middel van de eerdergenoemde vulnerability scans. Daarnaast kan de beveiligde verbinding van websites en e-mailservers makkelijk getest worden via bepaalde vrij toegankelijke websites. Voor eigen gemaakte software is het handig om in ieder geval de interne ontwikkelaars bekend te maken met de basis van beveiliging voor applicaties, zoals de OWASP top 10. Bij voorkeur heb je ook een goede testcultuur en focus op kwaliteit in software en beveiliging ervan.

Hopelijk heb je nu meer een beeld van de dingen die pentesters doen. Eigenlijk is het niet anders dan een groot onderzoek op technisch gebied met praktisch advies als resultaat. Mijn tip: zie een pentester niet als iemand die het bedrijf test door het aan te vallen, maar juist als iemand die helpt om de beveiliging te verbeteren.

Ach(het valt wel)mea
Heeft u al een blik geworpen op de BIO?

Gerelateerde berichten

Menu