Penetrationstest: Sådan bestiller du rigtigt

Af Weapp · Opdateret

At bestille en penetrationstest betyder at lade en sikkerhedsekspert aktivt forsøge at trænge ind i dit system, i modsætning til en automatisk sårbarhedsscanning. Testeren bør være uafhængig af udviklingsleverandøren så vurderingen bliver ærlig. Fundene prioriteres efter alvor og udbedres efter en rimelig tidsplan hvor de farligste huller lukkes først.

Før eller siden bliver spørgsmålet stillet: Er vores system faktisk sikkert? En penetrationstest er måden at få et ærligt svar på. I stedet for at gætte lader du en sikkerhedsekspert forsøge at bryde ind, præcis som en rigtig angriber ville gøre, og rapportere hvad vedkommende fandt. Men en test er kun så god som den måde den bliver bestilt på. Denne guide gennemgår hvad du faktisk køber, hvorfor testeren skal være uafhængig og hvordan du håndterer fundene så de gør gavn.

Sårbarhedsscanning eller en rigtig penetrationstest

Det første der skal afklares, er hvad du egentlig beder om, for to ret forskellige ting bliver nogle gange kaldt det samme. Forskellen er stor nok til at påvirke både pris og værdi.

En sårbarhedsscanning er et automatisk værktøj der gennemgår systemet og sammenholder det med en liste over kendte svagheder. Den er hurtig, billig og god til at fange det åbenlyse: forældede komponenter, kendte huller, forkerte indstillinger. Men den er overfladisk. Den kan ikke tænke, kombinere flere små svagheder til en alvorlig eller forstå logiske fejl i hvordan netop jeres system fungerer.

En penetrationstest er et menneske. En erfaren tester forsøger aktivt at trænge ind, prøver uventede veje, kæder svagheder sammen og ræsonnerer som en angriber med et mål. Testen finder det som en scanning aldrig ser: at en bruger kan nå en andens data ved at manipulere et kald, eller at flere detaljer der hver for sig er harmløse, tilsammen åbner en dør. En almindelig fejl er at købe en scanning i den tro at man har fået en pentest. Scanningen har sin plads, men den erstatter ikke en rigtig gennemgang.

Hvorfor testeren bør være uafhængig

Et afgørende spørgsmål er hvem der udfører testen. Den fristende genvej er at lade udviklingsleverandøren teste sit eget produkt, for de kender jo systemet bedst. Netop derfor er det den forkerte vej.

Ingen er god til at finde fejl i sit eget arbejde. Den der har bygget systemet, gennemgår det med de samme antagelser og blinde vinkler som prægede udviklingen og har desuden en ubevidst interesse i at alt ser godt ud. En uafhængig tester kommer ind uden at have noget at forsvare og leder fordomsfrit efter det der er i stykker. Uafhængigheden er også det der gør resultatet troværdigt udadtil: For en kunde, en investor eller en revisor betyder en godkendt test fra en ekstern part noget helt andet end leverandørens eget ord for at alt er sikkert. At skelne mellem den der bygger, og den der gennemgår, er et enkelt princip med stor effekt.

Prioritér og udbedr fundene

En penetrationstest ender i en rapport, men rapporten er ikke målet. Det er de rettede mangler. En rapport der bliver læst én gang og derefter glemt, har ikke gjort systemet en eneste grad sikrere. Nøglen er at omsætte fundene til handling i den rigtige rækkefølge.

De fleste rapporter graduerer fundene efter alvor, og den gradering styrer tempoet:

AlvorlighedRimelig håndtering
KritiskUdbedres straks, helst før systemet går live
HøjRettes hurtigst muligt efter en klar og kort tidsplan
MiddelPlanlægges ind i det kommende udviklingsarbejde
LavUdbedres når lejligheden byder sig eller ved næste større indsats

Pointen er ikke at blive lammet af en lang liste. Et fåtal af kritiske og høje fund er det der virkelig betyder noget, og de skal væk først. Resten kan håndteres metodisk over tid. Når de alvorlige mangler er rettet, er det klogt at lade testeren verificere at hullerne faktisk er lukket. En rettelse der ikke bliver kontrolleret, er kun et håb om at fejlen er væk.

