Hvad er pentesting?
Hvad er pentesting?
Penetration testing er en organiseret, målrettet og næsten vigtigst af alt autoriseret og godkendt angreb, som et forsøg på at teste en virksomheds IT-infrastruktur. En pentest kan hjælpe med at afdække vulnerabiliteter og huller i sikkerheden. En pentest gør brug af de samme metoder og teknikker som en ondsindet hacker også ville bruge og kan derfor være en god simulation på et ægte angreb. I sidste ende er formålet med en pentest at forbedre sikkerheden for det testede system.
Værktøjer
Til at pentest findes der mange forskellige værktøjer og fremgangsmetoder, som kan hjælpe en på vej. Det vil typisk være de samme værktøjer som en ondartet hacker også ville bruge for at få adgang til et system.
Et eksempel på et populært program som bruges til pentesting er Burp Suite. Burp suite fungerer som en proxy, der opfanger trafikken mellem en browser og en web server, hvilket gør at man nemt kan manipulere fx http requests.
Jeg vil i løbet af semestret dykke ned i forskellige værktøjer og hvordan de kan bruges ift. pentesting.
Etik
Som penetration tester er der en etik man er nødt til at følge. Ordet ‘hacking’ indbyder ikke til opførsel som anses for lovlig, men en penetration tester prøver at hacke sig ind i systemer på lovlig vis.
Det betyder selvfølgelig at der er nogle vigtige regler man skal overholde. Når man får adgang til et system ligger der potentielt sensitiv information, som er nødt til at have klare rammer for hvordan der håndteres. Er man hyret af et firma, vil der typisk blive lavet en aftale på forhånd, et såkaldt Rules Of Engagement dokument, som viser rammerne for hvad og hvordan der må testes. Fx. er kan Social Engineering angreb tit være off-limits.
Ligeledes udspecificeres der også i dokumentet hvilke domæner eller mål der må testes og hvilke der ikke må. Dette kaldes for ‘Test Scope’.
Metoder
Generelt kan en pentest deles op i flere faser:
- Information gathering
- Handler om at samle så meget frit tilgængeligt information omkring et mål/organisation som muligt.
- Enumeration/Scanning
- Her kigger man dybere på hvilke applikationer eller services der fx. kører på et netværk. Der kigges efter mulige sårbarheder som kan afprøves senere.
- Exploitation
- Her prøver man at udnytte de fundne sårbarheder fra den tidligere fase og derved få adgang til et system.
- Privilige Escalation
- Når man har fået adgang prøver man i denne fase at eskalere enten horisontalt (til andre brugere på samme niveau) eller vertikalt (til brugere med flere rettigheder).
- Post-exploitation
- Den sidste fase handler bl.a. om at kigge på den information der kan trækkes ud gennem den adgang man har fundet, skjule sporene fra at man har haft adgang og at rapportere sine fund.
Frameworks
Der findes forskellige frameworks som kører efter metoden ovenover. Jeg vil i løbet af semestret arbejde ud fra frameworket “Open Web Application Security Project” eller bare OWASP.
OWASP har bl.a. lavet en pen testing checkliste ift. web app security: Testing Checklist
Pentesting perspektiver
Pentests kan laves ud fra 2 forskellige perspektiver, enten internt eller eksternt. I en ekstern pentest har testeren samme adgang fra start som en helt normal bruger af internettet. Her skal testeren så starte med at få adgang til systemet på en eller anden måde. Dette er en god måde at teste hvor nemt det er at få adgang til systemet for en hacker. I en intern test starter man allerede med en form for adgang til systemet, fx har man fået udleveret en brugerkonto som svarer til en medarbejder i virksomheden. Herfra kan testeren så teste hvor meget data udover den der burde være tilgængelig man kan se eller om man kan få adgang til systemer man ikke burde. Dette er en god måde at teste, hvor meget skade en hacker ville kunne lave efter man har fået adgang. Interne og eksterne pentests tester også en virksomheds sikkerheds overvågning på forskellige måder.
Typer af pentests
Forskellige typer af pentests fortæller lidt om hvor meget info testeren får omkring systemet på forhånd:
- Blackbox:
- Minimal info, som IP-adresser og domænenavne.
- Greybox:
- Yderligere info, som fx specifikke URLs, hostnavne, subnets osv.
- Whitebox:
- Maksimal info, testeren har indgående viden omkring systemet som skal testes
Valget af perspektiv og type af pentest afhænger meget af den tid og mængde penge som en virksomhed vil smide efter en given pentest. En intern, whitebox test er fx den billigste og mindst tidskrævende, da testeren ikke skal bruge tid på at søge information om systemet og få adgang.