Waarschijnlijk heb je er in de wandelgangen wel eens van gehoord: een pentest. Een pentest is een test waarbij je specifiek de technische kwetsbaarheden van een IT-component laat testen en bewust laat misbruiken. Zo kun je erachter komen hoe kwetsbaar je IT-omgeving is.
Er zijn verschillende IT-aspecten die je kunt laten pentesten, bijvoorbeeld een website, webapplicatie, de IT-infrastructuur of een mobiele app. Een ethische hacker gaat op zoek naar kwetsbaarheden, rapporteert deze en vervolgens kun je de grootste risico’s oplossen. In dit artikel bekijken we het proces van een pentest en waar je allemaal rekening mee moet houden voordat je er één laat uitvoeren.
Wat is een pentest specifiek?
Voordat we dieper op pentests ingaan, een stukje vaak voorkomende terminologie en duiding. Ten eerste: als je je gehele IT-landschap wilt beschermen, moet je rekening houden met dreigingen, ook wel threats genoemd. Een threat is een partij die een bedreiging vormt voor je bedrijfsvoering, b.v. hackers, bots, overheden, script kiddies, etc. Een threat maakt misbruik van kwetsbaarheden binnen je organisatie. Hier komen pentesten om de hoek kijken, waar je juist deze kwetsbaarheden opspoort en de impact bij potentieel misbruik bepaalt.
Ten tweede is een pentest een specifieke manier om technische kwetsbaarheden op te sporen. Het is een middel tussen een hele rits aan maatregelen die je kunt nemen volgens de bekende informatiebeveiligingsstandaard ISO 27001, waarover je in dit artikel meer kan lezen.
Een term die je vaak tegenkomt bij een pentest is die van een security scan / vulnerability scan of een vulnerability assessment. Bij een security scan / vulnerability scan worden bekende kwetsbaarheden automatisch gescand door software, b.v. CVE’s (Common Vulnerabilities and Exposures). Dit kan bijvoorbeeld het geval zijn omdat je software niet up-to-date is of dat het verkeerd is geconfigureerd. Hiermee krijg je een overzicht van alle bekende kwetsbaarheden van een van tevoren gekozen doel. Veel pentesters voeren als eerste stap een dergelijke vulnerability scan uit om zo een beeld te krijgen van welke makkelijk vindbare kwetsbaarheden er zijn, om vervolgens hierop in te zoomen om de specifieke impact bij misbruik te bepalen. Dit geheel wordt een vulnerability assessment genoemd.
Wat een pentest dus specifiek niet doet is je security testen van je gehele IT-bedrijfsvoering. Zaken die bijvoorbeeld niet (standaard) worden meegenomen zijn social engineering, waarbij het menselijke element binnen security wordt getest. Een voorbeeld is phishing via email of WhatsApp. Hetzelfde geldt voor diefstal van IT-apparatuur of het per ongeluk gevoelige data meemailen: door menselijk handelen kan een security incident worden veroorzaakt die technisch (normaliter) niet kan worden voorkomen.
Wil je dergelijke zaken wél mee laten nemen in een beoordeling door de belangrijkste onderwerpen van securitybeleid te laten toetsen (beleid, documenten en de toepassing ervan) dan wordt er gesproken over een security review of security audit. De effectiviteit van al deze maatregelen kan je laten testen door een zogenoemd red-team, een team mensen die op zowel menselijk, technisch als fysieke niveau probeert je organisatie binnen te komen. Kan bijvoorbeeld een willekeurig persoon stiekem achter iemand aan in een kantoor geraken en zo gevoelige informatie buitmaken?
Welke soorten pentesten zijn er?
Ongeacht de scope die wordt gehanteerd is het verstandig om van tevoren af te spreken of er enkel een security scan / vulnerability scan of een complete vulnerability assessment wordt uitgevoerd. In de praktijk levert deze laatste het meeste op omdat je een beeld krijgt hoe een gevonden kwetsbaarheid kan worden misbruikt.
Er zijn, naast het verschil tussen een automatische brede scan en een specifieke verdieping hiervan, verschillende soorten pentesten die qua scope vaak naar voren komen. Hieronder zetten we de 3 meest voorkomende soorten op een rijtje, te beginnen met de blackbox.
- Blackbox: bij een blackbox-test krijgt de pentester (bijna) geen informatie of voorkennis over de IT-omgeving van een organisatie. Hij of zij moet zelf eerst uitzoeken welke applicaties of servers worden gebruikt en zal deze in kaart moeten brengen. Er wordt onder andere gekeken of het inlogproces van een applicatie te omzeilen valt, of dat de software wel up-to-date is / bekende kwetsbaarheden heeft die bij configuratie van de software zijn ontstaan.
- Whitebox: bij een whitebox-test wordt er onderzocht welke schade een hacker kan aanrichten als hij of zij binnen de organisatie is. De hacker heeft dan de beschikking over alle informatie, waaronder netwerk-architectuur, ontwerpen van IT-applicaties, broncode, etc. Hiermee kan onder andere de configuratie of broncode van de IT-systemen op kwetsbaarheden worden getest.
- Greybox: dit is een mix tussen de blackbox en whitebox. Sommige bedrijven hanteren de term greybox-testing wanneer een hacker een bepaalde gebruikersrol inclusief inlogdata krijgt, bijvoorbeeld van een accountmanager. Via deze account probeert de hacker meer rechten te verkrijgen. Dit heet privilege escalation. Andere bedrijven verstaan onder greybox-testing dat de hacker enkel weet welke software / configuratie er wordt gebruikt, maar specifiek geen inlog-gegevens heeft ontvangen.
Handwerk
Alhoewel een pentest voor een deel automatisch kan laten worden uitgevoerd door een vulnerability assesment of security scan, komt er alsnog het nodige handwerk aan te pas. Om te kijken hoe ver een hacker daadwerkelijk in je organisatie kan doordringen (en je dus het daadwerkelijke risico veel beter kan inschatten) bij een specifieke kwetsbaarheid komt er het nodige denkwerk van mensen aan te pas. Dit maakt dat een pentest onder de streep mensen- en maatwerk is, en is het dus van belang om een organisatie in de armen te nemen die vaardig is in dit werk. Het regelmatig wisselen van pentest-partijen om zo vanuit diverse perspectieven onderzocht te worden kan helpen om een zo compleet mogelijk beeld van je kwetsbaarheden te verkrijgen.
Hoe bepaal ik welke pentest bij mij past?
Helaas is er geen simpel antwoord te geven op deze vraag. Wel zijn er een aantal aspecten waar je naar moet kijken voordat je een specifiek beeld krijgt welke pentest het beste bij jouw organisatie past. Dit hangt namelijk samen met 3 aspecten:
- Welke informatie je wilt beschermen
- Waar deze staat
- Hoe mensen daarbij kunnen komen
Hieronder staan een aantal hulpvragen die je voor het beantwoorden van deze drie belangrijke aspecten nodig hebt.
- Waar staan mijn assets?
- Welke informatie bevat deze en hoe belangrijk is deze voor mijn bedrijfsvoering?
- Als je als bedrijf niet weet welke assets je allemaal hebt (b.v. welke domeinen je beheert) dan is het ook lastig deze te beveiligen. Je moet daarom eerst deze specifiek in kaart brengen. Dit kan zowel handmatig als automatisch. Dit automatische proces heet fingerprinting.
- Welke externe connecties zijn mogelijk (van buiten naar binnen)?
- Zijn de programma’s die je gebruikt kwetsbaar voor hackers / bots van buitenaf? Gebruik je (bewust) verouderde protocollen? Als je gehackt wordt, zijn de security-maatregelen die je hebt genomen afdoende om de cybercrimineel te stoppen?
- Welke interne connecties zijn mogelijk (van binnen naar binnen)?
- Welke programma’s wisselen data met elkaar uit?
- Is hier veel configuratie-werk bij komen kijken? Zo ja, dan is dit een potentiële bron van kwetsbaarheden.
Waar nog meer op te letten bij een pentest?
Ten slotte zijn er nog een aantal aspecten waar je rekening mee moet houden bij een pentest. Maak van tevoren afspraken over wat de pentester specifiek gaat testen, welke toegang hij krijgt tot systemen, welke test wordt uitgevoerd, en hoe de resultaten teruggekoppeld worden.
Daarnaast is het handig om af te spreken wanneer de test plaatsvindt om zo de (eventuele) impact op productieprocessen zo klein mogelijk te houden. Een IT-admin of security-afdeling zal wellicht meldingen krijgen van verdachte activiteiten. Dan is het handig als van tevoren de pentest is gecommuniceerd. Hetzelfde geldt voor als je een website laat pentesten en de host van de site wordt geraakt. Hier is vaak een getekende vrijwaringsverklaring voor nodig. Dit houdt in dat alle betrokken partijen op de hoogte zijn van de pentest: als een hacker toch per ongeluk een productieproces stillegt en hier schade uit voorkomt, dan is de hacker hier niet verantwoordelijk voor.
Hoe kan ik beginnen met een pentest?
Bij Mitopics kunnen we desgewenst een begeleidende rol spelen bij het opzetten van een pentest, van het bepalen van de scope, het uitzoeken van de geschiktste partij voor een pentest of het helpen bij de opdrachtbevestiging en follow-up. Voor vragen over pentesten kun je gerust contact opnemen met Laurence Arnold.