Et konkret scenarie

En virksomhed skulle lancere en tjeneste der håndterede personoplysninger og betalinger. Udviklingsleverandøren forsikrede at sikkerheden var i orden, men ledelsen ville have en uafhængig vurdering før tjenesten gik live. De hyrede en ekstern tester til en penetrationstest af applikationen med god margin før lanceringsdatoen.

Testen fandt to alvorlige mangler som en automatisk scanning ville have overset, begge i logikken for hvordan brugere fik adgang til data. Fundene var ubehagelige, men uvurderlige: De kunne være blevet til et reelt datalæk efter lanceringen. Udvikleren lukkede de kritiske huller, testeren verificerede rettelserne, og fundene med lavere prioritet blev planlagt ind i det løbende arbejde. Tjenesten blev lanceret med en dokumenteret, uafhængig sikkerhedsvurdering i ryggen, som var langt mere værd end hvad testen havde kostet.

Bestil testen så den gør gavn

En penetrationstest giver mest værdi når du ved hvad du køber, lader en uafhængig part udføre den og faktisk handler på fundene. Køb en rigtig test frem for bare en scanning hvor der er brug for det, hold testeren adskilt fra udvikleren, og prioritér udbedringerne efter alvor. Så bliver testen ikke et stykke papir, men et reelt løft af sikkerheden.

Vi hos Weapp bygger med sikkerhed for øje og tager gerne imod uafhængige gennemgange af det vi leverer, som en naturlig del af vores ydelser. Nærmer I jer en lancering og vil vide om systemet holder? Kontakt os, så drøfter vi hvordan en test bedst tilrettelægges for netop jeres tjeneste.

Ofte stillede spørgsmål

Hvad er forskellen på en sårbarhedsscanning og en penetrationstest?

En sårbarhedsscanning er et automatisk værktøj der leder efter kendte svagheder og producerer en liste. En penetrationstest er et menneske der aktivt forsøger at trænge ind, kombinerer svagheder og tænker som en angriber. Scanningen er bred og billig, men overfladisk; testen går dybere og finder det som værktøjer overser, f.eks. logiske fejl i hvordan systemet er bygget.

Hvorfor bør testeren være uafhængig af udviklingsleverandøren?

Fordi ingen er bedst til at finde fejl i sit eget arbejde. Lader man den der har bygget systemet, også teste det, bliver koden gennemgået af de samme øjne som skrev den, med de samme blinde vinkler. En uafhængig tester har intet at forsvare og leder fordomsfrit efter mangler. Uafhængigheden er det der gør resultatet troværdigt, både for jer selv og for kunder eller revisorer.

Hvornår i projektet skal en penetrationstest laves?

Som regel før lanceringen, når systemet er færdigt nok til at afspejle hvordan det skal køre i produktion, men med margin til at udbedre fundene før idriftsættelsen. For tjenester der håndterer følsomme oplysninger, bør testen gentages løbende fordi både systemet og trusselsbilledet ændrer sig. En test er et øjebliksbillede: Den siger noget om sikkerheden på det tidspunkt, ikke for al fremtid.

Hvad gør man med rapporten fra en penetrationstest?

Man prioriterer og udbedrer. Rapporten graduerer normalt fundene efter alvor, fra kritiske til mindre. De alvorligste huller skal lukkes hurtigt, gerne før lanceringen, mens dem med lavere prioritet kan planlægges ind over tid. Pointen med testen er ikke rapporten i sig selv, men at manglerne faktisk bliver rettet. En rapport der bliver lagt i en skuffe, har ikke gjort systemet en eneste grad sikrere.

Hvad koster en penetrationstest?

Det afhænger af systemets omfang og af hvor dybt testen skal gå. En afgrænset webapplikation er en mindre opgave end en hel platform med mange dele. Prisen fastsættes som regel efter den tid testen kræver. For et system der håndterer følsomme oplysninger eller betalinger, er omkostningen lille i forhold til hvad et reelt indbrud ville koste i penge og tillid.